串口通信扩展知识

在Android工控系统上,Android与硬件的通讯交互随处可见,其中串口通讯是最常用的通讯方式之一。
串口通信(Serial Communication), 是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。
传统的串口通讯是异步串行(UART),传输数据采用帧格式传输,一帧数据由起始位、数据位、校验位、停止位组成。

  • 波特率:传输速率,波特率9600,则表示每秒发送 9600 bit
  • 数据位:通信中实际数据位的参数,5-8位
  • 停止位:表示单个包的最后一位。典型的值为1,1.5和2位
  • 校验位:检错方式,有四种检错方式:偶、奇、高和低,也可以没有校验位

常见串口接线通常有两种接法,一种是串口直通线,另一种串口交叉线,区别如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从上面可知:实现设备间的全双工通信串口通讯至少需要三根线:TX(发送数据)、RX(接收数据)、GND(信号地)

特别注意:接线端到端要保持一致,接法不能混合,否则硬件通讯失败

常见串口主要有两种RS232、RS485,主要区别如下:

rs232和rs485的区别如下:

1、传输方式不同

接口传输方式传输距离传输速率通信方式
RS232采用不平衡传输方式,即所谓的单端传输。发送端输出正电平为515V,负电平为-5-15V,无数据时线上为TTL,接收器工作点评在312V与-3-12V。共模抑制能力差适合本地设备之间的传输,传输距离最大为15米最高速率为20kb/s只允许一对一的通信,是全双工的,同时可收发
RS485采用平衡传输,即差分传输方式。AB之间正点平为+2+6V,负电平为-2-6。接收器AB之间大于+200mV为正逻辑电平,小于-200mV为负逻辑电平传输距离为几十米到上千米最高可以达到10M在总线上允许链接128个收发器,是半双工的,某一个只能收或者发

实际开发没有硬件设备,怎么进行串口通讯测试?可以参考下面:

虚拟串口调试模拟工具:

下载地址:https://www.eltima.com/vspdpro-post-download.html

PC端的使用步骤

  1. 添加端口,虚拟端口是成对出现的(这里自己创建的端口是COM1、COM2),一个负责收数据,一个负责发数据。
  2. 使用PC Windows端串口测试工具,分别打开端口COM1、COM2,打开端口的设置参数一样(波特率、数据位、校验位、停止位)
  3. 在PC端串口测试工具进行数据的发送和接收

Android的端使用步骤

  1. 由于串口是互通的,我们可以在PC端使用串口测试工具打开串口COM1,作为数据接收(当然也可以发送数据,因为全双工通讯)

  2. 在Oracle VM VirtualBox中设置Genymotion模拟器(Android Genymotion模拟器运行在Oracle VM VirtualBox中运行的)的虚拟串口
    将Android Genymotion模拟器的串口设备COM1也就是 /dev/ttyS0(COM2对应 /dev/ttyS1),映射到PC的虚拟COM2端口
    在这里插入图片描述

  3. 配置Android Genymotion模拟器串口/dev/ttyS0权限,cmd分别执行

     adb shell
     chmod 777 /dev/ttyS0
    
  4. 启动模拟器,运行Android端的串口调试工具

  5. 最后进行数据发送和接收测试

备注:上面测试只是模拟串口测试,实际还得对接实际硬件设备进行调试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Java Modbus串口通讯源码是指在Java语言中实现Modbus串口通讯的源代码。串口通讯是指通过串口进行数据传输的通讯方式,而Modbus是一种工业上常见的通讯协议,常用于PLC和其他自动化设备的通讯。 Java作为一种面向对象的编程语言,具有良好的可移植性和跨平台性,因此在工业控制领域中也得到了广泛的应用。而Modbus串口通讯源码则是Java语言应用于工业控制领域的重要一环,能够实现Java程序与Modbus设备之间的数据通讯。 该源码通常由几个关键组件组成,包括串口连接、Modbus协议实现、数据读写等。其中,串口连接是实现Java与设备通讯的重要一环,需要通过编写代码来实现串口连接和相关设置。Modbus协议实现则涉及到Modbus协议的各种细节和规定,需要实现读写寄存器、读写数据块等常见操作。数据读写功能则负责具体的数据传输和解析,需要确保数据的准确性和可靠性,以免通讯过程中出现错误。 综上所述,Java Modbus串口通讯源码是工业控制领域中十分重要的一环,由多个组件构成,需要开发者结合Modbus通讯协议和Java编程知识进行编写。该源码能够实现Java与Modbus设备之间的数据通讯,具有重要的应用价值。 ### 回答2: Java Modbus串口通讯源码是一个用Java语言编写的便于Modbus协议通信的开源库。该库可以用于与串行设备通信,如串行口、USB串口、蓝牙串口等。通过该库,Java程序可以实现与Modbus从机设备的数据交换,包括读取和写入寄存器值、线圈状态和离散状态等。 该库提供了许多功能,如Modbus Master和Slave设备的实现、计算Modbus协议的CRC校验和、生成和解析Modbus数据包等。它使用了一些Java框架和库,如Apache Commons Lang、RXTXComm和SLF4J等。 Java Modbus串口通讯源码具有易于使用的API,其中包括了一些实用方法,例如: 1. 从Modbus从机设备中读取单个寄存器或多个寄存器的值。 2. 将数据 writes 到Modbus从机设备的寄存器中。 3. 将数据 writes 到Modbus从机设备的线圈状态或离散状态中。 Java Modbus串口通讯源码的优点是可以轻松地添加和删除协议的功能特性,拓展了程序开发的灵活性和可扩展性。由于基于Java,该库可以在不同的平台上运行,而无需从头开始实现Modbus通信的功能。 总之,Java Modbus串口通讯源码是Modbus协议通信的开源库,它允许Java程序与Modbus从设备进行通信,提供了易于使用的API和功能特性,是一款值得尝试的工具。 ### 回答3: Java Modbus串口通讯源码是指用Java语言编写的Modbus串口通讯的程序源代码。 在这个源码中,主要包含了针对Modbus通讯协议的相关程序设计。Modbus是一种常见的通信协议,用于实现在工业自动化设备和PLC等设备之间的通信。 在Java Modbus串口通讯源码中,应该会包含针对串口通讯的相关程序设计。Java语言本身并不支持串口通信,因此在编写这个程序时,需要借助一些第三方库或接口来实现串口通讯功能。 此外,这个源码还应该会包含一些针对Modbus协议的程序设计。比如,如何建立连接、如何读取和写入数据、如何处理异常等。 使用Java Modbus串口通讯源码可以方便地实现串口通讯功能,并且可以高效地处理Modbus通讯协议。有了这个源码,开发人员可以快速地定制自己的Modbus串口通讯应用,以满足自己的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值