2.3.1. 数字电视属性参数

有几种不同的数字电视参数可供 FE_SET_PROPERTY 和 FE_GET_PROPERTY ioctl 使用。本节描述了其中的每一个。但请注意,只需要其中的一部分来设置前端。

2.3.1.1. DTV_UNDEFINED

内部使用。对其执行 GET/SET 操作不会更改或返回任何内容。

2.3.1.2. DTV_TUNE

解释数据缓存,构建传统的前端调谐请求,以便我们可以在 FE_SET_FRONTEND ioctl 中通过验证。

2.3.1.3. DTV_CLEAR

重置此处特定于前端的数据缓存。这不会影响硬件。

2.3.1.4. DTV_FREQUENCY

数字电视转发器/频道的频率。

注意

  1. 对于卫星传输系统,频率以 kHz 为单位。

  2. 对于有线和地面传输系统,频率以 Hz 为单位。

  3. 在大多数传输系统中,频率是转发器/频道的中心频率。ISDB-T 除外,其中主载波与中心频率有 1/7 的偏移。

  4. 对于 ISDB-T,频道通常以大约 143kHz 的偏移传输。例如,有效的频率可能是 474,143 kHz。步进受频道带宽的约束,通常为 6MHz。

  5. 在 ISDB-Tsb 中,频道仅由一个或三个段组成,频率步进分别为 429kHz 和 3*429kHz。

2.3.1.5. DTV_MODULATION

指定支持多种调制的传输系统的前端调制类型。

调制可以是枚举 fe_modulation 定义的类型之一。

大多数数字电视标准提供不止一种可能的调制类型。

下表总结了每个传输系统支持的调制类型,如当前规范所定义。

标准

调制类型

ATSC(版本 1)

8-VSB 和 16-VSB。

DMTB

4-QAM、16-QAM、32-QAM、64-QAM 和 4-QAM-NR。

DVB-C Annex A/C

16-QAM、32-QAM、64-QAM 和 256-QAM。

DVB-C Annex B

64-QAM。

DVB-C2

QPSK、16-QAM、64-QAM、256-QAM、1024-QAM 和 4096-QAM。

DVB-T

QPSK、16-QAM 和 64-QAM。

DVB-T2

QPSK、16-QAM、64-QAM 和 256-QAM。

DVB-S

无需设置。它只支持 QPSK。

DVB-S2

QPSK、8-PSK、16-APSK 和 32-APSK。

DVB-S2X

8-APSK-L、16-APSK-L、32-APSK-L、64-APSK 和 64-APSK-L。

ISDB-T

QPSK、DQPSK、16-QAM 和 64-QAM。

ISDB-S

8-PSK、QPSK 和 BPSK。

注意

由于 DVB-S2X 指定了 DVB-S2 标准的扩展,因此使用相同的传输系统枚举值 (SYS_DVBS2)。

请注意,上述某些调制类型可能当前未在内核中定义。原因很简单:尚未有驱动程序需要这样的定义。

2.3.1.6. DTV_BANDWIDTH_HZ

频道带宽,以 HZ 为单位。

仅应为地面传输系统设置。

可能的值:1712000500000060000007000000800000010000000

地面标准

带宽的可能值

ATSC(版本 1)

无需设置。它始终为 6MHz。

DMTB

无需设置。它始终为 8MHz。

DVB-T

6MHz、7MHz 和 8MHz。

DVB-T2

1.172 MHz、5MHz、6MHz、7MHz、8MHz 和 10MHz

ISDB-T

5MHz、6MHz、7MHz 和 8MHz,尽管大多数地方使用 6MHz。

注意

  1. 对于 ISDB-Tsb,带宽可能会因连接的段数而异。

    它可以很容易地从其他参数(DTV_ISDBT_SB_SEGMENT_IDX、DTV_ISDBT_SB_SEGMENT_COUNT)中推导出来。

  2. 在卫星和有线传输系统上,带宽取决于符号率。因此,内核将静默忽略任何设置 DTV_BANDWIDTH_HZ。但我会用带宽估计值填充它。

    这种带宽估计考虑了使用 DTV_SYMBOL_RATE 设置的符号率,以及对于 DVB-C 和 DVB-S 固定的滚降因子。

    对于 DVB-S2,还应通过 DTV_ROLLOFF 设置滚降。

2.3.1.7. DTV_INVERSION

指定前端是否应进行频谱反转。

可接受的值由 fe_spectral_inversion 定义。

2.3.1.8. DTV_DISEQC_MASTER

目前未实现。

2.3.1.9. DTV_SYMBOL_RATE

用于有线和卫星传输系统。

数字电视符号率,以波特(符号/秒)为单位。

2.3.1.10. DTV_INNER_FEC

用于有线和卫星传输系统。

可接受的值由 fe_code_rate 定义。

2.3.1.11. DTV_VOLTAGE

用于卫星传输系统。

电压通常与不支持 DiSEqC 的 LNB 一起使用,以切换极化(水平/垂直)。使用 DiSEqC 设备时,此电压必须与 DiSEqC 规范中描述的 DiSEqC 命令一致地切换。

可接受的值由 fe_sec_voltage 定义。

2.3.1.12. DTV_TONE

目前未使用。

2.3.1.13. DTV_PILOT

用于 DVB-S2。

设置 DVB-S2 导频。

可接受的值由 fe_pilot 定义。

2.3.1.14. DTV_ROLLOFF

用于 DVB-S2。

设置 DVB-S2 滚降。

可接受的值由 fe_rolloff 定义。

2.3.1.15. DTV_DISEQC_SLAVE_REPLY

目前未实现。

2.3.1.16. DTV_FE_CAPABILITY_COUNT

目前未实现。

2.3.1.17. DTV_FE_CAPABILITY

目前未实现。

2.3.1.18. DTV_DELIVERY_SYSTEM

指定传输系统的类型。

可接受的值由 fe_delivery_system 定义。

2.3.1.19. DTV_ISDBT_PARTIAL_RECEPTION

仅用于 ISDB。

如果 DTV_ISDBT_SOUND_BROADCASTING 为 ‘0’,则此位域表示频道是否处于部分接收模式。

如果为 ‘1’,则 DTV_ISDBT_LAYERA_* 值将分配给中心段,并且 DTV_ISDBT_LAYERA_SEGMENT_COUNT 必须为 ‘1’。

此外,如果 DTV_ISDBT_SOUND_BROADCASTING 为 ‘1’,则 DTV_ISDBT_PARTIAL_RECEPTION 表示此 ISDB-Tsb 频道是由一个段和层还是由三个段和两层组成。

可能的值:0、1、-1 (AUTO)

2.3.1.20. DTV_ISDBT_SOUND_BROADCASTING

仅用于 ISDB。

此字段表示其他 DTV_ISDBT_*-参数是指 ISDB-T 还是 ISDB-Tsb 频道。(另请参见 DTV_ISDBT_PARTIAL_RECEPTION)。

可能的值:0、1、-1 (AUTO)

2.3.1.21. DTV_ISDBT_SB_SUBCHANNEL_ID

仅用于 ISDB。

此字段仅在 DTV_ISDBT_SOUND_BROADCASTING 为 ‘1’ 时适用。

(作者注:这可能不是 SUBCHANNEL-ID 在所有细节中的正确描述,但这是我对编程设备所需的技术背景的理解)

ISDB-Tsb 频道(1 个或 3 个段)可以单独广播,也可以在一组连接的 ISDB-Tsb 频道中广播。在这组频道中,每个频道都可以独立接收。连接的 ISDB-Tsb 段的数量可能会有所不同,例如,取决于可用的频谱带宽。

示例:假设广播了 8 个 ISDB-Tsb 连接的段。广播公司有几种可能性可以将这些频道投入使用:假设一个正常的 13 段 ISDB-T 频谱,他可以将 8 个段从位置 1-8 对齐到 5-13 或介于两者之间的任何位置。

段的底层是子频道:每个段由具有预定义 ID 的多个子频道组成。子频道用于帮助解调器同步频道。

ISDB-T 频道始终位于所有子频道的中心。如上面的示例所示,对于 ISDB-Tsb 而言,这不再像那么简单了。

DTV_ISDBT_SB_SUBCHANNEL_ID 参数用于提供要解调的段的子频道 ID。

可能的值:0 .. 41, -1 (AUTO)

2.3.1.22. DTV_ISDBT_SB_SEGMENT_IDX

仅用于 ISDB。

此字段仅在 DTV_ISDBT_SOUND_BROADCASTING 为 ‘1’ 时适用。

DTV_ISDBT_SB_SEGMENT_IDX 给出了要为 ISDB-Tsb 频道解调的段的索引,其中几个段以连接的方式传输。

可能的值:0 .. DTV_ISDBT_SB_SEGMENT_COUNT - 1

注意:此值无法通过自动频道搜索确定。

2.3.1.23. DTV_ISDBT_SB_SEGMENT_COUNT

仅用于 ISDB。

此字段仅在 DTV_ISDBT_SOUND_BROADCASTING 为 ‘1’ 时适用。

DTV_ISDBT_SB_SEGMENT_COUNT 给出了连接的 ISDB-Tsb 频道的总数。

可能的值:1 .. 13

注意:此值无法通过自动频道搜索确定。

2.3.1.24. DTV-ISDBT-LAYER[A-C] 参数

仅用于 ISDB。

ISDB-T 频道可以按层次结构进行编码。与 DVB-T 相比,ISDB-T 中的分层层可以同时解码。因此,ISDB-T 解调器有 3 个 Viterbi 解码器和 3 个 Reed-Solomon 解码器。

ISDB-T 有 3 个分层层,每个层都可以使用可用段的一部分。所有层中的段总数在 ISDB-T 中必须为 13。

有 3 个参数集,分别用于层 A、B 和 C。

2.3.1.24.1. DTV_ISDBT_LAYER_ENABLED

仅用于 ISDB。

ISDB-T 中的分层接收是通过在解码过程中启用或禁用层来实现的。将 DTV_ISDBT_LAYER_ENABLED 的所有位设置为 ‘1’ 会强制解调所有层(如果适用)。这是默认设置。

如果频道处于部分接收模式(DTV_ISDBT_PARTIAL_RECEPTION = 1),则中心段可以独立于其他 12 个段进行解码。在该模式下,层 A 的 SEGMENT_COUNT 必须为 1。

在 ISDB-Tsb 中仅使用层 A,根据 DTV_ISDBT_PARTIAL_RECEPTION,它可以是 1 或 3。必须相应地填充 SEGMENT_COUNT

仅使用前 3 位的数值。其他位将被静默忽略

DTV_ISDBT_LAYER_ENABLED 位 0:启用层 A

DTV_ISDBT_LAYER_ENABLED 位 1:启用层 B

DTV_ISDBT_LAYER_ENABLED 位 2:启用层 C

DTV_ISDBT_LAYER_ENABLED 位 3-31:未使用

2.3.1.24.2. DTV_ISDBT_LAYER[A-C]_FEC

仅用于 ISDB。

给定 ISDB 层使用的前向纠错机制,如 fe_code_rate 所定义。

可能的值为:FEC_AUTOFEC_1_2FEC_2_3FEC_3_4FEC_5_6FEC_7_8

2.3.1.24.3. DTV_ISDBT_LAYER[A-C]_MODULATION

仅用于 ISDB。

给定 ISDB 层使用的调制,如 fe_modulation 所定义。

可能的值为:QAM_AUTOQPSKQAM_16QAM_64DQPSK

注意

  1. 如果层 C 为 DQPSK,则层 B 必须为 DQPSK

  2. 如果层 B 为 DQPSKDTV_ISDBT_PARTIAL_RECEPTION= 0,则层必须为 DQPSK

2.3.1.24.4. DTV_ISDBT_LAYER[A-C]_SEGMENT_COUNT

仅用于 ISDB。

可能的值:0、1、2、3、4、5、6、7、8、9、10、11、12、13、-1 (AUTO)

注意:DTV_ISDBT_SOUND_BROADCASTINGDTV_ISDBT_PARTIAL_RECEPTION 以及 LAYER[A-C]_SEGMENT_COUNT 的真值表

ISDB-T 声音广播的真值表

部分接收

声音广播

层 A 宽度

层 B 宽度

层 C 宽度

总宽度

0

0

1 .. 13

1 .. 13

1 .. 13

13

1

0

1

1 .. 13

1 .. 13

13

0

1

1

0

0

1

1

1

1

2

0

13

2.3.1.24.5. DTV_ISDBT_LAYER[A-C]_TIME_INTERLEAVING

仅用于 ISDB。

有效值:0、1、2、4、-1 (AUTO)

当 DTV_ISDBT_SOUND_BROADCASTING 处于活动状态时,值 8 也有效。

注意:实际时间交织长度取决于模式(fft 大小)。此处的数值是指可以在 TMCC 结构中找到的内容,如下表所示。

type isdbt_layer_interleaving_table
ISDB-T 时间交织模式

DTV_ISDBT_LAYER[A-C]_TIME_INTERLEAVING

模式 1(2K FFT)

模式 2(4K FFT)

模式 3(8K FFT)

0

0

0

0

1

4

2

1

2

8

4

2

4

16

8

4

2.3.1.24.6. DTV_ATSCMH_FIC_VER

仅用于 ATSC-MH。

FIC(快速信息频道)信令数据的版本号。

FIC 用于中继信息,以允许接收器快速获取服务。

可能的值:0、1、2、3、...、30、31

2.3.1.24.7. DTV_ATSCMH_PARADE_ID

仅用于 ATSC-MH。

队列识别号

队列是最多八个 MH 组的集合,传送一个或两个集合。

可能的值:0、1、2、3、...、126、127

2.3.1.24.8. DTV_ATSCMH_NOG

仅用于 ATSC-MH。

指定队列的每个 MH 子帧的 MH 组数。

可能的值:1、2、3、4、5、6、7、8

2.3.1.24.9. DTV_ATSCMH_TNOG

仅用于 ATSC-MH。

MH 组总数,包括一个 MH 子帧中属于所有 MH 队列的所有 MH 组。

可能的值:0、1、2、3、...、30、31

2.3.1.24.10. DTV_ATSCMH_SGN

仅用于 ATSC-MH。

起始组号。

可能的值:0、1、2、3、...、14、15

2.3.1.24.11. DTV_ATSCMH_PRC

仅用于 ATSC-MH。

队列重复周期。

可能的值:1、2、3、4、5、6、7、8

2.3.1.24.12. DTV_ATSCMH_RS_FRAME_MODE

仅用于 ATSC-MH。

Reed Solomon (RS) 帧模式。

可接受的值由 atscmh_rs_frame_mode 定义。

2.3.1.24.13. DTV_ATSCMH_RS_FRAME_ENSEMBLE

仅用于 ATSC-MH。

Reed Solomon (RS) 帧集合。

可接受的值由 atscmh_rs_frame_ensemble 定义。

2.3.1.24.14. DTV_ATSCMH_RS_CODE_MODE_PRI

仅用于 ATSC-MH。

Reed Solomon (RS) 代码模式(主模式)。

可接受的值由 atscmh_rs_code_mode 定义。

2.3.1.24.15. DTV_ATSCMH_RS_CODE_MODE_SEC

仅用于 ATSC-MH。

Reed Solomon (RS) 代码模式(辅助模式)。

可接受的值由 atscmh_rs_code_mode 定义。

2.3.1.24.16. DTV_ATSCMH_SCCC_BLOCK_MODE

仅用于 ATSC-MH。

串联卷积码块模式。

可接受的值由 atscmh_sccc_block_mode 定义。

2.3.1.24.17. DTV_ATSCMH_SCCC_CODE_MODE_A

仅用于 ATSC-MH。

串联卷积码率。

可接受的值由 atscmh_sccc_code_mode 定义。

2.3.1.24.18. DTV_ATSCMH_SCCC_CODE_MODE_B

仅用于 ATSC-MH。

串联卷积码率。

可能的值与枚举 atscmh_sccc_code_mode 中记录的相同。

2.3.1.24.19. DTV_ATSCMH_SCCC_CODE_MODE_C

仅用于 ATSC-MH。

串联卷积码率。

可能的值与枚举 atscmh_sccc_code_mode 中记录的相同。

2.3.1.24.20. DTV_ATSCMH_SCCC_CODE_MODE_D

仅用于 ATSC-MH。

串联卷积码率。

可能的值与枚举 atscmh_sccc_code_mode 中记录的相同。

2.3.1.25. DTV_API_VERSION

返回数字电视 API 的主版本号/次版本号

2.3.1.26. DTV_CODE_RATE_HP

用于地面传输。

可接受的值由 fe_transmit_mode 定义。

2.3.1.27. DTV_CODE_RATE_LP

用于地面传输。

可接受的值由 fe_transmit_mode 定义。

2.3.1.28. DTV_GUARD_INTERVAL

可接受的值由 fe_guard_interval 定义。

注意

  1. 如果设置了 DTV_GUARD_INTERVALGUARD_INTERVAL_AUTO,则硬件将尝试找到正确的保护间隔(如果可能),并将使用 TMCC 填充缺失的参数。

  2. 间隔 GUARD_INTERVAL_1_64 仅用于 DVB-C2。

  3. 间隔 GUARD_INTERVAL_1_128 用于 DVB-C2 和 DVB_T2。

  4. 间隔 GUARD_INTERVAL_19_128GUARD_INTERVAL_19_256 仅用于 DVB-T2。

  5. 间隔 GUARD_INTERVAL_PN420GUARD_INTERVAL_PN595GUARD_INTERVAL_PN945 目前仅用于 DMTB。在此标准上,只有这些间隔和 GUARD_INTERVAL_AUTO 有效。

2.3.1.29. DTV_TRANSMISSION_MODE

仅用于基于 OFTM 的标准,例如 DVB-T/T2、ISDB-T、DTMB。

指定标准使用的 FFT 大小(对应于载波的大概数量)。

可接受的值由 fe_transmit_mode 定义。

注意

  1. ISDB-T 支持三个载波/符号大小:8K、4K、2K。它在此标准上称为 模式,编号从 1 到 3

    模式

    FFT 大小

    传输模式

    1

    2K

    TRANSMISSION_MODE_2K

    2

    4K

    TRANSMISSION_MODE_4K

    3

    8K

    TRANSMISSION_MODE_8K

  2. 如果设置了 DTV_TRANSMISSION_MODETRANSMISSION_MODE_AUTO,则硬件将尝试找到正确的 FFT 大小(如果可能),并将使用 TMCC 填充缺失的参数。

  3. DVB-T 指定 2K 和 8K 作为有效大小。

  4. DVB-T2 指定 1K、2K、4K、8K、16K 和 32K。

  5. DTMB 指定 C1 和 C3780。

2.3.1.30. DTV_HIERARCHY

仅用于 DVB-T 和 DVB-T2。

前端层次结构。

可接受的值由 fe_hierarchy 定义。

2.3.1.31. DTV_STREAM_ID

用于 DVB-C2、DVB-S2、DVB-T2 和 ISDB-S。

DVB-C2、DVB-S2、DVB-T2 和 ISDB-S 支持在单个传输流上传输多个流。当硬件支持时,此属性使数字电视驱动程序能够处理子流过滤。默认情况下,子流过滤处于禁用状态。

对于 DVB-C2、DVB-S2 和 DVB-T2,有效的子流 ID 范围是 0 到 255。

对于 ISDB,有效的子流 ID 范围是 1 到 65535。

要禁用它,您应该使用特殊的宏 NO_STREAM_ID_FILTER。

注意:范围外的任何值也会禁用过滤。

2.3.1.32. DTV_DVBT2_PLP_ID_LEGACY

已过时,已替换为 DTV_STREAM_ID。

2.3.1.33. DTV_ENUM_DELSYS

多标准前端需要宣传提供的传输系统。应用程序需要枚举提供的传输系统,然后才能对前端执行任何其他操作。在此之前,FE_GET_INFO 用于确定前端类型。提供多个传输系统的前端,FE_GET_INFO 没有多大帮助。打算使用多标准前端的应用程序必须枚举与其关联的传输系统,而不是尝试使用 FE_GET_INFO。对于传统前端,结果与 FE_GET_INFO 相同,但采用更结构化的格式

可接受的值由 fe_delivery_system 定义。

2.3.1.34. DTV_INTERLEAVING

要使用的时间交织。

可接受的值由fe_interleaving定义。

2.3.1.35. DTV_LNA

低噪声放大器。

硬件可能提供可控的LNA,可以使用该参数手动设置。通常,LNA只能从地面设备上找到(如果有的话)。

可能的值:0、1、LNA_AUTO

0,LNA关闭

1,LNA开启

使用特殊宏LNA_AUTO设置LNA自动

2.3.1.36. DTV_SCRAMBLING_SEQUENCE_INDEX

用于 DVB-S2。

当存在此18位字段时,它携带DVB-S2物理层加扰序列的索引,如EN 302 307的5.5.4条款中所定义。没有显式的信令方法将加扰序列索引传递给接收器。如果S2卫星传输系统描述符可用,则可以使用它来读取加扰序列索引(EN 300 468表41)。

默认情况下,使用黄金加扰序列索引0。

有效的加扰序列索引范围为0到262142。