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

相关推荐
fengfuyao9853 小时前
STM32如何定位HardFault错误,一种实用方法
stm32·单片机·嵌入式硬件
爱学习的颖颖3 小时前
EXTI外部中断的执行逻辑|以对射式红外传感器计次为例
单片机·嵌入式硬件·exti中断
keer_zu4 小时前
STM32L051 RTC闹钟配置详解
stm32·嵌入式硬件
AI精钢5 小时前
H20芯片与中国的科技自立:一场隐形的博弈
人工智能·科技·stm32·单片机·物联网
etcix8 小时前
implement copy file content to clipboard on Windows
windows·stm32·单片机
谱写秋天8 小时前
在STM32F103上进行FreeRTOS移植和配置(STM32CubeIDE)
c语言·stm32·单片机·freertos
globbo11 小时前
【嵌入式STM32】I2C总结
单片机·嵌入式硬件
玖別ԅ(¯﹃¯ԅ)12 小时前
SysTick寄存器(嘀嗒定时器实现延时)
stm32·单片机·嵌入式硬件
limitless_peter12 小时前
集成运算放大器(反向比例,同相比例)
嵌入式硬件·硬件工程
Blossom.11813 小时前
把 AI 推理塞进「 8 位 MCU 」——0.5 KB RAM 跑通关键词唤醒的魔幻之旅
人工智能·笔记·单片机·嵌入式硬件·深度学习·机器学习·搜索引擎