高速PCI总线接口卡的开发
摘要:从系统的角度介绍高速PCI总线接口卡开发的整个过程,其中包括硬件电路的设计制作和软件驱动的开发。介绍一些从实际设计过程中得出的应该注意的细节等。
关键词:PCI总线 PCI9052 TMS320LF2407 双端口RAM
PCI总线技术已经应用于形形色色的微机接口中。同在声卡、网卡甚至有些显示都是基于PCI总线技术的,一些高速数据传输系统中也需要用到PCI总线技术。PCI总线技术的出现是为了解决由于微机总线的低速度和微处理器的高速度而造成的数据传输瓶劲问题,PCI局部总线是在ISA总线和CPU总线之间增加的一级总线。由于独立于CPU的结构,该总线增加了一种独特的中间缓冲器的设计,从而与CPU及时钟频率无关,用户可以将一些高速外设直接挂到CPU总线上,使之与其相匹配。PCI局部总线使得PC系列微机结构也随之升级为现在的基于PCI总线的三级总线结构。PC机的三级总线结构如图1所示。
1 PCI总线接口卡的开发
PCI局部总线最显著的特征是速度快。ISA总线的传输速率为5MB/s,EISA总线的传输速率为33MB/s,PCI1.0标准定义的总线传输速率为132MB/s,PCI2.0标准定义的总线传输速率为264MB/s,PCI2.1和PCI2.2标准定义的总线传输速率为512MB/s。而新一代PCI-X技术则在原有PCI总线技术的基础上增加了许多新的技术特征,利用PCI-X技术可以为千兆以太网卡、基于Ultra SCSI320的磁盘阵列控制器等高数据吞吐量的设备提供足够的宽带。1999年PCISIG(PCI特别兴趣小组发布的PCI-X1.0标准最高可提供1GB/s的传输速率,而2003年推出的PCI-X2.0标准则最高可提供4.3GB/s的传输速率。
javascript:window.open(this.src);" style="cursor:pointer;"/>
目前,PCI总线接口电路的选择主要有两种方案。一种是选用可编辑逻辑器件(PLD)。使用PLD,用户可以灵活地开发出适合自己需要的具有特定功能的芯片,但PCI总线协议比较复杂,设计PCI控制接口难度较大,对于一般的工程项目来说,成本较大。现在有许多生产可编程逻辑器件的厂商都提供经过严格测试的PCI接口功能模块,用户只需进行组合即可。另一种是选用PCI专用芯片组(又称桥接电路),通过专用芯片来实现完整的PCI主控模块和目标模块的功能,将复杂的PCI总线接口转换为相对简单的用户接口,用户只需设计转换后的总线接口。本设计中选用PCI总线专用接口芯片来开发接口卡。
1.1 接口芯片介绍
PCI总线接口电路又分为主控设备和目标设备。主控设备可以控制总线,驱动地址、数据和控制信号;目标设备不能启动总线操作,只能依赖于主控设备从其中读取数据或向其传送数据。主控设备芯片价格比较高,目标设备芯片价格则比较便宜,而且目标设备芯片比较简单、易于操作。
目前两大PCI专用接口芯片生产商是AMCC公司和PLX公司。AMCC公司的PCI接口芯片有S5920、S5933、S5935等。S5920是目标设备芯片;S5933既可以设置为主控设备芯片,又可以设置为目标设备芯片;S5935是S5933的改进版,同样既可以设置为主控设备芯片,也可以设置为目标设备芯片。PLX公司在PCI接口芯片的设置生产中首屈一指,其目标设备芯片产品主要有PCI9030、PCI9052和PCI9050,PCI9050和PCI9052可以运用于ISA卡转接PCI的设计中,PCI9030是专门为嵌入式系统设计的;主控设备芯片产品主要有PCI9054、PCI9080和PCI9060,PCI9060是最早的32位主控设备芯片,PCI9080是PCI9060的后继产品,而PCI9054则是一种性价比很高的芯片,其性能比PCI9080、PCI9052更优越。
由于主控设备芯片比较复杂,而且价格昂贵,所以对处理速度和传输速度要求不是特别高的场合应尽量选用目标设备芯片。本设计中选用PLX公司的PCI9052目标设备芯片来设计PCI接口电路。
1.2 PCI9052介绍
PCI9052是PLX公司继PCI9050之后推出的低成本、低功耗、32位PCI总线接口芯片,利用它可以使局部总线快速转换到PCI总线上。
PCI9052芯片的设计符合PCI2.1规范。它支持低成本从属适配器,其局部总线可根据需要配置成复用或非复用模式的8、16或32位的局部总线。PCI总线侧的时钟频率范围为0~33MHz,局部总线与PCI总线的时钟相互独立,局部总线的时钟频率范围为0~40MHz,两种总线的异步运行方便了高低速设备的相互兼容。PCI9052芯片内部有一个64字节的写FIFO和一个32字节的读FIFO,通过读写FIFO,可实现高性能的突发式数据传输,也可以进行连续的单周期操作。
1.3 硬件设计
由于PCI9052属于目标设备芯片,只能依赖于主控设备从其中读取数据或向其传送数据,所以需要一个微处理器对通过PCI9052从PCI总线发送到局部总线的命令作出处理响应,或者把用户想要传送的数据以中断的方式通知PCI总线来读取。本设计中微处理器选用TI公司的C2000系列的16位DSP芯片TMS320LF2407。
TMS320LF2407是TI公司推出的定点DSP处理器,是一款性价比较高的芯片。它采用高性能静态CMOS技术,供电电压为3.3V,指令周期可达25ns,片内有高达32K字的FLASH程序存储器、1.5K字的数据/程序 RAM、544字双口RAM(DARAM)和2K字的单口RAM(SARAM),可以分别扩展64K字外部程序存储器、64K字外部数据存储器和64K字I/O寻址空间;片内还集成了包括CAN控制器在内的多个外围模块及存储器,可以运用于电机及逆变电路的控制中;10位16通道的A/D转换器最小转换时间为500ns;内部自带看门狗定时器模块(WDT)和16位的串行外设接口模块(SPI)。另外,该芯片有高达40个可单独编程或复用的通用输入/输出引脚、一个串行通信接口(SCI)、一个并口和5个外部中断。目前投入市场试用的C2000系列的32位DSP芯片TMS320LF2812采用的是150MHz的时钟速率,其指令周期只为6.7ns,存储器可以扩展到1M,速度更快,功能更强大。
PCI接口卡硬件总体设计如图2所示。图中,DB代表数据总线,AB代表地址总线,CB代表控制总线。
图2