单片机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改一对多

相关推荐
17(无规则自律)13 分钟前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
芯岭技术19 分钟前
PY32MD310单片机:高性能、低功耗的32位电机控制微控制器
单片机·嵌入式硬件
wotaifuzao1 小时前
STM32 + FreeRTOS 的订阅通知组件架构
stm32·嵌入式硬件·架构·freertos·事件驱动·嵌入式架构
小龙报2 小时前
【51单片机】深度解析 51 串口 UART:原理、配置、收发实现与工程化应用全总结
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·51单片机
Lester_11019 小时前
STM32 高级定时器PWM互补输出模式--如果没有死区,突然关闭PWM有产生瞬间导通的可能吗
stm32·单片机·嵌入式硬件·嵌入式软件
小李独爱秋10 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
梁洪飞13 小时前
内核的schedule和SMP多核处理器启动协议
linux·arm开发·嵌入式硬件·arm
进击的小头13 小时前
实战案例:51单片机低功耗场景下的简易滤波实现
c语言·单片机·算法·51单片机
宵时待雨16 小时前
STM32笔记归纳8:时钟
笔记·stm32·单片机·嵌入式硬件
JJRainbow17 小时前
SN75176 芯片设计RS-232 转 RS-485 通信模块设计原理图
stm32·单片机·嵌入式硬件·fpga开发·硬件工程