基于PCI总线的HDLC通信卡的设计与实现

发布者:kappa20最新更新时间:2015-01-07 来源: e-works关键字:PCI总线  HDLC通信卡  PCI9054 手机看文章 扫描二维码
随时随地手机看文章

    PCI总线及在其基础上发展起来的CPCI总线,在工业控制、数据采集、信息通信、航空航天等领域得到了广泛的应用。高级数据链路控制(HDLC)是一个在同步网上传输数据并面向位的数据链路层协议,具有透明传输、可靠性高、传输效率高以及灵活性高等特点,可以实现点到点或者点到多点的数据传输,在路由器、网关等通信或者网络设备中应用广泛。为了满足实际工作的需要,并为后续系统升级提供拓展空间,本文设计并实现了一款基于PCI总线、符合HDLC协议的通信卡,以满足高速数据传输的需要。通信卡采用PCI总线控制器实现PCI总线接口设计,采用FPGA实现HDLC通信协议及接口逻辑设计,采用RS一422标准对外通信,实现与外系统的互连。

1 HDLC通信卡总体方案

    通信卡主要采用PCI9054和FPGA构成硬件系统,其硬件结构图如图1所示。数据传输流程为:接收数据时,通过RS一422接口芯片接收数据,数据格式满足简化的HDLC协议;通过FPGA内部的HDI.C模块进行数据接收和串并转换;然后在本地控制逻辑的控制下通过PCI9054以DMA方式传给上位机,实现数据的接收和判读;发送数据时,上位机软件将数据以DMA方式传给PCI9054再输入FPGA,在其内部HDLC模块的作用下,进行数据并串转换和HDLC协议转换,最后通过RS一422发送器进行电平转换和数据发送。预留SDRAM以满足大容量数据通信需要。

2 HDLC通信卡电路设计

    2.1 总线接口设计

    PCI总线具有高性能、低成本、开放性、兼容性良好等优点,但PCI总线具有严格的时序关系和电气规范,使得开发工作量和难度比较大。PCI总线一般都采用各IC生产商设计的PCI专用接口芯片进行PCI总线设的开发,以减少开发难度、降低上作量。基于此考虑,在本设计中,采用PLX公司的PCI9054芯片进行总线开发。

    PCI9054芯片满足PCI V2.2协议,可作为桥接芯片在PCI总线和本地总线(10cal bus)之间提供信息传输,既可以作为两个总线的主控设备去控制总线,也可以作为两个总线的目标设备去响应总线。其本地总线可工作在M、C、J三种模式,可方便地与多种微处理器连接。在C模式下,因本地总线的地址线和数据线分开,时序与控制逻辑比较简单,得到了广泛应用[31。因此本通信卡中,PCI9054工作于C模式从设备方式,本地总线时钟采用40 MHz恒温补偿晶振。PCt9054的PCI总线端引脚按照对应关系与PCI总线金手指连接器相连,本地端地址总线为15 bit,数据总线为32 bit,控制总线包括ADS、BLAST、LHOLD、LHOLDA、LW/R#、READY、EOT#引脚,将它们分别与FPGA的10口互连。

    2.2 FPGA芯片选型与设计

    HDLC协议是面向比特的高级数据链路控制规程,具有强大的差错检测功能、高效和同步传输的特点,利用它可以确保数据信息可靠互通。市场上有许多使用简单的专用HDLC芯片,但由于HDLC标准的文本较多,这些芯片出于专用目的难以通用于不同版本,缺乏应用灵活性,且其片内存储器容量有限。另一种方法是通过软件对MCU编程实现HDLC协议,虽然功能灵活、适应性强,但处理速度慢、占用处理器资源多,难以高速实现对HDLC数据的插“0”和去“0”操作,一般只适用于路数较少的低速场合141。

    为了实现与当前系统HDLC协议的兼容,本通信卡采用FPGA实现HDLC收发功能模块,充分利用FPGA硬件可编程的特点,发挥其速度快、灵活性高、并行处理信号、实时性能够预测的优势。同时,考虑到通信卡传输一帧数据的长度通常为512 KB~1 KB,而PCI9054的DMA只有32长字FIFO,且PCI读写速度与HDLC收发速度不一致,需要利用FIFO进行数据缓存,达到时序匹配的目的。为了提高系统集成度及其可靠性,采用FPGA内部存储单元实现FIFO功能。因此,综合考虑FPGA内部存储单元数量、10引脚数量等,选择Altera公司的EP2C20一F240用于功能模块开发。EP2C20F240为QFP封装,可用IO口142个,内部LE 18 752个,内部RAM为239 616 bit,可以满足系统开发需要。

    2.3 差分接口设计

    通信卡对外通信采用RS一422方式传输数据,传输频率最高为768 kHz。因此,选用MAXIM公司的RS一422发送器MAX3032E和接收器MAx3094E,其数据传输率最高分别可达20 Mb/s和10 Mb/s,满足数据高速传输需要。

3 HDLC通信卡逻辑设计

    通信卡上的FPGA完成PCI9054本地总线数据读写时序逻辑的转换,实现HDLC收发模块和FIFO数据缓存功能。设计中采用VHDL硬件描述语言实现各功能模块,利用Ahera公司的集成开发环境Quartus II(11.0)完成相关的编译、调试、下载等开发工作。

    3.1 本地总线数据读写模块

    PCI9054工作于C模式从设备方式,采用分散/聚合(Scatter—Gather)DMA方式进行数据快速传输,以发挥其速度快的优势。根据PCI9054读写时序图可知,在C模式从设备方式下,FPGA读取PCI9054本地端ads_n和hlast_n的引脚状态,判断是单周期读写状态还是猝发读写状态,实现地址获取和数据读写,其状态机如图2所示。同时,在上位机读数据完毕后,如果读FI.FO为空则将EOT#引脚拉低,将数据传输结束信号上传,强行停止主机数据读操作。这就需要在DMA初始化过程中,设置DMAMODE寄存器的第14位为EOT#有效模式。[page]

    3.2 HDLC通信模块实现

    HDLC的标准帧格式如表1所示,但HDLC也有由用户定义的非标准帧格式,常用于点对点的通信中。在非标准格式中,地址段、控制段、CRC段是可选的。本通信卡主要用于点对点通信,且采用简化的HDLC协议,即省略地址段、控制段、CRC段。其中CRC校验功能由上位机软件实现。

    HDLC是面向位的,在待传数据中出现与标志字一样的数据时,如果不进行处理,就会被误认为是帧边界。为了避免此错误,HDLC规定采用“零比特填充法”使一帧中两个字段之间不会出现6个连续1。具体做法是:发送数据时,先进行帧数据扫描,只要发现有连续的5个1,则立即插入一个0,以此保证数据中不会出现连续6个1;接收数据时,先找到3E字段以确定帧的边界,接着对其后的比特流进行扫描,每发现5个连续1就将其后的0删除,以此保证所传比特流中不出现帧标志,直到帧尾标志出现,从而实现HDLC在链路层的“透明传输”,保证发送端可以发送任意组合的比特流信息,而接收端都能准确无误地接收到。

    FPGA中实现的简化HDLC模块总体框图如图3所示。读写FIFO采用Ahera公司的LPM功能模块实现,大。小可根据需要设置,本通信卡设为512x32 bit。发送数据舅时,写FIFO接收Pc数据(总线宽度为32 bit),首先进行曼并串转换,再进行插“O”操作,最后插入标志字按位发送出去,输出数据Tx和输出时钟Tx_Clk保持同步,整个过程由发送控制状态机进行控制。接收数据与发送数据过程相反,由接收控制状态机进行控制。其中输入、输出时钟可以设置为68 kHz或者768 kHz。

    发送控制状态机和接收控制状态机分别如图4、图5所示。发送数据时,发送状态机首先判断写FIFO是否有数据,若有数据,则插入帧头,依次读取FIFO数据,完成插“0”操作和插帧尾操作,并按照从低到高的顺序发送数据,直至写FIFO为空。接收数据时,首先搜索帧头,为了防止接收到连续两个标志字而把后一个标志字误认为是数据,设置搜索数据状态(Data_find),若不是标志字,则作为数据进行去“0”操作,完成串并转换和帧尾检测,并将接收到的数据以32 bit为单位,逐次写入读FIFO中。当一帧传输结束,采用中断信号通知上位机及时读取数据。一旦检测到丢弃序列(0x7F),则结束对此帧数据的处理,并清空读FIFO里的数据,同时上报PC机错误信息,请求发送方重新发送数据。

    3.3 功能时序图

    图6、图7分别给出了利用Quartus II的在线逻辑分析仪SignalTap II获取的PCI写数据、HDLC数据发送和HDLC接收、PCI读数据的时序波形图。从图中可以看到,HDLC模块正确实现了插“O”和去“0”操作,并能与PCI9054进行正确的数据收发。

    本文采用PCI总线控制器PCI9054和FPGA技术设计实现了一款符合简化HDLC协议的通信卡,并已成功应用于实际工作中。实际应用表明收发数据正确,可以满足高速数据通信要求。同时,该通信卡设计中预留了一定的扩展空间,能够根据需要进行功能拓展。本通信卡可应用于信号处理、数据通信等场合,对PCI总线应用设计有一定的参考价值。

    实验结果表明,基于ARM9和CPLD硬件平台,在嵌入式Linux操作系统下,系统能够实现等速跟踪、位置定点和正弦跟踪等功能,满足控制实时性要求,可实现伺服控制。系统体积小、成本低、功耗小、接口丰富、便于开发,且Linux系统具有很好的文件管理功能,有助于实验数据的存储和导出,便于实验结果分析。系统进一步完善后可将控制程序设计成图形界面,利用触摸屏输入和显示伺服控制结果,则可实现控制结果实时显示,可视化效果好,整个系统可脱离计算机工作,具有广泛的应用价值。

关键字:PCI总线  HDLC通信卡  PCI9054 引用地址:基于PCI总线的HDLC通信卡的设计与实现

上一篇:一种智能ARI NC429总线接口板的硬件设计与实现
下一篇:采棉机智能监控系统CAN应用层协议设计

推荐阅读最新更新时间:2024-05-02 23:25

PCI总线接口技术及其在高速数据采集系统中的应用
  数据采集是数字信号处理中非常重要的环节。对于不同的任务,数据采集要达到的技术指标也不相同。对于瞬态信号,雷达信号和图像处理都需要几MB/s甚至几十MB/s的超高速采集速率。目前用于PC机的数据采集卡大部分是基于ISA总线的,   这种结构的最大缺点是传输速率太低,不能实现数据的实现高速传输。PCI总线推出后,以其突出的性能备受计算机和通信业界的青睐,将取代以往的总线, 成为高档机及高性能工作站外部件的基石。PCI作为局部总线,一边与处理器和存储器总线接口;另一边为外设扩展提供了高速通道。33MHz、32位的PCI总线可以实现132MB/s的数据传输速率;64位的PCI总线性能加倍。开发以PCI总线为基础的数据采集设备是技术
[嵌入式]
用I/O命令访问PCI总线设备配置空间
    摘要: 通过对PCI协议配置机制的分析,提出一种直接用I/O命令访问PCI总线设备配置空间的方法,给出了相应的C语言程序,并在实际应用中得到验证,从而在大多数情况下避免了复杂的驱动程序开发。     关键词: PCI总线 配置空间 操作系统 PCI总线推出以来,以其独有的特性受到众多厂商的青睐,已经成为计算机扩展总线的主流。目前,国内的许多技术人员已经具备开发PCI总线接口设备的能力。但是PCI总线的编程技术,也就是对PCI总线设备的操作技术,一直是一件让技术人员感到头疼的事情。PCI总线编程的核心技术是对相应板卡配置空间的理解和访问。一般软件编程人员基于对硬件设备原理的生疏,很难理解并操作配置空间,
[嵌入式]
基于CPCI总线的智能A/D,D/A模块设计
   0 引 言   在工业控制领域,为了实现采集和控制功能,经常会使用到A/D,D/A模块。在实际使用中A/D,D/A模块和主机之间通信方式可以有很多选择。比如RS 232,RS 422,网络等接口方式。在该设计中A/D,D/A模块通过CPCI总线与主机通信,通过A/D接口采集数据,经过伺服控制软件处理,输出模拟量驱动执行机构。   从而实现一个闭环的控制。另外通过对DSP软件的修改,该模块还可以单独实现A/D或者D/A功能。   该设计中A/D,D/A模块具备以下功能:   (1)提供2路16位A/D,输入信号范围±5 V,精度要求小于士16 LSB;   (2)提供2路16位D/A,输出信号范围±5 V,精度要求小
[模拟电子]
基于PCI总线的无线电高度表测试系统
   0 引言   为了适应高科技条件下的现代战争,不仅要不断地提高战斗机的性能,而且对相应检测设备也提出了更高要求。先进测试技术的应用是战斗机维护修理的发展方向,是减少维修时间、提高装备完好率的重要手段。本文所设计的检测设备的技术高低对高度表的日常维护、检测起了决定性的作用。   本文对高度表的组成和工作原理进行分析,确定被测试项目。重点对被测参数进行分析,采用并行的开发模式。选择适合的工控机,设计相应的调理电路。软件用LabWindows/CVI语言,完成编辑、编译、连接、调试、仿真等开发。    1 高度表概述   本文所研究的无线电高度表(以下简称高度表)作为某型导弹纵向弹道控制的关键部件,其性能的好坏将直接影响着
[测试测量]
基于<font color='red'>PCI总线</font>的无线电高度表测试系统
基于DSP与PC机的PCI总线高速数据传输
TMS320C6713是TI公司在TMS320C6711的基础上推出的C6000系列新一代浮点DSP芯片,它是目前为止C6000系列DSP芯片中性能最高的一种。TMS320C6713可在255MHz的时钟频率下实现1800MIPS/1350MFLOPS的定点和浮点运算,因而可极大地满足通信、雷达、数字电视等高科技领域对信号处理实时性的要求。同时其主机口(HPI)可灵活地和PCI总线控制器相连接。而PC机则可通过PCI总线控制器直接访问TMS320C6713的存储空间和外围设备,从而实现PC机与TMS320C6713之间的高速数据传输。     在TMS320C6713 DSP与PC机实现高速数据传输的方案中,可选用PLX公司的PC
[嵌入式]
应用CPCI总线技术实现便携式电磁阀检测仪的设计
1. 前言 由于某型号电磁阀热真空试验需要出厂完成,在试验过程中需测试阀门响应特性,传统的测试设备体积无法满足运输需求,因此需要配备便于携带的电磁阀测试设备。 CompactPCI简称CPCI,中文又称紧凑型PCI,是国际PICMG协会于1994提出来的一种总线接口标准。它将VME密集坚固的封装和大型设备的极佳冷却效果以及PC廉价、易采用最新处理能力的芯片结合在一起,既保证了99.999%的高可靠度,又极大降低了硬件和软件开发成本。其整体机构紧凑,安装牢固,适应各种运输条件,可靠性高。各功能板采用CPCI总线的模块化结构,插拔十分安全方便,特别适合本系统的多种型号测试对象和多种测试工况的要求。 2. 设计要求 (1)要求
[模拟电子]
应用C<font color='red'>PCI总线</font>技术实现便携式电磁阀检测仪的设计
基于cPCI总线的嵌入式遥测前端处理器系统设计
  遥测数据处理系统在航空、航天等军工试验领域有着广泛的应用。在航空飞行试验中.遥测数据处理系统为各类试飞测试数据的实时处理提供了手段和平台,试飞员、试飞指挥员及试飞工程师协同完成新机试飞必不可少的重要设施,是确保现代飞机试飞安全、提高试飞效率、缩短试飞周期、实现综合试飞的重要手段。   遥测数据处理系统中的核心设备——遥测前端处理器,技术上经历了从分立式、智能式到嵌入式的快速发展。我遥测前端处理器的研发经历了从引进、合作研制到完全自行研制的历程。   遥测前端处理器是一套嵌入式实时计算机系统,承担着遥测PCM数据的同步、分路、工程单位转换、数据计算、数据分配等实时处理任务。它和遥测系统管理服务器、工作站等设备通过网络联接
[嵌入式]
PCI总线协议的FPGA实现及驱动设计
摘要:采用FPGA技术,在ALTERA公司的FLEX6000系列芯片上实现了从设备模式PCI总线的简化协议,并给出了Windows9x系统下的虚拟设备驱动程序,提供了与应用程序的接口。实现结果表明:该设备结构灵活,功能可靠,有利于与其它模块实现单片集成应用。本系统已应用在数据采集和处理、图像处理等方面。 关键词:PCI总线协议 现场可编程门阵列 虚拟设备驱动 目前,许多公司都提出了新型的计算机高速总线,如Arapahoe总线标准和HyperTransport技术,但各协议互不兼容,没有形成统一标准。作为传统的通用局部总线,PCI总线仍然占据着主流个人电脑市场,具有顽强的生命力。 现在市面上存在着各种PCI接口芯片,如AMCC
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved