本文目录一览:
基于CPCI系统的高速数字通信接口电路设计与应用
基于CPCI系统的高速数字通信接口电路设计与应用
在CPCI系统环境下高速数字通信AFDX协议端系统接口的电路设计与功能实现。采用Verilog编程实现基于FPGA的硬件设计部分,采用C编程实现基于MicroBlaze的嵌入式软件设计。
0 引 言
随着通信技术的高速发展,嵌入式系统对数据传输速率的要求更高。在航空等军用电子设备中,实现信号处理算法的数字信号处理机,起着至关重要的作用。CPCI总线技术有效解决了高速互联问题。
20世纪90年代,PCI总线技术被广泛应用,但是它可靠性较低,无法满足对正常运行时间要求较高的高可用性系统。加之其主板连接器可靠性低,更换时易被损坏。CPCI的高带宽特点,决定了其适用于高速数据通信场合。随着国外著名计算机系统公司基于CPCI产品和方案的推广及PICMG/PRC对CPCI技术的宣传,我国工业控制领域越来越多地把CPCI应用于高性能嵌入式系统之中。本文研究了在CPCI系统环境下高速数字通信AFDX协议端系统接口的电路设计与功能实现。采用Verilog编程实现基于FPGA的硬件设计部分,采用C编程实现基于MicroBlaze的嵌入式软件设计。
1 基于FPGA的硬件设计
拦核1.1 MAC模块、FIFO模块和MII模块
FIFO模块分为接收FIFO和发送FIFO,通过调用IP核来实现。本文所设计的MAC模块和FIFO模块的基本结构如图1所示。MAC核通过MII接口和PHY芯片进行外部通信,通过发送FIFO和接收FIFO进行FPGA内部数据的通信。
1.2 CRC模块
CRC模块通过检验数据的CRC值,判决接收的数据的正确性和有效性。在数据包被发送后,紧接着该数据包的4 B CRC也会被发送。接收者通过数据包和CRC数据就可以得出新的CRC值。若新CRC值为0,表明接收和发送的数据不一致,crc_error将会置1。其管脚定义如表2所示。
1.3 规整模块和冗余管理模块
规整模块根据每条VL的BAG,Lmax值,对其数据流进行规整。具体方式为:当该VL的BAG时间达到,且Jitter在最大抖动的范围内、帧长小于Lmax,则置FTT标识有效,此时多路复用器模块会派衡纤申请对该VL进行调度;反尘仿之,不能对该VL进行调度。将固定带宽分配给每个VL,等价于把接收端与发送端之间的数据传输限制在一个BAG内,即在一个BAG内只有一次数据传输,如果数据包过大,将其分为多个帧进行发送,也将会在各自的BAG内进行发送。所以,为了保证任意时间段使用的带宽都是可以被确定的,必须把一个时间段合理地分配给不同的终端系统使用,规整器的输入输出示意图如图3所示。
从图3可看出,两个数据帧之间的长度大于BAG,那么正常接收;当两个数据帧之间的长度小于一个BAG,就将后一个数据帧移动到第二个BAG的起始位置。 在AFDX网络中,通过不同的AFDX网络交换机将两个互为冗余的帧传递到同一个目的端系统。只要交换机输出端口的输入流量大于输出流量,就必定会产生交换延迟。因为不同的交换机的交换延迟不是确定值,所以两个互为冗余的帧到达目的端的时间间隔也是不确定的。设计时,将SkewMax(最大偏斜)用于AFDX的接收冗余管理中以便对冗余帧的接收时间进行限制。冗余管理模块的功能是对接收帧的有效性进行验证,并将重复的有效帧进行消除。冗余管理模块的框图如图4所示。
1.4 发送和接收模块
发送数据的基本过程如下:要发送数据时,将待发送数据传输到MAC的发送缓存中,发送缓存接收到的数据达到设定值时,数据发送模块开始进行帧间隔计时;发送帧的前导码;发送帧起始定界符;帧长计数、CRC校验和计算,同时将数据按半位元组(4 b)发送给MII接口;在发送过程中,如果MAC检测到该帧的长度小于最小帧长(64 B),则进行数据填充达到64 B为止。
AFDX发送部分的状态机如图6所示,发送数据主要包括等待、数据长度检测、插入前导码和帧起始界定符、数据发送以及CRC校验结果状态。系统在工作的时候,一直处于wait状态,当需要发送数据的时候,状态机将进入下一个状态从而开始数据的发送。
接收为发送的反过程,首先对接收到的4位信息进行帧检测,当检测到前导码和帧起始定界符的时候,则认为一帧数据接收到了,然后开始对数据帧进行解析,得到帧数据中的各类数据信息。
AFDX接收过程如下:数据通过PHY芯片解码后进入到MAC 核,然后进入接收FIFO。当MAC接收到数据有效后,从MII接口读入数据后检测前导码和帧起始定界符,当检测到有效的帧起始定界符,就会开始对帧长进行计数。接收模块在接收数据的过程中将已接收到的帧的`前导域,SFD域,CRC域和PAD域进行剥离。
2 基于MicroBlaze的软件设计
2.1 设计说明
在MicroBlaze中将主要完成AFDX协议栈中UDP层和IP层的数据发送和接收部分,对数据进行封装、解析和控制。发送部分主要完成以下几个工作:当一个帧数据进入AFDX端口时,发送部分就开始对该帧数据进行封装,其中UDP层将对数据添加UDP头,包括源和目标UDP端口号。IP层将UDP层处理完的数据添加IP 包头和以太网头,然后送入虚链路层并添加序列号。接收部分主要完成如下几个工作:当一个帧信号通过PHY解码送入MAC后,通过接收FIFO送入AFDX接收模块,那么接收过程开始。在链路层首先对该帧信号进行完整性检测和冗余管理,然后进入IP层,进行IP 校验和检查,然后送入UDP层,通过多路分配器后将对应的帧数据发送出去,实现数据的解封装功能。
2.2 设计流程
基于MicroBlaze的系统设计需要分别对系统的硬件和软件进行协同编译。完成MicroBlaze的软件设计之后,将MicroBlaze作为ISE工程下的一个子模块进行调用。为了验证程序的正确性,利用ISE调用ModelSim对其进行仿真。具体做法是在ISE工程中添加一个以MicroBlaze处理器为基础的IP核,并编写测试文件,为处理器的输入信号提供激励,输出信号提供端口。
3 测试与验证
两个MAC核的仿真意义是相同的,所以针对第一个MAC核的仿真波形进行说明。mii_tx_en_0为帧使能信号,当MAC核正常工作时,有数据发送的时候该信号为1;当发送为0的时候,该信号使能为0,mii_txd_0为发送的数据。当有接收信号进入MAC核时,mii_rx_dv_0为高电平,对应的数据为接收的数据;当接收的数据发生错误时,mii_rx_er_0会出现高电平,如果接收到的数据没有发生错误,那么该信号为低电平。
在接收端,判断接收数据的CRC计算结果是否为0,如果为1,则表明接收过程中有CRC校验错误。CRC 校验模块的仿真结果如图11所示。由图11可以看出,对接收到的数据以及发送过来的这些数据的CRC 校验值(d19167bc)一起计算,计算出来的校验值为0,证明接收的数据没有问题。
规整模块的仿真数据如图12所示。此处接收到的数据位1,2,3,4,…是不等间隔的,通过规整之后输出的数据1,2,3,4是等间隔的,这个模块的初始输出数据是错误的,所以会重复输出第一帧的数据,后面将输出正确的数据。
主机要发送数据时,首先给MAC的发送缓存中发送数据。发送缓存接收到的数据与设定值相符时,开始进行长度检测,检测完成后,数据发送模块开始进行帧间隔计时。根据帧计数器的值开始发送帧的前导码、帧起始定界符,将4位数据发送给MII接口,最后把数据从物理层发送到网络介质上。发送模块的仿真结果如图13所示。
此处仿真波形的信号i_start_or_not为高电平时,AFDX 发送模块开始工作,i_data为需要发送的数据,i_data_number为需要发送数据的个数,i_aim_address 为发送信号的目标地址,i_orig_address为发送的源地址,i_head_ip为发送信号的IP头,i_head_udp为发送信号。当发送开始时,系统首先检测需要发送的数据长度,如果数据长度大于64,则开始发送,如果发送数据长度小于64,那么进行填充,补充到64为止。通过AFDX发送模块,得到发送的帧数据o_AFDX_data以及帧信号对应的帧使能信号o_afdx_frame,完成了数据的正常发送。
接收模块的仿真结果如图14所示。当外部数据通过PHY解码后进入MAC核,接收端开始进入接收状态机,首先检测前导码和帧起始界定符。如果检测正确,那么系统进入下一个状态。从图14的仿真结果可以看出,当检测完前导码和帧起始界定符时,current_state将进入下一个状态。然后开始接收数据,o_data就为接收到的数据。 4 结 论
本文在对航空全双工以太网(AFDX)协议深入研究的基础上,介绍了一种通用信号处理平台中的一块AFDX接口板卡,该板卡扣在相应的XMC载卡上应用于CPCI系统中。该板卡XMC传输速率为3.125 Gb/s,可高速传输RapidIO协议数据,兼容32 b PCI接口和LINK口协议。由于该板卡支持多种接口模式的背板,为各种高速板卡之间的互联提供了平台。
基于AFDX接口板卡,采用FPGA设计了一种AFDX端系统接口功能的实现方法,该方法基于FPGA的硬件设计和基于MicroBlaze的嵌入式软件设计,采用FPGA和PHY芯片实现End System端的AFDX接口,完成传输层(UDP)、网络层(IP)、链路层(Virtual Link)及物理层(PHY)四层协议数据传输,使得该接口具备实时、可靠传输AFDX 数据的能力。由于该网络协议比较复杂,开发设计具有一定难度。本文的设计基本实现了AFDX端系统的接口发送和接收功能,基本达到了预期目标。AFDX端系统作为AFDX网络协议的重要组成部分,为航空电子系统提供了安全可靠的数据交换服务接口,今后必会得到更加广泛的应用。
;
PCI104与PC/104+的区别
PC/104是一种专门为嵌入式控制而定义的工业控制总线, 是PC总线在嵌入式饥州应用中的衍生产物,堆栈式结构,在国际上广泛流行, 被IEEE协会定义为IEEE-P996.1.我们知道, IEEE-P996是PC/XT和PC/AT工业总线规范, 而从PC/104被定义为IEEE-P996.1 就可以看出,PC/104总线实质上是一种紧凑型,小型化的IEEE-P996.其总线信号定义和PC/AT基本一致,但电气和机械规范却完全不同,是一种优化的,小型化的,堆栈式结构的嵌入式控制系统。相对于普通计算机上PCI及PCI Express,在PC/104嵌入式计算机中被分别定义为PC/104plus(或PCI-104)及PCI/104 Express(或PC/104 Express),特别值得一提的是:瑞士数字逻辑公司是PCI/104 Express (PC/104Express)的最先设计及使用者,在高速Express领域具有无可争议的领导地位,于2006年为PC/104协会起草,并定义了新一代基于PC/104的PCI/104 Express总线规范,于2008年首季度被正式认定为IEEE总线规范之一,成为国际标准。
PC/104有两个版本, 8位和16位总线,分别与普通PC的PC/XT和PC/AT相对应,其有效信号与PC/XT及PC/AT完全一致,有时也被称之为PC/104的ISA总线,在PC/104总线的两个版本中,8位PC/104总线,共有64个总线管脚(单列双排插针和插孔),16位总线为(64+40=) 104个总线管脚(双列双排插针和插孔) ,其有效信号线和控制线完全与“PC/XT”和“PC/AT”兼容.仅仅增加了几个定位孔和电源及地而已。
PC/104plus( 也称之为PC/104+),则与PCI总线相对应,有时也被称之为PC/104的PCI总线.真正意义上PC/104plus总线产品应同时包含ISA和PCI两个总线,而将仅仅包含PCI部分的产品称之为PCI-104。但基于历史上约定俗成的叫法,我们通常会把PC/104板上的PCI总线也称之为PC/104plus. PC/104plus(PCI-104)为单列三排120个总线管脚,有效信号线和控制线和PCI总线完全兼容.与我们的计算机一样,一个计算穗宽机主板可以同时拥有PC/AT和PCI总线,一个PC/104的CPU模块则可以同时拥有PC/104和PC/104plus总线
PCI/104 Express则与PCI-Express(PCIe)及PCI双总线相对应,有时也被称之为PC/104上的PCI Express+ PCI总线,真正意义上PCI/104-Express总线产品应同时包含PCI和PCI-Express两个总线,而将仅仅包含PCI-Express部分的产品称之为PCIe/104, PCIe/104是高速串行总线,有20个PCI Express内部总线通道(Lane),采用150芯高密堆栈式总线连接器将各个带有Express总线的PC/104相连。与我们的计算机一样,一个通用高速计算机主板可以同时拥有PCI和PCIe总线,一个PCI/104 Express的CPU模块则可以同时拥有PCI-104和PCIe/104两个总线同时在板,新一代PCI/104-Express产品中的PCIe/104在板上占据了原来PC/104(ISA)的位置,也就是说,新一代的PC/104 Express产品中包含PCI-104(PCI)和PCIe/104,但不再拥有PC/104(ISA)总线。
相关说明:对比PC/104与普通PC,我们可以看到PC/104总线产品软件上与PC/XT和PC/AT完全兼容.PC/104plus与PC/AT及PCI完全兼容,PCI/104 Express则于烂族蔽PCIe及PCI完全兼容。在硬件上PC/104与PC主板主要存在着以下几方面的不同:A. 小尺寸结构,PC/104标准模块的机械尺寸为:3.8x3.6英寸(96x90mm),B..堆栈式,“针”“孔”总线连接,即PC/104总线模块之间总线的连接是通过上层的针和下层的孔相互咬和相连,有极好的抗震性。C. 6mA总线驱动既可使模块正常工作,低功耗,减少元件数量,Digital-Logic AG产品驱动能力为24mA, 4.自我堆栈式连接,无须母板。
CPCI-express
产品名称:CPCI-Express 背板
产品描述:6槽CompactPCI Express 母灶慧板,其中三个为混合槽(既可支持cPCIe,也可支持传统的32位cPCI),2个传统的cPCI槽,1个槽用于翻译板。
详细介绍:
ICPe-BPL-63T55是专门用于CompactPCI Express的智能型专用母板,3U 符合cPCIe规范PCUMG EXP.0 R1.0,支持混合槽、传统的I/O板以及翻译板,其中3个槽为混合槽,既可以支持CompactPCI Express I/O板,也可以支持标准的32位 33MHz传统的CompactPCI,板上提供SATA RAID,ATX电源和冷却风扇信号。
特性:
1x7pin UPM用于系统槽CPU供隐带答电
6x ADF用于CompactPCI Express(XP3和XP2)
4xeHM用于CompactPCI Express后I/O
5xHM用于 CompactPCI Express总线
1xHM用于翻译板
一个位置用于电源连接
1x24pin用于ATX 12V连接器
1x4pin用于 12V连接器 Datasheet
4x4pin用行尘于 5.25" 外设连接器
128.4mmx178.73mm
为什么cpci的连接器可以插pxi
因为PXI本来就是在CPCI的基础上增加同步信号定义,所以两者物理尺寸完全一样,电气特性一样。