原创 Air724UG软件指南:UART示例(中篇)

2025-1-25 17:51 100 0 分类: 通信

五、RS485 通信


5.1 简单介绍下 RS485


物联网(IoT)在工业场景中的应用越来越广泛,而 RS485 是一种常见的通信协议,广泛应用于工业自动化和物联网系统中。RS485 是一种串行通信标准,主要用于长距离、多节点通信。适用于工业环境中的传感器、执行器、控制器等设备之间的数据传输,且支持多点通信,可以连接多个设备,实现分布式控制。因为具有较好的抗干扰能力,也很适用于噪声环境下的通信。RS485 支持长距离传输,通常可达 1200 米,适用于工业现场中的远程监控和控制。

RS485 是一种半双工通信协议。半双工通信协议允许数据在两个方向上传输,但同一时间只能在一个方向上传输数据。在 RS485 通信中,当发送数据时,只能发送数据而不能接收数据;当接收数据时,只能接收数据而不能发送数据。

比如:在 RS485 通信中,通常使用一个引脚(如 A 或 RX )作为发送引脚,另一个引脚(如 B 或 TX )作为接收引脚。当发送数据时,发送引脚输出高电平或低电平,接收引脚不工作;当接收数据时,接收引脚输出高电平或低电平,发送引脚不工作。有的也有单独一根线专门用于控制收发逻辑,输出高低电平,负责管理 RS485 的通讯,包括发送、接收、处理错误等数据。


优点:

抗干扰能力强:RS485 采用差分信号传输,抗干扰能力强,适用于工业环境中的噪声干扰。

传输距离远:RS485 支持长距离传输,适用于工业现场中的远程监控和控制。

多节点通信:RS485 支持多点通信,可以连接多个设备,实现分布式控制。

兼容性好:RS485 是一种标准化的通信协议,具有较好的兼容性,可以与其他设备进行通信。

成本较低:RS485 模块和电缆的成本相对较低,适用于工业现场中的成本控制。


缺点:

信号衰减:随着距离的增加,信号衰减会加剧,影响通信质量。

速率限制:RS485 的传输速率相对较低,通常在 9600bps 到 115200bps 之间,适用于低速数据传输。

电气特性要求:RS485 对电气特性有较高的要求,需要使用特定的电缆和连接器。

布线复杂:RS485 需要使用双绞线进行布线,布线复杂度较高。


5.2 硬件展示


724UG 开发板 +RS485-TTL+RS485-USB

RS485-USB

接线方式:

注意:上面的硬件使用的 RS485-TTL 为硬件自动转换,实际使用根据硬件设置去选择 gpio 转换或者硬件自动转换



5.3 初始化 uart


5.4 注册接收数据的回调函数


5.5 发送数据


本文中字符串编码格式为 UTF-8 编码格式,SSCOM 串口调试工具的编码格式为 GB2312,所以导致无法正确显示字符串中的中文,需要注意。


5.5.1 发送普通字符串


5.5.2 发送十六进制的数据串


5.5.3 发送 json 格式的数据


5.6 完整例程



代码运行结果:


uart.write(UART_ID, common.utf8ToGb2312("合宙模块Air724UG")) 向串口发送对应的字符串数据,uart.on() 会事先注册一个接收数据的回调函数,当指定的串口 UART_ID 接收到数据时,该回调函数会被自动触发并执行,log.info("testUart.read bin",data) log.info("testUart.read hex",data:toHex()) 会将接收到的数据打印出来,此时我们通过串口调试工具,选择对应的端口,即可看到对应的打印信息。


5.7 温湿度传感器例程


5.7.1 硬件展示

使用的硬件为 sht20 温湿度传感器 +724UG 开发板 +RS485-TTL

sht20温湿度传感器

接线方式


5.7.2 代码展示





本示例是利用 sht20 温湿度传感器 +724UG 开发板 +RS485-TTL 通过 485 做的一个采集温湿度的 demo,主要逻辑是通过发送 16 进制数据 0x01,0x04,0x00,0x01,0x00,0x02,0x20,0x0B 来获取温湿度

然后对获取数据进行 modbus 校验,然后对数据进行解析,根据公式计算出实际温湿度

通过 json.encode()把表内的数据转换成 json 类型打印出来




六、USB 虚拟串口


6.1 介绍 USB 虚拟串口


USB 虚拟串口是一种将 USB 接口转换为串行通信接口的技术。它允许计算机通过 USB 接口与其他设备进行串行通信,如调制解调器、打印机、扫描仪等。USB 虚拟串口通常由一个 USB 转串行适配器和一个驱动程序组成。

并且虚拟串口通常没有波特率要求,因为它们是软件模拟的串行通信接口,不依赖于物理硬件。然而,在实际应用中,虚拟串口仍然需要遵守一些基本的通信协议,比如数据位、停止位和校验位等。

USB 虚拟串口的主要功能包括:

串行通信:USB 虚拟串口可以模拟串行通信接口,实现数据的串行传输。它支持各种串行通信协议,如 RS-232、RS-485 等。

传输可靠:传统的串口连接线容易受到干扰,而 USB 虚拟串口采用的 USB 技术可以更好地抵抗干扰,提高了通信的可靠性。

串行控制:USB 虚拟串口可以控制串行通信参数,如波特率、数据位、停止位、奇偶校验等。它还支持串行通信的流控制和错误处理。

使用方便:USB 虚拟串口无需再使用传统的串口连接线,只需要一个标准的 USB 数据线即可连接计算机和外部设备,使得设备连接更加方便

USB 虚拟串口广泛应用于各种领域,如工业自动化、物联网、智能家居等。它为各种设备提供了便捷的串行通信解决方案,提高了系统的灵活性和可靠性。


6.2 虚拟通讯串口-端口位置说明

首先通过带有 DM、DP 的 USB 数据线两端连接 模块 和 Windows7 及以上系统的电脑。

然后将模块开机,就可以从电脑的设备管理器中看到端口处多出来 4 个 USB 端口。

驱动装好之后会枚举出 4 个 USB 接口,其中 LUAT USB Device 1 AT (COM6)为虚拟 AT 口,MODEM 为日志口,AP,和 CP 口为底层日志口

6.3 初始化 USB_UART


6.4 注册接收数据的回调函数



6.5 发送数据

本文中字符串编码格式为 UTF-8 编码格式,SSCOM 串口调试工具的编码格式为 GB2312,所以导致无法正确显示字符串中的中文,需要注意。

6.5.1 发送普通字符串


6.5.2 发送十六进制的数据串


6.5.3 发送 json 格式的数据


6.6 完整例程


代码运行结果:

本文未完,请看下篇!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
0
关闭 站长推荐上一条 /3 下一条