PCI总线的CAN卡的设计与实现_第1页
PCI总线的CAN卡的设计与实现_第2页
PCI总线的CAN卡的设计与实现_第3页
PCI总线的CAN卡的设计与实现_第4页
PCI总线的CAN卡的设计与实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 PCI 总线的 CAN 卡的设计与实现现场总线 CAN( Controller Area Network 控制器局域网络)以其高性能、 高可靠性及独特的设计, 越来越受到人们的重视和青睐, 不但在汽车行业中应用 广泛,而且在工业控制、机器人、医疗器械、传感器等领域发展迅速。为了扩展 CAN 总线的功能, 与计算机相连, 可设计具有 CAN 接口和 PC 接口的 CAN 适 配卡, 用来收集 CAN总线上各个节点的信息,转发给 PC 机,并可将 PC 机的 命令和数据转发给各个节点以及完成对 CAN 总线上的用户系统的部分监控和管 理工作。PCI 总线是 Intel 公司推出的一种先进的高

2、性能 32/64 位局部总线,可同时支持 多组外围设备,不受制于处理器,数据吞吐量大( 33MHz 总线频率、 32 位传输 时峰值可高达 132MB/s )。目前 PCI 是处于主流的计算机总线。以往的 CAN 卡 一般都是基于 ISA 总线的,由于 ISA 部传输速率低, CAN 卡必须增加中继控制 功能,才能够适应 CAN 的高速传输,导致造价高、体积大、传输速率低,不利 于 CAN 总线的推广应用。由于 PCI 总线传输速度快,而且支持热插拔、电源管 理等功能,不但能满足 CAN 总线的高速数据传输,性能高、功能强,而且体积 小、价格低、使用方便、应用范围广。CAN 卡的设计包括硬件设

3、计和软件设计图 1 CAN 卡电路原理用1 硬件设计PCI 总线是一种独立于 CPU 的局部总线,不同于传统的 ISA 总线。由于 PCI 总 线规范定义了严格的电气特性和时序要求,开发难度比ISA 总线的开发难度大。实现 PCI 接口的方案一般有两种:采用可编程逻辑器件和专用总线接口器件。采用可编程逻辑器件实现 PCI 接口的最大好处是比较灵活,可把 PCI 时序模块 和功能模块结合在一起,可以利用的器件也比较多(如Altera 公司的 CPLD 器件、Xilinx 公司的 FPGA 器件等),还可以购买由厂家提供的用 VHDL、AHDL 等硬件描述语言编制的 PCI 核心设计模块,但其设计

4、难度还是很高,因为PCI总线对负载要求、传输数据的建立时间的要求都比较苛刻, 同时还需要器件内部 实现用于配置的各类寄存器,以及完成逻辑校验、地址译码等工作的寄存器(大 致需要15000 个门电路)。此外,还需加入 FIFO、用户寄存器组和后端设备接 口等部分。设计这种 PCI 总线接口会导致将大量的人力、物力投入到复杂的逻 辑验证和时序分析的工作上,开发周期较长。要用专用接口器件虽然没有采用可 编程逻辑器件那么灵活,但能够有效地降低接口设计的难度, 缩短开发时间。专 用接口器件具有较低的成本和很高的通用性,能够优化数据传输,提供配置空间, 具备用于突发传输功能的片内FIFO,提供扩展局部总线

5、等优点,并且许多公司 还提供配套的开发工具(例如评估板或驱动程序开发软件) , 使用很方便, 开发 周期短。 目前市场上常见的有 PLX、 AMCC、Cypress 等公司的 PCI 桥芯片, 各个型号的 PCI 接口芯片的大致特点如表 1 所示。表 1 各公司 PCI 接口芯片公司心片型号(模式)芯片功能及特点价格开发技术支持PLXPCI9052 (从)PCI9054 (主)型号众多,使用方便,性能好较便宜提供快速开发板RDK 出售CYPRESSCY7C09449PV-AC内置 DPRAM,有效降便宜(主)低系统成本技术文档TIPCI2031 (从)PCI1251 (主)与 TI 的 DSP

6、 可无缝连接很便宜提供评估模块AMCCAMCC5920 (从)AMCC5933(主)FIFO 接口适合于设计数据采集卡,性能好窗贵提供评估板PCI 设备可分为主模式和从模式。主模式桥芯片可以进行DMA 操作,而从模式只能接受读写操作。 根据 PCI 提供的传输数据带宽(最大 132MB/S) 和 CAN 总 线 (最大 1Mbps )的要求,加上经济和开发难度与周期上考虑(主模式桥芯片 较昂贵,开发难度较大),又因不需要 DMA 功能,采用从模式桥芯片足以满足 传输数据的需要。此外,选择芯片不仅考虑性能和经济上的要求, 而且还需要考 虑硬件开发和驱动程序开发的难易。 如果不提供足够的芯片说明和

7、应用样例及开 发工具,将大大增加开发难度和延长开周期。因此,采用 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 位内存映射或

8、 I/O 映射从 PCI 到 ISA 总线的单周期读、写访问。方便从 ISA 向 PCI 卡的转换。( 3)中断产生器 由 Local Bus 的两个中断信号可以产生一个 PCI 中断信号:INTA# 。( 4)局部总线 PCI9052 提供的局部总线不但可编程,而且与 PCI 总线的时钟 相互独立运行, 可实现异步操作, 总线操作自动实现时序同步。 两部分的异步运 行方便了高、低速设备的兼容。局部的运行时钟频率范围 040MHz、TTL 电平,可由 PCI提供或由用户自行提供;PCI 的运行时钟频率范围 033MHz(5)串行 EEPROM 用于存入 PCI BUS 和 Local Bus

9、的部分配置信息。(6)4 个局部设备片选 基址和地址范围可以由串行 EEPROM 或主控设备进行 设置。(7)5 个局部地址空间 基址和地址范围及其映射可以由串行 EEPROM 或主控 设备进行设置。(8)Big/Little Endian 模式的字节交换适合不同计算机体系。(9)局部总线等待状态 降了等待信号 LRDYi#用于握手之外,PCI9052 还有一 个内部等待产生器(包括地址到数据周期、数据到数据周期和数据到地址周期的 等待)。(10) 延迟读模式 PCI9052 支持 PCI2.1 规范的延迟读模式。(11) FIFO PCI9052 包括一个 64Byte 的写 FIFO 和一

10、个 32Byte 的读 FIFO,从而支持预取模式、即突发操作。(12) PCI 锁定机制 主控设备可以通过锁定信号占有对 PCI9052 的唯一访问权。由于 CAN 总线的迅猛发展,许多芯片厂商开发了很多系列的CAN 通信控制器芯片。如表 2 所示。表 2 主要 CAN 总线芯片制造商芯片型号芯片功能及特点In tel825278XC196CA/CBCAN 通信控制器,符合 CAN2.0B 扩展的8XC196+CAN通信控制器, 符 合 CAN2.0BPhilipsSJA100082C250P51XA-C3CAN 通信控制器,符合 CAN2.0B高性能 CAN 总线收发器16 位微控制器+C

11、AN 通信控制器,符合CAN2.0BMotorola68HC05X4 系列68HC05 微处理器+CAN 通信控制器NEC72005CAN 通信控制器,符合 CAN2.0A/B由于 PCI9052 可以启动局部总线的读写,CAN 卡不再需要微控制器,采用 CAN 通信控制器即可,本 CAN 卡采用 SJA1000.SJA1000 支持 BasicCAN 和 PeliCAN 模式,具有 FIFO、支持热插拔等功能,不但可以实现 CAN 总线接口功能,而 且芯片可以根据晶振的频率,输出可编程的 CLKOUT 信号,该信号正好可作为 PCI9052 的局部总线的总线频率,节省了器件,方便了设计。CA

12、N 总线的总线频率可为 12MHz、16MHz 或 24MHz,PCI9052 自动实现局部总线与 PCI 总线 的访问同步。CAN 总线收发器采用 82C250.该芯片是 CAN 总线控制器和物理总 线的接口,可以提供对 CAN 总线的差动发送和接受能力,具有抗瞬间干扰、保 护部的能力,可以通过调整 CAN 总线通讯脉冲的边沿斜率来降低射频干扰。由于 PCI 设备在计算机中的硬件资源是系统动态分配的,因此在设计出基本的 硬件框架后,要进行 PCI 配置设计。CAN 卡的硬件资源为映射 SJA1000 内部寄 存器的内存映射间和一个中断源。PCI9052 提供 5 个局部地址空间,可以选用 其

13、中的一个作为SJA1000 的地址空间,分配 32 个 8 位地址。同时设置相应的 初始化,PCI 配置寄存器中的寄存器 PCIBAR2 设置为 OXFFFFFFEO ,向系统请 求分配内存的数量为 32,类型为不可预读,其它寄存器的值可设置为 0。设置 局部地址空间的范围为0X000000000X00000020。PCI9052 提供 2 个局部中 断源,利用 LINTil 即可,注意的是:LINTil 信号线没有驱能力,SJA1000 的 INT 引脚也没有驱动能力, 因此该信号线必须加上拉电阻, 否则该信号线的电平不确 定,工作肯定不正常。 SJA1000 提供电平触发中断信号,因此 P

14、CI9052 的中断 触发模式设置为电平触发。利用 PCI9052的局部设备片 CS0#作为 SJA1000 的 片选信号。CS0#片选信号的起始地址和地址范围为 CS0 Base Address 寄存器 设置,值为 0 x00000002。另外,PCI9052 的 LRDYi#信号为局部总线数据准备 信号, SJA1000 的寄存器地址映射成地址,数据传输不存在延迟等待,因此 LRDYi#引脚可接地,表示 SJA1000 的寄存器总是立即可读写。PCI9052 寄存 器的初始值由串行 EEPROM 提供, 在 PCI9052 加电后读取。EEPROM必须采 用支持连读功能的芯片,本用 Mic

15、rochip 的 93LC46B 。用 PCX 公司提供的开发 工具 PlxMon 可对 93LC47B 进行读写。PCI9052 的硬件调试可采用 PlxMon 。利用它可以对 PCI 设置的配置资源进行检 验。利用 PLX 提供的 SDK,可以对 PCI9052 的局部寄存器、局部总线及 EEPROM 进行读写,这样可以调试硬件。借助开发工具,不必开发 PCI 设备的调试软件, 可节省很多时间。同时, SDK 也为驱动程序的开发提供了程序框架,加快了开 发进度. . -用户态I内核态!礎件态图2软件框架图戶用序用应程CAN 卡的电路框图如图 1 所示。2 软件设计软件设计包括驱动程序的设计

16、和 COM 组件程序设计。由于 PCI 设备的中断、I/O 端口、映射内存等资源都是动态分配的,必须编写驱 动程序管理硬件,才能供用户编程使用。为了通用性和兼容性,CAN 卡驱动程序的开发采用支持 Windows XP、Windows2000 和 Windows98 的 WDM 驱动 程序。开发工具采用 Visual C+6.0 和 Win2000 DDK。由于 CAN 卡上没有微控 制器,因此对 CAN 总线端口的所有操作都是由驱动程序来完成的。这不仅可以 由计算机来实现复杂的功能,例如,错误检测、断点续传等,同时节省了硬件, 而且有利于 CAN 卡的升级一一只要更换驱动程序即。 驱动程序的功能主要是配 置 SJA1000 的 CAN 接口、收发 CAN 总线上的数据、对发数据和 CAN 总线错 误均采用中断处理,驱动程序可以快速响应,通过事件(Eve nt)内核对象直接通知给用户程序。由于 WDM 驱动程序运行在系统的内核态,编写非常复杂,限 于篇幅,仅给出软件的框图(见图 2 )。为了方便用户的使用,还应编写相应的 API 函数或 ActiveX 控件等其它应用层的 程序提

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论