试验四串口接收模块电路设计

上传人:w****4 文档编号:48942028 上传时间:2022-01-16 格式:DOC 页数:4 大小:31.50KB
收藏 版权申诉 举报 下载
试验四串口接收模块电路设计_第1页
第1页 / 共4页
试验四串口接收模块电路设计_第2页
第2页 / 共4页
试验四串口接收模块电路设计_第3页
第3页 / 共4页
资源描述:

《试验四串口接收模块电路设计》由会员分享,可在线阅读,更多相关《试验四串口接收模块电路设计(4页珍藏版)》请在装配图网上搜索。

1、实验四 串口接收模块电路设计、实验目的:1、熟练使用 ISE 设计工具。2、理解串口传输协议。理解采用“自顶向下”设计思路,分解模块的方法。3、在 ISE 使用 Verilog HDL 设计串口接收模块,完成仿真、下载。二、原理分析(一)串口传输协议概述设计完成异步串口通信通用异步收发是一种典型的异步串口通信,简称UART串口通信时序如图 1 所示。图 1 通用异步收发时序图由图 1可以看出,在没有数据传送时,通信线会一直处于高电平,即逻辑 1 状态;当有数据传送时,数据帧以起始位开始,以停止位结束。起始位为低电平,即逻辑 0 状态;停止 位为高电平,即逻辑 1状态,其持续时间可选为 1 位、

2、1.5 位或 2 位(本次设计选择持续时 间 1 位)。接收端在接收到停止位后,知道一帧数据已经传完,转为等待数据接收状态;只 要再接收到 0 状态,即为新一帧数据的起始状态。数据帧的数据位低位(LSB)在前,高位(MSB)在后,根据不同的编码规则,数据位可能 为 5 位、6 位、7 位或者 8位(本次设计数据位定位 8 位) 。校验位也可根据需要选择奇校验、 偶校验或者不要校验 (本次设计不要校验位) 。(二) 串口时序分析串口通讯常用“波特率”表述串口传输速率,常用的参数有9600 bps 和 115200 bps等。在硬件传输角度看, 波特率表征了传输一位数据所需要的时间。 例如:波特率

3、是 9600 bps, 传输一位数据的时间是 1/9600= 0.000104166666666667 秒。如果FPGA系统时钟是20MHZ 则一位数据传输时间相当于 (1/9600)/(1/20M)=2083个20MHZ时钟周期。设一帧数据位数 =1(开始位) +8(数据位) +1(校验位) +1(结束位) =11 位,所以传 输一帧数据的时间是 11*1/9600=0.00114583333333333333333333333333 秒。为了稳定采集串口数据帧的数据,需要在每位数据的“中间时刻”采样,由此,需要在 每位数据开始时刻对时钟进行计数,若系统时钟是20MHZ则在计数至2083/2

4、=1042时采样此时刻的数值。三、系统分析:为实现串口接收电路,FPGA应该完成:1、及时发现数据传输的开始,并判断每一位的开始。2、按照“在数据位中间采样”的要求,确认采样时刻。3、将采样得到串行数据转换为并行数据。4、将并行数据显示在下载板上。本次实验参数:串口传输数据率 9600bps,每帧数据11位。按照“自顶向下”设计思 想,系统分为以下五个子模块:1 、帧开始监测模块( detect_module )输入端口:串行输入数据RX_Pin_ln,系统时钟 CLK,复位信号RSTn其中当RSTn=0时系统复位。输出端口: H2L_Sig参考代码:module detect_module(

5、 CLK, RSTn,RX_Pin_ln, H2L_Sig);input CLK;input RSTn;input RX_Pin_In;output H2L_Sig;reg H2L_F1;reg H2L_F2;always ( posedge CLK or negedge RSTn ) if( !RSTn )beginH2L_F1 = 1b1;H2L_F2 = 1b1;endelsebeginH2L_F1 = RX_Pin_In;H2L_F2 = H2L_F1; endassign H2L_Sig = H2L_F2 & !H2L_F1;endmodule2、数据位中心定位模块( rx_bps_

6、module ) 输入端口:系统时钟 CLK;复位信号RSTn,当RSTn=Q系统复位;数据位有效信号 Count_Sig, 当 Count_Sig=1 ,表示有效位传输。输出端口: BPS_CLK当计数至每一位的中间位置,BPS_CLK=1提示信号采集时间到,否则不进行信号采集。设系统时钟20MHZ则参考代码如下:module rx_bps_module(CLK, RST n,Co un t_Sig,BPS_CLK );input CLK;input RSTn;input Count_Sig;output BPS_CLK;reg 11:0Count_BPS;always ( posedge

7、CLK or negedge RSTn )if( !RSTn )Count_BPS = 12d0;else if( Count_BPS = 12d2082 )Count_BPS = 12d0;else if( Count_Sig )Count_BPS = Count_BPS + 1b1;elseCount_BPS = 12d0;assign BPS_CLK = ( Count_BPS = 12d1041 ) ? 1b1 : 1b0;endmodule3、数据装载模块( rx_control_module ) 输入端口:系统时钟 CLK,复位信号RSTn,当RSTn=(时,系统复位帧开始信号 H

8、2L_Sig, 当 H2L_Sig=1 ,表示一帧信号开始; 串口数据输入信号: RX_Pin_In, 位中心定位信号: BPS_CLK,串口接收使能信号 RX_En_Sig,当RX_En_Sig=1,系统正常工作。反正不接收数据。输出端口: 串口数据帧开始确认信号: Count_Sig, 当 Count_Sig=1 ,表示串口输入帧开始时 刻,持续一个系统时钟周期。装载好的串口数据:RX_Data,位宽为8bits串口数据接收结束信号:RX_Done_Sig,当RX_Done_Sig=1,表示一帧串口数据接收完毕。参考代码:module rx_control_module(CLK, RSTn

9、, H2L_Sig, RX_Pin_In, BPS_CLK, RX_En_Sig, Count_Sig, RX_Data, RX_Done_Sig);input CLK;input RSTn;input H2L_Sig;input RX_En_Sig;input RX_Pin_In;input BPS_CLK;output Count_Sig;output 7:0RX_Data;output RX_Done_Sig;reg 3:0i;reg 7:0rData;reg isCount;reg isDone;always ( posedge CLK or negedge RSTn )if( !RS

10、Tn )begini = 4d0;rData = 8d0;isCount = 1b0;isDone = 1b0;endelse if(RX_En_Sig )case ( i )4d0 :if( H2L_Sig ) begin i = i + 1b1; isCount = 1b1; end4d1 :if( BPS_CLK ) begin i = i + 1b1; end4d2, 4d3, 4d4, 4d5, 4d6, 4d7, 4d8, 4d9 :if( BPS_CLK ) begin i = i + 1b1; rData i - 2 = RX_Pin_In; end4d10 :if( BPS_

11、CLK ) begin i = i + 1b1; end4d11 :if( BPS_CLK ) begin i = i + 1b1; end4d12 :begin i = i + 1b1; isDone = 1b1; isCount = 1b0; end4d13 :begin i = 1b0; isDone = 1b0; end endcase assign Count_Sig = isCount; assign RX_Data = rData; assign RX_Done_Sig = isDone; endmodule这一代码采用有限状态机方式, 在监测到串口数据帧开始时刻, 如果系统接收

12、使能信号 有效,展开对串口输入的几个阶段:帧开始,有效帧数据接收,接收帧校验位,接收帧结束 位,一帧接收结束,转回帧开始状态。4、显示模块 (display)输入端口: sum,从串口接收到的8bits的一帧数据 输出端口:自定义本模块根据下载板的资源,将接收到的 8bits 数据显示出来,可以采用数码管,发光 二极管等。5、顶层模块( top )将以上 4个模块合理组合,构成一个系统。四、实验内容:1在理解串口协议2. 采用VerilogHDL,设计分频模块,将下载板上40MHz时钟转换为所需要的20MHZ寸钟。3. 分析帧开始监测模块 (detect_module ),数据位中心定位模块

13、(rx_bps_module ), 数据装载模块( rx_control_module )的功能,完成:帧开始监测模块( detect_module ), 数据装载模块( rx_control_module )两个模块的功能仿真。4. 根据下载板资源,设计数据显示方案,并设计 display.v 模块并仿真。5. 在理解各个参考代码基础上,画出系统模块连接图,完成顶层模块top.v 的设计。6. 根据下载板资源,锁定引脚,编译适配以上文件,最后进行下载和硬件测试。四、思考题:1、简述帧开始监测模块( detect_module ),数据位中心定位模块( rx_bps_module ), 数据装载模块( rx_control_module )的功能各是什么?这三个模块是如何配合实现了串口 数据的接收?2、如果串口比特率改为115200 bps,代码应该做怎样的修改?3、如果要设计串口数据发送模块,该如何设计,简要写出设计系统任务书(包括设计目 标,功能模块划分,子模块功能描述等)五、实验报告 :要求按照系统实现要求,分析串口通讯协议,描述按“自顶向下”设计方法分解系统, 实现各子模块的思路,实验报告附功能仿真波形及其分析。阐述下载测试电路,包括引脚锁定,下载调试效果。 回答本实验的思考题。

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