资源描述:
《基于Verilog_HDL的UART串行通讯模块设计及仿真.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机与现代化2008年第8期JISUANJIYUXIANDAIHUA总第156期文章编号:100622475(2008)0820011205基于Verilog2HDL的UART串行通讯模块设计及仿真扈华,白凤娥(太原理工大学计算机与软件学院,山西太原030024)摘要:UART协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议,在实际工业生产中有时并不使用UART的全部功能,只需将其核心功能集成即可。波特率发生器、接收器和发送器是UART的三个核心功能模块,利用Verilog2HDL语言对这三个功能模块进行描述并加以整合,通过M
2、odelsim仿真,其结果完全符合UART协议的要求。关键词:UART;串行通讯;Verilog2HDL;Modelsim;仿真中图分类号:TP311文献标识码:ADesignandSimulationofUARTSerialCommunicationModuleBasedonVerilog2HDLHUHua,BAIFeng2e(ComputerandSoftwareCollege,TaiyuanUniversityofTechnology,Taiyuan030024,China)Abstract:TheprotocoloftheUART,a
3、full2duplexdatatransmissionprotocol,iswidelyusedindatacommunicationandcontrolsystems.Intheindustry,itdosenotuseallthefunctionsoftheUARTbutthecore.TherearethreekernelfunctionalmodulesinUARTwhichconsistsofbaudrategenerator,receiverandtransmitter.ByusingtheVerilog2HDLtodescrib
4、ethethreekernelfunctionalmodulesoftheUART,makingthemasawholeandsimulatingthemwiththeModelsim,theresultsofthesimulationarecompletelyconsistentwiththeUARTprotocol.Keywords:UART;serialcommunication;Verilog2HDL;Modelsim;simulation分。例如,在发送器空闲时,数据线保持在逻辑高电0引言平状态,发送器是通过发送起始位来开始一个数据
5、帧UART(UniversalAsynchronousReceiverTransmit2的传送,起始位使数据线处于逻辑0状态,提示接收ter)协议是一种串行数据传输协议。UART允许在串器数据传输即将开始。接着发送数据位,数据位一般行链路上进行全双工通信,在数据通信及控制系统中为8位一个字节的数据(也有5位、6位或7位的情得到了广泛运用。8250、NS16450等芯片都是常见的况),低位(LSB)在前,高位(MSB)在后。然后发送UART器件,这类芯片具有多种功能,还有许多辅助校验位,校验位一般用来判断传输的数据位有无错模块(如FIFO),但
6、在实际应用中有时只需要使用误,一般是奇偶校验。在使用中,该位常取消。停止[1]位在最后UART的部分功能,因而会造成一定的资源浪费。,用以标识数据传送的结束,它对应于逻辑使用Verilog2HDL将所需要的UART的核心功能集成1状态。到FPGA/CPLD内部,就可以实现紧凑、稳定且可靠UART的帧格式包括起始位(startbit,低电平)、5的UART数据传输。~8位数据位(databits)、校验位(paritybit,可选)和基本的UART通信只需要两条信号线(RxD,停止位(stopbit,位数可为1、1.5、2位)。这种格式[3]T
7、xD)就可以完成数据的全双工通信任务。TxD是是由起始位和停止位来实现字符的同步,如图1所UART发送端,为输出;RxD是UART接收端,为输示。[2]入。UART的基本特点是:在信号线上共有两种状态,分别用逻辑1(高电平)和逻辑0(低电平)来区收稿日期:2007206220基金项目:山西省留学人员科研资助项目(2004226)作者简介:扈华(19812),男,内蒙古巴彦淖尔人,太原理工大学计算机与软件学院硕士研究生,研究方向:计算机监控系统;白凤娥(19662),女,山西临县人,教授,研究方向:计算机监控系统,嵌入式系统。12计算机与现代化
8、2008年第8期图1UART的帧格式1UART的实现比较复杂的数字电子系统的设计往往采用自顶向下(Top2Down)的方法,即首先把设计任务划分成[4]几个模块,然