RK3568 Android13 VCOM虚拟串口功能实现

一、前言

近段时间,在下从客户方收到了VCOM功能的开发需求。以往没有这类开发经验,互联网上看了看,例程也不多。初次调试,受绊许久,遂作些许记录。

二、需求内容

从设备的OTG接口,提供一个VCOM虚拟串口的功能,要求能正常实现串口的收发能力。

三、调试环境

OS:Android13

Platform:RK3568

Linux version:Kerne 5.10.157

Sdk version:Android-13.0-mid-rkr6.1

四、调试过程

I、调试方法

首先得了解什么是VCOM。所谓VCOM是一种虚拟串行端口技术,其允许通过软件模拟出一个串行端口,使得计算机可以像与常规物理串口通信一样,与虚拟的串口进行通信。与常规的物理串口相比,例如RS-232、RS-485等,VCOM在物理接口、硬件依赖、便捷性和灵活性上更为宽松。当然,实际的应用通常是要结合实际情况的,选择物理串口还是虚拟串口,按需选取。

既然是要求从OTG口转出的VCOM功能,那么自然是要想办法实现USB口功能类型的转换。这里就得了解一下USB Gadget了。USB Gadget就是一种USB设备功能,是一种嵌入式Linux技术。其允许设备模拟USB设备的行为,通过USB Gadget ,嵌入式设备可以作为USB设备(如鼠标、键盘、存储设备以及串口设备等)与主机(如PC)进行通信。简单地解释的话,USB Gadget允许设备充当USB设备,而不是传统的USB主机。像是在下要实现的Android VCOM功能,就是让Android设备也能作为一个COM设备与PC端进行互连。

在Android中与USB相关的script脚本为:

init.usb.rc
init.usb.configfs.rc
init.rk30board.usb.rc
fstab.rk30board.bootmode.emmc

其中我们需要配置的文件为init.rk30board.usb.rc和init.usb.configfs.rc,这两个文件为 RK 平台 Gadget 功能的配置管理文件,其内容主要包括 usb gadget configfs 的创建、 描述符的定义(VID/PID)、Gadget function 的配置等,具体内容说明可查阅相关项目的开发文档Rockchip_Developer_Guide_USB_CN.pdf 。

在下做的修改如下:

init.rk30board.usb.rc

Index: device/rockchip/common/rootdir/init
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值