异步串行接口电路及通信系统设计
下同步地接收并且保存RS-232接收端口上的串行数据;在数据发送时,UART内核模块首先依据待发送的数据和奇偶校验位的设置产生完整的发送序列(包括起始位、数据位、奇偶校验位和停止位),之后控制移位寄存器将序列加载到移位寄存器的内部寄存器里,最后再控制波特率发生器驱动移位寄存器将数据串行输出。根据设计的要求,奇偶校验模块可以省略。 UART的接收和发送过程的原理框图如下:
5
异步串行接口电路及通信系统设计
二 系统设计方案
2.1顶层逻辑设计图
2.2 UART接收模块和发送模块设计框图
接收模块 发送模块
6
异步串行接口电路及通信系统设计
UART接收模块的功能:实时检测线路,当线路产生下降沿时,即认为有数据传输,启动接收数据进程进行接收,按从低位到高位接收数据。
UART发送模块的功能:空闲状态,线路处于高电平;当受到发送数据指令后,拉低线路一个数据的时间T,接着数据按低位到高位一次发送,数据发送完毕后,接着发送停止位(停止位为高电平),一帧数据发送结束。
2.3设计说明
整个串行通信系统由8个模块构成: 1个50分频器cnt50、1个1M分频器cnt_1M、1个用于产生16倍波特率(9600)的模块325分频器clkdiv325、1个并转串UART数据接收模块dyzrx、1个串转并UART数据发送模块dyztx、1个LED显示模块dyz_disp、1个自建ROM模块rom123以及它的地址寻址模块adress1 。其中,dyzrx和dyztx为UART核心模块。
实验室用FPGA上的晶振产生一个频率为50MHz的信号,该时钟信号通过模块cnt50和cnt_1M,得到1Hz的时钟信号,该时钟信号作为adress1、rom123的控制时钟和dyztx的wrsig(写控制)信号。同时,让50MHz的信号通过模块clkdiv325,得到一个16倍波特率的收发时钟频率,由它控制数据收发模块dyzrx和dyztx的数据收发以及显示模块dyz_disp的显示。
整个通信系统实现的功能为:当时钟上升沿到来的时候,PC机端接收来自串口调试助手的rx的数据并将其显示,即实现与PC机的通信;在 FPGA 端,发送的数据来自于rx串转并后的dataout的值,并将该值送给adress1,利用地址寻址得到ROM123内对应存储位置的数据,其中ROM123内的数据量为256,编程设置ROM123内的地址自增启动信号为“11”。即当小助手发送“11”的时候将启动adress1模块寻址读数,并将“11”显示在选中的数码管上,与此同时,在满足波特率的时钟作用下地址模块将自动连续发送ROM123的存储数据,发送结束之后将结束判断数据显示在FPGA端上。
7
异步串行接口电路及通信系统设计
三 单元程序设计及仿真分析
3.1系统时钟50分频模块
将系统的标准50HZ时钟50分频产生1Mhz的时钟,为时钟分频的一个过度模块,为产生1HZ的时钟奠基。电路原理图和模块图如下所示:
cnt50clkclkoutinst4
其时序仿真图如下:可见实现了对时钟的50分频的功能。
3.2 1MHz时钟1M分频
把1MHz时钟分为1HZ,RTL电路原理图及模块图如下,将上述的1MHz 的时钟分频为1Hz的时钟信号。
cnt_1Mclkclkout
8
inst5 异步串行接口电路及通信系统设计
时序仿真图如下:
由于分频的设置导致不能明显地看到分频的效果,但其正确性是毫无疑问的。
3.3 波特率产生模块
直接将系统的50MHz时钟325分频产生最接近16倍9600波特率的信号。其模块图和RTL原理图如下:
clkdiv325clkclkoutinst1
时序仿真图如下:跟上一情况一样由于分的次数太大无法看到明显的时序图。
9
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库异步串行接口电路及通信系统设计设计报告(3)在线全文阅读。
相关推荐: