UART设计说明.doc

上传人:豆**** 文档编号:34306103 上传时间:2022-08-16 格式:DOC 页数:15 大小:60.50KB
返回 下载 相关 举报
UART设计说明.doc_第1页
第1页 / 共15页
UART设计说明.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《UART设计说明.doc》由会员分享,可在线阅读,更多相关《UART设计说明.doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流UART设计说明【精品文档】第 13 页UART设计说明中国科学院国家空间科学中心文件名称:UART设计说明实验单位: 供货单位: 悦编 写: 悦校 对: 钢审 核: 士批 准: 钢2016年6月14日目 录1. 串行通信概念1.1 串行通信分类串口通信是目前比较重要的一种通信方式,主要是用于计算机和外部的通信。数据通信的基本方式可分为并行通信与串行通信两种: 并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,要求通讯速率较高的应用场合。 串行通信:是指利用一条传输线将资料一位位地顺序传送。它的特点是通信线

2、路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,传输速度慢的应用场合。发送方在发送前要将并行数据转成串行数据,接收方接收后要完成串行数据到并行数据的转换。n 异步串行通信:在通信的数据流中,字符间异步,字符内部各位间同步。异步通信方式的“异步”主要体现在字符与字符之间通信没有严格的定时要求。然而,一旦传送开始,收/发双方则以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。n 同步串行通信:数据流中的字符与字符之间和字符内部的位与位之间都同步。同步串行通信是以数据块(字符块)为信息单位传送,而每帧信息包括成百上千个字符,因此传送一旦开始,要求每帧信息内部的每一位都要同

3、步。 1.2 串行通信方式2. UART异步串口通信原理2.1 波特率波特率:单位时间内传送的二进制数据的位数,以位/秒(bit/s)表示,也称为数据位率。它是衡量串行通信速率的重要指标。每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为110,150,300,600,1200,2400,4800,9600,19200,38400,115200等。收/发时钟:直接决定了通信线路上数据传输的速率,对于收/发双方之间数据传输的同步有十分重要的作用。2.2 通信协议串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:

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

5、码是0127(7位)。扩展的ASCII码是0255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信

6、中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步通信协议:是指通信双方约定的一些规则。在使用异步串口传送一个字符的信息时,对资料格式有如下约定:规定有空闲位、起始位、数据位、奇偶

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

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

9、隔是固定的。串口用于ASCII码字符的传输。通信使用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.

10、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(高速)双组RS-232C发送/接收器,实现TTL电

11、平与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编程设计一个串口收发模块。这个设计有两个目的: 从串口中接收数据,发送到输出端口。接收的时候是串行的,也就是一个接一个的;但是发送到输出端口时,我们希望是8位放在一起,成为并行状态。我们知道,串口中出现信号,

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

13、处于忙碌状态,则它拒绝“发送有效”信号,不予执行。图5 串口接收和发送数据时进行串并转换的示意图3.1 UART传输时序UART传输时序如下图所示。发送数据过程:空闲状态,线路处于高电位;当收到发送数据指令后,拉低线路一个数据位的时间T;接着数据按低位到高位依次发送,数据发送完毕后,接着发送停止位(停止位为高电位),一帧资料发送结束。接收数据过程:空闲状态,线路处于高电位;当检测到线路的下降沿(线路电位由高电位变为低电位)时说明线路有数据传输,按照约定的波特率从低位到高位接收数据,数据接收完毕后,通知后续设备准备接收数据或存入缓存。由于UART是异步传输,没有传输同步时钟。为了能保证数据传输的

14、正确性,UART采用16倍数据波特率的时钟进行采样。每个数据有16个时钟采样,取中间的采样值,以保证采样不会滑码或误码。一般UART帧的数据位数为8,这样即使每个数据有一个时钟的误差,接收端也能正确地采样到数据。UART的接收数据时序为:当检测到数据的下降沿时,表明线路上有数据进行传输,这时计数器cnt开始计数,当计数器为24=16+8时,采样的值为第0位数据;当计数器的值为40时,采样的值为第1位数据,依此类推,进行后面6个数据的采样。当计数器的值为152时,采样的值为“1”表示停止位,一帧数据接收完成。下文将按上面的算法进行Verilog HDL语言建模与仿真。3.2 全局复位模块3.3

15、UART分频器假设数据的波特率为p,则所需时钟的频率为16*p。以波特率p=9600为例,系统时钟为50MHz,则分频系数为50000000/(16*9600)=325.52,取整为326。分频器Verilog HDL语言代码如下:3.4 UART接收模块UART接收模块的功能:时时检测线路,当线路产生下降沿时,即认为线路有数据传输,启动接收数据进程进行接收,按从低位到高位接收数据。UART接收模块的Verilog HDL语言代码如下:3.5 UART发送模块UART发送模块的功能:接收到发送指令后,把数据按UART协议输出,先输出一个低电平的起始位,然后从低到高输出8个数据位,最后是高电平的停止位。UART发送模块的Verilog HDL语言代码如下:3.6 UART顶层框图在顶层模块上分别放置复位模块,分频模块,UART发送模块,UART接收模块,并添加输入输出端口,各个模块的连接如下图所示。3.7 UART激励文件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com