CAN总线PC适配卡设计

CAN总线PC适配卡设计,第1张

 引 言

        分布式工业测控系统需要有现场总线来连接各现场设备及处理控制单元。CAN总线就是一种具有较高性能价格比、能满足分布式控制要求的现场总线,具有广泛的应用前景。它实际上是一种简化型网络结构,在构造单片处理器网络中极为有用。为了使上位机也能和CAN总线相连,使微机成为系统的上位机,增强控制系统的功能,从而进一步延伸CAN总线连通范围,就需要提供一个微机和CAN总线的接口。本文介绍作者设计制作的一种CAN总线PCI适配器

        接口的硬件设计

        PCI接口的实现
        目前市面上有些CAN总线的适配器,但大多都是基于PC/104或者ISA总线,传输速度较慢,效率低下。作者在设计中使用高效的PCI总线,实现了数据的高速传输。与ISA总线相比较,PCI总线具有如下特点:
①传输速度高。PCI总线宽度为32位(可扩展为64位)。时钟频率为0~33MHz。并且支持突发传送,传输速度可以达到132Mb/s。相比较,ISA总线宽度为8/16位,时钟频率为132Mb/s。相比较,ISA总线为8位/16位,时钟频率为8MHz,不支持突发传送,传输速率仅为8Mb/s;
②即插即用。PCI实现了真正的即插即用。系统可以实现对PCI设备的自动配置;
③生命周期长。PCI总线与处理器无关(通过桥或直接集成),可支持多种系列处理器,包括将来会出现的新一代处理器。

        由于PCI总线规范十分复杂,其接口设计难度较大,但目前有许多厂商提供了专用的PCI接口芯片。这些接口芯片大多对PCI总线规范2.1、2.2版完全兼容,从而大大减轻了PCI板卡设计的工作量。PCI设备可以分为主模式和从模式。主模式可以执行DMA *** 作,而从模式只可以执行读写 *** 作。根据PCI提供的传输数据带宽(最大132Mb/s)和CAN总线(最大1Mbps)的要求,加上经济和开发难度与周期上的考虑(主模式桥芯片较昂贵,开发难度较大),又因不需要DMA功能,采用从模式桥芯片足以满足传输数据的需要。此外,选择芯片不仅考虑性能和经济上的要求,而且还需要考虑硬件开发和驱动程序开发的难易。如不提供足够的芯片说明和应用样例及开发工具,将大大增加开发难度和延长开发周期。这里我们采用PLX公司的PCI总线目标接口芯片PCI9052作为CAN总线适配器的PCI总线接口芯片,负责与计算机之间的数据通信。9052是PLX公司开发的低价格PCI总线从模式接口芯片,低功耗,符合PCI2.1规范,提供的局部总线可通过编程设置为8/16/32位的(非)复用总线。

        CAN总线接口的实现
        CAN总线之所以在国内乃至全球范围内一直保持高速发展,完全取决于其卓越的性能。最早CAN总线主要应用在汽车领域,随着集成工艺的发展和成本的降低,被越来越多的控制领域内的软硬件工程师所接受,广泛的应用于各行各业的控制领域网中。其主要性能指标如下:
①多站仲裁结构(分地址优先级,非破坏方式仲裁);
②支持主从广播方式;
③不加任何扩展最多110个节点;
④最高通信速率1Mbps,最远通信距离5km;
⑤通常CAN控制器内部设有接收和发送缓冲;
⑥通信以帧为单位,最多8个字节的数据;
⑦硬件自动进行16位CRC校验;
⑧具有极强的总线和通信错误的管理能力。

        由于PCI9052可以启动局部总线的读写,CAN卡不再需要微控制器,采用CAN通信控制器即可,本卡采用SJA1000。SJA1000支持基本CAN(Bisic-CAN)和增强CAN(PeliCAN)两种工作模式,支持具有新功能的CAN2.0B协议规范。具有FIFO、支持热插拔等功能,不但可以实现CAN总线接口功能,而且芯片可以根据晶振的频率,输出可编程的信号CLKOUT,该信号正好可作为PCI9052局部总线的总线频率,节省了器件,方便了设计。CAN总线的总线频率可为12MHz、6MHz或24MHz,PCI9052自动实现局部总线与PCI总线的访问同步。CAN总线收发器采用82C250。该芯片是CAN总线控制器和物理总线的接口,可以提供对CAN总线的差动发送和接收能力,具有抗瞬间干扰、保护总线的能力,可以通过调整CAN总线上通讯脉冲的边沿斜率来降低射频干扰。其速度可以达到1Mbps,最多节点数可以达到110个。地址译码和逻辑控制是由EPM7064S完成的。

        EPM7064S是ALTERA出品的MAX7000系列的一种。它主要实现两路独立的CAN总线通道的地址译码、实现控制信号的驱动和电平转换。通过EPM7064S可以提高系统的可靠性,缩小板卡的尺寸,方便以后板卡功能的扩展。为了在每个CAN总线通道出现故障时能够重新初始化,在接口卡中使用了两片复位芯片MAX811。由EPM7064S产生控制信号,当CAN总线通道出现异常时,控制MAX811复位SJA1000控制器。其总线接口原理图如图1所示。

        PCI为每一个PCI设备提供了一个配置空间来实现设备的即插即用(PnP)。在PC机上电自检时,配置软件扫描PCI总线,检测所有的PCI设备,读取配置信息,并为每一个PCI设备分配系统资源,实现PCI设备的即插即用。每一个PCI功能设备都有一个64个双字的配置空间,以特定的格式存储设备支持的功能。PCI协议定义了开头的16个双字的格式和用途,称为设备的配置头区域。其它48个双字是设备特定的。CAN卡的硬件资源为映射SJA1000内部寄存器的内存映射空间和一个中断源。

        PCI9052提供了5个局部地址空间,可以选用其中的一个作为SJA1000的地址空间,分配32个8位地址空间。同时设置相应的初始化,PCI配置寄存器中的寄存器PCIBAR2设置为0XFFFFFFE0,向系统请求分配内存的数量为32,类型为不可预读,其它寄存器的值可设置为0。设置局部地址空间的范围为0X00000000~0X00000020。对中断的配置是把PCI中断请求线分配到系统的某一ISA中断请求(IRQ)线上。在本控制卡中利用一块串行EEPROM(93C46B)存放控制卡的PCI配置信息。上电后访问93C46B,实现本控制卡的自动配置。

CAN总线PC适配卡设计,第2张

图1 总线接口原理图

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2713664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存