基于PCI9054的通信卡设计

2012-06-25 07:02张会新陈嫣然郑燕露
电视技术 2012年5期
关键词:寄存器总线芯片

张会新,陈嫣然,郑燕露

(中北大学电子测试技术国家重点实验室,山西 太原 030051)

现代数据存储测试系统应用中对于远程的数据通信的要求越来越高,针对以往计算机与底层硬件之间通信采用USB、以太网、RS-232等通信方式,都有速度、距离和易掉线等缺陷。本文采用了PCI(Peripheral Component Interconnect)总线作为信息通信接口,使下层的测试系统能够和计算机之间有一个相当大的数据传输带宽。

PCI又称外围部件互连总线,是一种具有多路地址线和数据线的高性能的32/64位总线。目前32位数据总线时,最大传输速率可达到132 Mbit/s,当扩展到64位数据总线时,数据传输率可以达到264 Mbit/s。

1 硬件设计

基于PCI9054的通信卡以FPGA作为中心控制电路,考虑到占用较多的内部逻辑资源,选用Xilinx公司的FPGA芯片XC3S400,能够满足该系统的设计要求,用于对数据包的编码解码处理。PCI9054作为PCI接口芯片,实现PCI总线与FPGA的无缝连接。PLX Tech公司提供的PCI9054器件是一种支持32 bit/33 MHz PCI总线桥芯片,符合PCI 2.2规范,支持PCI总线的主/从方式传输,在突发状态下可实现PCI的全速数据传输,能广泛地应用到各种适配卡和嵌入式系统中。

1.1 总体电路设计

该系统主要由FPGA、PCI接口芯片PCI9054,光纤通信模块,LVDS接口电路组成。系统硬件总体结构框如图1所示。

图1 硬件总体框图

PCI通信卡的工作流程为:上位机发送32位数据通过PCI接口给PCI9054,FPGA控制PCI9054本地总线来获得这32位数据并打包成40位的命令字,并以异步串行的方式通过光纤模块发给测试系统。当测试系统回传数据时,FPGA也以同样的方式接收40位的数据包并解码获得32位数据存到内部FIFO缓存,再通过控制PCI9054本地总线来读取内部FIFO将数据上传至上位机。

1.2 E2PROM配置

E2PROM配置是硬件设计的关键,因为PCI9054的需要根据E2PROM配置信息初始化内部寄存器,配置信息如有不对,会造成无法进入系统。根据PLX公司给出的E2PROM芯片推荐表,选用Microchip公司的HT93LC56。经过实践,本文设计了一种方法可先以空白的E2PROM进入系统并使用PLX公司SDK中的PLXMon工具烧写其配置信息,实现正常使用PCI通信卡。E2RPOM硬件设计如图2所示。

图2 93LC56电路图

使用空白的93LC56首次进入系统时DI/DO引脚用3.9 kΩ电阻下拉,并且PCI9054芯片的Test引脚要用10 kΩ电阻上拉使PCI9054芯片处于高阻态即可以顺利进入系统。进入系统后将Test下拉使PCI9054进入正常工作模式,扫描PCI设备,安装PLX公司官方驱动即可使用PLXMon烧写固件信息,提示烧写成功后将DI/DO引脚上拉。重启计算机,则PCI通信卡可以正常使用。硬件设计时建议把这两个引脚设计成上下拉的方式。

PCI9054有5种寄存器,在该设计中主要是对PCI配置寄存器和Run Time寄存器进行配置,PCI配置寄存器里主要是本地总线对内存的映射,Space0映射到Memory,Space1映射到I/O空间,总线宽度为32位,突发模式使能。Run Time寄存器主要是开启PCI中断和本地中断。主要的E2PROM配置信息如图3所示。

图3 E2PROM配置信息(截图)

2 软件设计

PCI9054的本地总线有3种工作模式:M,C,J模式,该设计中采用局部总线32位,数据与地址不复用,所以选择C模式。C模式下有3种数据传输方式:直接主模式、直接从模式、DMA方式。该设计采用直接从模式。

2.1 时序设计

PCI9054的Memory支持单周期和突发模式的读写操作,I/O只支持单周期读写。该通信卡是建立在上位机与底层硬件之间的桥梁,上位机通过PCI下发命令,并且还要获得数据的回传。所以对于命令下发采用I/O读写方式,回传数据则采用Memory的突发模式,时序状态机如图4所示。上电复位后,当本地总线请求信号lhold来后,回应本地总线响应信号lholda。此时State0判断ads信号,ads为0则跳转到State1,表示有地址下发,否则在State0等待。State1状态时判断blast信号,当blast为0则跳转到State2状态,表示为单周期读写。在State2状态判断lwr信号,lwr信号为1表示是写,下发上位机的命令,lwr信号为0表示是读,回读数据给上位机。需要注意的是在此状态下需要将ready信号置0,表示数据有效。状态直接跳转到State3,继续判断ads是否又地址下发。当blast为1时则跳转到State4状态,表示为突发读写。State4状态时也是根据lwr信号来进行读或写,并将ready置0,跳转到State5状态。State5状态时再次判断blast,如果为1表示突发模式还未结束,还要进行读写数据,则状态机回到State4状态继续进行读写操作,如果为0表示已经是突发读写的最后一个周期,跳转到State6状态里再次判断ads。PCI9054时序操作需要注意的是ready信号置低返回给PCI9054的时间以及对ads判断的时间,如果ready信号置0不及时的话容易造成死机或者错数。而ads判断不及时可能会造成32位数高8位或低8位出现误码,这都是因为数据未建立稳定就开始读写所导致的。

图4 PCI9054状态机图

2.2 驱动设计

该设计驱动程序主要是完成本地总线对PCI总线的内存映射和I/O地址数据存取,能正确识别设备及处理来自通信卡的硬件中断信号。上位机控制相应的函数来实现读写操作,中断的判断和清除。主要步骤是:

1)检测是否存在设备,打开设备。

2)判断是写还是读,选择I/O或Memory,下发偏移地址,进行读写操作。

3)开始回读数据时,判断中断信号,如有中断信号则开始下发偏移地址并清中断。如果没有则延时等待后提示没有数据。

中断处理部分驱动程序如下:

3 结束语

PCI9054强大的功能使得对PCI总线接口的设计变得简单,只需通过本地总线的控制电路就可实现与PCI总线的数据传输。该系统实现了利用PCI总线对数据的传输和实时处理,可广泛应用于数据采集系统。

[1]饶运涛,邹继军,郑勇芸.现场总线CAN原理和应用系统设计[M].北京:北京航空航天大学出版社,2003.

[2]张文栋.存储测试系统的设计理论及其应用[M].北京:高等教育出版社,2002.

[3]张培仁,孙力.基于C8051F系列微控制器原理与应用[M].北京:清华大学出版社,2007.

[4]王强,文丰,任勇峰.基于FPGA的高速实时数据采集存储系统[J].仪表技术与传感器,2009(1):50-52.

[5]周治良,刘俊,张斌珍.基于FPGA及FLASH的数据采集存储系统设计[J]. 数采与监测,2003(1):91-92.

猜你喜欢
寄存器总线芯片
芯片会议
STM32和51单片机寄存器映射原理异同分析
关于射频前端芯片研发与管理模式的思考
Lite寄存器模型的设计与实现
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
多通道采样芯片ADS8556在光伏并网中的应用
CAN总线并发通信时下位机应用软件设计
多通道ARINC429总线检查仪
高速数模转换器AD9779/AD9788的应用