基于fpga的串口实验说明书

基于fpga的串口实验说明书

ID:13788810

大小:139.73 KB

页数:42页

时间:2018-07-24

基于fpga的串口实验说明书_第1页
基于fpga的串口实验说明书_第2页
基于fpga的串口实验说明书_第3页
基于fpga的串口实验说明书_第4页
基于fpga的串口实验说明书_第5页
资源描述:

《基于fpga的串口实验说明书》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于Verilog的串口实验报告一、前言随着计系统和网络的快速发展,通信发挥的作用越来越重要。在电路设计和制作上越来越多的采用数字化指令,在一个系统内对外和内部通信越来越多。串行通信作为一种主要的通信方式,由于所用的传输线少,因此特别适合于远距离传送,应用非常广泛。FPGA(现场可编程门阵列)在数字电路的设计中已经被广泛使用。这种设计方式可以增强系统的可靠性和设计的灵活性。二、实验内容本实验使用Verilog编写rs232串口通信程序,利用波形仿真工具进行前仿真,下载到开发板,利用串口调试助手进行验证。本串口实现的功能是可

2、以设置八种波特率,实现多字节的收发。实验芯片选择xilinx的spartan6系列,编译软件使用xilinx专用的ise14.1,仿真工具使用ise自带工具isim。三、实验过程(1)、分模块编写代码,本次设计共有四个模块,分别是串口接收波特率产生模块,串口接收模块,串口发送波特率产生模块,串口发送模块。以下是各模块之间的联系图:42由图所示,顶层各端口功能如下Key_in按键选择波特率端口Clk时钟输入端口Rst_n复位端口Rs232_rx数据接收端口Rs232_tx数据发出端口顶层文件主要用于连接以下各个模块接收数据波

3、特率产生模块端口功能如下Key_in按键选择波特率端口Bps_start启动波特率发生模块Clk时钟端口Rst_n复位端口Sample_clk波特率时钟输出端口本模块的作用主要用于产生所需的波特率,共有八种选择,本模块的内部又有以下几个部分:1、波特率选择部分:这一部分主要通过按键输入控制波特率,由case语句完成2、波特率时钟计数部分:这一部分主要是通过计数器对输入时钟进行分频来达到所需的波特率。3、波特率时钟产生部分:这一部分用来产生连接下一模块的波特率时钟。串口接收模块Clk时钟端口Rst_n复位端口Rs232_rx

4、数据输入端口Sample_clk波特率时钟输入端口Rx_data数据存储寄存器Bps_start启动波特率发生模块端口Rx_int发送模块使能端口本模块的作用主要是根据波特率时钟产生模块所产生的波特率,进行数据的接收,包含如下几个部分1、检测数据开始位:这一部分主要依据数据帧的起始位为0这一设置,通过检测下降沿来检测数据的开始位,当检测到下降沿后,发出一系列开始接收数据的信号。2、数据接收部分:这一部分主要通过波特率来采样数据,每一个数据采样九次,选取其中的三次经过加和来判断本位是0还是1。3、数据存储部分:这一部分主要把

5、接收到的数据存储到设定的寄存器中,以便发送。串口发送波特率产生模块Key_in按键选择波特率端口Bps_start启动波特率发生模块(由串口发送模块产生)Clk时钟端口Rst_n复位端口Sample_clk波特率时钟输出端口本模块的作用主要用于产生所需的波特率,共有八种选择,本模块的内部又有以下几个部分:1、波特率选择部分:这一部分主要通过按键输入控制波特率,由case语句完成422、波特率时钟计数部分:这一部分主要是通过计数器对输入时钟进行分频来达到所需的波特率。3、波特率时钟产生部分:这一部分用来产生连接下一模块的波特

6、率时钟。串口发送模块Clk时钟端口Rst_n复位端口Rs232_tx数据输出端口Clk_bps波特率时钟输入端口Rx_data数据存储寄存器Bps_start启动波特率发生模块端口Rx_int发送模块使能端口(由串口接收模块产生)这一模块分为以下几个部分:1,、检测发送使能信号部分:这一部分通过检测下降沿来识别发送使能信号,并产生一系列的发送开始信号。2、发送帧部分:这一部分主要将之前存储在寄存器中的数据逐位发送出去,并加入开始位0,与结束位1,构成一帧十位数据。通过对各个模块的了解,分别编写各个模块的代码(2)、修改程序

7、,编写仿真程序。由于本次实验代码量较小,仿真时采用ise自带的波形仿真工具即可完成仿真,仿真图如下波形为任意两帧数据的接收与发送,可以看出连续两帧数据接收与发送并没有发生错误。(3)、将程序下载到芯片,结合串口助手进行验证。42四、实验代码顶层代码:moduleuart_top(clk,rst_n,rs232_rx,rs232_tx,key_in);inputclk;//时钟信号50Minputrst_n;//复位信号,低有效inputrs232_rx;//数据输入信号input[2:0]key_in;outputrs23

8、2_tx;//数据输出信号//wire[2:0]key_in;wiresample_clk1;wirebps_start1,bps_start2;//wireclk_bps1,clk_bps2;wire[7:0]rx_data;//接收数据存储器,用来存储接收到的数据,直到下一个数据接收wirerx_i

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

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

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