本文基于觸覺智能RK3506開發(fā)板,為大家介紹配置USB復(fù)合設(shè)備,本章節(jié)將介紹RNDIS和UAC復(fù)合設(shè)備數(shù)據(jù)交互。
RNDIS
RNDIS是一種基于USB的網(wǎng)絡(luò)連接協(xié)議,核心作用是將USB設(shè)備虛擬成網(wǎng)卡,讓設(shè)備通過USB Host鏈路實現(xiàn)與主機(jī)的網(wǎng)絡(luò)通信。兼具低成本、即插即用的特點,在嵌入式、工業(yè)、消費電子等領(lǐng)域應(yīng)用廣泛。
- 內(nèi)核編譯配置
在/kernel/arch/arm/configs/rk3506_defconfig文件中,增加如下配置:
# ush_otg_rndis CONFIG_USB_F_RNDIS=m CONFIG_USB_ETH=m CONFIG_USB_ETH_RNDIS=y
成功添加后重新編譯kernel,命令如下:
cd ./build.sh kernel
編譯成功后,會生成u_ether.ko、usb_f_rndis.ko,將其拷貝至開發(fā)板的任意目錄下,并進(jìn)行安裝,命令如下:
insmodu_ether.ko insmod usb_f_rndis.ko
執(zhí)行以下命令,開啟RNDIS功能:
echousb_rndis_en > /etc/init.d/.usb_config /usr/bin/usbdevice restart
完成后,輸入以下命令可以看到開發(fā)板上多出一塊網(wǎng)卡
ifconfig
結(jié)果如下:
root@rk3506-buildroot:/root# ifconfig …… usb0 Link encap:Ethernet HWaddr F2:B6:FB:22:BC:EE UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:359 errors:0 dropped:69 overruns:0 frame:0 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:74588 (72.8 KiB) TX bytes:1930 (1.8 KiB)
連接開發(fā)板的PC端也能識別出一塊新的網(wǎng)卡:

PC端:

測試是否能ping通:

看到有對應(yīng)返回數(shù)據(jù),說明已成功完成配置。
UAC
UAC全稱USB Audio Class,UAC通過USB虛擬標(biāo)準(zhǔn)PCM接?給USB Host設(shè)備連接,實現(xiàn)了音頻設(shè)備與主機(jī)間的數(shù)據(jù)傳輸及控制方式。憑借即插即用、跨平臺兼容等優(yōu)勢,廣泛應(yīng)用于消費電子、專業(yè)創(chuàng)作、嵌入式設(shè)備等多個領(lǐng)域。
內(nèi)核編譯配置
在/kernel/arch/arm/configs/rk3506_defconfig文件中,增加如下配置:
# usb_uac1 CONFIG_USB_F_UAC1=m CONFIG_USB_CONFIGFS_F_FS=y CONFIG_USB_CONFIGFS_F_UAC1=y
成功添加后重新編譯kernel,命令如下:
cd ./build.sh kernel
編譯成功后,會生成u_audio.ko、usb_f_uac1.ko,將其拷貝至開發(fā)板的任意目錄下,并進(jìn)行安裝,命令如下:
insmodu_audio.ko insmod usb_f_uac1.ko
執(zhí)行以下命令,開啟UAC功能:
echousb_uac1_en > /etc/init.d/.usb_config /usr/bin/usbdevice restart
完成后,執(zhí)行usb_f_rndis.ko可以識別如下聲卡:
root@rk3506-buildroot:/root# aplay -l …… card 2: UAC1Gadget [UAC1_Gadget], device 0: UAC1_PCM [UAC1_PCM] Subdevices: 1/1 Subdevice #0 : subdevice #0
連接開發(fā)板的PC端也能識別出一個新的聲音設(shè)備:

- UAC功能測試
PC端:選擇輸出設(shè)備,選中Device設(shè)備(?般識別為Source/Sink,設(shè)備名與Windows版本相關(guān)) , 并打開播放器,播放?樂。


開發(fā)板端:執(zhí)行以下命令,將UAC采樣到的音頻文件名稱為test.wav:
root@rk3506-buildroot:/root# arecord -D hw:2,0 -r 48000 -c 2 -f S16_LE test.wav Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo ^CAborted by signal Interrupt...
開發(fā)板接上揚(yáng)聲器,用觸覺智能RK3506開發(fā)板自帶的8388聲卡播放test.wav,查看采樣是否正常:
root@rk3506-buildroot:/root# aplay -Dhw:0,0./test.wav Playing WAVE './test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
PC端:選擇輸入設(shè)備:

開啟PC端自帶的錄音軟件開始錄音:

開發(fā)板端播放音頻文件指定到UAC聲卡,命令如下:
root@rk3506-buildroot:/root# aplay -Dhw:2,0./test.wav
PC端通過自帶揚(yáng)聲設(shè)備播放錄音音頻,查看音頻是否正常:

看到音頻播放,說明已成功完成配置。
-
usb
+關(guān)注
關(guān)注
60文章
8438瀏覽量
284453 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6289瀏覽量
118050 -
uac
+關(guān)注
關(guān)注
0文章
11瀏覽量
4375 -
RK3506
+關(guān)注
關(guān)注
0文章
94瀏覽量
929
發(fā)布評論請先 登錄
【米爾RK3506國產(chǎn)開發(fā)板評測試用】開箱體體驗
【技術(shù)簡析】觸覺智能RK3506 Linux星閃網(wǎng)關(guān)開發(fā)板有什么奧妙?
瑞芯微RK3506開發(fā)板必備之LVGL應(yīng)用開發(fā)手冊,深圳觸覺智能出品
瑞芯微RK3506開發(fā)板之Qt應(yīng)用開發(fā)手冊(上) 深圳觸覺智能出品,嵌入式方案商
瑞芯微RK3506開發(fā)板必備攻略之Qt應(yīng)用開發(fā)手冊(下),觸覺智能工控嵌入式方案商
觸覺智能RK3506開發(fā)板通過OpenHarmony 5.1 XTS認(rèn)證,引領(lǐng)鴻蒙開發(fā)新標(biāo)桿!
RK3506開發(fā)板Linux開發(fā)板極致性價比之選
RK3506開發(fā)板QT Creator開發(fā)手冊,交叉編譯工具鏈與QT應(yīng)用示例,入門必備
瑞芯微RK3506核心板/開發(fā)板SARADC模擬采集實戰(zhàn),軟硬件實操必看攻略!
觸覺智能RK3506星閃開發(fā)板測評報告(下)
觸覺智能RK3506開發(fā)板配置USB復(fù)合設(shè)備(上)
評論