UART设计说明_第1页
UART设计说明_第2页
UART设计说明_第3页
UART设计说明_第4页
UART设计说明_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中国科学院国家空间科学中心文件名称:UART设计说明实验单位: 悦供货单位: 悦编 写: 悦校 对: 钢审 核: 士批 准: 钢2016年6月14日目录目 录1.串行通信概念51.1 串行通信分类51.2 串行通信方式52.UART异步串口通信原理62.1 波特率62.2 通信协议62.3 UART串口结构图82.4 Windows串口配置界面92.4 串口通信标准92.4.1 RS-232C标准92.4.2 RS-422、RS-423和RS-429标准113.UART异步串行口收发模块设计113.1UART传输时序123.2全局复位模块133.3UART分频器133.4UART接收模块143

2、.5UART发送模块163.6UART顶层框图183.7UART激励文件19UART设计说明1. 串行通信概念1.1 串行通信分类串口通信是目前比较重要的一种通信方式,主要是用于计算机和外部的通信。数据通信的基本方式可分为并行通信与串行通信两种:Ø 并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,要求通讯速率较高的应用场合。Ø 串行通信:是指利用一条传输线将资料一位位地顺序传送。它的特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,传输速度慢的应用场合。发送方在发送前要将并行数据转成串行数据,接收方

3、接收后要完成串行数据到并行数据的转换。n 异步串行通信:在通信的数据流中,字符间异步,字符内部各位间同步。异步通信方式的“异步”主要体现在字符与字符之间通信没有严格的定时要求。然而,一旦传送开始,收/发双方则以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。n 同步串行通信:数据流中的字符与字符之间和字符内部的位与位之间都同步。同步串行通信是以数据块(字符块)为信息单位传送,而每帧信息包括成百上千个字符,因此传送一旦开始,要求每帧信息内部的每一位都要同步。 1.2 串行通信方式2. UART异步串口通信原理2.1 波特率波特率:单位时间内传送的二进制数据的位数,以位/秒(bit/s

4、)表示,也称为数据位率。它是衡量串行通信速率的重要指标。每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为110,150,300,600,1200,2400,4800,9600,19200,38400,115200等。收/发时钟:直接决定了通信线路上数据传输的速率,对于收/发双方之间数据传输的同步有十分重要的作用。2.2 通信协议串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就

5、是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0127(7位)。扩展的ASCII码是0255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据

6、。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的

7、一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步通信协议:是指通信双方约定的一些规则。在使用异步串口传送一个字符的信息时,对资料格式有如下约定:规定有空闲位、起始位、数据位、奇偶校验位、停止位。通讯时序图如下:图1 通讯时序图Ø 开始前,线路处于空闲状态,送出连续“1”。Ø 传送开始时首先

8、发一个“0”作为起始位。Ø 然后出现在通信线上的是字符的二进制编码数据,每个字符的数据位长可以约定为5 位、6 位、7 位或8 位,一般采用ASCII 编码,它包含的8位是由低位开始传送。Ø 后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。Ø 最后是表示停止位的“1”信号,这个停止位可以约定持续1位、1.5位或2位的时间宽度。Ø 至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。Ø 图2 采样时序图2.3

9、 UART串口结构图串口在一般的台式机上都会有。随着笔记本电脑的使用,一般会采用USB转串口的方案虚拟一个串口供笔记本使用。下图为UART串口的结构图。串口具有9个引脚,但是真正连接入FPGA开发板的一般只有两个引脚。这两个引脚是:发送引脚TxD和接收引脚RxD。由于是串行发送数据,因此如果开发板发送数据的话,则要通过TxD线1 bit接着1 bit发送。在接收时,同样通过RxD引脚1 bit接着1 bit接收。图3 UART串口结构图异步通信以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的,然而在同一个字符中的两个相邻位代码间的时间间隔是固定的。串口用于ASCII码字符的传输。通信

10、使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。2.4 Windows串口配置界面图4 Windows串口配置界面打开Windows自带的串口收发软件:超级终端,可以配置相关的选项。Ø 每秒位数:可以设定一个周期的长度:如果我们设定为9600,则上图中1位持续的时间是:1/9600s。Ø 数据位:可以从5、6、7、8中选一位。Ø 奇偶校验:可以从偶校验、奇校验、无、标记、空格中任选一个。Ø 停止位:可以是:1、1.5、2。2.4 串口通信标准2.

11、4.1 RS-232C标准Ø 串行通信系统Ø 常用的RS-232C信号线Ø 电气特性n 应保证电平在±(515)V之间u 对于数据线:逻辑“1” (MARK)= -3V - 15V逻辑“0” (SPACE) = +3V+15Vu 对于控制信号:接通状态(ON)即信号有效电平 = +3V15V 断开状态(OUT)即信号无效电平= - 3 - 15Vn 进行电平转换u RS-232C接口采用的是负逻辑,其逻辑电平与TTL电平不一样,不能兼容。因此,为了实现与TTL电路的连接,必须进行电平转换。 u 目前可以使用新型电平转换芯片MAX232和MAX232A(高

12、速)双组RS-232C发送/接收器,实现TTL电平与RS-232C电平双向转换。 Ø 传输速率与传输距离Ø 连接器 2.4.2 RS-422、RS-423和RS-429标准Ø RS-422:规定电气特性、双端传输Ø RS-429:规定机械连接标准,37脚Ø RS-423:与RS-232、RS-422兼容3. UART异步串行口收发模块设计在一般的嵌入式开发和FPGA设计中,串口UART是使用非常频繁的一种调试手段。下面我们将使用Verilog RTL编程设计一个串口收发模块。这个设计有两个目的:Ø 从串口中接收数据,发送到输出端口。接

13、收的时候是串行的,也就是一个接一个的;但是发送到输出端口时,我们希望是8位放在一起,成为并行状态。我们知道,串口中出现信号,是没有先兆的。如果出现了串行数据,则如何通知到输出端口呢?我们引入“接收有效”端口。“接收有效”端口在一般情况下都是低电平,一旦有数据到来时,它就变成高电平。下一个模块在得知“接收有效”信号为高电平时,它就明白:新到了一个字节的数据,放在“接收字节”端口里面。Ø 发送数据到串口。发送数据的时候,我们也希望输入端口能够给出一个简单的形式。我们引入“发送有效”信号,它为高电平,表示我们希望把“发送字节”送入TxD发送出去。但是“发送有效”信号是否生效是有限制的,也就

14、是正在发送的时候,是不能接收新的数据并发送的。所以,我们引入一个“发送状态”信号,它标识当前的“发报机”是否处于忙碌状态。如果“发报机”处于忙碌状态,则它拒绝“发送有效”信号,不予执行。图5 串口接收和发送数据时进行串并转换的示意图3.1 UART传输时序UART传输时序如下图所示。发送数据过程:空闲状态,线路处于高电位;当收到发送数据指令后,拉低线路一个数据位的时间T;接着数据按低位到高位依次发送,数据发送完毕后,接着发送停止位(停止位为高电位),一帧资料发送结束。接收数据过程:空闲状态,线路处于高电位;当检测到线路的下降沿(线路电位由高电位变为低电位)时说明线路有数据传输,按照约定的波特率

15、从低位到高位接收数据,数据接收完毕后,通知后续设备准备接收数据或存入缓存。由于UART是异步传输,没有传输同步时钟。为了能保证数据传输的正确性,UART采用16倍数据波特率的时钟进行采样。每个数据有16个时钟采样,取中间的采样值,以保证采样不会滑码或误码。一般UART帧的数据位数为8,这样即使每个数据有一个时钟的误差,接收端也能正确地采样到数据。UART的接收数据时序为:当检测到数据的下降沿时,表明线路上有数据进行传输,这时计数器cnt开始计数,当计数器为24=16+8时,采样的值为第0位数据;当计数器的值为40时,采样的值为第1位数据,依此类推,进行后面6个数据的采样。当计数器的值为152时,采样的值为“1”表示停止位,一帧数据接收完成。下文将按上面的算法进行Verilog HDL语言建模与仿真。3.2 全局复位模块3.3 UART分频器假设数据的波特率为p,则所需时钟的频率为16*p。以波特率p=9600为例,系统时钟为50MHz,则分频系数为50000000/(16*9600)=325.52,取整为326。分频器Verilog HDL语言代码如下:3.4 UART接收模块UART接收模块的功能:时时检测线路,当线路产生下降沿时,即认为线路有数据传输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论