您的位置:首页 > 其它

基于FPGA的串口通讯设计与实现

2013-03-14 12:55 489 查看



繁體

基于FPGA的串口通讯设计与实现

[日期:2012-03-26]来源: 作者:[字体:大 中 小]
  随着多微机系统的应用和微机网络的发展,通信功能越来起重要。串行通信是在一根传输线上一位一位传送信息,这根线既作数据线又作联络线。串行通信作为一种主要的通信方式所用的传输线少,并且可以借助现存的电话网进行信息传送,因此特别适合于远距离传送。串行传输中通信双方都接通信协议进行,所谓通信协议是指通信双方的一种约定,包括对数据格式、同步方式、传送速度、传送步骤、纠错方式以及控制字符定义等问题作出统一规定,通信双方必须共同遵守。

-

  FPGA(现场可编程门阵列)在数字电路的设计中已经被广泛使用,这种设计方式将以前需要多块集成芯片的电路设计到一块大模块可编程逻辑器件中,大大减少电路板的尺寸,增强系统的可靠性和设计的灵活性。

  本文以“高速磁悬浮列车间隙传感器数据采集处理系统”为例,设计一个串口数据采集处理程序,并通过硬件电路详细介绍应用基于FPGA实现串口数据采集与处理的串行通讯。

  系统硬件设计

异步串行通信的硬件接口电路原理图如此下图所示,由RS-485数据发送模块、FPGA串口模块、MAX3223和DB9四部分组成,各部分功能如下:



  通常情况下,发送驱动器A、B之间的正电平是+2~+6V的一个逻辑“1”状态,负电平是-2~-6V的另一个逻辑“0”状态,还有一个信号地C,RS-485中“ENABLE使能”端用于控制发送驱动器与传输线的切断与连接,当“ENABLE使能”端起作用时,发送驱动器处于“第三态”的高阻状态,有别于逻辑“1”和“0”。

  RS-485数据发送模块选用3.3VSP3485,将前续电路的数据发送到FPGA作为电路输入信号,SP3485的内部结构示意图如下图所示。



  RS485数据信号采用差分传输方式,也称作平衡传输,使用一对双绞线,将其中一线定义为A,另一线定义为B,如下图所示。



  ***作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当接收端;AB之间电平大于+200mV时输出正逻辑电平)小于-200mV时输出负逻辑电平,***接收平衡线上的电平范围通常在200mV至6V之间,参见下图。



  RS485的7、8聊与前端信号相连,用于接收输入数据,数据格式为:一桢数据25位,报头16个高电平位、1个低电平位,8位有效的数据位。700kbps的速率传输)使能端2、4脚与FPGA的I/0口相连,由FPGA提供逻辑控制信号,1、4脚也与FPGA相连,由FPGA对输入数据进行处理。

  设计核心的FPGA串口模块选用Xilinx公司的Spar-tanll系列xc2s5O,将RS-485发送过来的数据进行处理,提取8位有效数据,并按异步串口通讯的格式要求输出到MAX3223的12脚。为使FPGA正确地对输入数据进行采样,提高分辨率能力和抗干扰能力,采样时钟须选取用比700k波特率更高的时钟,理论上是波特率时钟的2倍。本文选用4倍的波特率时钟,利用经4倍倍频与波特率的接收时钟对串行数据流进行检测和定位采样,***在一个位周期内采样4次,如果没有这种倍频关系,定位采样频率和传送波特率相同,则在一个:立周期中,只采样一次,分辨率差。比如,为了检测起始位下降沿的出现,在起始位的前夕采样一次,下次采样受到起始位结束前夕才进行)假若在这个周期期间,因某种原因恰好使接收时钟往后偏移了一点点,错过了起始位造成整个后面各位检测和识别的错误。

  FPGA设计共分三个模块:

  1.时钟分频模块)用来产生所需要的数据采集时钟和数据传输时钟,40M系统主频)2.8M数据采集时钟,11.2K发送时钟。

  2.提取数据模块,RS485发送的25位数搪,8位为有效数据,为发送该8位有效数据,首先通过连续检测到16个高电平和一个低电平来判断8位有效数据的传输,然后按照串行数据传输的格式(一位起始位,八位数据位,一位停止位)无校验位)存储于输出缓冲寄存器中。

  3.串行数据输出模块)11,2k波特率相对比较简单,在移位输出脉冲的作用下将输出缓冲寄存器中的数据移位输出。

  由于RS-232c用正负电压表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同,为能够同计算机接口或终端的TTL器件连接)本文选用MAXIM公司的MAX3223在RS-232c与TTL电路之间进行电平和逻辑关系的转换。MAX3223为满足RS-232c的标准而设计的,具有功耗低、波特率商、价格低等优点,MAX3223的12脚输入数据,经过电平转换后由8脚输出,经过DB9的TxD端输出到PC机,接收并做后续处理。

  系统软件设计

  FPGA模块作为设计主体,使用Verilog硬件描述语言进行编写,共两个子模块,分别实现提取八位数据和串行数据发送的功能。其Verilog源代码在此省略。

  FPGA模块接收从RS-485发送的串行数据,25位为一个字符,数据以700kbps速率传输,用4倍于波的速率进行采样)大大降低系统的噪声,通过连续检测到16个高电平和一个低电平判断输入的8位有效数据,按照串行数据传输格式加上起始位和停止位后存储于输出缓冲寄存器中,最后以波特率为ll200bps串行输出。

  经ModelsimSE仿真,输入数据为11000000,左边为数据的高位)输出为00000011,右边为数提的低位)下图显示输入波形图,



下图显示输出波形图,由于传输速率相差很大,无法在同一仿真图像里显示。



1
顶一下

-

试试再找找您想看的资料

资料搜索:
标题内容作者  
搜索

变频器传感器减肥相机液晶显示器数码相机三无投影机笔记本电脑开关电源处理器技巧USB成功创业热水器不能开机人生黑屏显示调节仪变压器微波炉苹果播放器电路设计GPS无伴音养生交换机继电器无图像数码摄像机说明无光栅555Linux滤波器Windows自动关机遥控器女人充电器示波器不同逆变器创新指示灯不亮互感器男人天线存储器嵌入式系统手表仪器维修流程硬盘面试报警器服务器CDMAiPhone康佳松下CCDRFID路由器诺基亚集成电路电阻三极管万用表键盘电流互感器LED机器人长虹营养mp3太阳能电动机振荡器电热水器稳压电源糖尿病待机人才计数器LED驱动数据采集系统

推荐文章收藏推荐打印
| 整理:云飞舞 | 阅读:788 次

基于FPGA的真彩VGA显示的实现
一种基于FPGA的数字视频信号发生器

查看相关资料
串口通讯

-

C51 I/O口模拟串口通

本文评论   查看全部评论
(0)

表情:


姓名: 匿名 字数

点评:

   同意评论声明    
发表
评论声明

尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

Digg排行

6自适应滤波器的算法研
3基于DSP的闭环SPWM 的
2FPGA实现IRIG-B(DC)码
2基于FPGA的电网实时数
2一种通用SPI总线接口的
1可编程逻辑器件的设计
1如何分配FPGA管脚
1基于FPGA的HDB3码编码
1一种基于FPGA的数字视
1基于FPGA的串口通讯设

热门评论

-


网站地图

关于我们

加入收藏夹


邮购帮助

联系我们


版权声明
copyright
© 1998-2012 广电电器(中国梧州) -all right reserved
地址:广西梧州市大中路8号中环大厦首层 电话:(86)774-2826670
若您有什么意见或建议请mail:
wzgd#(将#改为@)tom.com (桂ICP备05004023号)



-

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: