安卓系统使用USB转串口
概述
安卓系统支持多种 USB 外围设备,提供两种模式来支持实现 USB 外设接入系统:USB 配件模式和 USB 主机模式。
在 USB 配件模式下,接入的 USB 设备充当 USB 主机,并为 USB 总线供电。USB 配件产品包括USB转接设备、诊断和音乐设备、读卡器等,遵循 Android 附件通信协议(Android Accessory Communication Protocol)。这种模式使不具备主机功能的 Android 设备具有了与 USB 硬件交互的能力。
在 USB 主机模式下,Android 设备扮演主机的角色。这种设备的例子包括键鼠、U盘和游戏手柄等。
下图展示了两种模式的异同。当 Android 设备处于主机模式时,它扮演 USB 主机的角色并为总线供电。当 Android 设备处于配件模式时,连接的 USB 外设扮演主机角色并给安卓设备供电。本博客主要介绍安卓设备通过USB扩展串口的应用场景。

安卓设备工作在主机模式
使用安卓免驱USB设备库
USB 主机模式仅在 Android 3.1 及其更高版本的系统中被支持。与 USB 相关的 API 都被保存在 android.hardware.usb 包中,开发者可以直接使用包中的类和方法直接与 USB 设备通讯。
通常情况下,开发者需要通过 UsbManager 实例去获取所需的 UsbDevice 实例,进而从 UsbDevice 实例中查找合适的 UsbInterface,并确定要用于通信的 UsbEndpoint,最后建立 UsbDeviceConnection 与 USB 设备的通信。
针对 USB 转串口芯片厂家一般都会提供配套的应用库和开发资料,工程师使用时无需了解 USB 协议,仅关注串口相关的配置和数据通讯即可。以 CH340/CH341 为例,可参考如下博客:《CH340/CH341安卓应用开发指南》。若客户的产品面向的是使用安卓手机的客户,则建议使用此种方式来,优点在于无需 root 权限和移植设备驱动,用户仅需要安装 APP 软件即可。
使用USB转串口Linux设备驱动
区别于以上方式,当使用 USB 转串口 Linux 设备驱动来访问其生成的虚拟串口时,对串口的操作和 Linux 系统下的操作没有差别,此种方式的适用于面向安卓平板或定制设备的客户,系统需要 root 权限来访问 ttyUSB 设备(也可以厂家修改系统中关于设备的权限)。关于 Linux 系统操作 USB 转串口设备和访问串口可以参考博客:《CH341/CH340Linux驱动使用教程》、《Linux串口编程》
安卓设备工作在配件模式
USB 配件模式允许 Android 设备以配件形式连接到 USB 主机上,其必须遵循 Android AOA 协议。与 USB 相关的 API 都被保存在 android.hardware.usb 及 accessory 包中,开发者可以直接使用包中的类和方法直接与 USB 主机通讯。
采用支持配件模式的 USB 转串口产品的优势在于可以实现 USB 产品边充电边通讯的功能,且支持的安卓设备要比 USB 主机方式应用下更广泛。(因部分安卓设备厂商会关闭OTG功能)应用也无需移植设备驱动,仅需要设备上安装免驱的 APP 软件即可。可参考方案《USB Android AOA转接方案》
以上就是安卓系统访问 USB 转串口的设备的常用方式了,有问题欢迎大家随时交流~
安卓系统使用USB转串口的更多相关文章
- 杭州蓝松科技推出的安卓端的USB转串口调试助手, 欢迎下载使用
杭州蓝松科技推出的安卓端的USB转串口调试助手, 欢迎下载使用 下载地址:http://files.cnblogs.com/guobaPlayer/%E8%93%9D%E6%9D%BEUSB%E4%B ...
- Ubuntu系统下USB转串口的使用
PC系统是Ubuntu12.04,与路由器开发板之间用USB转串口线连接. 一.硬件连接 确认Ubuntu对USB转串口设备的支持. 1.# lsmod | grep usbserial如果有usbs ...
- ubuntu下minicom和USB转串口(转)
ubuntu下minicom和USB转串口(转) minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利 ...
- 【转】 Ubuntu下配置USB转串口及串口工具配置--不错
原文网址:http://blog.csdn.net/dreambegin/article/details/6985028 注意:默认情况下ubuntu已经安装了USB转串口驱动(pl2303).我的是 ...
- minicom与USB转串口
实验器材:mini6410 连接方式:ARM板通过USB转串口线连接到pc机 下面是具体的设置了. 默认情况下,UBUNTU安装了USB转串口驱动(pl2303). 1.# lsmod | grep ...
- linux下的usb转串口的使用(修改)【转】
环境:Ubuntu 10.10 Server minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将 ...
- minicom-linux下USB转串口配置
现在的笔记本越做越薄,好些电脑已经没有串口了,做硬件开发会非常头疼,不过有了USB转串口设备,PC机只需要有USB接口就可以了.在linux下我们使用minicom与目标设备通信,在此记录一下linu ...
- Android USB转串口通信开发基本流程
好久没有写文章了,年前公司新开了一个项目,是和usb转串口通信相关的,需求是用安卓平板通过usb转接后与好几个外设进行通信.一直忙到近期,才慢慢闲下来,趁着这个周末不忙.记录下usb转串口通信开发的基 ...
- 【小技巧】9针USB转串口简易连通性测试,附25针转9针
Part 1 前言 最近用SecureCRT连接串口,因为是笔记本用的USB转串口,好多次出现安装驱动OK,连接上了,但是没有串口打印.无法进行控制的问题:所以不清楚是USB串口的驱动问题,还是转接用 ...
随机推荐
- 操作系统实现-boot.asm实现
博客网址:www.shicoder.top 微信:18223081347 欢迎加群聊天 :452380935 这一次我们进入操作系统实现的真实编码, 这一次主要是完善对boot.asm文件的全部实现, ...
- 推荐一款数据mock框架,无需任何依赖,贼牛逼
fox-mock 是基于Java Agent实现的自测,联调Mock利器.能解决你的这些问题: 开发过程中,依赖了下游多个接口,想跑个单测都必须得等下游把服务部署好 联调过程中,下游某个接口出问题,阻 ...
- webpack与vite的对比
vite与webpack的打包原理: vite: 基于游览器原生ES Module,利用游览器解析import,服务器端按需编译返回 webpack: 逐级递归识别依赖,构建依赖图谱->转化AS ...
- 数仓选型必列入考虑的OLAP列式数据库ClickHouse(上)
概述 定义 ClickHouse官网地址 https://clickhouse.com/ 最新版本22.4.5.9 ClickHouse官网文档地址 https://clickhouse.com/do ...
- linux篇-linux mysql数据库定时备份
1在linux上面创建一个文件夹,并且进行备份 cd /home mkdir backup cd backup 2创建一个脚本 Vi imaginebase.sh #!/bin/bash mysqld ...
- 第24章 Java 数据类型转换
每日一句 井底点灯深烛伊,共郎长行莫围棋. 每日一句 What we call "failure" is not falling down, but the staying dow ...
- ACM 刷题记录
HDU Multi-University Training Contest 题目来源 题目 知识点 时间复杂度 完成情况 2019 Contest8 A Acesrc and Cube Hyperne ...
- 前端3JS2
内容概要 运算符 流程控制 三元运算符 函数 自定义对象 内置对象 JSON对象 正则对象 内容详情 运算符
- STM32内存知识
在了解STM32内存之前需要了解 MCU 的型号和MDK 中的.map 文件,很多刚学习 stm32 时都不会过多的去了解 MCU 的选型,是在太枯燥了.这里在从新了解一下,久了就熟悉了. 一.STM ...
- MAC NGINX PHP XDEBUG
1. 安装 homebrew 2. 安装nginx ; 终端运行 brew install nginx: 1)给nginx 设置管理员权限:如果不设置管理员权限,80端口是不能监听的: #这里的目录根 ...