4.10. 軟體無線電介面 (SDR)

SDR 是軟體無線電的縮寫,指使用應用軟體進行調製或解調的無線電裝置。此介面旨在控制和資料流傳輸此類裝置。

SDR 裝置透過字元裝置特殊檔案訪問,這些檔名為 /dev/swradio0/dev/swradio255,主裝置號為 81,動態分配的次裝置號為 0 到 255。

4.10.1. 查詢功能

支援 SDR 接收器介面的裝置在 ioctl VIDIOC_QUERYCAP ioctl 返回的 struct v4l2_capabilitycapabilities 欄位中設定 V4L2_CAP_SDR_CAPTUREV4L2_CAP_TUNER 標誌。該標誌表示裝置具有模數轉換器 (ADC),這是 SDR 接收器的強制性元件。

支援 SDR 發射器介面的裝置在 ioctl VIDIOC_QUERYCAP ioctl 返回的 struct v4l2_capabilitycapabilities 欄位中設定 V4L2_CAP_SDR_OUTPUTV4L2_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_formattype 欄位設定為 V4L2_BUF_TYPE_SDR_CAPTUREV4L2_BUF_TYPE_SDR_OUTPUT,並根據所需的運算使用 fmt 聯合的 struct v4l2_sdr_format sdr 成員。目前,使用了 struct v4l2_sdr_format 的兩個欄位:pixelformatbuffersizepixelformat 的內容是資料格式的 V4L2 FourCC 程式碼。buffersize 欄位是資料傳輸所需的最大緩衝區大小(以位元組為單位),由驅動程式設定以通知應用程式。

type v4l2_sdr_format
struct v4l2_sdr_format

__u32

pixelformat

資料格式或壓縮型別,由應用程式設定。這是一個小端 四字元程式碼。V4L2 在 SDR 格式 中定義了 SDR 格式。

__u32

buffersize

資料所需的最大大小(以位元組為單位)。值由驅動程式設定。

__u8

reserved[24]

此陣列保留供將來擴充套件使用。驅動程式和應用程式必須將其設定為零。

SDR 裝置可以支援 讀/寫 和/或流(記憶體對映使用者指標)I/O。