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¶
数字电视频道/转发器的频率。
注意
对于卫星传输系统,频率以 kHz 为单位。
对于有线和地面传输系统,频率以 Hz 为单位。
在大多数传输系统上,频率是转发器/信道的中心频率。ISDB-T 的例外,其主载波与中心偏移 1/7。
对于 ISDB-T,信道通常以约 143kHz 的偏移量传输。例如,有效频率可能是 474,143 kHz。步长绑定到信道的带宽,通常为 6MHz。
在 ISDB-Tsb 中,信道仅包含一个或三个段,频率步长分别为 429kHz 和 3*429。
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 为单位。
应仅为地面传输系统设置。
可能的值: 1712000
、 5000000
、 6000000
、 7000000
、 8000000
、 10000000
。
地面标准 |
可能的带宽值 |
---|---|
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。 |
注意
对于 ISDB-Tsb,带宽可以根据连接的段数而变化。
它可以很容易地从其他参数(DTV_ISDBT_SB_SEGMENT_IDX、DTV_ISDBT_SB_SEGMENT_COUNT)中推导出来。
在卫星和有线传输系统上,带宽取决于符号率。因此,内核将默默地忽略任何设置 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(自动)
2.3.1.20. DTV_ISDBT_SOUND_BROADCASTING¶
仅在 ISDB 上使用。
此字段表示其他 DTV_ISDBT_*-参数是指 ISDB-T 和 ISDB-Tsb 信道。(另请参见 DTV_ISDBT_PARTIAL_RECEPTION
)。
可能的值:0、1、-1(自动)
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 中不再那么简单了。
The DTV_ISDBT_SB_SUBCHANNEL_ID
参数用于给出要解调的段的子信道 ID。
可能的值:0 .. 41,-1(自动)
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 个维特比解码器和 3 个里德-所罗门解码器。
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_AUTO
、FEC_1_2
、FEC_2_3
、FEC_3_4
、FEC_5_6
、FEC_7_8
2.3.1.24.3. DTV_ISDBT_LAYER[A-C]_MODULATION¶
仅在 ISDB 上使用。
由给定的 ISDB 层使用的调制,如 fe_modulation
定义。
可能的值为:QAM_AUTO
、QPSK
、QAM_16
、QAM_64
、DQPSK
注意
如果 C 层为
DQPSK
,则 B 层必须为DQPSK
。如果 B 层为
DQPSK
且DTV_ISDBT_PARTIAL_RECEPTION
= 0,则 A 层必须为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_BROADCASTING
、DTV_ISDBT_PARTIAL_RECEPTION
和 LAYER[A-C]_SEGMENT_COUNT
的真值表
部分接收 |
声音广播 |
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-size)。此处的值指的是在 TMCC 结构中可以找到的值,如下表所示。
-
type isdbt_layer_interleaving_table¶
|
模式 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 上使用。
里德-所罗门 (RS) 帧模式。
可接受的值由 atscmh_rs_frame_mode
定义。
2.3.1.24.13. DTV_ATSCMH_RS_FRAME_ENSEMBLE¶
仅在 ATSC-MH 上使用。
里德-所罗门 (RS) 帧集成。
可接受的值由 atscmh_rs_frame_ensemble
定义。
2.3.1.24.14. DTV_ATSCMH_RS_CODE_MODE_PRI¶
仅在 ATSC-MH 上使用。
里德-所罗门 (RS) 代码模式(主)。
可接受的值由 atscmh_rs_code_mode
定义。
2.3.1.24.15. DTV_ATSCMH_RS_CODE_MODE_SEC¶
仅在 ATSC-MH 上使用。
里德-所罗门 (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
定义。
注意
如果
DTV_GUARD_INTERVAL
设置为GUARD_INTERVAL_AUTO
,则硬件将尝试查找正确的保护间隔(如果能够)并使用 TMCC 填充缺失的参数。间隔
GUARD_INTERVAL_1_64
仅用于 DVB-C2。间隔
GUARD_INTERVAL_1_128
用于 DVB-C2 和 DVB-T2。间隔
GUARD_INTERVAL_19_128
和GUARD_INTERVAL_19_256
仅用于 DVB-T2。间隔
GUARD_INTERVAL_PN420
、GUARD_INTERVAL_PN595
和GUARD_INTERVAL_PN945
目前仅用于 DMTB。 在此标准中,只有这些间隔和GUARD_INTERVAL_AUTO
是有效的。
2.3.1.29. DTV_TRANSMISSION_MODE¶
仅用于基于 OFTM 的标准,例如 DVB-T/T2、ISDB-T、DTMB。
指定标准使用的 FFT 大小(对应于载波的大概数量)。
可接受的值由 fe_transmit_mode
定义。
注意
ISDB-T 支持三种载波/符号大小:8K、4K、2K。 在该标准中称为 mode,编号从 1 到 3
模式
FFT 大小
传输模式
1
2K
TRANSMISSION_MODE_2K
2
4K
TRANSMISSION_MODE_4K
3
8K
TRANSMISSION_MODE_8K
如果
DTV_TRANSMISSION_MODE
设置为TRANSMISSION_MODE_AUTO
,则硬件将尝试查找正确的 FFT 大小(如果能够),并将使用 TMCC 填充缺失的参数。DVB-T 指定 2K 和 8K 为有效大小。
DVB-T2 指定 1K、2K、4K、8K、16K 和 32K。
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。
注意:任何超出 id 范围的值也会禁用过滤。
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 位字段(如果存在)携带 EN 302 307 的 5.5.4 条中定义的 DVB-S2 物理层加扰序列的索引。 没有明确的信令方法将加扰序列索引传递给接收器。 如果 S2 卫星传输系统描述符可用,则可以使用它来读取加扰序列索引(EN 300 468 表 41)。
默认情况下,使用黄金加扰序列索引 0。
有效的加扰序列索引范围是 0 到 262142。