news 2026/8/4 3:50:33

触觉智能RK3506开发板配置USB复合设备(下)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
触觉智能RK3506开发板配置USB复合设备(下)

本文基于触觉智能RK3506开发板,为大家介绍配置USB复合设备,本章节将介绍UMS和ACM复合设备数据交互。

UMS

UMS是USB协议体系中定义大容量存储设备通信规范的标准化协议,通过批量传输协议实现主机与存储设备间的数据交换,给Host设备提供⼤容量外挂存储。兼具兼容性强、即插即用、传输稳定的特点,UMS与MTP有以下区别:

● UMS以Block为单位⼯作; MTP则以⽂件为单位⼯作。

● UMS⼯作时, ⽬标Block为独占⼯作,多⽤⼾操作同⼀Block将会出现错误; MTP⽀持多⽤⼾操作。

  • 内核编译配置

在<SDK_TOP_PATH>/kernel/arch/arm/configs/rk3506_defconfig文件中,增加如下配置:

# ush_otg_rndis CONFIG_USB_MASS_STORAGE=m

成功添加后重新编译kernel,命令如下:

cd <SDK_TOP_PATH> ./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)字符设备节点,实现全双工的数据交互。

  • 内核编译配置

在<SDK_TOP_PATH>/kernel/arch/arm/configs/rk3506_defconfig文件中,增加如下配置:​​​​​​​

# ACM CONFIG_USB_ACM=m CONFIG_USB_F_ACM=m

成功添加后重新编译kernel,命令如下:​​​​​​

cd <SDK_TOP_PATH> ./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复合设备教程就此完结,关注触觉智能CSDN,为您带来更多硬核技术干货与工业嵌入式解决方案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/4 9:07:38

36、ESX 备份、虚拟化发展与安全脚本全解析

ESX 备份、虚拟化发展与安全脚本全解析 一、VM 连接本地磁带设备 除了通过服务控制台自行配置外,还可将 VM 连接到本地磁带设备。构建 VM 时,可使用 SCSI 通用设备将 VM 连接到本地磁带设备。在此情况下,虚拟 SCSI 设备 ID 必须与物理 SCSI 设备 ID 匹配,且设备需为多目标…

作者头像 李华
网站建设 2026/8/4 18:12:23

AsyncElegantOTA:ESP8266/ESP32异步OTA固件更新解决方案

AsyncElegantOTA&#xff1a;ESP8266/ESP32异步OTA固件更新解决方案 【免费下载链接】AsyncElegantOTA Deprecated: Perform OTAs for ESP8266 / ESP32 Elegantly! Uses AsyncWebServer 项目地址: https://gitcode.com/gh_mirrors/as/AsyncElegantOTA 在物联网设备快速发…

作者头像 李华
网站建设 2026/8/3 21:01:50

37、ESX Version 3 安装指南

ESX Version 3 安装指南 1. 文本安装 1.1 清洁安装和重新安装/升级的通用步骤 启动文本安装 :在主安装页面输入 esx text ,然后按回车键。若不输入任何内容,将启动图形化安装。 媒体测试 :可选择验证下载的 ISO 镜像。若使用虚拟媒体设备安装或新创建的 CD - ROM,…

作者头像 李华
网站建设 2026/8/3 15:35:50

【Halcon-1D测量】close_measure 函数功能(用于资源释放)

HALCON算子 close_measure 全解析 一、算子核心定位 close_measure 是HALCON 1D计量(1D Metrology)模块的资源释放类核心算子,其唯一作用是删除由 gen_measure_rectangle2/gen_measure_arc 生成的测量对象(Measure Object)句柄,释放该对象占用的内存资源。它是1D测量流…

作者头像 李华
网站建设 2026/8/3 22:11:29

XChart终极指南:5分钟打造专业级Java数据可视化

XChart终极指南&#xff1a;5分钟打造专业级Java数据可视化 【免费下载链接】XChart 项目地址: https://gitcode.com/gh_mirrors/xch/XChart 还在为Java项目中的图表制作而头疼吗&#xff1f;面对复杂的数据却不知如何直观展示&#xff1f;XChart这款轻量级Java图表库正…

作者头像 李华
网站建设 2026/8/2 17:19:00

21、深入探索 Awk 函数与 getline 功能

深入探索 Awk 函数与 getline 功能 1. Awk 函数基础 在编写程序时,函数是一种非常强大的工具,它可以帮助我们将代码模块化,提高代码的复用性。在 Awk 中,我们不仅可以使用内置函数,还能自定义函数。 1.1 match( ) 函数的使用 match( ) 函数通常放在条件语句中,用于测…

作者头像 李华