![VerilogRS232串口模块实验报告_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/15/037ec940-e2ef-44b5-9cb9-b559e1884d45/037ec940-e2ef-44b5-9cb9-b559e1884d451.gif)
![VerilogRS232串口模块实验报告_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/15/037ec940-e2ef-44b5-9cb9-b559e1884d45/037ec940-e2ef-44b5-9cb9-b559e1884d452.gif)
![VerilogRS232串口模块实验报告_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/15/037ec940-e2ef-44b5-9cb9-b559e1884d45/037ec940-e2ef-44b5-9cb9-b559e1884d453.gif)
![VerilogRS232串口模块实验报告_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/15/037ec940-e2ef-44b5-9cb9-b559e1884d45/037ec940-e2ef-44b5-9cb9-b559e1884d454.gif)
![VerilogRS232串口模块实验报告_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/15/037ec940-e2ef-44b5-9cb9-b559e1884d45/037ec940-e2ef-44b5-9cb9-b559e1884d455.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 设计概述实验功能:实现RS232的双工通信。 实验环境:1)硬件环境:PC机一台、ml507PFGA开发套件;2)软件环境:开发软件ISE14.5、代码编写软件Notepad+、仿真软件Modelsim、调试软件chipscope、串口调试工具。2 设计原理2.1 串行接口RS232工作原理串口用来连接FPGA和PC机,RS-232允许全双工通信,即计算机在接收数据的同时可以发送数据。串口按位(bit)发送和接收字节。通常以8位数据为1组,先发送最低有效位,最后发送最高有效位。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。通信使用3根线完成
2、:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。数据的传输没有时钟信号,接收端必须采取某种方式,使之与接收数据同步。1)串行线缆的两端先约定好串行传输的参数(传输速度、传输格式等);2)当没有数据传输的时候,发送端向数据线上发送"1";3)每传输一个字节之前,发送端先发送一个"0"来表示传输已经开始,这样接收端便可以知道有数据到来了;图1 数据帧结构4)开始传输后,数据以约定的速度和格式传输,所以接收端可以与之同步;5)在串口总线上高电平是默认的状态,当一帧数据
3、开始传输必须先拉低电平,这就是起始位,起始位之后是8位数据位,最后是校验位和停止位(可不加校验位)。传输完成一个字节之后,都在其后发送一个停止位("1")。(图1)2.2 波特率发生器波特率是串口传输的传输速度;在微观上就是一个位的周期。常用的波特率有9600bps和115200bps。“9600bps”表示每秒可以传输9600位。本次实验我所选用的传输速率为9600bps。由于我们的FPGA通常运行在远高于9600Hz的频率上(100MHz),因此需要分频产生接近9600Hz的时钟信号。若FPGA时钟为100MHz,则需要100M/9600=10416个时钟周期置位一次就
4、可以得到9600Hz的时钟。3 模块组成 3.1接收模块接收模块示意图(图2)图2 接收模块示意图串口接收包括三个模块:电平检测模块,用来检测数据开始,当检测到输入信号RX_Pin_In有下降沿时,可以判断信号到来,H2L_Sig信号输出为高电平通知接收控制模块准备接收数据;波特率定时模块,用来产生波特率(9600bps);接收控制模块,用来控制接收开始和结束。RX_En_Sig为高电平时,若电平检测模块检测到有数据输入,则发出H2L_Sig高电平信号,接收控制模块输出Count_Sig信号,波特率定时模块开始计数。为了确保采集到的数据的准确性,数据采集都是在每位数据的中间进行着(图3)。为使
5、采集信号出现在数据位中间,决定每次计数到5208产生一个采集信号BPS_CLK,持续一个时钟周期,计数到10416时计数器清零并重新计数,这样采集信号周期不变,准确度提高。图3 数据定时采集示意图接收控制模块将8位数据位并行输出,输出RX_Done_Sig信号表示一帧数据结束,发送模块可以接收来自RX_Data的数据。3.1.1 detect_module.vdetect_module.v这个功能模块是为了检查电平由高变低。当检测到电平又高变低,在第40行就会输出高脉冲。 3.1.2 rx_bps_module.v波特率定时模块,用来产生波特率,其原理同计数器。当rx_control_modu
6、le.v拉高Count_Sig, bps_module.v经BPS_CLK对 rx_control_module.v 产生定时。3.1.3 rx_control_module.vrx_control_module.v是核心控制模块,用来控制接收开始和结束。对串口的配置主要是1帧11位的数据,重视八位数据位,无视起始位,校验位和结束位。当RX_En_Sig拉高,这个模块就开始工作,它将采集来自RX_Pin_In的数据,当完成一帧数据接收的时候,就会产生一个高脉冲给 RX_Done_Sig。 4462行是rx_control_module.v的核心控制功能。当rx_control_module.v
7、模块被使能,该模块就会处于就绪状态,一旦detect_module.v检查到又高变低的电平变化(47行),会使步骤i进入第0位采集,然而isCount 标志寄存器同时也会被设置为逻辑1,rx_bps_module.v 便会开始产生波特率的定时。 3.1.4 rx_module.vrx_module.v是一个组合模块,主要是包含detect_module.v , bps_module.v和 rx_control_module.v,2个功能模块,和1个组合模块。完成对三个模块的例化及信号传递。 3.2 发送模块发送模块示意图(图4)图4 发送模块示意图发送模块包括波特率定时模块,当TX_En_Si
8、g低电平时不工作,高电平时开始计数,然后产生一个高脉冲经BPS_CLK输出给发送控制模块;发送控制模块在TX_En_Sig高电平时,每收到一个BPS_CLK,将TX_Data的数据,由TX_Pin_Out输出。当一帧数据发送完毕后,产生一个TX_Done_Sig的高脉冲(图5)。图5 数据定时发送示意图3.2.1 tx_bps_module.vtx_bps_module.v同样是作为“定时”的功能。当TX_En_Sig拉低电平的时候,它是处于随眠的状态。一旦TX_En_Sig拉高电平,那么tx_bps_module.v就开始计数。然后定时产生一个高脉冲经BPS_CLK给tx_control_m
9、odule.v。程序与rx_bps_module.v基本相同。3.2.2 tx_control_module.vtx_control_module.v控制模块是最为中心的一部分,当TX_En_Sig拉高电平,同时间tx_bps_module.v也会开始计数。tx_control_module.v将TX_Data的值,按tx_bps_module.v产生的定时,有节奏的往TX_Pin_Out发送。当一帧数据发送完毕后,就产生一个TX_Done_Sig的高脉冲。 3.2.3 tx_module.v4 功能仿真4.1 接收模块仿真4.1.1 接收模块验证程序增加一个control_module.v模
10、块,一开始control_module.v会拉高 RX_En_Sig使能rx_module.v。当有一阵数据经RX_Pin_In传入,rx_module.v就会接收然后将输出输出致RX_Data , 再产生一个高脉冲给RX_Done_Sig。当control_module.v 接收到RX_Done_Sig的高脉冲,就会将RX_Data的“前四位”输出致4位LED资源。rx_module_demo.v为一组合模块,完成对control_module.v和rx_module.v的例化。tb_RX_DATA.v为测试文件。1)control_module.v一开始的时候(36行)就将isEn设置为逻
11、辑1, 这个标志寄存器在38行驱动着 RX_En_Sig,即此时的rx_module.v已经进入就绪状态,control_module.v等待着 RX_Done_Sig的通知(34行)。一旦一帧数据接收完毕,RX_Done_Sig就会产生高脉冲, 然后rData被赋予RX_Data的值,同时isEn被设置为逻辑0(35行)。在下一瞬间, control_module.v再一次设置isEn为逻辑1,做好接收下一组数据的准备。 2)rx_module_demo.v(略)3)tb_RX_DATA.v测试文件输出的数据为“1111_1111”。4.1.2 Modelsim的仿真仿真结果(图6)图6 接
12、收模块验证仿真结果可以看出,该程序能够正确判断数据帧的起始位和终止位,正确接收了数据帧“1111_1111”,并将高四位赋给了Number_Data,来控制四个LED灯。4.2 发送模块仿真4.2.1 发送模块验证程序增加一个control_module.v模块,主要是每秒往tx_module.v发送0x31的数据。一开始control_module.v往TX_Data输出数据,然后拉高TX_Done_Sig使 tx_module.v开始工作。当 tx_module.v 发往一帧数据以后,就会对 TX_Done_Sig 产生一个高脉冲,以示发送完毕。tx_module_demo.v为一组合模块,完成对control_module.v和tx_module.v的例化。tb_TX_DATA.v为测试文件。1)control_module.v 第28行是1秒的定义常量,在3036行是1秒的定时器。control_module.v主要是每秒发送0x31的数据,也就是每秒设置一次 isEn标志寄存器。当isEn被设置后,tx_module.v就会开始工作,发完一帧数据位TX_Done_Sig会产生高脉冲。这使得control_module.v会重新赋值rD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- LY/T 3401-2024石漠化防治术语
- 人教版数学七年级下册5.3.1《平行线的性质》听评课记录1
- 粤教版道德与法治九年级上册3.2.2《社会和谐 人人共享》听课评课记录
- 浙教版数学七年级下册《4.3 用乘法公式分解因式》听评课记录2
- 中图版历史七年级上册第5课《青铜器和甲骨文》听课评课记录
- 人教部编版八年级道德与法治上册:3.1《维护秩序》听课评课记录1
- 环保工程合同(2篇)
- 人教版七年级地理下册《日本》听课评课记录4
- 人教版历史八年级上册第15课《北伐战争》听课评课记录
- 新版华东师大版八年级数学下册《16.3可化为一元一次方程的分式方程2》听评课记录9
- 电网工程设备材料信息参考价(2024年第四季度)
- 2025年江苏农牧科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025江苏连云港市赣榆城市建设发展集团限公司招聘工作人员15人高频重点提升(共500题)附带答案详解
- 江苏省扬州市蒋王小学2023~2024年五年级上学期英语期末试卷(含答案无听力原文无音频)
- 数学-湖南省新高考教学教研联盟(长郡二十校联盟)2024-2025学年2025届高三上学期第一次预热演练试题和答案
- 决胜中层:中层管理者的九项修炼-记录
- 《轨道交通工程盾构施工技术》 课件 项目2 盾构构造认知
- 《港珠澳大桥演讲》课件
- 《有机化学》课件-第十章 羧酸及其衍生物
- 人教版道德与法治五年级下册《第一单元 我们一家人》大单元整体教学设计2022课标
- 2024年海南公务员考试申论试题(A卷)
评论
0/150
提交评论