FPGA的UART设计和实现.pdf

FPGA的UART设计和实现.pdf

ID:52953694

大小:279.25 KB

页数:5页

时间:2020-04-03

FPGA的UART设计和实现.pdf_第1页
FPGA的UART设计和实现.pdf_第2页
FPGA的UART设计和实现.pdf_第3页
FPGA的UART设计和实现.pdf_第4页
FPGA的UART设计和实现.pdf_第5页
资源描述:

《FPGA的UART设计和实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第27卷第2期中国科学院研究生院学报V01.27No.22010年3月JournaloftheGraduateSchooloftheChineseAcademyofSciencesMarch2O10文章编号:1002—1175(2010)02-0199—05FPGA的UART设计和实现李海平,孔祥成(1中国科学院高能物理研究所,北京100049;2中国科学院研究生院,北京100190)(2009年11月10日收稿;2009年12月7日收修改稿)LiHP.KongxC.DesignandimplementationofFPGAUART[J].JournaloftheGraduateSch

2、ooloftheChineseAcademyofSciences,2010,27(2):199-203.摘要在工程中需要进行FPGA与上位机的通信,根据现场情况选择了UART的RS-232C接口标准规范和总线标准规范进行驱动设计.驱动主要是针对近距离串口通信设计,采用了异步通信协议,同时利用FCS校验来保证通信数据的完整性和准确性.程序采用VHDL硬件语言进行编写.通过长时间测试,运行稳定可靠,并且能够提供一定的抗干扰能力.驱动的实现为FPGA与上位机的通信提供了一种可靠的方式,具有较强的实用意义.关键词FPGA,RS-232C驱动,VHDL,FCS校验中图分类号TP331引言FPGA

3、(fieldprogrammablegatearray)即现场可编程门阵列,是在PAL、GAL、EPLD等可编程器件的基础上进一步发展,作为专用集成电路(ASIC)领域中的一种半定制电路而出现.它的主要优点是既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点;同时FPGA的使用非常灵活,同一片FPGA通过不同的编程数据可以产生不同的电路功能,特别适合处理大规模并行预算.随着功耗和成本的进一步降低,FPGA在通信、数据处理、网络、仪器、军事和航空航天等众多领域将得到更大的应用.加速器系统中设备测试和调试都需要一个触发源,一般情况下是用信号源作为触发信号,但成本很高.我们设计

4、了一个基于FPGA的触发信号产生系统,可以提供稳定的触发信号,且系统成本低廉.系统中重要的功能模块就是上位机与FPGA的通信模块,上位机发送一串字符作为FPGA工作的指令,FPGA对指令进行响应并进行相应操作.本文主要是针对上面系统中的通信模块设计的FPGA的RS.232C驱动,驱动中采用FCS(framechecksequence)校验来保证串口通信的完整性和准确性.驱动程序的完成为FPGA与上位机通信提供了一种有效的方案,在作者设计的触发信号产生系统中起到了重要作用.2协议介绍2.1RS-232C介绍RS-232C是与RS499、RS423、RS422和RS485并列的一种UART

5、(universalasynchronousreceiver/transmitter)接口标准规范和总线标准规范.这些规范虽然规定了不同的通信接口电气特性、传输速率、200中国科学院研究生院学报第27卷连接特性和接口的机械特性等内容,但是都对应异步串行通信协议.由于实际中Pc的外部接口配置为RS一232C已经成为事实标准,所以文章以RS-232C为基础编写FPGA串口驱动程序,具有普遍的意义,经过对接口电平的相应处置即可应用于其他接口标准规范和总线标准规范J.UART是一种通用串行异步通信数据总线,该总线可以实现全双工通信.UART发送器将接收到的并行数据帧转换成串行数据帧来传输.串行

6、数据帧从一个低位起始位开始,后面是7个或8个数据位,一个可选择的奇偶校验位和一个或几个高位停止位.UART接收器发现低位起始位后与发送器进行时钟同步,然后接收整个串行数据帧,最后去掉低位起始位和高位停止位进行相应的奇偶校验生成并行数据帧.文章中采用的串行数据帧是一个低位起始位,后面接8个数据位,不用奇偶校验位和一个停止位的格式.为了保证通信命令数据的准确性,采用了FCS校验协议进行封装.2.2FCS校验协议FCS校验是指在一个通信协议数据帧中添加特别的检测字符码用来对数据帧进行检错和纠错.一般的通信协议都是具有校验功能的,常用的校验方式有奇偶校验、BCC(blockcheckchara

7、cter)异或校验、CRC(cyclicredundancycheck)循环冗余校验和md5校验.CRC和md5校验算法复杂适合数据比较大或要求比较高的场合,奇偶校验算法简单准确性能不高,所以这里采用BCC异或校验的方法.具体方法是通过对数据帧中每一个字符进行异或运算(XOR)获得FCS校验码,添加到数据帧末尾进行封装;同时结合实际情况需要,对数据帧的封装进行了划分,具体格式是:“@十AddrFPGA十CMD+AddrData+Data4+FC

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

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

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