基于FPGA与PC串口自收发通信-Verilog.doc

基于FPGA与PC串口自收发通信-Verilog.doc

ID:48971303

大小:45.00 KB

页数:20页

时间:2020-02-26

基于FPGA与PC串口自收发通信-Verilog.doc_第1页
基于FPGA与PC串口自收发通信-Verilog.doc_第2页
基于FPGA与PC串口自收发通信-Verilog.doc_第3页
基于FPGA与PC串口自收发通信-Verilog.doc_第4页
基于FPGA与PC串口自收发通信-Verilog.doc_第5页
资源描述:

《基于FPGA与PC串口自收发通信-Verilog.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.FPGA与PC串口自收发通信实现的功能如题,就是FPGA里实现从PC接收数据,然后把接收到的数据发回去。使用的是串口UART协议进行收发数据。上位机用的是通用的串口调试助手。发送数据的波特率可选9600bps,19200bps,38400bps,57600bps,115200bps等,是可调的。发送格式为:1bit起始位,8bit数据,1bit停止位,无校验位。以下的代码有比较详细的注释,经过下载验证,存在误码率(<5%),仅供学习!代码如下:(顶层模块):modulemy_uart_top(clk,rst_n,rs232_rx,rs2

2、32_tx);inputclk;//50MHz主时钟inputrst_n;//低电平复位信号inputrs232_rx;//RS232接收数据信号outputrs232_tx;//RS232发送数据信号wirebps_start;//接收到数据后,波特率时钟启动信号置位wireclk_bps;//clk_bps的高电平为接收或者发送数据位的中间采样点wire[7:0]rx_data;//接收数据寄存器,保存直至下一个数据来到wirerx_int;//接收数据中断信号,接收到数据期间始终为高电平//---------------------

3、-------------------------------speed_select教育资料.speed_select(.clk(clk),//波特率选择模块,接收和发送模块复用,不支持全双工通信.rst_n(rst_n),.bps_start(bps_start),.clk_bps(clk_bps));my_uart_rxmy_uart_rx(.clk(clk),//接收数据模块.rst_n(rst_n),.rs232_rx(rs232_rx),.clk_bps(clk_bps),.bps_start(bps_start),.rx_d

4、ata(rx_data),.rx_int(rx_int)教育资料.);my_uart_txmy_uart_tx(.clk(clk),//发送数据模块.rst_n(rst_n),.clk_bps(clk_bps),.rx_data(rx_data),.rx_int(rx_int),.rs232_tx(rs232_tx),.bps_start(bps_start));endmodulemodulespeed_select(clk,rst_n,bps_start,clk_bps);inputclk;//50MHz主时钟inputrst_n;教育

5、资料.//低电平复位信号inputbps_start;//接收到数据后,波特率时钟启动信号置位outputclk_bps;//clk_bps的高电平为接收或者发送数据位的中间采样点parameterbps9600=5207,//波特率为9600bpsbps19200=2603,//波特率为19200bpsbps38400=1301,//波特率为38400bpsbps57600=867,//波特率为57600bpsbps115200=433;//波特率为115200bps教育资料.parameterbps9600_2=2603,bps192

6、00_2=1301,bps38400_2=650,bps57600_2=433,bps115200_2=216;reg[12:0]bps_para;//分频计数最大值reg[12:0]bps_para_2;//分频计数的一半reg[12:0]cnt;//分频计数regclk_bps_r;//波特率时钟寄存器//----------------------------------------------------------reg[2:0]uart_ctrl;//uart波特率选择寄存器//------------------------

7、----------------------------------教育资料.always@(posedgeclkornegedgerst_n)beginif(!rst_n)beginuart_ctrl<=3'd0;//默认波特率为9600bpsendelsebegincase(uart_ctrl)//波特率设置3'd0:beginbps_para<=bps9600;bps_para_2<=bps9600_2;end3'd1:beginbps_para<=bps19200;教育资料.bps_para_2<=bps19200_2;end3'

8、d2:beginbps_para<=bps38400;bps_para_2<=bps38400_2;end3'd3:beginbps_para<=bps57600;bps_para_2<=bp

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

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

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