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 |
|
此陣列保留供將來擴充套件使用。驅動程式和應用程式必須將其設定為零。 |