本文基于觸覺智能RK3506開發板,為大家介紹配置USB復合設備,本章節將介紹UMS和ACM復合設備數據交互。

UMS
UMS是USB協議體系中定義大容量存儲設備通信規范的標準化協議,通過批量傳輸協議實現主機與存儲設備間的數據交換,給Host設備提供?容量外掛存儲。兼具兼容性強、即插即用、傳輸穩定的特點,UMS與MTP有以下區別:
● UMS以Block為單位?作; MTP則以?件為單位?作。
● UMS?作時, ?標Block為獨占?作,多??操作同?Block將會出現錯誤; MTP?持多??操作。
- 內核編譯配置
在/kernel/arch/arm/configs/rk3506_defconfig文件中,增加如下配置:
# ush_otg_rndis CONFIG_USB_MASS_STORAGE=m
成功添加后重新編譯kernel,命令如下:
cd ./build.sh kernel
編譯成功后,會生成usb_f_mass_storage.ko、g_mass_storage.ko,將其拷貝至開發板的任意目錄下,并進行安裝,命令如下:
insmod usb_f_mass_storage.ko insmod g_mass_storage.ko
執行以下命令,開啟UMS功能:
echo usb_ums_en > /etc/init.d/.usb_config echo "ums_block=/dev/block/by-name/userdata" >> /etc/init.d/.usb_config /usr/bin/usbdevice restart
開啟后,可以在PC上看到一個新的U盤盤符,表示掛載?容量外掛存儲成功:

ACM
ACM全稱Abstract Control Model 抽象控制模型, 是 USB-IF 定義的通信設備類(CDC)子協議,核心功能是讓USB設備模擬成串口設備,在主機(Host)和設備(Device)兩端生成 TTY(Teletypewriter)字符設備節點,實現全雙工的數據交互。
- 內核編譯配置
在/kernel/arch/arm/configs/rk3506_defconfig文件中,增加如下配置:
# ACM CONFIG_USB_ACM=m CONFIG_USB_F_ACM=m
成功添加后重新編譯kernel,命令如下:
cd ./build.sh kernel
編譯成功后,會生成u_serial.ko、usb_f_acm.ko,將其拷貝至開發板的任意目錄下,并進行安裝,命令如下:
insmod u_serial.ko insmod usb_f_acm.ko
執行以下命令,開啟ACM功能:
echo usb_acm_en > /etc/init.d/.usb_config /usr/bin/usbdevice restart
完成后,可以在開發板識別如下節點:
root@rk3506-buildroot:/root# ls /dev/ttyGS0 /dev/ttyGS0 root@rk3506-buildroot:/root#
- ACM功能測試
打開PC端的調試工具,可以識別出一個USB串行設備,如下:

開發板可以通過以下命令,查看usb串口波特率。另外,串口波特率可通過microcom等工具設置:
stty -F /dev/ttyGS0
開發板與PC端收發測試:

基于RK3506核心板、開發板的USB復合設備教程就此完結,關注觸覺智能,為您帶來更多硬核技術干貨與工業嵌入式解決方案。
-
usb
+關注
關注
60文章
8450瀏覽量
285099 -
ACM
+關注
關注
0文章
40瀏覽量
10760 -
UMS
+關注
關注
0文章
41瀏覽量
3269 -
RK3506
+關注
關注
0文章
96瀏覽量
950
發布評論請先 登錄
【米爾RK3506國產開發板評測試用】開箱體體驗
【技術簡析】觸覺智能RK3506 Linux星閃網關開發板有什么奧妙?
觸覺智能RK3506開發板通過OpenHarmony 5.1 XTS認證,引領鴻蒙開發新標桿!
觸覺智能RK3506開發板配置USB復合設備(下)
評論