安卓系统使用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串口的驱动问题,还是转接用 ...
随机推荐
- idea的快捷键(复制) IntelliJ Idea 常用快捷键列表
Ctrl+Shift + Enter,语句完成'!',否定完成,输入表达式时按 "!"键 Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可 ...
- Spring是如何整合JUnit的?JUnit源码关联延伸阅读
上一篇我们回答了之前在梳理流程时遇到的一些问题,并思考了为什么要这么设计. 本篇是<如何高效阅读源码>专题的第十二篇,通过项目之间的联系来进行扩展阅读,通过项目与项目之间的联系更好的理解项 ...
- SpringBoot进阶教程(七十四)整合ELK
在上一篇文章<SpringBoot进阶教程(七十三)整合elasticsearch >,已经详细介绍了关于elasticsearch的安装与使用,现在主要来看看关于ELK的定义.安装及使用 ...
- Java类包
学习内容:Java类包 一.Java类包 1.一个完整的类名需要包名和类名的组合,每一个类都隶属于一个包. 例:完整类名--java.sql.Date 2.同一个包中类相互访问时可以不指明包名. 3. ...
- 微信小程序开发 记录
采坑了 微信小程序--TabBar不出现的一种原因 学习微信小程序中,遇到底部的TabBar不出现的问题.经过多番尝试,终于解决问题.在此记录问题产生的原因和对策.下面先描述错误现象,接着指出错误原因 ...
- 背包,子集和以及 (max, +) 卷积在特殊情形下的求法
背包,子集和以及 (max, +) 卷积在特殊情形下的求法 子集和 1:总重量不太大 有 \(n\) 个物品,每个物品重量为 \(w_i\),且 \(\sum\limits_{i} w_i=C\).你 ...
- Spring bean到底是如何创建的?(上)
前言 众所周知,spring对于java程序员来说是一个及其重要的后端框架,几乎所有的公司都会使用的框架,而且深受广大面试官的青睐.所以本文就以常见的一个面试题"spring bean的生命 ...
- MVC - Request对象的主要方法
MVC - Request对象的主要方法 setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name ...
- centos6搭建mysql
目前CentOS6.5及一下版本基本上被官方给放弃更新了,但是考虑到忠实粉丝迟迟不肯放手,所以还留了入口但是非常有限 1.搭建mysql 可参照:https://blog.csdn.net/huang ...
- 接口测试postman深度挖掘应用②
上一篇文章我们已经介绍了postman的基本用法,以及接口测试原理.未关注博主的可以关注下博主,后期测试安全,以及各种工具用法,编程语言都会有讲解的 老样子:①先补习基础知识: ②补充上一章节由于过 ...