本科毕业论文微电子学

上传人:仙*** 文档编号:33755153 上传时间:2021-10-18 格式:DOC 页数:47 大小:3.86MB
收藏 版权申诉 举报 下载
本科毕业论文微电子学_第1页
第1页 / 共47页
本科毕业论文微电子学_第2页
第2页 / 共47页
本科毕业论文微电子学_第3页
第3页 / 共47页
资源描述:

《本科毕业论文微电子学》由会员分享,可在线阅读,更多相关《本科毕业论文微电子学(47页珍藏版)》请在装配图网上搜索。

1、四川大学本科毕业论文 UART接口设计及验证UART接口设计及FPGA验证 The Design of UART Interface and FPGA Verification专业:微电子一班学生:熊 涛 指导教师:王 勇,高 博摘 要:随着电子技术的发展,以及数据传送的需要,通用异步接收/发送器(UART)已成为MCU、CPU、DSP等的基本配置,应用广泛。UART数据通过串行输入、输出,不同装置间通信不需要传送时钟信号,避免了同步传送的时序处理问题,数据线引脚较少,避免了信号间的相互干扰,是未来数据传送的发展方向。本文主要讨论如何应用Verilog HDL语言,基于FPGA器件实现可复用的

2、UART IP Core。通过修改配置文件,用户可以根据需要设置相应的参数,以实现相应功能的UART器件。本设计模块主要包括UART发送器、接收器、波特率发生器,以及总线接口控制逻辑。设计通过Xilinx公司的Spartan3系列器件XC3S400 FPGA进行功能验证。关键词:UART、IP核、发送器、接收器、波特率发生器、Verilog HDL Abstract: With the development of electronic technology, as the need of data transmitter, the Universal Asynchronous Receive

3、r/Transmitter (UART) now is the basic component of MCU, CPU, DSP , etc. By series data input/output, there is no need to send clock signal when communication between different equipments, avoiding timing synchronous problem, and the data pin is only one, avoid the disturb among the signals in parall

4、el communication. So, series data transmitting is the development direction in future. This paper focuses on how to use Verilog HDL to carry out reusable UART IP Core, based on FPGA. By modifying the configuration documents, the user can design different UART component. The design is made up of thes

5、e modules, such as Transmitter, Receiver, Bade_rate generator, and the Bus interface mastering logic. When validating the design, we use XC3S400 FPGA of Xilinx CO.,LTDs Spartan-3 spectrum. Key Words: UART , IP Core,Transmitter, Receiver, Verilog HDL目录第一章 引言1第二章 UART的协议.22.1 异步通信22.2串行通信的过程及通信协议.3 2.

6、2.1串并转换与设备同步.32.2.2串行通信协议32.3 UART的典型应用.52.4 UART的时钟控制.62.5 UART的数据采样.6第三章 UART的硬件设计.73.1 UART总体构架.73.1.1 UART结构.73.1.2 UART的帧格式.73.1.3 UART 的设计规格83.2 串行数据发送模块 113.2.1 发送顶层模块. 113.2.2 取数控制. 12 3.2.3 发送状态机. 133.2.4 EDA工具验证 143.3 串行数据接收模块 15 3.3.1 接收顶层模块. 153.3.2 数据同步装置. 153.3.3 数据抽样装置. 163.3.4 接收状态机.

7、 173.3.5 EDA工具验证.183.4 波特率发生器 18 3.4.1 波特率发生器概述18 3.4.2 EDA工具验证193.5 总线接口控制模块. 193.5.1 接口功能描述203.5.2 EDA综合结果.21第四章 UART的FPGA验证.22 4.1 Xilinx Spartan-3 系列器件介绍. 22 4.2 FPGA实现过程 23第五章 结论26致谢27参考文献28外文译文29翻译原文35iii 第一章 引 言目前,基于传统IC芯片的微电子应用系统设计技术正在转向基于知识产权(IP,Intellectual Property)核的片上系统(SoC,System on Ch

8、ip)技术发展。IC设计在国内外的发展很快,各种规模的IC设计中心和公司不断出现。因此,IP核的设计已开始逐渐成为国内微电子系统设计的一项支撑技术。从应用功能角度划分,IP核分为两大类:微处理器IP核(如8位8051核、32位ARM核等)和各种接口IP核(如LCD控制器、各种串行总线接口IP核等)。其中,接口IP核在数字通信系统中有着广泛的应用。设备间的通信方式,可分为并行和串行两种。在相同频率下,并行总线优于串行总线。随着并行总线的数据传输率越来越高,传统的并行接口逐渐暴露出一些信号传输上的缺陷,其中最致命的莫过于信号互相干扰问题。要满足高速传输的需要,要么提升它的总线频率,要么增加数据宽度

9、。但是这两种都会导致成本的上升,并且使信号偏移和串扰更加严重。而串行技术采有极少的数据线,并使用差分信号线,在传输数据时几乎不会因为受到干扰而出错。通用异步接收器和发送器(UART)用异步串行输入、输出进行通信。串行传输以速度为代价,换取了成本的降低和连线复杂度的降低。UART提供串行异步接收数据的同步化,发送器和接收器两个部分的并串转换和串并转换,对于串行传输系统而言,这些功能是必不可少的。串行数据流的同步化是通过给发送数据增加起始位和停止位、以形成一个数据字符而实现的。数据完整性是通过在数据字符中附加一个校验位来实现的,由接收器来检验。对于主机系统,UART就像一个能读取和写入的8位输入和

10、输出端口,任何时候,当主机要发送数据,它只需以字节格式把这些数据发送到UART(8个位宽);当UART从另一个串行装置接收数据时,它把这些数据临时缓存在它的FIFO中(同样是8个位宽),然后通过内部寄存器位或硬件中断信号向主机指示这些数据的可用性。随着串行通信技术的发展,新一代的串行通信接口如USB1.0,USB2.0,1394,SATA等高速串行接口逐渐成熟,串行通信的传输速度不断提升,接口技术有串行化的趋势。本课题通过对由CCITT制定的串并转换协议RS-232-C, 及其协议实现的通用器件UART的研究、实现,以期进一步了解串行通信技术,并系统学习IP Core 的设计。44第二章 UA

11、RT的协议UART(即通用异步接收传送器)按照异步通信传输格式传送数据,它的传送符合通信协议的规范。以下主要介绍异步通信及通信协议,以及UART中数据传输的具体方式。2.1 异步通信在异步通信中,数据是一帧一帧(包括一个字符代码或一个字节数据)传送的, 一帧的数据格式如下图所示。图 2-1 异步通信的一帧数据格式在帧格式中,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。起始位(0)只占用一位,通知接收设备一个待接收的字符开始到达。线路上不传送字符时应保持为1,接收端不断检测线路的状态,若连续为1后测到一个0,就表示发来一个新字符,应马上准备接收。字符的起始位还被用作同步接收端的时

12、钟,以保证以后的接收能正确进行。起始位后面紧接着是数据位,它可以是5位(D0D4)、6位、7位或8位(D0D7)。奇偶校验(D8)只占一位,也可以不用校验位,则这一位就可省略。也可用这一位(1/0)来确定这一帧中的字符所代表信息的性质(地址/数据等)。停止位用来表征字符的结束,一定是高电位(1)。停止位位宽可以是1位、1.5位或者2位。接收端收到停止位后,表明上一字符已传送完毕,同时,也为接收下一个字符做好准备,如果再接收到0,就是新的字符开始传送。若停止位以后不是紧接着一个字符,则使线路电平保持为高电平(1)。2.2 串行通信的过程及通信协议串行通信指数据是一位一位按顺序传送的通信方式。它的

13、突出优点是只需一对传输线,这样就大大降低了传送成本,特别适用于远距离通信;其缺点是传送速度较低。串行通信的传送方向通常有三种:单工、半双工、全双工。全双工是一对单向配置,它要求两端的通信设备都具备完整和独立的发送和接收能力。本文设计的UART以全双工模式工作。2.2.1串并转换与设备同步两个通信设备在串行线路上成功地实现通信必须解决两个问题:一是串并、并串转换,即如何把要发送的并行数据串行化,把接收的串行数据并行化;二是设备同步,即同步发送设备和接收设备的工作节拍,以确保发送数据在接收端被正确读出。2.2.1.1 并串转换与串并转换串行通信是将计算机内部的并行数据转换成串行数据,然后将其通过一

14、根通信线传送;在接收时将串行数据再转换成并行数据,再通过与主机的连接将其送到计算机中。在计算机串行发送数据之前,计算机内部的并行数据被送到移位寄存器并一位一位地移出,将并行数据转换成串行数据。如下图所示。图 2-2 发送时的并串转换在接收数据时,来自通信线路的串行数据被送入移位寄存器,移位保存满8位后并行送到计算机内部。图 2-3 接收时的串并转换2.2.1.2 设备同步进行串行通信的两台设备必须同步工作才能有效地检测通信线路上地信号变化,从而采样传送数据脉冲。设备同步必须保证两点:一是必须采用统一的编码方法;二是通信双方必须保证相同的传送速率。统一的编码方法确定了一个字符的位发送顺序和位串长

15、度,以及统一的逻辑电平规定,即电平信号高低与逻辑1和逻辑0的固定对应关系。通信双方只有保持相同的速率,才能确保设备同步,这就要求发送设备和接收设备采用相同频率的时钟。发送设备在统一的时钟脉冲上发出数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。2.2.2串行通信协议通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。通信双方必须遵循统一的通信协议。串行通信协议包括同步协议和异步协议。以下是异步串行通信协议和异步串行协议规定的字符数据的传送格式。1、起始位通信线上没有数据被传送时处于逻辑1状态。当发送设备要发送一个字符数据时,首先加入一个逻辑0的信号,这个逻辑低电平就是起始位。

16、起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接受数据位信号。起始位能使设备同步,通信双方必须在传送数据位前协调同步。2、数据位当接收设备接收到起始位后,紧接着就会收到数据位。数据位的个数可以是5、6、7或8。这些数据位被接收到移位寄存器中,构成传送数据字符。在字符数据传送过程中,数据位从最低有效位开始发送,依次顺序在接收设备中被转换为数据。3、奇偶校验位数据位发送完,可发送奇偶校验位。奇偶校验属于有限差错检测,通信双方需约定一致的奇偶校验方式。如果选择偶校验,那么组成数据位和奇偶位的逻辑1的个数必须是偶数;如果选择奇校验,那么逻辑1的个数必须是奇数。4、停止位约定在

17、奇偶位或数据位(当无奇偶检验时)之后发送停止位。停止位是一个字符数据的结束标志,可以是1位、1.5位或2位的高电平。接收设备收到停止位之后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。5、波特率设置通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度决定,即以每秒多少个二进制位来衡量的,这个速度就叫波特率。如果数据以300个二进制位每秒在通信线上传送,那么传送速度为300波特,通常记为300b/s。6、握手信号约定计算机与modem进行数据交换时,往往通过一些信号线作为交换数据的先提条件,当满足条件时允许数据进行传送;当不满足条件时,处于等待

18、状态,等到允许数据传送的信号发生时,才又开始传送数据。2.3 UART的典型应用UART由于理想的低功耗、降低软件开销、降低CPU 开销、避免丢失数据、 发送和接收通道可以在不同的波特率下工作等优点,广泛应用于对速度要求不高的数据传输中。典型应用如下:ADSL boxes 基站 PCPABX 系统 便携式电话 Fax 服务器 Modem 集线器和路由器 工业自动控制 导航系统 自动售货机(角子机)其他更多2.4 UART的时钟控制UART以异步方式工作,接收器和传输器工作于不同的时钟频率,在传送数据的时候,一定要预先知道被传送数据的传输频率。也就是说,对于接收的UART来说,它在接收之前需要知

19、道传输的UART的工作频率;相反,对于传输的UART来说,在它传输之前应该知道接收的UART的工作频率。由于很多情况下,同一个UART的传输器和接收器都工作于相同的频率下,可以把UART的传输、接收模块设置为统一的工作频率。2.5 UART的数据采样在接收器接收数据时,UART的内部时钟频率往往高于外部数据输入频率。当接收器开始接收信号时,如果内部时钟工作的频率接近或者小于外部数据传输频率,那么在接收器接收数据时,在数据采样的边缘很可能采集不到数据,或者采集到错误的数据。采样的频率可以设置为外部数据传输频率的8倍,16倍。该UART采用的16倍外部时钟频率,采样的波形图如下所示。图 2-4 采

20、样波形图第三章 UART的硬件设计UART是广泛使用的串行数据传输协议,允许在串行链路上进行全双工的通信。串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO)。有时我们不需要使用完整的UART的功能和这些辅助功能。如果设计上用到了FPGA/CPLD器件,那么就可以将所需要的UART功能集成到FPGA内部。本设计使用Verilog HDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。3.1 UART总体构架3.1.1 UART结构

21、UART主要有由数据总线接口、总线控制逻辑、波特率发生器、发送部分和接收部分组成。其功能包括微处理器接口,发送缓冲器(tbr)、发送移位寄存器(tsr)、帧产生、并转串、数据接收缓冲器(rbr)、接收移位寄存器(rsr)、帧产生、串转并。 图 3-1 UART的模块构成3.1.2 UART的帧格式UART的帧包括线路空闲状态(idle,高电平)、起始位(start bit,低电平)、58位数据位(data bits)、校验位(parity bit,可选)和停止位(stop bit,位数可为1、1.5、2位)。这种格式是由起始位和停止位来实现字符的同步 UART内部一般有配置寄存器,可以配置数据

22、位数(58位)、是否有校验位和校验的类型、停止位的位数(1,1.5,2)等设置。 图 3-2 UART的帧格式3.1.3 UART 的设计规格设计采用模块化、层次化的设计思想,全部设计采用Verilog HDL实现。整个UART IP由串行数据发送模块、串行数据接收模块、接收和发送FIFO、总线接口逻辑、寄存器和控制逻辑构成。串行发送模块和接收完成并/串和串/并的转换。发送和接收FIFO用于缓存发送和接收的数据。总线接口逻辑用于连接UART IP内部总线和微控制器接口。寄存器和控制逻辑实现UART IP内部所有数据的收发、控制和状态寄存器、内部中断的控制及波特率信号的产生。3.1.3.1 UA

23、RT模块的划分该UART主要由波特率产生器模块、发送器模块、接收器模块、微控制器模块构成。结构图可参考图 3-1。主要模块代码包括:UART.v :UART的顶层模块,主要是完成各子模块的调用。U_XMIT.v :异步发送传输模块,将数据由并行转换成串行的输出。U_REC.v :异步接收模块,完成数据由串行到并行的转换,并送给CPU。U_BAUD.v :波特率生成模块,主要产生波特率时钟。U_MP.v :微控制器模块,完成UART内部信号的处理、与外部信号的连接。3.1.3.2输入输出信号描述整个UART的输入输出信号如下描述:表3-1 UART输入输出信号说明信号输入/输出信号说明输入输出信

24、号定义SYS_CLKinput系统时钟表3-1续SYS_RSTinput系统复位信号MP_CSInputUART片选信号MP_WRInputUART写使能信号MP_RDInputUART读使能信号BAUD_RAT_DIVInput波特率分频系数UART_DATAInputUART数据接收端MP_DATA_TO_UARTInput控制器向UART的将要输出的数据UART_XMITHOutputUART数据发送端XMIT_DONEOutputUART数据发送完成反馈信号MP_DATA_FROM_UARTOutputUART到控制器的UART已经接收到的数据MP_DATA_READYOutputUA

25、RT通知控制器可以取数信号3.1.3.3模块简介1、 发送器模块发送器模块主要由并串转换装置、状态机、逻辑控制单元和数据选择器构成。它主要是负责并行数据转换成串行数据的输出,并在数据传输的开始置开始位0,数据传输结束是置停止位1。 图 3-3 发送器模块外部接口图表3-2 发送器输入输出信号说明信号输入/输出信号说明输入输出信号定义UART_CLKinputUART时钟UART_RSTinputUART复位信号XMITHinputUART发送使能信号表3-2 续XMIT_DATAinputUART发送数据并行输入口UART_XMITTHoutputUART发送数据线UART_DONEHoutp

26、utUART数据发送完成应答信号2、 接收器模块接收器模块主要由状态机、串并转换装置和逻辑控制单元组成。主要功能是在检测开始位后,对输入的有效数据进行串行到并行的转换,在接收到的数据到一个字符宽度后将并行数据输出。图 3-4 接收器模块外部接口图表3-3 接收器输入输出信号说明信号输入/输出信号说明输入输出信号定义UART_CLKinputUART时钟UART_RSTinputUART复位信号UART_DATAinputUART数据接收信号REC_DATAoutputUART接收数据并行输出线REC_READYoutputUART数据接收完成应答信号3、 波特率产生模块波特率产生模块主要由计数

27、器、逻辑控制单元和反向器构成。它主要负责由系统时钟生产波特率时钟。图 3-5 波特率产生模块外部接口图表3-4 发送器输入输出信号说明信号输入/输出信号说明输入输出信号定义SYS_CLKinput系统时钟SYS_RSTinput系统复位信号BAUD_RAT_DIVinput波特率分频系数输入UART_CLKoutputUART时钟输出信号4、 总线接口控制模块本设计的数据接口比较简洁,包含两个接口:UART 管脚和同步处理器总线接口。UART 管脚包括发送和接收管脚,能直接通过底层通信协议与计算机进行通讯,也能直接与远程的UART器件进行数据交换。同步处理器数据接口是一个8位并行总线,受UAR

28、T 控制模块的控制和驱动。由于其端口在后文中有很详细的说明,这里就不再累诉。图 3-6 总线接口控制模块3.2 串行数据发送模块3.2.1 发送顶层模块串行数据发送模块将数据或地址码由并行转换为串行,并从串行总线输出。设计采用有限状态机实现,其顶层模块图如下 图 3-7 UART发送器顶层模块UART transmitter各信号定义: 输入部分: UART_CLK : 波特率时钟,频率是传送波特率的16倍 XMITH :输入使能位,高电平有效 SYS_RST_L : 系统复位,高电平有效时,发送器回到初始工作状态XMIT_DATAH : 并行输入数据,8 bits ,需要传送的数据输出部分:

29、 UART_XMITH : 串行输出数据,包括起始位和结束位 XMIT_DONEH : 每输出一字节数据,变为高电平,提示主机传送完毕 3.2.2 取数控制为了确保数据的同步性和准确性,UART发送器利用两个计数器来控制发送:Xmitbit Counter和Bit_Cell Counter。Xmited bit Counter用来控制发送的数据个数,数据可取,并开始传送时,用Xmited bit Counter来确定何时插入正确的起始位,数据传送完毕,即Xmited bit Counter计数到传送的数据宽度时,插入结束位。而另一个计数器Bit_Cell Counter是为了从寄存器中取数时控

30、制数据位宽而设计的。 图3-8 发送器取数原理图在上图中,T为1 bit数据的位宽,TUA=T/16,为波特率时钟周期。将发送字符中的每一个数据用16倍频的信号去对其抽样,计数器每进行一次循环,就采样1 bit数据,并在将该数据输出。所以在发送字符的数据宽度应为TUA的16倍,而起始位和结束位的位宽可以通过修改配置文件来确定用户需要的数据宽度。3.2.3 发送状态机发送器的主要控制装置为其状态机(State Machine)。分为空闲、取数、发送三个状态。下图为状态机流程图。图 3-9 发送状态机流程图各个状态说明如下:空闲状态:状态机不断检测发送UART使能位,如果使能位为高、UART使能打

31、开,串行发送进入取数状态。取数状态:在此状态,分两个周期从发送寄存器中取出待发送的数据或者地址,然后进入发送状态。发送状态:在此状态,状态机按照九位串行数据的格式依次发送开始位、数据位、地址指示位。待停止位发送完毕后,返回空闲状态。一个字节的数据发送完毕后,进行下一个字节数据的发送流程。发送状态其由R_WAIT的内部信号XMITDATASELH控制,未在图上标出。而X_START、X_STOP分别为起始和结束状态,在此状态,分别为数据添加起始位和结束位。X_WAIT为等待状态,由计数进行控制,计满一个循环后才对寄存器进行移位并取数。在X_SHIFT状态,有效数据被送出。3.2.4 EDA工具验

32、证3.2.4.1综合顶层模块 图3-10 发送器顶层综合图由上图可以看出,综合出来的结果与设计的构想一致,内部层次较为合理。限于篇幅,发送器内部各小模块的综合结果将不再赘述。3.2.4.2发送验证波形图图3-11 发送数据验证波形图上图是由Modelsim仿真得到的验证波形图。限于篇幅,在这里只列出了波形图的一部分,包括传送一字节数据的完整周期。由上图可以看出,在Reset之后,发送器检测到使能位有效,准备传送数据。发送端先插入长度为一个位宽的起始位0,然后将要传送的数据8b01010101从低位到高位逐个输出,即uart_xmitH依次送出1、0、1、0、1、0、1、0,送完数据以后,再插入

33、长度为一个位宽的结束位1,整个字符连同起始位、结束位就传送完毕。起始位和结束位是通过计数器bitcountH来控制的,在计到8以后,该计数器将被置0。而另一个计数器bitcellcount控制位宽,在整个周期内变化太快,未在图中列表里表示。3.3 串行数据接收模块3.3.1 接收顶层模块串行数据接收模块将串行总线上送来的串行数据转换成并行数据并输出,接收逻辑也采用有限状态机实现,接收模块顶层图如下UART Receiver 各信号定义: 输入部分:UART_CLK : 输入波特率时钟,频率为波特率的16倍SYS_RST_L : 输入系统复位信号,高电平有效UART_DATAH : 外部输入的串

34、行数据 输出部分:REC_DATA : 接收并转化得到的8 bit 数据输出REC_READY : 串并转换结束,为高电平,提示外设送下一个数据3.3.2 数据同步装置由于数据异步输入,为了保证在接收器内部处理时,数据在时钟的上升沿稳定,在输入端加入两个串联的D触发器,实现数据的同步:图 3-12 接收器顶层模块图 图 3-13 接收端数据同步装置 其RTL级描述为:always (posedge UART_CLK) if (!SYS_RST_L) begin DATA_T = DATA; /触发第一次 DATA_S = DATA_T; /触发第二次end示意波形图:图 3-14 输入同步示意

35、图3.3.3 数据抽样装置3.3.3.1抽样原理为了使抽样数值更加准确,在每个数据位中间进行三次抽样,即在UART_CLK的计数值为6,8,10时抽样,最后比较收到的0和1的个数,输出抽样次数最多的数据。原理图如下:图 3-15 接收数据抽样原理3.3.4 接收状态机接收逻辑也采用有限状态机实现,分为空闲状态、寻找开始位、接收数据和保存数据四个状态。流程图如下:图 3-16 接收状态机流程图Receiver各个状态说明如下:空闲状态(R_START):在此状态,接收器不断检测UART使能和串行输入信号的状态。如果串行输入信号出现由高到低的电平变化且UART复位信号(低电平有效)为高,则将采样计

36、数器复位,并进入开始位状态。寻找开始位(R_CENTER):在此状态,状态机等待到计数值为6,8,10时,采样串行输入的电平。如果有一次检测到1,表示起始位不稳定,返回空闲状态。否则三次均为0,判断开始位有效,进入接收数据状态。接收数据(R_SAMPLE和R_WAIT):在R_SAMPLE状态,对于接收数据,在脉冲的6 ,8 , 10位置采样三次,较多的电平作为接收的有效数据。而R_WAIT控制依次接收串行数据线上的数据位、地址指示位和停止位,控制何时进入保存数据状态。保存数据(R_STOP):此状态将收到的串行数据以并行方式从接口的并行总线输出,然后返回空闲状态,准备进行下一个字节数据的搜索

37、和接收。3.3.5 EDA工具验证3.3.5.1顶层模块图 3-17 接收器顶层综合结果由上图可以看出,综合结果与设计构想完全一致,各子模块功能、层次较为明确。限于篇幅,各子模块的综合结果不再赘述。3.3.5.2数据接收验证波形图图 3-18 接收验证波形图 上图中,reset后,串行送入数据8h55,在检测到起始位后,读入数据,串并转换,接收完后REC_READY为1,移位后数据为8b01010101,功能正确。3.4 波特率发生器3.4.1 波特率发生器概述UART的接收和发送是按照相同的波特率进行工作的。波特率发生器产生的时钟频率不是波特率,而是波特率的16倍,其目的在于发送时控制准确的

38、数据宽度,接收时进行精确地采样,以接收到准确的数据。波特率时钟是由系统时钟分频后生成的,设计中通过计数器控制来实现。当计数器极计到最大值BAUD_RATE_DIV时,将BAUD_CLK反转,就形成了波特率时钟的方波。BAUD_RATE_DIV的计算式如下:f (UART_CLK) =16 BAUD式1f (UART_CLK) = f (SYS_CLK) / (BAUD_RATE_DIV2) .式2所以,BAUD_RATE_DIV= f (SYS_CLK) / (16 BAUD2)式33.4.2 EDA工具验证3.4.2.1 综合结果图3-19 波特率发生器综合结果3.4.2.2仿真验证波形图图

39、 3-20 波特率验证波形图 本例中,BAUD_RATE_CLK为164,即16进制计数0a3。3.5 总线接口控制模块总线接口控制模块(MP模块)主要控制何时读写数据以及何时生成中断,数据引脚较多,但总共只有两部分:UART 管脚和同步处理器总线接口。 图3-21 MP模块顶层结构图 模块顶层结构如上。MP模块实际就是控制UART各内部信号,控制何时读写寄存器,并在必要时生成中断,以保证UART能够稳定、准确地读写数据,满足数据传输的需要。3.5.1 接口功能描述 MP模块中信号线较多,各信号线又与UART的内部模块互连,现将各接口功能分模块描述如下:1、MP使能信号SYS_RST系统同步复

40、位MP_CLK系统时钟MP_CS_LUART使能信号MP_RD读使能信号MP_WR写使能信号2、 发送相关信号MP_DATA_TO_UART待发送的数据XMIT_DONE发送完毕通知信号MP_DATA_TO_UART发送出的并行信号3、 接收相关信号MP_DATA_FROM_UART接受到的并行信号REC_DATA接收的串行数据REC_READY接收使能信号4、 波特率相关信号 BAUD_RAT_DIV输入到BAUD块中的计数最大值 3.5.2 EDA综合结果 图 3-22 MP模块综合结果第四章 UART的FPGA验证4.1 Xilinx Spartan-3 系列器件介绍Spartan-3系

41、列器件采用Xilinx最成功的Virtex- FPGA器件构架,并利用90nm和12 英寸晶圆工艺生产,芯片大小比0.13m工艺的产品缩小了80。为了优化结构,降低成本,Xilinx对Spartan-3系列器件的内部结构做了部分简化,器件的晶元大小比0.13m工艺缩小了50。这就使得新产品的成品价格比其他厂商的器件降低了80,Spartan-3的性价比大幅度提高。为了能够提供更多的I/O引脚,Spartan-3采用错位的双排I/O引脚结构。该系列产品可提供5万至500万的系统逻辑门,从3.50美元起价,完全满足顾客对低成本解决方案的要求,并把价格降低到可以和ASIC、和微控制器相抗衡的水平。器

42、件主要由可配置逻辑块(CLB)、输入输出模块(IOB)、基于矢量的内部互连结构、数字延迟锁相环(DLL)、先进的多级存储器结构组成。Spartan-3系列器件还提供四个功能强大的数字化时钟管理器(DCM),由基本的数字延迟锁相环(DLL)构成,具有完善的频率合成、相移、时钟偏移消除等功能。另外,Spartan-3还提供丰富的嵌入式DSP功能,可保证每秒执行3300亿次乘累加(MAC)运算的高性能DSP应用。在块存储器方面,Spartan-3可提供多达1872Kb的块存储器,及多达520Kb的分布式存储器,这些存储器都具有完全的双口功能。据权威统计,到目前为止,Xilinx的Spartan-3系

43、列FPGA是工艺最先进、价格最低、单位成本最有效、I/O管脚最多的平台级可编程逻辑器件,能够满足大部分的芯片设计验证的需要。设计验证采用Spartan-3系列的XC3S400 FPGA器件,内部时钟频率达326MHz,可提供8064个逻辑单元,40万个系统门。XC3S400支持17种单端接口标准和6种差分接口标准,输出信号的逻辑摆幅可达1.14V和3.45V,每个I/O口支持622Mb/s的数据传输率。16个18 位18位乘法器,16个18 Kb块存储器,这些使得在一般的集成电路设计验证中,XC3S400能够完全胜任。4. FPGA实现过程本次验证使用的器材如下:、FPGA实验板: 图41 F

44、PGA试验板示意图、串口调试助手:图略。验证方法:我们让串口调试软件对发送数据(如),收到后在上显示出来;同时又在向串口调试程序发送数据(如),串口调试程序收到后也在接收数据框中显示出收到的数据。1、 实验验证顶层方块图: 图 42 试验顶层方块图如图4-2 所示,顶层调用了UART 、MCU 、DECODER 、DISPLAY四个模块。其中UART就是核心功能块完成数据的发送和接受;MCU完成对UART的控制,即在发送时,给UART数据,接受时从UART取数据;DECODER对从UART取回来的数据进行解码,转换成8段数码管可以显示的码;DISPLAY就是一个8段数码管的一个控制器,它把译码

45、后的接收到的数据显示出来。2、 验证结果:( 1 ) 软件结果: 图43 软件验证结果 如图4-3 所示,在软件的数据发送区内看到55,表示软件正往串口发送数据55;在软件数据接收区内看到55,表明软件成功地从串口收到数据55。这表明了设计的数据发送功能实现了。(2)FPGA验证结果 图44 FPGA验证结果示意图如图4-4 所示,在FPGA的实验板上成功地看到了数据55,表明设计的数据接收功能实现了。由试验验证可知,本设计基本满足要求。注意:由于这次实验用的晶振是50MHz的,所以在除频的时候算出来的除频系数就不是整数,所以在接收很多数据后就有可能错一两个数据。这种情况在发送的验证中尤为明显

46、,甚至可能什么都收不到。如果用11.0592MHz的晶振就没有以上问题。第五章 结论 IC设计最重要的只有三点:低成本、低功耗、高速度。但是要做到这样看似简单的三点需要极深厚的经验和功底。在实际的设计中,往往达到其中的一点或者两点,就要舍弃另外的部分。本UART是在资深工程师的指导下,完全由IC设计新手完成的,为了达到这样的目标,设计中只集成了UART最核心的功能,以便于能够嵌入到SOC或者其他的系统应用中。因此,本设计达到了UART应用的基本功能,但是在数据传输要求比较严格的情况下,还需要做一些必要的改进,需改进的地方主要有以下几点: 1. 本设计中为了使此IP核便于嵌入系统,而逻辑门又不致

47、于太多,忽略了校验,以及在接收端由于接收校验与发送来的校验位不符时应产生的中断。在高可靠要求的系统设计中,这些是必不可少的。因此,在必要时,可在设计中加入奇偶校验,如果要求更高的话,可考虑CRC校验。2. 设计假定通信双方在通信前已建立一套协议,知道对方发送或接收的波特率,以便于进行操作。实际设计中,可考虑更灵活一些,在开始接收时,加入波特率时钟频率检测器(比如,通过检测特定位的位宽来判断传送的波特率),然后再进行数据的采集。但是这样会使得设计的复杂度以及系统的门数大大增加。3. 为了使设计更完善,克服以上的问题,设计中还应当加入FIFO寄存器,在数据到来较多时,可用FIFO进行缓冲,并使得U

48、ART工作更为流畅,而不需要每取一笔数据就要与主机通信,同时也可以提高一定的速度。至此, UART的具体实现与设计已经全部完成。以上的问题,在需要的场合做相应的改动即可。通过本次设计,我才真正理解到数字IC设计不只是能够编程、善于编程就行的,更多的是后续工作的模拟、仿真与验证。设计时要极为小心和耐心,因为一不小心,可能以前的努力都白费了,只有到流片成功之后,才算真正的完工。致 谢要完成本次毕业设计,要感谢很多的人。它给我的大学生活划上了圆满的句号,又为我划出了工作上新的起跑线。此刻,深深感谢那些给我帮助和鼓励的人们:首先感谢我的学校导师高博老师,他对我的毕业设计尤其是论文的写作上提纲挈领的指导

49、和细致入微的批阅。感谢四川大学所有的老师,感谢你们对我的谆谆教诲,是你们让我在大学的生涯里取得了长足的进步,使我能够自信和从容地走上工作岗位,开辟我人生新的篇章。感谢凌成科技(成都)有限公司提供了如此良好的环境。感谢袁总、英姐,你们教育我们如何做好一个正直的人、一个称职的工程师;感谢Mountain博士、王勇经理、亨哥、宁哥、以及上一届的师兄姐同仁们,你们教给了我这么多关于IC设计的知识;感谢设计培训中心的所有同仁,在工作和生活中给了我很大的帮助。最后请允许我再次对以上各界前辈及同仁表示真挚的感谢!参考文献【1】 John D.Carpinelli 计算机系统组成与体系结构(英文版) 北京 人

50、民邮电出版社 2002【2】 John F.Wakerly 数字设计原理与实践(第三版 影印版) 北京 高等教育出版社 2002【3】 李朝青 单片机原理及结构技术(简明修订版) 北京 北京航空航天大学出版社 2003【4】 夏宇航 Verilog HDL数字系统设计教程 北京 北京航空航天大学出版社 2003【5】 Michael D.Ciletti Advanced Digital Design with the Veilog HDl 北京 电子工业出版社 2004【6】 Behrooz Parhami COMPUTER ARITHMETIC Algorithms and Hardware

51、 DesignsNew York OXFORD UNIVERSITY PRESS 2000【7】 UART To Bluetooth Interfacing -Application Note , Philips ,2001【8】 Cadence Design Systems Inc. Verilog-XL Reference C . Cadence, 2003【9】 Neil H.E.Weste David Harris CMOS VLSI Design A Circuits and systems Perspective Third Edition Pearson Education,In

52、c 2005【10】 Michael Keating Pierre Bricaud Reuse Methodology Manual for system-on-a-chip designs(Third Edition) Boston KLUWER ACADEMIC PUBLISHERS外文翻译 UART与蓝牙的接口连接应用规格书文档信息关键词 :UART,蓝牙,无线摘要 :本应用规格书说明了如何通过飞利浦UART将蓝牙无线技术方案结合到一个系统当中。修订历史版本日期说明_220040810用规格书,(9397 750 13929)。2.3.2”中断使能寄存器(IER)”_120040615应

53、用规格书,初始版本(9397 750 13283)。1 介绍蓝牙无线技术正在成为通信舞台上的一个流行标准,在无线技术当中,它是发展最快的领域之一,它方便,易于使用,而且拥有能满足当今大多数移动和私人通信所需的带宽。配备蓝牙技术的装置支持无线点到点连接,以及无线接入局域网、移动电话网络、以太网和家庭网络的无线访问。蓝牙技术处理通信信道的无线部分,以无线方式在装置之间传输和接收数据,它传送收到的数据,并通过主机控制器接口(HCI)接收要发送到主机或来自主机系统的数据。目前最流行的主机控制器接口是UART(通用异步收发器),或者USB(通用串行总线)链路;参见图1。虽然主机控制器接口可以是UART或

54、USB,但UART更为简单的传输协议使到软件开销大大降低,是更加经济的硬件解决方案,一个高性能的UART(例如飞利浦UART)接口上的数据吞吐量几乎可以与USB接口相媲美。根据2004年4月出版的In-Stat/MDR报告1,除了移动电话之后,蓝牙技术的应用将包括无绳电话、接入点、台式电脑、笔记本电脑、PC和内存卡、打印机、数码摄像机和照相机、各种各样的家用电器(游戏、扬声器、机顶盒和MP3播放器)、汽车和工业领域。据估计,在设计用于上述应用的蓝牙芯片中,有很大比例都在主机控制器中包含了一个UART,针对这一特点,本应用规格书重点讲解飞利浦公司独立的UART能给设计带来的好处。在本应用规格书中,我们将只把重点放在UART接口上。本文将以通俗易懂的方式说明如何通过一个无缝UART将一个蓝牙模块结合到一个主机系统上,并给设计者提供一个蓝牙系统的最佳解决方案。2 UART通用异步接收器和发射器(UART)是用于同串行输入和串行输出的装置进行通信的,串行传输以速度为代价,换取了成本的降低和连线复杂程度的降低,对于许多应用而言,这是一个令人满意的权衡。UART提供串行异步接收数据的同步化,发送器和接收器两个部分的并行到串行和串行到并行的

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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