嵌入式系统嵌入式系统/ARM技术中的基于技术中的基于PCI总线总线CAN卡设计与实现卡设计与实现
摘要:介绍了PCI桥接口芯片PCI9052和CAN接口芯片SJA1000,给出了基于PCI总线的CAN总线适配卡软硬件
的设计思路、过程及实现方法。关键词:PCI总线 PCI9052 CAN总线 SJA1000 现场总线
CAN(Controller Area Network控制器局域网络)以其高性能、高可靠性及独特的设计,越来越受到人们的重视和
青睐,不但在汽车行业中应用广泛,而且在工业控制、机器人、医疗器械、传感器等领域发展迅速。为了扩展
CAN总线的功能,与计算机相连,可设计具有CAN接口和PC接口的CAN适配卡,用来收集CAN总线上各个节点
的信息,转发给PC机,并可将PC机的
摘要:介绍了PCI桥接口芯片PCI9052和CAN接口芯片SJA1000,给出了基于PCI
总线的CAN总线适配卡软硬件的设计思路、过程及实现方法。
关键词:PCI总线 PCI9052 CAN总线 SJA1000
现场总线CAN(Controller Area Network控制器局域网络)以其高性能、高可靠性及
独特的设计,越来越受到人们的重视和青睐,不但在汽车行业中应用广泛,而且在
工业控制、机器人、医疗器械、传感器等领域发展迅速。为了扩展CAN总线的功
能,与计算机相连,可设计具有CAN接口和PC接口的CAN适配卡,用来收集CAN
总线上各个节点的信息,转发给PC机,并可将PC机的命令和数据转发给各个节点
以及完成对CAN总线上的用户系统的部分监控和管理工作。
PCI总线是Intel公司推出的一种先进的高性能32/64位局部总线,可同时支持多组外
围设备,不受制于处理器,数据吞吐量大 (33MHz总线频率、32位传输时峰值可高
达132MB/s)。目前PCI是处于主流的计算机总线。以往的CAN卡一般都是基于ISA
总线的,由于ISA总线传输速率低,CAN卡必须增加中继控制功能,才能够适应
CAN的高速传输,导致造价高、体积大、传输速率低,不利于CAN总线的推广应
用。由于PCI总线传输速度快,而且支持热插拔、电源管理等功能,不但能满足
CAN总线的高速数据传输,性能高、功能强,而且体积小、价格低、使用方便、应
用范围广。
CAN卡的设计包括硬件设计和软件设计。
1 硬件设计
PCI总线是一种独立于CPU的局部总线,不同于传统的ISA总线。由于PCI总线规范
定义了严格的电气特性和时序要求,开发难度比ISA总线的开发难度大。实现PCI
接口的方案一般有两种:采用可编程逻辑器件和专用总线接口器件。采用可编程逻
辑器件实现PCI接口的最大好处是比较灵活,可把PCI时序模块和功能模块结合在
一起,可以利用的器件也比较多(如Altera公司的CPLD器件、Xilinx公司的FPGA器
件等),还可以购买由厂家提供的用VHDL、AHDL等硬件描述语言编制的PCI核心
设计模块,但其设计难度还是很高,因为PCI总线对负载要求、传输数据的建立时
间的要求都比较苛刻,同时还需要器件内部实现用于配置的各类寄存器,以及完成
逻辑校验、地址译码等工作的寄存器(大致需要15000个门电路)。此外,还需加入
FIFO、用户寄存器组和后端设备接口等部分。设计这种PCI总线接口会导致将大量
的人力、物力投入到复杂的逻辑验证和时序分析的工作上,开发周期较长。采用专
用接口器件虽然没有采用可编程逻辑器件那么灵活,但能够有效地降低接口设计的
难度,缩短开发时间。专用接口器件具有较低的成本和很高的通用性,能够优化数
据传输,提供配置空间,具备用于突发传输功能的片内FIFO,提供扩展局部总线
等优点,并且许多公司还提供配套的开发工具例如评估板或驱动程序开发软件
,使用很方便,开发周期短。目前市场上常见的有PLX、AMCC、Cypress等公
司的PCI桥芯片,各个型号的PCI接口芯片的大致特点如表1所示。
表1 各公司PCI接口芯片
公司 芯片型号(模式) 芯片功能及特点 价格 开发技术支持
PLX
PCI9052(从)
PCI9054(主)
型号众多,使用
方便,性能好
较便宜
提供快速开发
板RDK出售
CYPRESSCY7C09449PVAC(主)
内置DPRAM,有
效降低系统成本
便宜 技术文档
TI
PCI2031(从)
PCI1251(主)
与TI的DSP可无
缝连接
很便宜 提供评估模块
AMCC
AMCC5920(从)
AMCC5933(主)
FIFO接口适合于
设计数据采集
卡,性能好
较昂贵 提供评估板