`

Android串口通信:基本知识梳理

 
阅读更多
在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
分享到:
评论

相关推荐

    Fork自Google开源的Android串口通信Demo,修改成Android Studio项目.zip

    为了满足广大Android开发爱好者与从业者的学习需求,我们精心整理并上传了一份全面而实用的Android项目资源包。这份资源包内容丰富,涵盖了从基础知识到实战应用的全方位内容,旨在为开发者们提供一个便捷、高效的...

    android bluetooth框架知识整理

    - **Linux内核的蓝牙协议层**:实现蓝牙协议栈,包括L2CAP(逻辑链路控制和适配协议)、SDP(服务发现协议)和RFCOMM(串口模拟协议)等,确保不同设备间的通信。 - **BlueZ库**:这是Linux平台上的开源蓝牙协议栈,...

    安卓打印驱动最全驱动源码库(usbSerialForAndroid)

    android_serialport_api 纯串口阵脚线通信,检测设备,读写串口等工具 com.hoho.android.usbserial 其他辅助测试类. 可以忽略 com.hoho.android.usbserial.driver 各种USB规格的驱动,可自行扩展。 FtdiSerialDriver...

    Android驱动开发笔记

    根据提供的文件信息,我们可以梳理...综上所述,这份文档主要介绍了Android驱动开发的基础知识,包括JDK环境的配置、基本概念介绍以及具体的JNI使用案例。这对于初学者理解Android驱动开发的流程和技术细节非常有帮助。

    android开发资料大全

    APK权限大全 - Android必懂知识 最无私的Android资料(书籍+代码)分享[总结] Android中文帮助教程(非常合适新手入门) android程序编写及调试新手入门 大家一起学Android(Windows篇) android入门与提高必看指南 ...

    Android蓝牙开发(整理).pdf

    蓝牙协议栈采用RFCOMM来提供与有线串口一致的通信接口,实现无线通信。 MAC硬件地址是每个网络接口卡(NIC)的独特标识,由48位的16进制数字组成,用于区分局域网内的节点。前24位是组织唯一标志符,由IEEE分配;后24...

    Android-bluetooth.rar_android_android bluetooth_android 蓝牙_blu

    本文将深入探讨Android蓝牙的使用,包括基础概念、API介绍、蓝牙连接过程以及如何实现蓝牙虚拟串口通信。 一、Android蓝牙基础 Android系统自3.0版本(Honeycomb)起开始支持蓝牙2.1+EDR标准,后续版本不断优化和...

    VirtualBox虚拟机和android3.2搭建高效android开发环境[整理].pdf

    搭建高效的Android开发环境是每个Android开发者都需要掌握的基本技能之一,特别是在使用VirtualBox虚拟机和Android 3.2系统时。VirtualBox是一款强大的开源虚拟化软件,它可以让你在个人计算机上运行多个操作系统,...

    计算机基础知识和组装(附答案).pdf

    由于提供的部分内容较为混乱,包含了很多技术和计算机领域的术语,但没有明确的上下文,因此难以形成...由于提供的信息过于混乱,难以判断是否包含一些OCR扫描错误,以上整理的知识点可能与原文档的真实内容有所偏差。

    基于Android智能家居系统的设计与实现.pdf

    根据给定的文件信息,本篇论文主要探讨了基于Android操作系统的智能家居系统设计与实现。...通过对这些知识点的整理和总结,可以更加深入地了解基于Android的智能家居系统设计与实现的过程和技术应用。

    驱动综合能力面试1

    - SPI:同步串行接口,用于高速数据传输。 - SATA:串行ATA,硬盘接口协议。 - USB:通用串行总线,广泛应用于设备连接。 - 红外:红外通信,遥控器和短距离通信。 - HDMI:高清多媒体接口,传输视频和音频数据...

    串口&Socket通讯 Android应用源码安卓与PC的Socket通信项目java版(程序源码).rar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

    LCD大厂面试问题汇总整理,从头到尾全讲解

    4. **MIPI Display框架**:MIPI(Mobile Industry Processor Interface)是一种高速串行接口标准,常用于连接手机等设备的显示模块。MIPI Display规范定义了如何高效地传输图像数据到LCD或OLED屏幕。 5. **...

    全志a33--系统移植--ap6210WiFi模块移植--验证服务器通信.pdf

    根据提供的文件信息,可以整理出以下知识点: 1. **全志A33开发板和系统移植**: - 全志A33是一颗应用处理器,通常用于嵌入式设备,例如平板电脑或开发板。 - 系统移植是指将操作系统或其他软件平台移植到特定...

    串口&Socket通讯 Android应用源码安卓与PC的Socket通信项目C#版+Java版(程序源码).rar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

    基于单片机的应用和设计

    #### 知识点梳理 ##### 1. 高效数控恒流电源设计制作 - **知识点**: - 数控原理 - 恒流电源设计 - PWM控制技术 - 反馈闭环控制 - 数字模拟转换(DAC) - **关键技术**:利用单片机实现对电源输出电流的精确控制...

    整理的USB的一些资料

    USB(Universal Serial Bus)是一种通用串行总线标准,用于在计算机系统和其他电子设备之间进行数据传输。USB技术自1990年代中期以来已经发展迅速,成为了连接各种设备的标准接口,包括键盘、鼠标、打印机、扫描仪、...

Global site tag (gtag.js) - Google Analytics