代码编织梦想

1. 工作原理

1.1 低速通用通讯协议对比概述 



I2C、SPI和UART对比概述:

共同点

三种协议都属于低速通用协议接口。

差异点

表1.1.1 协议对比

UART:无法满足一个主设备,多个从设备的通信,通信方式最为简单,最低只需一根线即可满足通讯。

SPI:有一个专用NSS端口,默认拉低来选择从设备。

I2C:每个主设备和从设备有一个对应地址,通信时先发送地址信号,若一致则被选中。

1.2 物理层UART(使用TTL电平)与RS232、RS485

TTL:

晶体管-晶体管逻辑电路

TTL逻辑电平,以5V为例,高为1低为0。

 

RS232:

全双工通信。

逻辑1电平=-3V~-15V,逻辑0电平=3~15V

PS:TTL与RS232逻辑不兼容,中间需要添加电平转换电路进行连接。

RS485:

差分信号进行串行传输。

逻辑1电平为两线间压差+2~+6V。

逻辑0电平为两线间压差-2~-6V。

工业通信中,使用RS485通信较多,因为RS485是差分信号,可以抑制共模干扰,因此在恶劣环境中有很好的抗干扰性,比较稳定。

2. 设计说明

2.1 信号设计

发送模块

接收模块

2.2设计流程图及详解

发送模块状态机设计

 

接收模块状态机设计

上电后进入“S_IDLE”空闲状态,等待检测到”rx_pin”下降沿,即为检测到串口起始位,状态机进入下一状态”S_START”,等待1BIT时间进入下一状态“S_REC_BYTE”,等待1BIT时间,数据接收完成进入“S_STOP”数据接收完成状态,等待半BIT,进入”S_DATA”状态向其他模块发送接收到的数据。

3. 工程文件链接

链接:https://pan.baidu.com/s/1ynbGCzlAoH7jsZ1zI3XQvw 

提取码:bhyz

内附状态机原图

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46154042/article/details/131027938