[Android--NDK]android_serialport_api学习

     问题描述: Android芯片一般使用ARM的,都支持串口通信,google有一个项目专门用来支持串口开发的:android_serialport_api,参考自 https://code.google.com/p/android-serialport-api/wiki/android_to_rs232_guideline?tm=6
     Android to RS232:
[Android--NDK]android_serialport_api学习_第1张图片
    上图中用与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,低延迟,高带宽。

你可能感兴趣的:(android)