在Android开发中,如果涉及到与外设硬件、新设备的通信,往往需要通过串口来完成。这儿梳理总结一下Android串口的一些知识。
我就直接引用Google开源项目中的资料:
https://code.google.com/p/android-serialport-api/wiki/android_to_rs232_guideline?tm=6
引用
Here is a page describing the different ways you could use to connect an Android device to an RS232 peripheral.
引用
Solution 1
pros
No need for external API, the Android SDK provides the class BluetoothSocket
No need for hardware modifications
hardware flow control is supported
cons
Bluetooth consume battery
high latency
low bandwidth
API
Android SDK
参考地址(要fanqiang):
BluetoothSocket:http://developer.android.com/reference/android/bluetooth/BluetoothSocket.html
Android SDK:http://developer.android.com/guide/topics/connectivity/bluetooth.html
引用
Solution 2
pros
USB to RS232 adapters are cheap and easy to find
no hardware modification needed
no external battery needed
low latency
high bandwidth
cons
your Android device needs an USB host connector (most tablets have one, but phones usually don't)
your may need to root your device in order to change /dev/ttyUSB0 file permission, and to load a kernel module.
API
android-serialport-api
引用
Solution 3
pros
The cheapest solution
cons
hardware adapter must be built (http://www.instructables.com/id/Android-G1-Serial-Cable)
very few Android devices compatibles
hardware flow control is not supported (only RX/TX, no RTS/CTS signals)
API
android-serialport-api
引用
Solution 4
pros
compatible with any Android device with an USB slave connector, i.e. 99.9% of the Android devices.
no need to root your phone
low latency
high bandwidth
you may use other GPIOs of the microcontroller at the same time
cons
API
https://github.com/ytai/ioio/wiki/UART
大概意思如下:
引用
上图中用与Android与串口设备通信的方案有四种:
第一种是直接用SDK的BluetoothSocket类来进行蓝牙通信,外部设备再用蓝牙转串口进行控制。这种方式有较高延时,蓝牙模块需要供电,低带宽。
第二种是使用USB转RS232方式(使用内核驱动和使用Android驱动两种方式),这种方式不需要硬件改动,不需要另外的供电,延时很小且有较高带宽。但是Android设备需要硬件上支持USB Host接口(一般Android平板支持,Android手机一般是没有的),另外可能需要root以改变/dev/ttyUSB0文件权限来加载一个内核模块。开发需要使用android_serialport_api。
第三种是最容易的方案,直接使用串口进行连接,但是这种方式兼容性不好,只有少数设备支持,而且串口不支持流控制(由Android提供的USB Host API决定的)。使用时也用android_serialport_api。
第四种是将Android作为USB从机,外部设备作为USB主机与之通信,这种方式几乎与所有Android设备兼容(一般都有USB从口),无需root,低延迟,高带宽。
- 大小: 63.3 KB
分享到:
相关推荐
为了满足广大Android开发爱好者与从业者的学习需求,我们精心整理并上传了一份全面而实用的Android项目资源包。这份资源包内容丰富,涵盖了从基础知识到实战应用的全方位内容,旨在为开发者们提供一个便捷、高效的...
- **Linux内核的蓝牙协议层**:实现蓝牙协议栈,包括L2CAP(逻辑链路控制和适配协议)、SDP(服务发现协议)和RFCOMM(串口模拟协议)等,确保不同设备间的通信。 - **BlueZ库**:这是Linux平台上的开源蓝牙协议栈,...
android_serialport_api 纯串口阵脚线通信,检测设备,读写串口等工具 com.hoho.android.usbserial 其他辅助测试类. 可以忽略 com.hoho.android.usbserial.driver 各种USB规格的驱动,可自行扩展。 FtdiSerialDriver...
根据提供的文件信息,我们可以梳理...综上所述,这份文档主要介绍了Android驱动开发的基础知识,包括JDK环境的配置、基本概念介绍以及具体的JNI使用案例。这对于初学者理解Android驱动开发的流程和技术细节非常有帮助。
APK权限大全 - Android必懂知识 最无私的Android资料(书籍+代码)分享[总结] Android中文帮助教程(非常合适新手入门) android程序编写及调试新手入门 大家一起学Android(Windows篇) android入门与提高必看指南 ...
蓝牙协议栈采用RFCOMM来提供与有线串口一致的通信接口,实现无线通信。 MAC硬件地址是每个网络接口卡(NIC)的独特标识,由48位的16进制数字组成,用于区分局域网内的节点。前24位是组织唯一标志符,由IEEE分配;后24...
本文将深入探讨Android蓝牙的使用,包括基础概念、API介绍、蓝牙连接过程以及如何实现蓝牙虚拟串口通信。 一、Android蓝牙基础 Android系统自3.0版本(Honeycomb)起开始支持蓝牙2.1+EDR标准,后续版本不断优化和...
搭建高效的Android开发环境是每个Android开发者都需要掌握的基本技能之一,特别是在使用VirtualBox虚拟机和Android 3.2系统时。VirtualBox是一款强大的开源虚拟化软件,它可以让你在个人计算机上运行多个操作系统,...
由于提供的部分内容较为混乱,包含了很多技术和计算机领域的术语,但没有明确的上下文,因此难以形成...由于提供的信息过于混乱,难以判断是否包含一些OCR扫描错误,以上整理的知识点可能与原文档的真实内容有所偏差。
根据给定的文件信息,本篇论文主要探讨了基于Android操作系统的智能家居系统设计与实现。...通过对这些知识点的整理和总结,可以更加深入地了解基于Android的智能家居系统设计与实现的过程和技术应用。
- SPI:同步串行接口,用于高速数据传输。 - SATA:串行ATA,硬盘接口协议。 - USB:通用串行总线,广泛应用于设备连接。 - 红外:红外通信,遥控器和短距离通信。 - HDMI:高清多媒体接口,传输视频和音频数据...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
4. **MIPI Display框架**:MIPI(Mobile Industry Processor Interface)是一种高速串行接口标准,常用于连接手机等设备的显示模块。MIPI Display规范定义了如何高效地传输图像数据到LCD或OLED屏幕。 5. **...
根据提供的文件信息,可以整理出以下知识点: 1. **全志A33开发板和系统移植**: - 全志A33是一颗应用处理器,通常用于嵌入式设备,例如平板电脑或开发板。 - 系统移植是指将操作系统或其他软件平台移植到特定...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
#### 知识点梳理 ##### 1. 高效数控恒流电源设计制作 - **知识点**: - 数控原理 - 恒流电源设计 - PWM控制技术 - 反馈闭环控制 - 数字模拟转换(DAC) - **关键技术**:利用单片机实现对电源输出电流的精确控制...
USB(Universal Serial Bus)是一种通用串行总线标准,用于在计算机系统和其他电子设备之间进行数据传输。USB技术自1990年代中期以来已经发展迅速,成为了连接各种设备的标准接口,包括键盘、鼠标、打印机、扫描仪、...