朱孟祥 盖猛 刘真
摘要:本文提出一种协议转换器,涉及一种适用于铁道车輛主控CPU设备与MVB设备之间通信的CPCI总线和ISA总线的协议转换器和转换方法;实现高速CPCI总线和慢速ISA总线间稳定、可靠通信,该协议转换器已经广泛应用在CRH5型动车组、中国标准动车组国产化牵引控制系统中,具有良好的应用前景。
关键词:转换器;MVB;CPCI总线;ISA总线
中图分类号:TP336 文献标识码:A 文章编号:1672-9129(2018)07-0059-03
Abstract: in this paper, a protocol converter is proposed, which involves a protocol converter and conversion method for the CPCI bus and the ISA bus for the communication between the main CPU equipment and the MVB equipment of the railway vehicle. It realizes the stable and reliable communication between the high-speed CPCI bus and the slow ISA bus. The protocol converter has been widely used in the CRH5 type motor train. It has a good application prospect in the domestic traction control system of the Chinese standard EMU.
Keywords: converter; MVB; CPCI bus; ISA bus
引言
ISA总线(Industry Standard Architecture,工业标准体系结构)是IBM公司为PC制定的总线标准,数据传输的最高传输速率是16M/S;ISA总线的传输速率低、占用大量CPU资源。随着总线技术的发展,ISA总线逐渐被高速CPCI总线取代。
CPCI(Compact Peripheral Component Interconnect)总线,是国际工业计算机制造者联合会在上世纪提出的一种高速总线接口规范标准;它以标准PCI总线电气接口规范为基础,工业用高开放性、高可靠性总线,它的总线时钟频率可以达到66MHz。
ISA总线具有很好的兼容性,多年的技术积累,ISA总线接口的成熟产品大量存在。由于CPCI总线的可热插拔、高开放性、高可靠性和高传输速率,在铁道车辆牵引控制器中被广泛应用[1]。但是铁道车辆的MVB通信设备还大量应用ISA总线接口,在高速CPCI总线和慢速ISA总线间稳定、可靠的通信,为设备间通信提供CPCI总线、ISA总线转换器和转换方法是广大铁道车辆技术研发人员所面临的问题。
高速CPCI总线和慢速ISA总线间稳定、可靠通信的关键技术就是设计CPCI总线的局部接口去匹配ISA总线接口。目前应用最广泛的实现方案是使用PLX公司和AMCC公司生产的专用集成桥片进行转接,实现CPCI总线设备和ISA总线设备的通信。桥片的总线模式都提供了一个标准ISA总线接口,将桥片上的ISA总线接口和设备上的ISA总线接口直连;使用EEPROM (Electrically Erasable Programmable Read-Only Memory)带电可擦可编程只读存储器来存储桥片的配置信息;当然还需要一个微控制器,提供ISA总线时钟信号,实现ISA总线的地址、控制信号和CPCI总线接口的匹配。使用这种设计构架,给研发人员一种偷懒的借口,不需要对CPCI总线接口规范有深入了解,这不利于对现有产品的维护和对后续产品的研发;更糟糕的是用户受限于硬件桥片,不能根据自己的想法去控制CPCI总线时序。而且这给硬件设计人员增加了负担,相当于额外设计一个CPCI总线转ISA总线的接口板卡,增加了设计成本;并且大部分用户只是使用了桥片的部分转接功能,这造成大量的资源浪费。
1 整体设计方案
由于当前列车牵引控制器中主控单元CPU设备和控制板卡之间使用标准CPCI总线进行通信,主控单元CPU设备和控制板卡上具有ISA总线接口的MVB设备也要进行实时通信,为节省板卡面积、提高性价比和设计灵活性,设计一种CPCI总线和ISA总线的协议转换器,用于实现具有CPCI总线接口的主控设备和具有ISA总线接口的MVB设备之间的实时通信。本设计提供一种CPCI总线和ISA总线的协议转换器和转换方法,解决现有技术中CPU上的CPCI总线和MVB设备上的ISA总线无法直接实时通信的问题。本设计使用FPGA(Field-Programmable Gate Array)即现场可编程门阵列,编写硬件描述语言[2];该协议转换器主要由4个模块组成[3],分别为CPCI局部总线接口扩展时序模块、ISA总线接口时序模块、CPCI总线匹配ISA总线时序接口模块和时钟管理模块。本设计整体结构框图如图1所示:
2 CPCI局部总线接口扩展时序模块
CPCI局部总线接口扩展时序模块主要完成对CPCI总线的访问空间IO/MEMORY进行配置、CPCI总线的读写访问控制、地址译码和命令译码。局部CPCI总线与CPCI局部总线接口扩展时序模块之间的接口连接如图1所示。两者之间的主要信号包括:地址与数据信号AD【31:0】、命令/字节使能信号C/BE【3:0】、从设备准备好信号TRDY、停止数据传送信号STOP、帧周期信号FRAME和主设备准备好信号IRDY[4]。
CPCI局部总线接口扩展时序模块与ISA总线接口时序模块的接口连接如图1所示。两者之间的主要信号包括数据使能信号S_DATA_VLD、地址使能信号ADDR_VLD、读使能信号barx_rd、写使能信号barx_wr、字节使能信号S_CBE、数据信号D【31:0】和地址信号A【31:0】。
采用XILINX公司的IP CORE模块对CPCI总线的操作命令进行识别,产生读/写使能信号S_WRDN、地址使能信号ADDR_VLD、数据使能信号S_DATA_VLD、字节使能信号S_CBE和空间译码信号BASE_HIT。
由于CPCI总线和ISA总线的读/写速度不一致,需要建立中间数据缓存区BUFFER,即当CPCI总线的写操作即将发生时,将CPCI总线数据写到数据缓存区BUFFER,再传给ISA总线;当CPCI总线的读操作即将发生时,将ISA总线数据先传给数据缓存区BUFFER,再传给CPCI总线。
当前牵引控制器中基于ISA总线的MVB设备来自不同的供应商,各供应商的MVB通信设备支持的ISA总线的操作方式不一样,可为 IO设备、MEMROY设备或两者兼有,应根据实际需求,对CPCI总线访问空间进行配置,再根据CPCI总线提供的地址信号和地址使能信号ADDR_VLD,确定MVB设备的片选信号,进一步结合读/写使能信号S_WRDN和空间译码信号BASE_HIT确定本次操作的空间IO/MEMORY,最终得到实际使用的读使能信号barx_rd和写使能信号barx_wr。其中,读使能信号barx_rd中x代表选择的空间,取值为0、1或2;写使能信号barx_wr中x代表选择的空间,取值为0、1或2。
3 CPCI总线匹配ISA总线时序接口模块
CPCI总线匹配ISA总线时序接口模块与CPCI局部总线接口扩展时序模块之间的接口连接如图1所示,关键在于对停止数据传送信号STOP的使用。由于CPCI总线是高速设备而ISA总线是慢速设备,且CPCI总线的读/写操作时间是很快的,与CPCI总线直接通信的MVB设备响应不及时,数据包丢失严重。本设计使用的控制策略是:当CPCI总线以IO方式访问时,在CPCI总线读/写操作中插入等待信号S_WAIT,对CPCI总线的从设备准备好信号TRDY进行控制;当CPCI总线以MEMROY方式访问时,在CPCI总线读/写操作中插入停止数据传送信号STOP,在MEMROY设备本次操作未完成之前,CPCI总线一直处于被打断重连的状态,CPCI总线一直请求当前的读/写操作,直到当前一次操作中不插入停止数据传送信号STOP,CPCI总线才会发起下一次读/写访问。停止数据传送信号STOP由从设备发出,当停止数据传送信号STOP有效时表示从设备请求主设备终止当前的数据传送[5]。图2为从设备准备好信号TRDY、停止数据传送信号STOP、帧周期信号FRAME和主设备准备好信号IRDY的具体时序图:
4 ISA总线时序接口模块
ISA总线接口时序模块通过数据使能信号S_DATA_VLD、地址使能信号ADDR_VLD、读使能信号barx_rd、写使能信号barx_wr、字节使能信号S_CBE、数据信号D【31:0】和地址信号A【31:0】与CPCI局部总线接口扩展时序模块进行通信;ISA总线接口时序模块通过数据信号SD、地址信号SA、读/写IO设备信号IOW/IOR、读/写MEMORY设备信号MEMR/MEMW、地址锁存信号BALE与局部ISA总线进行通信。本协议转换器CPU读IO设备访问操作时序具体如图3所示:
5 时钟管理模块
时钟管理模块主要利用FPGA内部时钟网络及锁相环产生频率不同的时钟,为CPCI局部总线接口扩展时序模块、ISA总线接口时序模块和CPCI总线匹配ISA总线时序接口模块提供工作时钟。
6 协议转换器软件流程
协议转换器访问流程如图4所示,主控CPU设备通过CPCI总线对ISA总线接口的MVB设备的实时访问的过程为[6]:
1)确定CPCI总线本次操作的访问空间IO/MEMORY。当CPCI总线以MEMROY方式访问时,插入停止数据传送信号STOP;当CPCI总线以IO方式访问时,插入等待信号S_WAIT;等待ISA总线设备准备好进行数据通信。
2)利用地址使能信号ADDR_VLD、读使能信号barx_rd、写使能信号barx_wr和字节使能信号S_CBE确定CPCI总线访问ISA总线的实际地址信号SA,以及访问模式(读操作或者写操作)。
3)根据需求作出ISA总线的地址锁存信号BALE(MEMROY方式访问)。
4)根据字节使能信號S_CBE,判断32位数据中被使能的字节数据,从中间数据缓存区BUFFER中筛选出相应的8位数据或16位数据与MVB设备进行实时数据交互。
5)根据ISA总线协议规定的读/写信号脉冲宽度,确定出读/写IO设备信号IOW/IOR或者读/写MEMORY设备信号MEMR/MEMW,进而完成主控CPU设备通过CPCI总线对ISA总线接口的MVB设备的实时访问。
7 结论
CPCI总线和ISA总线的协议转换器在实际应用中有以下优点:
1)操作方便,CPCI总线和ISA总线的协议转换器是基于FPGA实现的,通过协议转换代替传统的转换桥片,无需更改牵引控制器结构和系统其它设备。
2)灵活性强,可根据需求调整CPCI总线和ISA总线的转换时序,实现不同的功能。
3)功能多,支持ISA总线的8位或16位数据宽度,支持CPCI总线设备对ISA总线设备的IO操作方式或MEMORY操作方式。
该CPCI总线和ISA总线的协议转换器目前已经批量应用在CRH5型动车组国产化牵引控制系统中,能很好地满足主控CPU设备通过CPCI总线对ISA总线接口的MVB设备的实时访问。实现了高速动车组技术的自主化创新。
参考文献
[1]侯金彪. PCI总线与ISA总线转换设计研究[J]. 计算机应用与软件,2013,30(8):236-241.
[2]张松,李筠.FPGA的模块化设计方法[J].电子测量与仪器学报,2014,28(5):560-565.
[3]王杰,王诚,谢龙汉.Xilinx FPGA /CPLD 设计手册[M].北京:人民邮电出版社,2011: 1-360.
[4]刘 韬,楼兴华. FPGA数字电子系统设计与开发实例导航[M].北京:人民邮电出版社,2005: 2-419.
[5]张旭东,付强,何松华,等. 基于PCI接口的多通道高速数据采集系统[J].数据采集与处理,2000,15( 2) : 240-244.
[6]张亚伟,朱孟祥,秦娇梅,等. CPCI总线和ISA总线的协议转换器和转换方法:中国,201510062421.1[P]. 2016-03-23.