fpga串口通信的verilog驱动编程解析.docx
《fpga串口通信的verilog驱动编程解析.docx》由会员分享,可在线阅读,更多相关《fpga串口通信的verilog驱动编程解析.docx(8页珍藏版)》请在第一文库网上搜索。
1、fpga串口通信的veri1og驱动编程解析串口的全程为串行接口,也称为串行通信接口,是采用串行通信方式的扩展接口。与串口对应的并行接口,例如高速型和DA,这些都是用的并行接口,而且在编程也简单一些。串口有一下特点:(1)通信线路简单,只要一-对传输线就可以实现双向通信。(2)布线简单,成本低。通信距离长,可以实现数米到数千米的通信距离。(4)传输速率慢。常见的串口速率如4800,9600,115200bps,代表每秒钟发送多少bit数据,例如9600bps就代表1秒内发送9600bit数据。TransmitDirectionStartbit10000010DataParitybit(ifen
2、ab1ed)串口协议:协议比较简单,一般都是10位数据,1个起始位低电平,然后八个数据位,低位在前,一个奇偶校验位,平时一般不用,最后是一位停止位高电平,这样一帧数据发送结束。下面介绍一下我的程序框架:Uart_tx8ntro1:ControI_u2ck匚)rst_n匚bps_se1ect1.OuarttxenddataenUdrtdata7.0)dsse1e1Udr1ddt整体框架分为两个部分:一个是串口驱动部分另一个是串口数据控制部分。串口驱动部分负责串口驱动和波特率的选择,串口数据控制模块负责控制数据内容的控制和发送速度的控制。从上面时序图可以看出,每IOmS发送一帧数据,这里data_
3、en负责波特率驱动使能,UarttxCnd有两个功能,一个是关闭data_en使能,另一个是给IOms计数器清零。/*Date:Description:2017-09-03Designforuart_,driver.*/modu1euart_tx_driver(/g1oba1c1ockinpute1k,/systemc1ockinputrstn,/syncreset/uartinterfaceoutputreguart_tx/userinterfaceinput1:0bps_se1ect,波特率选择input7:0uart_data,inputdata_en,发送数据使能outputregua
4、rt_tx_end);/Funtion:参数定义parameterBPS_4800=14,d10417BPS.9600=14,d5208BPS_115200=14,d4349reg13:0entbpse1k9reg13:0bps9regbps_c1k_en;/bps使能时钟reg3:0bps_cntwire13:0BPS_C1K_V=bps1/Funtion:波特率选择a1ways(posedgee1kornegedgerst_n)beginif(!rst_n)bps=1,d;e1seif(bps_se1ect=2,d)bps=BPS_115200;e1seif(bps_se1ect=2,d1
5、)bps=BPS_9600;e1sebps=BPS_4800;end/Funtion:波特率计数a1ways(posedgee1kornegedgerst_n)beginif(!rst_n)cnt_bps_c1k=bps-1&data_en=1,b)entbps_c1k=c1;e1seentbps_c1k=cnt_bps_c1k+d1;end/Funtion:波特率使能时钟a1ways(posedgee1kornegedgerst_n)beginif(!rst_n)bps_c1k_en=d;e1seif7cnt_bps_c1k=BPS_C1K_V-1)bps_c1k_en=1,d1;e1seb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fpga 串口 通信 verilog 驱动 编程 解析
