单片机UART一对多:同时读取多个传感器基于modbus协议

文章目录

背景

很多传感器现在都做成了串口模块,如激光测距传感器TOF050,在开发时使用串口功能模块不仅大大加快了我们的开发进度,还能降低功能模块直接的耦合度,专业是功能交给专业的模块做,也能保证质量。
图:TOF050激光测距模块

以TOF050模块为例,当我们同时需要接4个激光测距模块时,显然需要使用4个UART串口,分别读取距离值,这限制了我们可以外接的模块数量。

基于modbus协议,对UART串口进行改造,就可以实现单个串口同时外接多个UART设备,互不干扰。

MODBUS协议介绍

modbus介绍可以参考如下:https://cloud.tencent.com/developer/article/1540241

简而言之,在串口中使用modbus协议,主机需要先发送要读取的设备编号,相应设备编号的设备回传主机要读取的数据,而不符合该设备编号的设备保持静默状态。在主设备读取从设备时,遵循下面的通信协议:

UART接口改一对多

参考如下链接:https://blog.csdn.net/Ajisa_i/article/details/124731439

UART为点对点通信,直接将多个从机的TX线接到主机的RX上,是不能通信的。因此需要做如下改造:

这样,结合MODBUS协议,从机同时只会有1个在发送数据,不会互相干扰。二极管可以选用肖特基二极管SS14,其压降只有0.26V,响应速度10ns,实际支持2M的串口波特率。

参考链接

MODBUS协议介绍
UART改一对多

相关推荐
yutian06063 小时前
Keil MDK下载程序后MCU自动重启设置
单片机·嵌入式硬件·keil
析木不会编程6 小时前
【小白51单片机专用教程】protues仿真独立按键控制LED
单片机·嵌入式硬件·51单片机
枯无穷肉10 小时前
stm32制作CAN适配器4--WinUsb的使用
stm32·单片机·嵌入式硬件
不过四级不改名67710 小时前
基于HAL库的stm32的can收发实验
stm32·单片机·嵌入式硬件
嵌入式大圣10 小时前
单片机UDP数据透传
单片机·嵌入式硬件·udp
云山工作室11 小时前
基于单片机的视力保护及身姿矫正器设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·毕设
嵌入式-老费11 小时前
基于海思soc的智能产品开发(mcu读保护的设置)
单片机·嵌入式硬件
qq_3975623113 小时前
MPU6050 , 设置内部低通滤波器,对于输出数据的影响。(简单实验)
单片机
liyinuo201713 小时前
嵌入式(单片机方向)面试题总结
嵌入式硬件·设计模式·面试·设计规范
艺术家天选13 小时前
STM32点亮LED灯
stm32·单片机·嵌入式硬件