基于CPLD串口网关设计与应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CPLD串口网关设计与应用

基于CPLD串口网关设计与应用   摘要: 从开发的角度提出一种基于CPLD的串口网关设计。文章从系统结构、布局、调试等方面介绍了这种串口网关的硬软件设计。文中详细地描述了串口的接收和发送处理过程,以及利用VHDL语言编程实现多个串口数据的协议转换,不同波特率间的数据转发或协议转换。该系统可以实现各种复杂的控制功能,使系统具有最大的扩展性。最后通过计算机仿真实验给出了波形仿真和应用测试结果。实验表明,软件及硬件设计是合理的,完全达到了预想的结果。   关键词:CPLD ;波特率;VHDL;串口软件   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)33-7430-03   实现串口数据的协议以及波特率的转换,传统的实现方法是用单片机与串口扩展芯片直接相连,其缺点是实现需用较多芯片,容易死机;目前关注的实现方法是用一片CPLD芯片来接收串行数据,其优势是CPLD为逻辑电路,不会死机,效率高,基于CPLD的串口网关能高效的实现串口数据的协议以及波特率的转换[1]、[4]。这里简单介绍一种串口网关的简单设计及其测试应用。   1 硬件结构   1.1 串口网关的硬件设计   串口网关中的核心设备就是其选用的控制器,它的选用直接关系到目标的实现与否。根据设计要求,我们可以选用单片机和CPLD,在综合考虑两者的性能后,我们最终选用了EPM7128做主处理芯片,EPM7128SLC84-10内含128个宏单元(或2500个可用门),其引脚到引脚的最短传输延时为7ns,采用单+5V电源供电,可通过JTAG接口实现在线编程,并带有可供84个用户使用的I/O脚(其中4个为专用输入脚)。该器件采用PLCC-84封装。其中TDI、TDO、TMS、TCLK脚为编程脚;GCLK、GOE、GCLEAR、REDIN脚为专用输入脚;VCCINT、VCCIO脚接+5V电源;GND脚接地;I/O为用户可编程输入输出脚。在I/O脚作输出使用时,可由用户设定为0,1和Z三种状态,外围器件直接选用MAX232做电平转换芯片。其硬件结构如图1所示。   图1 串口网关硬件结构框   在上面的结构框图有两个重要的部分:串口部分和CPLD主处理部分。串口部分主要完成的功能就是对串口数据流的电平转换,这里采用是通用的串行接口芯片:MAX232/MAX483。CPLD主处理部分主要就是处理的是来自串口的数据包,处理完后就可以直接发送出去。   1.2 CPLD主处理部分   基于CPLD的串口网关中,CPLD主处理部分是整个硬件系统中的核心处理设备:同速率不同类型的串行数据的接收;实现各种速率串行数据的相互转换;实现不同长度串行数据的相互转换;用数字电路实现奇偶检验;实现各个串口间的相互转发。基于CPLD的串口网关,是利用CPLD实现多个串口数据的协议转换。并且能够实现不同波特率间的数据转发或协议转换。其工作原理是:RS-232经过电平处理转换成TTL电平,然后进入CPLD进行处理,最后将处理后的结果从其他的串口发送出去。   该部分设计主要涉及3个子环节,即:波特率发生器的设计,串行电路接收部分的设计,串行电路发送部分的设计。这三个部分全是通过VHDL语言实现。其主处理部分结构如图2所示。      图2 CPLD主处理结构框图   1.3 串口网关的工作流程   首先CPLD设置好分频电路,此分频电路给接收和发送部分提供采样频率,当有数据从串口传过来时,接收部分对数据的下降沿进行检测以判断数据的到来,主要就是下降沿的检测[2-3]。当检测到下降沿后便可以知道第一位是起始字节的起始位的到来,然后在3倍于采样频率对数据进行采样,将采样到的数据存放于字长为3的数组中,然后在采样频率的上升沿对数组中的数进行判断,即Q(Num)=(N(0) and N(1)) or (N(1) and N(2)) or (N(0) and N(2));其中Q也是一数组,里面存放的是接收到的各个数据位。当接收完一个字节后便可以产生一使能信号来通知发送部分将数组中的数据一位一位的发出去。当使用同一种波特率来控制接收和发送部分时,此时收发便是处于同一波特率。当接收使用低波特率,发送处于高波特率时,此时收发便是处于不同波特率。在高波特率到低波特率的发收过程中,我们定义了数据帧是重复发几次的,以防止丢包。   在上面的接收和处理过程中只不过是同一种数据的波特率的转换或者是处于同一波特率的数据转发,另外通过此模块还可以实现协议的转换,其实现过程如下:A协议的数据通过串口发送后,CPLD接收到该协议的数据后,在发送部分进行处理,通过处理变成B协议要求的数据格式和内容。然后另一串口便可以接收到B协议数据,这样便可以实现两种协议不同数据的转换。

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档