基于PCI总线的CAN卡的设计与实现
(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还有一个内部等待产生器(包括地址到数据周期、数据到数据周期和数据到地址周期的等待)。
(10)延迟读模式 PCI9052支持PCI2.1规范的延迟读模式。
(11)FIFO PCI9052包括一个64Byte的写FIFO和一个32Byte的读FIFO,从而支持预取模式、即突发操作。
(12)PCI锁定机制 主控设备可以通过锁定信号占有对PCI9052的唯一访问权。
由于CAN总线的迅猛发展,许多芯片厂商开发了很多系列的CAN通信控制器芯片。如表2所示。
表2 主要CAN总线芯片
8XC196CA/CB CAN通信控制器,符合CAN2.0B
扩展的8XC196+CAN通信控制器,符合CAN2.0B Philips SJA1000
82C250
P51XA-C3 CAN通信控制器,符合CAN2.0B
高性能CAN总线收发器
16位微控制器+CAN通信控制器,符合CAN2.0B Motorola 68HC05X4系列 68HC05微处理器+CAN通信控制器 NEC 72005 CAN通信控制器,符合CAN2.0A/B
由于PCI9052可以启动局部总线的读写,CAN卡不再需要微控制器,采用CAN通信控制器即可,本CAN卡采用SJA1000.SJA1000支持BasicCAN和PeliCAN模式,具有FIFO、支持热插拔等功能,不但可以实现CAN总线接口功能,而且芯片可以根据晶振的频率,输出可编程的CLKOUT信号,该信号正好可作为PCI9052的局部总线的总线频率,节省了器件,方便了设计。CAN总线的总线频率可为12MHz、16MHz或24MHz,PCI9052自动实现局部总线与PCI总线的访问同步。CAN总线收发器采用82C250.该芯片是CAN总线控制器和物理总线的接口,可以提供对CAN总线的差动发送和接受能力,具有抗瞬间干扰、保护部的能力,可以通过调整CAN总线通讯脉冲的边沿斜率来降低射频干扰。
由于PCI设备在计算机中的硬件资源是系统动态分配的,因此在设计出基本的硬件框架后,要进行PCI配置设计。CAN卡的硬件资源为映射SJA1000内部寄存器的内存映射间和一个中断源。PCI9052提供5个局部地址空间,可以选用其中的一个作为SJA1000的地址空间,分配32个8位地址。同时设置相应的初始化,PCI配置寄存器中的寄存器PCIBAR2设置为0XFFFFFFE0,向系统请求分配内存的数量为32,类型为不可预读,其它寄存器的值可设置为0。设置局部地址空间的范围为0X00000000~0X00000020。PCI9052提供2个局部中断源,利用LINTi1即可,注意
《基于PCI总线的CAN卡的设计与实现(第2页)》