【Android】串口通信的理论与使用教程

这篇具有很好参考价值的文章主要介绍了【Android】串口通信的理论与使用教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android系统诞生这十几年以来,Android开发工程师岗位经历了由盛转衰的过程,目前纯UI的Android APP已经鲜有公司愿意花费巨资去开发,Android APP开发的业务也仅剩游戏、物联网(Internet of Things,简称IoT)等方向。在物联网的世界中,串口通信是常见的有线通信方式,本篇文章围绕Android与串口通信,来重新认识一下串口通信。

串口通信简介

串口通信(Serial Communications),即串口按位(bit)发送和接收字节的通信方式。

串口是显控设备与信号处理板之间通信的主要接口,也是显控设备与其他设备、设备与设备之间的协议数据帧通信传输的重要接口。

串口通信分类

根据通信方式划分,可以将串口通信划分为串行通信并行通信

串行通信

串行通信:通信双方按位进行,遵守时序的一种通信方式。
安卓串口连接,Android,android,串口通信,serialport,kotlin,串行通信

串行通信可以根据数据同步方式数据传输方式电气标准及协议再次细分为不同的种类。

根据数据同步方式划分

  • 同步通信
    同步通信:一次通信只传送一帧信息,通常含有若干个数据字符。数据格式分别为面向字符和面向bit
  • 异步通信
    异步通信:每一个字符要用起始位和停止位作为字符开始和结束的标志,以字符为单位一个个地发送和接收。在进行异步传输数据时,通信双方必须约好:字符格式、通信速率。

根据数据传输方式划分

  • 单工
    单工:通信双方中,一方固定为发送端,一方则固定为接收端。信息只能沿一个方向传输,使用一根传输线。
    安卓串口连接,Android,android,串口通信,serialport,kotlin,串行通信
  • 半双工
    半双工:在通信过程的任意时刻,信息既可由A传到B,又能由B传A,但只能有一个方向上的传输存在。
    安卓串口连接,Android,android,串口通信,serialport,kotlin,串行通信
  • 全双工
    全双工:通信允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工指可以同时(瞬时)进行信号的双向传输(A→B且B→A)。指A→B的同时B→A,是瞬时同步的。
    安卓串口连接,Android,android,串口通信,serialport,kotlin,串行通信

根据电气标准及协议划分

串口按电气标准及协议来划分,包括EIA-RS-232CEIA-422EIA-485等。

  • EIA-RS-232C
    RS-232C标准(协议)的全称是EIA-RS-232C标准,定义是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于全双工串行通讯的标准。例如,在PC机上的COM1COM2接口,就是RS-232C接口。

查看更多详情:EIA-RS-232C

  • EIA-422
    EIA-422(又称为RS-422)是一系列的规定采用4线,全双工,差分传输,多点通信的数据传输协议。它采用平衡传输采用单向/非可逆,有使能端或没有使能端的传输线。和EIA-485不同的是EIA-422不允许出现多个发送端而只能有多个接受端。硬件构成上EIA-422(RS-422) 相当于两组EIA-485(RS-485),即两个半双工的EIA-485(RS-485)构成一个全双工的RS-422(EIA-422)。

查看更多详情:EIA-422

  • EIA-485
    EIA-485(过去叫做RS-485或者RS485)是隶属于OSI模型物理层的电气特性规定为2线、半双工、平衡传输线多点通信的标准。是由电信行业协会(TIA)及电子工业联盟(EIA)联合发布的标准。实现此标准的数字通信网可以在有电子噪声的环境下进行长距离有效率的通信。在线性多点总线的配置下,可以在一个网络上有多个接收器。因此适用在工业环境中。

查看更多详情:EIA-485

并行通信

并行通信:是指以字节(byte)或字节(byte)的倍数为传输单位,同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错,因此并行通信不适合远距离数据传输。例如:打印机端口、IDE端口等。
安卓串口连接,Android,android,串口通信,serialport,kotlin,串行通信

图表总结串口通信

安卓串口连接,Android,android,串口通信,serialport,kotlin,串行通信

串口通信的使用

作为一个Android开发者,与串口相关的很多东西我们都不需要去了解,我们基本都只需要关注如何去连接上这个串口,或许也只有硬件开发工程师,才需要了解到串口通信的原理等相关知识。

使用前先前往Github clone项目AndroidSerialPort到本地,拷贝lib_serialport模块到项目。

接着配置串口的连接所需参数:

  • 串口号:用于串口通信协议的接口。
  • 波特率(Baud rate):一个单位时间内传输符号的个数。如,9600的波特率表示每秒传输9600个字节,每毫秒9.6字节。
  • 数据位:计算机发送的信息包,取决于传送的信息长度。
  • 校验位:又称奇偶校验位,是校验代码传输正确性的一种校验方式。
  • 停止位:提供了校正时钟同步的机会,同时用来表示传输的结束。
  • 流控:控制数据传输的进程,实现收发双方的速度匹配,防止数据的丢失。常用的流控制是硬件流控制和软件流控制。硬件流控制常用的有RTS/CTS流控制(数据终端就绪/数据设置就绪)流控制,软件流控制常用的有XON/XOFF
var mSerialPortHelper = SerialPortHelper()
// 配置串口号
mSerialPortHelper.port = ConfigManage.serialPort
// 配置波特率
mSerialPortHelper.baudRate = ConfigManage.baudRate.toInt()
// 配置数据位
mSerialPortHelper.dataBits = ConfigManage.dataBits.toInt()
// 配置校验位
mSerialPortHelper.parity = SerialPortDataManage.parity[ConfigManage.parity]!!.toInt()
// 配置停止位
mSerialPortHelper.stopBits = ConfigManage.stopBits.toInt()
// 配置流控
mSerialPortHelper.flowCon = SerialPortDataManage.flow_bits[ConfigManage.flowBits]!!.toInt()
// 监听串口数据的传输
mSerialPortHelper.setISerialPortDataListener(object : ISerialPortDataListener {
	override fun onDataReceived(bytes: ByteArray?) {
		byteToHex(1, bytes)
	}

	override fun onDataSend(bytes: ByteArray?) {
		byteToHex(0, bytes)
	}
})
// 打开串口
mSerialPortHelper.open()

最终效果:

安卓串口连接,Android,android,串口通信,serialport,kotlin,串行通信安卓串口连接,Android,android,串口通信,serialport,kotlin,串行通信

参考文档
1、【串口通信】学习笔记
2、通信方式的分类(串行通信和并行通信)文章来源地址https://www.toymoban.com/news/detail-661919.html

到了这里,关于【Android】串口通信的理论与使用教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 公网使用SSH远程连接安卓手机Termux - Android手机服务器

    转载自cpolar极点云的文章:公网SSH远程连接Termux – 电脑使用安卓Termux 「无需公网IP」 使用安卓机跑东西的时候,屏幕太小,有时候操作不习惯。不过我们可以开启ssh,使用电脑PC端SSH远程连接手机termux。 本次教程主要实现在安卓手机termux上安装SSH,在电脑上通过SSH远程连接

    2024年02月07日
    浏览(35)
  • Android硬件通信之 串口通信

    一,串口介绍 1.1 串口简介 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口; 串行接口(SerialInterface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话

    2024年02月06日
    浏览(31)
  • Android:usb转232串口通信

    准备工作 首先得adb进入盒子root模式,将/dev/ttys1这个文件改为777,使得所有用户可操作 adb root adb remount   adb shell  进入设备的root模式,执行 chmod 777 /dev/ttys1 执行完成后退出 exit 再执行 adb shell  chmod 666 /dev/ttyS1  如果没有报错的话,再执行串口就不会报错了 调试的demo我用的

    2023年04月22日
    浏览(30)
  • Android USB通信(host转串口)

    前言: 公司属于北斗通信行业,项目大多都需要和各式各样的硬件设备相结合来满足项目需求,因此所涉及到的各种技术也相对比较冷门。前段时间有个项目用到了一款定制 Android 设备,其中有多个接口,包括两个 USB 接口和一个 RS232 串口,需要用到其中一个 USB 连接北斗设

    2024年02月08日
    浏览(31)
  • Flutter:如何在Android中实现串口通信调试

            本文介绍如何通过flutter_libserialport插件在Flutter中实现串口通信调试。 1、引入依赖         在flutter工程的pubspec.yaml文件中引入flutter_libserialport依赖: 2、导入import依赖包         在dart代码中import导入flutter_libserialport.dart就可以使用了。 3、读取所有串口设备    

    2024年02月13日
    浏览(33)
  • Android Studio连接安卓手机

    点击右上角红框的【SDK Manager】-【SDK Tools】。 也可以在 【tools】-【SDK Manager】-【SDK Tools】下进入。 点击Google USB Driver,下载后点ok。 右键【我的电脑】-【高级系统设置】-【环境变量】,新建变量【Android_Home】; 值为:C:UsersHuoAppDataLocalAndroidSdk;C:UsersHuoAppDataLocalAnd

    2024年02月16日
    浏览(29)
  • Flutter:如何在Android中实现USB转串口通信调试

            本文介绍如何通过flutter_usb_serial插件在Flutter中实现USB转串口通信调试。 1、引入依赖         在flutter工程的pubspec.yaml文件中引入flutter_usb_serial依赖: 2、导入import依赖包         在dart代码中import导入usb_serial/usb_serial.dart就可以使用了。 3、读取所有USB口设备    

    2024年02月14日
    浏览(31)
  • Android Usb(OTG)串口通信,Service 后台服务实现方式

    以下是几个开源的 Android 串口通信库: 1. SerialPort:https://github.com/felHR85/SerialPort 这是一个非常流行的 Android 串口通信库,支持多种设备和多种波特率,并且提供了非常详细的文档和示例代码。 2. android-serialport-api:https://github.com/cepr/android-serialport-api 这是一个简单易用的 And

    2024年02月11日
    浏览(33)
  • Android笔记(二十八):在雷电模拟器安卓7.0+上使用Charles抓包详细教程

    由于手头没有合适的真机,所有经常使用雷神模拟器来跑项目,模拟器也需要能够抓包看看接口返回的数据,以便自测调试。本文记录了如何在雷电模拟器安卓7.0+上使用Charles抓包,其他模拟器没试过。 模拟器上浏览器打开百度网页,能抓到百度页面数据 模拟器开启root权限

    2024年02月09日
    浏览(33)
  • ESP8266模块教程,包含电路连接,固件烧录,串口通信

    Author : w2y        Date : 2022.06.28 资料下载: 链接:https://pan.baidu.com/s/1cSpXo7lVzewLXiB9PyWlvg?pwd=wh8a  提取码:wh8a    GPIO0 接地进入下载(烧录)模式,不接进入运行模式                     (下载模式)                                    (运行模式) MQTT_ESP-12S_D

    2024年02月01日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包