三大通信协议(1)UART.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三⼤通信协议(1)UART ⽬录 ⼀、 UART通信协议简介 据总线,在FPGA中,UART常应⽤于PC与FPGA之间的慢速通信。UART有tx(发送数据线),rx(接收数据线)两条数据传输线,因此 是⼀种全双⼯的、异步通信模式。在通信的过程中,双⽅需要事先约定好通信速率,UART常⽤的通信速率9600bite/s、19200bite/s、 115200bite/s等。 ⼆、UART通信时序 UART异步串⾏通信是以字符为传输单位,⼀位⼀位的顺序输送。由于UART通信⽆时钟线,因此UART通信不同于IIC通信和SPI通 信,属于异步串⾏通信,通信双⽅需要事先约定好通信速率,即误码率:每秒传输⼆进制bite的个数。 下图给出了UART通信的时序图: 空闲位:⾼电平表⽰空闲状态 起始位:由⾼电平到低电平的跳变,表⽰进⼊到起始位,依靠检测起始位来实现发送与接收⽅的时 间的⾃同步。 数据传输:可以是4、5、6、7、8位逻辑0或者1,构成⼀个字符,从最低位开始传送。 奇偶校验:数据位加上这⼀位后,使得“ 1”的位数为偶数(偶校验)或奇数(奇校验)以此来校验 数据传送的正确性,可以没有该部分。 结束位:它是⼀个字符数据的结束标志,可以是1位、1.5位、2位的⾼电平,适⽤于停⽌位的位数 越多,不同时钟同步的容忍程度越⼤,数据传输率同时也越低。 三、 UART、 RS232、TTL关系阐述 1.简介 uart即上述所说的⼀种通⽤的异步收发器,或者说是串⾏通信的⼀种协议,这⾥不再赘述。 CMO ⼝是指针对串⾏通信协议的⼀种端⼝,即串⾏通讯端⼝,简称串⼝。⼤部分为9针D型,常见于台式电脑的后边,⽬前DB9型的接 ⼝基本已经被USB接⼝取代;还有⼀部分为4针杜邦头,也就是我们常说的四针串⼝,常见于pcb板上预留接⼝。RS-232和RS-485是 CMO⼝的两种协议,或者说是通信的电平标准 :RS-232采⽤的是负逻辑,即逻辑 “1”表⽰-3V到-15V之间的电平,逻辑 “0”表⽰+3V 到+15V之间的电平,实际上RS-232电平标准已经在PC界成为了默认的标准;RS-485利⽤的是两根数据线之间的电压差进⾏数据传输, 即逻辑 “1”以两线间的电压差+2V~+6V表⽰,逻辑 “0”以两线间的电压差-6V~-2V表⽰。两者之间的区别主要在于以下⼏点 :1.传输 ⽅式不同,S-232采取不平衡传输⽅式,即所谓单端通讯. ⽽RS485则采⽤平衡传输,即差分传输⽅式。2.传输距离不同。RS-232适合本 地设备之间的通信,传输距离⼀般不超过20m。⽽RS-485的传输距离为⼏⼗⽶到上千⽶。3.RS-232 只允许⼀对⼀通信,⽽RS-485 接 ⼝在总线上是允许连接多达128个收发器。 TTL全名是晶体管-晶体管逻辑集成电路(Transistor-Transistor Logic),也是⼀种通信电平的标准。TTL对应的物理电平,始终是在 0V和Vcc之间,其中常见的Vcc是5V或3.3V。TTL 采⽤的是正逻辑,即逻辑 “1”表⽰>=2.4V的电平,逻辑"0"表⽰<=0.5V的电平。 2.电平转换 对于同样传输8'说,RS232和TTL的时序对⽐如下: RS232和TTL之间的转换,可以通过MAX3232芯⽚,把TTL电平转换成RS232电平,该芯⽚同样也可以实现RS232转换成TTL电 平。 USB转TTL电平可以通过或者USB转TTL串⼝的⼩板使⽤起来相对⽐较⽅便,如下图所⽰,可以随时完成PC端与FPGA开发板之间的数 据通信。 四、实例 ⼝发送给主机。 下边是整个系统模块的⽰意图: 下边是接收端时序图: 下边是发送端时序图: 1.程序代码 主程序Verilog代码: module uart_receive ( input clk, input res, input rxd, output reg [7:0] data, output reg done ); parameter clk_fre = parameter uart_bps = 115200; localparam BPS_CONT = clk_fre/uart_bp

文档评论(0)

139****1921 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档