基于FPGA的UART串口接收模块设计_第1页
基于FPGA的UART串口接收模块设计_第2页
基于FPGA的UART串口接收模块设计_第3页
基于FPGA的UART串口接收模块设计_第4页
基于FPGA的UART串口接收模块设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、UART串口接收模块设计实验目标:实现FPGA接收其他设备通过UART协议发送过来的数据。知识点:1、 URAT通信协议工业环境下数据接收实现。2、 In system sources and probes editor(ISSP)调试工具的使用。UART发送端发送一个字节数据时序图: 对于其中的每一位进行采样,一般情况下每一位数据的中间点是最稳定的,因此一般应用中,采集中间时刻时的数据即可,如下图所示:但是在工业应用中,往往有非常强的电磁干扰,只采样一次就作为该数据的电平判定,是不保险的,有可能恰好采集到被干扰的信号而导致结果出错,因此需要使用多次采样求概率的方式进行。以下为改进型的单bit

2、数据接收方式示意图:在这张图中,将每一位数据又平均分成了16小段,对于Bit_x这一位数据,考虑到数据在刚刚发生变化和即将发生变化的这一时期,数据极有可能不稳定的(用红色标出的两段),在这两个时间段采集数据,很有可能得到错误的结果,因此这两段时间的电平无效,采集时直接忽略。而中间这一时间段(用绿色标出),数据本身是比较稳定的,一般都代表了正确的结果。但是也不排除该段数据受强电磁干扰而出现错误的电平脉冲,因此对这一段电平,进行多次采样,并求高低电平发生的概率,6次采集结果中,取出现次数多的电平作为采样结果。例如,采样6次的结果分别为1/1/1/1/0/1/,则取电平结果为1,若为0/0/1/0/

3、0/0,,则取电平结果为0,当6次采样结果中1和0各占一半(各3次),则可判断当前通信线路环境非常恶劣,数据不具有可靠性。串口发送模块包含两个主要组件:1、 起始位检测进程(低电平,下降沿)2、 波特率产生模块3、 数据接收模块串口接收模块整体结构图:波特率时钟计算:系统时钟周期为System_clk_period波特率波特率周期波特率分频计数值System_clk_period = 20计数值9600104167ns104167/ System_clk_period/16325-11920052083ns52083/ System_clk_period/16163s

4、26041/ System_clk_period/1681s17361/ System_clk_period/1654-11152008680ns8680/ System_clk_period/1627-1Modelsim仿真图:·在testbench文件中我们为设计输入了假定的信号,在仿真图中我们可以看到data_byte_r在Rx_done标志位产生的时候成功的将仿真数据data_byte_t接收到其中。实现了串口接收数据的功能,其余各状态表现正常。Rtl功能图附录:源程序:一, 顶层功能代码module uart_rx_top(Clk,Rst_n,Rs

5、232_Rx);input Clk;input Rst_n;input Rs232_Rx;reg 7:0data_rx_r;wire 7:0data_rx;wire Rx_Done;uart_byte_rx uart_byte_rx(.Clk(Clk),.Rst_n(Rst_n),.baud_set(3'd0),.Rs232_Rx(Rs232_Rx),.data_byte(data_rx),.Rx_Done(Rx_Done);issp issp(.probe(data_rx_r),.source();always(posedge Clk or negedge Rst_n)if(!Rst

6、_n)data_rx_r <= 8'd0;else if(Rx_Done)data_rx_r <= data_rx;elsedata_rx_r <= data_rx_r;endmodule二 testbench仿真文件timescale 1ns/1nsdefine clk_period 20module uart_byte_rx_tb;reg Clk;reg Rst_n;reg Rs232_Rx;wire 7:0data_byte_r;wire Rx_Done;reg 7:0data_byte_t;reg send_en;reg 2:0baud_set;wire Rs

7、232_Tx;wire Tx_Done;wire uart_state;uart_byte_rx uart_byte_rx(.Clk(Clk),.Rst_n(Rst_n),.baud_set(baud_set),.Rs232_Rx(Rs232_Tx),.data_byte(data_byte_r),.Rx_Done(Rx_Done);uart_byte_tx uart_byte_tx(.Clk(Clk),.Rst_n(Rst_n),.data_byte(data_byte_t),.send_en(send_en),.baud_set(baud_set),.Rs232_Tx(Rs232_Tx),

8、.Tx_Done(Tx_Done),.uart_state(uart_state);initial Clk = 1;always#(clk_period/2)Clk = Clk;initial beginRst_n = 1'b0;data_byte_t = 8'd0;send_en = 1'd0;baud_set = 3'd4;#(clk_period*20 + 1 );Rst_n = 1'b1;#(clk_period*50);data_byte_t = 8'haa;send_en = 1'd1;#clk_period;send_en = 1'd0;(posedge Tx_Done)#(clk_period*5000);

温馨提示

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

最新文档

评论

0/150

提交评论