基于PCI总线的CAN卡的设计与实现

时间:2023-03-18 14:32:05 理工毕业论文 我要投稿
  • 相关推荐

基于PCI总线的CAN卡的设计与实现

摘要:介绍了PCI桥接口芯片PCI9052和CAN接口芯片SJA1000,给出了基于PCI总线的CAN总线适配卡软硬件的设计思路、过程及实现方法。

现场总线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接口芯片

公 司芯片型号(模式)芯片功能及特点价 格开发技术支持PLXPCI9052(从)
PCI9054(主)型号众多,使用方便,性能好较便宜提供快速开发板RDK出售CYPRESSCY7C09449PV-AC(主)内置DPRAM,有效降低系统成本便宜技术文档TIPCI2031(从)
PCI1251(主)与TI的DSP可无缝连接很便宜提供评估模块AMCCAMCC5920(从)
AMCC5933(主)FIFO接口适合于设计数据采集卡,性能好较昂贵提供评估板

PCI设备可分为主模式和从模式。主模式桥芯片可以进行DMA操作,而从模式只能接受读写操作。根据PCI提供的传输数据带宽(最大132MB/s)和CAN总线(最大1Mbps)的要求,加上经济和开发难度与周期上考虑(主模式桥芯片较昂贵,开发难度较大),又因不需要DMA功能,采用从模式桥芯片足以满足传输数据的需要。此外,选择芯片不仅考虑性能和经济上的要求,而且还需要考虑硬件开发和驱动程序开发的难易。如果不提供足够的芯片说明和应用样例及开发工具,将大大增加开发难度和延长开周期。因此,采用PLX公司的PCI总线目标接口芯片PCI9052作为CAN卡中的PCI接口芯片,负责与计算机之间的数据通信。

PCI9052是PLX公司开发的低价格PCI总线从模式接口芯片,低功耗,符合PCI2.1规范,提供的局部总线(Local Bus)可通过编程设置为8/16/32位的(非)复用总线。其主要特点有:

(1)直接数据转换模式 PCI9052支持PCI到Local Bus的内存映射和I/O映射的突发读写。

(2)ISA接口逻辑 PCI9052支持通过8/16位内存映射或I/O映射从PCI到ISA总线的单周期读、写访问。方便从ISA向PCI卡的转换。

(3)中断产生器 由Local Bus的两个中断信号可以产生一个PCI中断信号:INTA#。

(4)局部总线 PCI9052提供的局部总线不但可编程,而且与PCI总线的时钟相互独立运行,可实现异步操作,总线操作自动实现时序同步。两部分的异步运行方便了高、低速设备的兼容。局部的运行时钟频率范围0~40MHz、TTL电平,可由PCI提供或由用户自行提供;PCI的运行时钟频率范围0~33MHz。

(5)串行EEPROM 用于存入PCI BUS和Local Bus的部分配置信息。

(6)4个局部设备片选 基址和地址范围可以由串行EEPROM或主控设备进行设置。

(7)5个局部地址空间 基址和地址范围及其映射可以由串行EEPROM或主控设备进行设置。

(8)Big/Little Endian模式的字节交换 适合不同计算机体系。

(9)局部总线等待状态 降了等待信号LRDYi#用于握手之外,PCI9052还有一个内部等待产生器(包括地址到数据周期、数据到数据周期和数据到地址周期的

【基于PCI总线的CAN卡的设计与实现】相关文章:

光纤CAN总线自愈环网的研究06-01

用Verilog HDL实现I2C总线功能06-01

基于minigui的网真机界面的实现08-05

都市频道制作网的设计与实现05-29

基于web的异地并行设计与制造系统研究06-02

基于胜任力的企业个体绩效管理流程设计06-03

基于CS管理的房地产企业开发设计06-04

基于PLC的断路器型式试验系统设计03-10

城市旅游网站的设计与实现论文(精选6篇)05-07

试论基于民商法视域下的信用卡若干法律问题05-28