本文基于觸覺(jué)智能RK3506開(kāi)發(fā)板,為大家介紹配置USB復(fù)合設(shè)備,本章節(jié)將介紹RNDIS和UAC復(fù)合設(shè)備數(shù)據(jù)交互。
RNDIS
RNDIS是一種基于USB的網(wǎng)絡(luò)連接協(xié)議,核心作用是將USB設(shè)備虛擬成網(wǎng)卡,讓設(shè)備通過(guò)USB Host鏈路實(shí)現(xiàn)與主機(jī)的網(wǎng)絡(luò)通信。兼具低成本、即插即用的特點(diǎn),在嵌入式、工業(yè)、消費(fèi)電子等領(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
編譯成功后,會(huì)生成u_ether.ko、usb_f_rndis.ko,將其拷貝至開(kāi)發(fā)板的任意目錄下,并進(jìn)行安裝,命令如下:
insmodu_ether.ko insmod usb_f_rndis.ko
執(zhí)行以下命令,開(kāi)啟RNDIS功能:
echousb_rndis_en > /etc/init.d/.usb_config /usr/bin/usbdevice restart
完成后,輸入以下命令可以看到開(kāi)發(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)
連接開(kāi)發(fā)板的PC端也能識(shí)別出一塊新的網(wǎng)卡:

PC端:

測(cè)試是否能ping通:

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

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


開(kāi)發(fā)板端:執(zhí)行以下命令,將UAC采樣到的音頻文件名稱(chēng)為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...
開(kāi)發(fā)板接上揚(yáng)聲器,用觸覺(jué)智能RK3506開(kāi)發(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è)備:

開(kāi)啟PC端自帶的錄音軟件開(kāi)始錄音:

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

看到音頻播放,說(shuō)明已成功完成配置。
-
usb
+關(guān)注
關(guān)注
60文章
8451瀏覽量
285121 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
26文章
6324瀏覽量
119082 -
uac
+關(guān)注
關(guān)注
0文章
11瀏覽量
4380 -
RK3506
+關(guān)注
關(guān)注
0文章
96瀏覽量
951
發(fā)布評(píng)論請(qǐng)先 登錄
米爾瑞芯微多核異構(gòu)低功耗RK3506核心板重磅發(fā)布
【米爾RK3506國(guó)產(chǎn)開(kāi)發(fā)板評(píng)測(cè)試用】開(kāi)箱體體驗(yàn)
【技術(shù)簡(jiǎn)析】觸覺(jué)智能RK3506 Linux星閃網(wǎng)關(guān)開(kāi)發(fā)板有什么奧妙?
觸覺(jué)智能RK3506核心板,工業(yè)應(yīng)用之RK3506 RT-Linux實(shí)時(shí)性測(cè)試
瑞芯微RK3506開(kāi)發(fā)板必備之LVGL應(yīng)用開(kāi)發(fā)手冊(cè),深圳觸覺(jué)智能出品
瑞芯微RK3506開(kāi)發(fā)板之Qt應(yīng)用開(kāi)發(fā)手冊(cè)(上) 深圳觸覺(jué)智能出品,嵌入式方案商
瑞芯微RK3506開(kāi)發(fā)板必備攻略之Qt應(yīng)用開(kāi)發(fā)手冊(cè)(下),觸覺(jué)智能工控嵌入式方案商
觸覺(jué)智能RK3506開(kāi)發(fā)板通過(guò)OpenHarmony 5.1 XTS認(rèn)證,引領(lǐng)鴻蒙開(kāi)發(fā)新標(biāo)桿!
RK3506開(kāi)發(fā)板Linux開(kāi)發(fā)板極致性?xún)r(jià)比之選
RK3506開(kāi)發(fā)板QT Creator開(kāi)發(fā)手冊(cè),交叉編譯工具鏈與QT應(yīng)用示例,入門(mén)必備
如何讓RK3506流暢刷圖,用好RGA?
瑞芯微RK3506核心板/開(kāi)發(fā)板SARADC模擬采集實(shí)戰(zhàn),軟硬件實(shí)操必看攻略!
觸覺(jué)智能RK3506星閃開(kāi)發(fā)板測(cè)評(píng)報(bào)告(下)
觸覺(jué)智能RK3506開(kāi)發(fā)板配置USB復(fù)合設(shè)備(上)
評(píng)論