UART串口通讯协议

姓名:吕红霞;学号:20011210203;学院:通信工程学院

转自https://mp.weixin.qq.com/s/2HqU4s5oZQcbtf6Ud0SxCg

【嵌牛导读】本文介绍了常见的UART串口通讯协议

【嵌牛鼻子】UART

【嵌牛提问】串口协议解决了信息传输中的什么问题?

【嵌牛正文】

1.需求

在实现生活中,往往不是单独工作的,需要与别人进行合作,这就需要交流,以传达信息。在FPGA中,各个芯片之间也是相对独立的,要想协同一起工作,双方之间的通讯是必不可少的。

2.问题

1. 何时发送数据:  什么时候开始,我知道你开始发送数据

2. 何时结束发送: 什么时候开始,我知道你已经结束数据的发送了

3. 该怎样接受数据: 接受到的数据我该怎样进行存储

3. 协议

UART一共用4根线,分别是数据发送线,数据接收线,VCC,GND,从这4根线上来看,没有时钟线,所以需要规定数据发送结束的速率,即波特率要一致,同时可以看到发送数据线和接收数据线是分开的,所以发送和接收是可以同时进行的。

1. 空闲态:当两段都没有数据发送的时候,为空闲态,此时规定数据发送线和数据接收线上的电平均为高电平

2. 开始发送数据态:拉低数据发送线一个周期,表示数据准备开始发送了,这时注意并没有发生数据,只是表示我要发送数据了,你要准备开始接收了

3. 数据发送态:在开始发送数据态结束后,后面的八个时钟周期每一个时钟发送一个数据位,先发送数据的低位,然后发送数据的高位

4. 结束数据发送:数据发送态完成后,接下来的1、1.5、2个时钟周期为停止位,此时拉高数据发送线

5. 校验位暂不考虑

ps: 上面所说的时钟周期,不是系统的时钟周期,而且两边规定好的波特率的时钟周期,这个要注意下;上面主要说明了一下数据发送的过程,由数据发送的过程来推数据接收的过程并不困难。


然后这个是8位的,然后想变成16位的,可以在此模块上面在加一个top模块,接收了两个数据给一个应答。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容