常用的串口通信协议之UART异步串行通信简析

常用的串口通信协议之UART异步串行通信简析,第1张

1.UART

UART是异步串行通信口的总称。它所包含的RS232RS449RS423等等是对应各种异步串行通信口的接口标准和总线标准。他们规定了通信口的电气特性、传输速率、连接特性和机械特性等一系列内容,实际上属于通信网络的底层概念,与通信协议没有直接关系。

几个相关名词的解释:

·波特率:每秒钟传送的bit的个数。

·起始位:先发出一个逻辑0的信号,表示传输数据的开始。

·数据位:衡量通信中实际数据位的参数,标准数据位可以是5、7、8位,从最低位开始传输。

·奇偶校验位:UART发送时,检查发送数据中“1”的个数,自动在奇偶校验位添加1/0,用于发送数据的校验。

·停止位:一个数据的结束标志,可以为1位、1.5位、2位的高电平。

·空闲位:处于逻辑1状态,表示当前线路上无数据传输。

·时序图:

常用的串口通信协议之UART异步串行通信简析,033fe9e2-ff1c-11ec-ba43-dac502259ad0.png,第2张

·发送数据过程:空闲状态,线路处于高电平,当收到发送数据指令后,拉低电平一个数据位的时间,接着数据按从低位到高位依次发送,数据发送完毕,接着发送奇偶校验位和停止位(停止位为高电平),一帧数据发送结束。

·接收数据过程:空闲状态,线路处于高电平,当检测到线路的下降沿,说明线路有数据传输,按照约定的波特率从低位到高位接收数据,数据接收完毕,接着接收并比较奇偶校验位是否正确,如果正确则通知接收端设备准备接收数据或存入缓存。

由于UART是异步传输,没有同步传输时钟。为保证数据传输的正确性,每个数据有16个时钟采样,取中间的采样值,以保证不会误码或滑码。

·设计实例:

下面是一个UART的回环实例代码设计:

接收模块uart_rx:

常用的串口通信协议之UART异步串行通信简析,poYBAGLKJkSAdYJTAAD6fd50LQQ006.jpg,第3张

 

常用的串口通信协议之UART异步串行通信简析,pYYBAGLKJk2AegDzAACs6qLpBSg564.jpg,第4张

发送模块uart_tx:

常用的串口通信协议之UART异步串行通信简析,pYYBAGLKJqiAP3Q5AADJB8YFfK0474.jpg,第5张

 

常用的串口通信协议之UART异步串行通信简析,pYYBAGLKJrGAOgm9AAEZ3YZCsLY316.jpg,第6张

 

常用的串口通信协议之UART异步串行通信简析,poYBAGLKJriAS5MSAADyr8AU7VA769.jpg,第7张

 

常用的串口通信协议之UART异步串行通信简析,pYYBAGLKJsCAHDa3AAD2BBvpjfI231.jpg,第8张

特定波特率产生模块clk_div:

常用的串口通信协议之UART异步串行通信简析,pYYBAGLKJxiAFVNWAAAquT2nHFQ815.jpg,第9张

 

常用的串口通信协议之UART异步串行通信简析,poYBAGLKJyGAMluNAABHQt4pxGE020.jpg,第10张

 

常用的串口通信协议之UART异步串行通信简析,poYBAGLKJymAUKurAABe26yYWak490.jpg,第11张

顶层文件uart_top:

常用的串口通信协议之UART异步串行通信简析,poYBAGLKJ0-AAaJIAAC2takTJEg381.jpg,第12张

 

常用的串口通信协议之UART异步串行通信简析,pYYBAGLKJ1iAEofDAAA0_MCJ8H0822.jpg,第13张

2.PS/2   

       PS/2是一种双向同步串行通信协议。接口是一种6针的连接口,但只有四个引脚是有意义的,分别是Clock(时钟)、Data(数据)、VCC和GND。其中时钟和数据引脚是双向的。PS/2常用于连接某些输入设备,例如鼠标、键盘等。通信的两端通过时钟来同步,通过数据引脚来交换数据。任何一方想要抑制另外一方的通信,只需要将时钟引脚拉低即可。     如果是PC和PS/2键盘之间通信,PC必须做主机,即PC可以抑制键盘发送数据,而键盘不能抑制PC发送数据。 PS/2的每一位数据帧包含11-12位,具体含义如下:

常用的串口通信协议之UART异步串行通信简析,pYYBAGLKJ32ARR6dAACMGnuuAug703.jpg,第14张


·PS/2的时序图:

常用的串口通信协议之UART异步串行通信简析,03bf9700-ff1c-11ec-ba43-dac502259ad0.png,第15张

由设备产生时钟和数据,主机根据时钟来读取数据。以FPGA和PS/2键盘为例,键盘产生时钟和数据,FPGA只需要读数据。当时钟下降沿时,FPGA记录数据信号。·设计实例:    主机为FPGA,根据PS/2的时序,得到键盘的按键值。虽然在时序图中,主机是在时钟下降沿读取数据,但实际上要为了排除噪声干扰,需要在FPGA端对信号进行滤波。下面给出设计代码。

常用的串口通信协议之UART异步串行通信简析,poYBAGLKJ76ARx-SAAD2dIF8ulk742.jpg,第16张

 

常用的串口通信协议之UART异步串行通信简析,pYYBAGLKJ8aAKJ_kAAD_glh7y9M191.jpg,第17张





审核编辑:刘清

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2419333.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-01
下一篇 2022-08-01

发表评论

登录后才能评论

评论列表(0条)

保存