4.10. 软件无线电接口 (SDR)¶
SDR 是软件无线电的缩写,指使用应用软件进行调制或解调的无线电设备。此接口旨在控制和数据流传输此类设备。
SDR 设备通过字符设备特殊文件访问,这些文件名为 /dev/swradio0
到 /dev/swradio255
,主设备号为 81,动态分配的次设备号为 0 到 255。
4.10.1. 查询功能¶
支持 SDR 接收器接口的设备在 ioctl VIDIOC_QUERYCAP ioctl 返回的 struct v4l2_capability
的 capabilities
字段中设置 V4L2_CAP_SDR_CAPTURE
和 V4L2_CAP_TUNER
标志。该标志表示设备具有模数转换器 (ADC),这是 SDR 接收器的强制性元件。
支持 SDR 发射器接口的设备在 ioctl VIDIOC_QUERYCAP ioctl 返回的 struct v4l2_capability
的 capabilities
字段中设置 V4L2_CAP_SDR_OUTPUT
和 V4L2_CAP_MODULATOR
标志。该标志表示设备具有数模转换器 (DAC),这是 SDR 发射器的强制性元件。
必须支持至少一种读/写或流 I/O 方法。
4.10.2. 补充功能¶
SDR 设备可以支持 控件,并且必须支持 调谐器和调制器 ioctl。调谐器 ioctl 用于设置 ADC/DAC 采样率(采样频率)和可能的射频 (RF)。
V4L2_TUNER_SDR
调谐器类型用于设置 SDR 设备 ADC/DAC 频率,V4L2_TUNER_RF
调谐器类型用于设置射频。射频调谐器(如果有)的调谐器索引必须始终位于 SDR 调谐器索引之后。通常,SDR 调谐器为 #0,射频调谐器为 #1。
不支持 ioctl VIDIOC_S_HW_FREQ_SEEK ioctl。
4.10.3. 数据格式协商¶
SDR 设备使用 数据格式 ioctl 来选择捕获和输出格式。采样分辨率和数据流格式都绑定到该可选格式。除了基本的 数据格式 ioctl 之外,还必须支持 ioctl VIDIOC_ENUM_FMT ioctl。
为了使用 数据格式 ioctl,应用程序将 struct v4l2_format
的 type
字段设置为 V4L2_BUF_TYPE_SDR_CAPTURE
或 V4L2_BUF_TYPE_SDR_OUTPUT
,并根据所需的运算使用 fmt
联合的 struct v4l2_sdr_format
sdr
成员。目前,使用了 struct v4l2_sdr_format
的两个字段:pixelformat
和 buffersize
。pixelformat
的内容是数据格式的 V4L2 FourCC 代码。buffersize
字段是数据传输所需的最大缓冲区大小(以字节为单位),由驱动程序设置以通知应用程序。
-
type v4l2_sdr_format¶
__u32 |
|
|
__u32 |
|
数据所需的最大大小(以字节为单位)。值由驱动程序设置。 |
__u8 |
|
此数组保留供将来扩展使用。驱动程序和应用程序必须将其设置为零。 |