verilogrs232串口模块实验报告

verilogrs232串口模块实验报告

ID:34185636

大小:878.09 KB

页数:11页

时间:2019-03-04

verilogrs232串口模块实验报告_第1页
verilogrs232串口模块实验报告_第2页
verilogrs232串口模块实验报告_第3页
verilogrs232串口模块实验报告_第4页
verilogrs232串口模块实验报告_第5页
资源描述:

《verilogrs232串口模块实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1设计概述实验功能:实现RS232的双工通信。实验环境:1)硬件环境:PC机一台、ml507PFGA开发套件;2)软件环境:开发软件ISE14.5、代码编写软件Notepad++、仿真软件Modelsim、调试软件chipscope、串口调试工具。2设计原理2.1串行接口RS232工作原理串口用来连接FPGA和PC机,RS-232允许全双工通信,即计算机在接收数据的同时可以发送数据。串口按位(bit)发送和接收字节。通常以8位数据为1组,先发送最低有效位,最后发送最高有效位。尽管比按字节(byte)的并行通信慢,但是串

2、口可以在使用一根线发送数据的同时用另一根线接收数据。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。数据的传输没有时钟信号,接收端必须采取某种方式,使之与接收数据同步。1)串行线缆的两端先约定好串行传输的参数(传输速度、传输格式等);2)当没有数据传输的时候,发送端向数据线上发送"1";3)每传输一个字节之前,发送端先发送一个"0"来表示传输已经开始,这样接收端便可以知道有数据到来了;图1数据帧结构4)开始传

3、输后,数据以约定的速度和格式传输,所以接收端可以与之同步;5)在串口总线上‘高电平’是默认的状态,当一帧数据开始传输必须先拉低电平,这就是起始位,起始位之后是8位数据位,最后是校验位和停止位(可不加校验位)。传输完成一个字节之后,都在其后发送一个停止位("1")。(图1)2.2波特率发生器波特率是串口传输的传输速度;在微观上就是一个位的周期。常用的波特率有9600bps和115200bps。“9600bps”表示每秒可以传输9600位。本次实验我所选用的传输速率为9600bps。由于我们的FPGA通常运行在远高于960

4、0Hz的频率上(100MHz),因此需要分频产生接近9600Hz的时钟信号。若FPGA时钟为100MHz,则需要100M/9600=10416个时钟周期置位一次就可以得到9600Hz的时钟。3模块组成3.1接收模块接收模块示意图(图2)图2接收模块示意图串口接收包括三个模块:电平检测模块,用来检测数据开始,当检测到输入信号RX_Pin_In有下降沿时,可以判断信号到来,H2L_Sig信号输出为高电平通知接收控制模块准备接收数据;波特率定时模块,用来产生波特率(9600bps);接收控制模块,用来控制接收开始和结束。RX

5、_En_Sig为高电平时,若电平检测模块检测到有数据输入,则发出H2L_Sig高电平信号,接收控制模块输出Count_Sig信号,波特率定时模块开始计数。为了确保采集到的数据的准确性,数据采集都是在每位数据的中间进行着(图3)。为使采集信号出现在数据位中间,决定每次计数到5208产生一个采集信号BPS_CLK,持续一个时钟周期,计数到10416时计数器清零并重新计数,这样采集信号周期不变,准确度提高。图3数据定时采集示意图接收控制模块将8位数据位并行输出,输出RX_Done_Sig信号表示一帧数据结束,发送模块可以接收

6、来自RX_Data的数据。3.1.1detect_module.vdetect_module.v这个功能模块是为了检查电平由高变低。当检测到电平又高变低,在第40行就会输出高脉冲。3.1.2rx_bps_module.v波特率定时模块,用来产生波特率,其原理同计数器。当rx_control_module.v拉高Count_Sig,bps_module.v经BPS_CLK对rx_control_module.v产生定时。3.1.3rx_control_module.vrx_control_module.v是核心控制模块,

7、用来控制接收开始和结束。对串口的配置主要是1帧11位的数据,重视八位数据位,无视起始位,校验位和结束位。当RX_En_Sig拉高,这个模块就开始工作,它将采集来自RX_Pin_In的数据,当完成一帧数据接收的时候,就会产生一个高脉冲给RX_Done_Sig。44~62行是rx_control_module.v的核心控制功能。当rx_control_module.v模块被使能,该模块就会处于就绪状态,一旦detect_module.v检查到又高变低的电平变化(47行),会使步骤i进入第0位采集,然而isCount标志寄存

8、器同时也会被设置为逻辑1,rx_bps_module.v便会开始产生波特率的定时。3.1.4rx_module.vrx_module.v是一个组合模块,主要是包含detect_module.v,bps_module.v和rx_control_module.v,2个功能模块,和1个组合模块。完成对三个模块的例化及信号传递。3.2发送

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。