接口——串口uart(485)
介绍
概念
串口485,通常指的是使用EIA-485标准进行数据通信的串行接口。EIA-485标准是由电子工业协会(Electronic Industries Alliance,EIA)定义的,用于在点对点或网络上进行串行通信。EIA-485标准也称为RS-485,其中“RS”代表“推荐标准”(Recommended Standard)。
特点
差分信号:EIA-485使用差分信号传输,这意味着信号通过两根线(A和B线)传输,其中一根线的信号是另一根线的信号的相反。这种差分传输方式提高了信号的抗干扰能力。
多节点支持:EIA-485支持多个设备(节点)在同一总线上通信,使得它可以用于构建多设备网络。
长距离传输:EIA-485支持长距离通信,理论上可以传输长达1200米的距离,这使得它适用于工业控制和楼宇自动化等领域。
高速率:EIA-485支持较高的数据传输速率,最高可达10Mbps,尽管在实际应用中,由于距离和噪声等因素,速率通常会低于这个值。
半双工通信:EIA-485通常用于半双工通信,即设备在同一时间只能发送或接收数据。
接口电路:EIA-485通信通常需要专门的接口电路,如MAX485或SN75176等芯片,这些芯片将TTL/CMOS电平转换为EIA-485电平。
总线拓扑:EIA-485网络通常采用总线拓扑结构,所有设备都连接到同一总线上。
应用场景
- 工业控制系统:在工业自动化领域,RS-485常用于连接各种传感器、执行器和控制器。例如,在PLC(可编程逻辑控制器)系统中,RS-485可以用于连接远程I/O模块。
- 楼宇自动化:在楼宇自动化系统中,RS-485用于连接温度控制器、照明系统、安全系统和门禁系统等。
- 数据采集系统:在环境监测、气象站和其他数据采集系统中,RS-485用于将传感器数据传输到中央处理器或记录设备。
- 远程监控和控制:在远程监控系统中,RS-485用于传输数据和控制信号,例如在远程监控井场、电力系统或交通信号灯控制。
- 工业网络:在工业网络中,RS-485可以用于构建分布式控制系统,如SCADA(监控控制与数据采集)系统。
- POS系统:在零售行业中,RS-485用于连接POS(Point of Sale)终端和打印机、扫描器等设备。
- 安防系统:在安全系统中,RS-485用于连接摄像头、门禁系统和报警系统。
- 医疗设备:在医疗设备中,RS-485用于连接各种医疗仪器和监控设备。
- 交通运输:在交通运输系统中,RS-485用于连接车载设备和监控设备。
- 农业自动化:在农业自动化系统中,RS-485用于连接灌溉系统、温控系统和监测设备。
由于RS-485具有长距离传输、多点通信和抗干扰能力强等特点,它在需要可靠数据传输的应用中非常受欢迎。随着技术的发展,尽管一些应用场景可能会转向使用更高速的通信协议,如以太网或无线通信,但RS-485仍然在许多领域中被广泛使用。
硬件原理图
我们先通过收发器名称来寻找该收发器手册,了解工作原理。
这里我们通过立创商城来检索
手册会告诉你每个管脚的作用和设计原理
详细内容请自行下载并学习
软件
sdk开发包的设备树
我们从刚刚硬件原理图可以看到,使用了uart5
检索到uart5,注意状态是“disabled”,我们写一个uart5节点,改变一下他的配置
修改status,也就是状态,同时修改对应的rx和tx管脚
先在原理图检索rx和tx管脚,管脚对应的分别是gpio4_B1和gpio4_B0
pinctrl-0就是修改匹配的管脚号
检索后请校对管脚
如果管脚号不对请及时修改
485驱动
如果硬件设计
则多了一个“RS485_DIR”管脚,那么就需要匹配485驱动了。
测试方法
准备一个485串口工具,带有485接口的开发板,并且成功烧录系统
设置485设备连接主机,我这里用的是xshell软件,修改串口配置如下图,端口号根据实际情况来定
连接后:
在开发板端输入指令:
stty -F /dev/ttyS0 speed 115200 cs8
stty -F /dev/ttyS0
echo "123" > /dev/ttyS0
查看另一个串口
检查
如果测试不成功,检查工作
首先检查原理图,可以参考我上面的原理图设计
检查设备树,尤其是状态“status”,然后管脚绑定对不对
系统检查是否成功加载该串口,输入指令“ls /dev/”
其次用电压表测试收发器芯片
注意看:
所以RE和DE都是低电压
如果检查没问题,请用上面测试方法,用示波器量A和B管脚,看看有没有波纹