实验四串口接收模块电路设计_第1页
实验四串口接收模块电路设计_第2页
实验四串口接收模块电路设计_第3页
实验四串口接收模块电路设计_第4页
实验四串口接收模块电路设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验四串口接收模块电路设计一、实验目的:1、娴熟使用ISE设计工具。2、理解串口授输协议。理解采纳“自顶向下”设计思路,分解模块的方法。3、在ISE使用VerilogHDL设计串口接收模块,达成仿真、下载。二、原理剖析(一)串口授输协议概括设计达成异步串口通信通用异步收发是一种典型的异步串口通信,简称UART。串口通信时序如图1所示。图1通用异步收发时序图由图1能够看出,在没有数据传递时,通信线会向来处于高电平,即逻辑1状态;当有数据传递时,数据帧以开端位开始,以停止位结束。开端位为低电平,即逻辑0状态;停止位为高电平,即逻辑1状态,其连续时间可选为1位、1.5位或2位(本次设计选择连续时间1位)。接收端在接收到停止位后,知道一帧数据已经传完,转为等候数据接收状态;只需再接收到0状态,即为新一帧数据的开端状态。数据帧的数据位低位(LSB)在前,高位(MSB)在后,依据不一样的编码规则,数据位可能为5位、6位、7位或许8位(本次设计数据位定位8位)。校验位也可依据需要选择奇校验、偶校验或许不要校验(本次设计不要校验位)。(二)串口时序剖析串口通信常用“波特率”表述串口授输速率,常用的参数有9600bps和115200bps等。在硬件传输角度看,波特率表征了传输一位数据所需要的时间。比如:波特率是9600bps,传输一位数据的时间是秒。假如FPGA系统时钟是20MHZ,则一位数据传输时间相当于(1/9600)/(1/20M)=2083个20MHZ时钟周期。设一帧数据位数=1(开始位)+8(数据位)+1(校验位)+1(结束位)=11位,因此传输一帧数据的时间是秒。为了稳固收集串口数据帧的数据,需要在每位数据的“中间时刻”采样,由此,需要在每位数据开始时刻对时钟进行计数,若系统时钟是20MHZ,则在计数至2083/2=1042时采样此时刻的数值。三、系统剖析:为实现串口接收电路,FPGA应当达成:1、实时发现数据传输的开始,并判断每一位的开始。2、依据“在数据位中间采样”的要求,确认采样时刻。3、将采样获得串行数据变换为并行数据。4、将并行数据显示在下载板上。本次实验参数:串口授输数据率9600bps,每帧数据11位。依据“自顶向下”设计思想,系统分为以下五个子模块:1、帧开始监测模块(detect_module)输入端口:串行输入数据RX_Pin_In,系统时钟CLK,复位信号RSTn,此中当RSTn=0时系统复位。输出端口:H2L_Sig参照代码:moduledetect_module(CLK,RSTn,RX_Pin_In,H2L_Sig);inputCLK;inputRSTn;inputRX_Pin_In;outputH2L_Sig;regH2L_F1;regH2L_F2;always@(posedgeCLKornegedgeRSTn)if(!RSTn)beginH2L_F1<=1'b1;H2L_F2<=1'b1;endelsebeginH2L_F1<=RX_Pin_In;H2L_F2<=H2L_F1;endassignH2L_Sig=H2L_F2&!H2L_F1;endmodule2、数据位中心定位模块(rx_bps_module)输入端口:系统时钟CLK;复位信号RSTn,当RSTn=0,系统复位;数据位有效信号Count_Sig,当Count_Sig=1,表示有效位传输。输出端口:BPS_CLK,当计数至每一位的中间地点,BPS_CLK=1,提示信号收集时间到,不然不进行信号收集。设系统时钟20MHZ,则参照代码以下:modulerx_bps_module(CLK,RSTn,Count_Sig,BPS_CLK);inputCLK;inputRSTn;inputCount_Sig;outputBPS_CLK;reg[11:0]Count_BPS;always@(posedgeCLKornegedgeRSTn)if(!RSTn)Count_BPS<=12'd0;elseif(Count_BPS==12'd2082)Count_BPS<=12'd0;elseif(Count_Sig)Count_BPS<=Count_BPS+1'b1;elseCount_BPS<=12'd0;assignBPS_CLK=(Count_BPS==12'd1041)?1'b1:1'b0;endmodule3、数据装载模块(rx_control_module)输入端口:系统时钟CLK,复位信号RSTn,当RSTn=0时,系统复位帧开始信号H2L_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,表示一帧串口数据接收完成。参照代码:modulerx_control_module(CLK,RSTn,H2L_Sig,RX_Pin_In,BPS_CLK,RX_En_Sig,Count_Sig,RX_Data,RX_Done_Sig);inputCLK;inputRSTn;inputH2L_Sig;inputRX_En_Sig;inputRX_Pin_In;inputBPS_CLK;outputCount_Sig;output[7:0]RX_Data;outputRX_Done_Sig;reg[3:0]i;reg[7:0]rData;regisCount;regisDone;always@(posedgeCLKornegedgeRSTn)if(!RSTn)begini<=4'd0;rData<=8'd0;isCount<=1'b0;isDone<=1'b0;endelseif(RX_En_Sig)case(i)4'd0:if(H2L_Sig)begini<=i+1'b1;isCount<=1'b1;end4'd1:if(BPS_CLK)begini<=i+1'b1;end4'd2,4'd3,4'd4,4'd5,4'd6,4'd7,4'd8,4'd9:if(BPS_CLK)begini<=i+1'b1;rData[i-2]<=RX_Pin_In;end4'd10:if(BPS_CLK)begini<=i+1'b1;end4'd11:if(BPS_CLK)begini<=i+1'b1;end4'd12:begini<=i+1'b1;isDone<=1'b1;isCount<=1'b0;end4'd13:begini<=1'b0;isDone<=1'b0;endendcaseassignCount_Sig=isCount;assignRX_Data=rData;assignRX_Done_Sig=isDone;endmodule这一代码采纳有限状态机方式,在监测到串口数据帧开始时刻,假如系统接收使能信号有效,睁开对串口输入的几个阶段:帧开始,有效帧数据接收,接收帧校验位,接收帧结束位,一帧接收结束,转回帧开始状态。4、显示模块(display)输入端口:sum,从串口接收到的8bits的一帧数据输出端口:自定义本模块依据下载板的资源,将接收到的8bits数据显示出来,能够采纳数码管,发光二极管等。5、顶层模块(top)将以上4个模块合理组合,组成一个系统。四、实验内容:1.在理解串口协议2.采纳VerilogHDL,设计分频模块,将下载板上40MHz时钟变换为所需要的20MHZ时钟。剖析帧开始监测模块(detect_module),数据位中心定位模块(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、假如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论