《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > CAN总线智能适配卡的设计

CAN总线智能适配卡的设计

2008-07-29
作者:郭继坤,李 辉

    摘 要: 采用P80C592FFA作为CAN控制芯片,使用CY7C0944PV-AC作为双端口存储器,并使用PCA82C250作为CAN控制器接口芯片,设计了CAN总线智能适配" title="适配">适配卡,提高了CAN总线适配卡的传输能力。针对CAN总线在特殊环境下容易受到外界干扰的弱点,使用6N137进行信号隔离" title="信号隔离">信号隔离,使该适配卡达到了本安型标准。
    关键词: CAN总线  智能适配卡" title="智能适配卡">智能适配卡  信号隔离

 

    CAN[1](Controller Area Network)总线最初是由德国BOSCH公司为汽车检测与控制系统而设计的。由于其显著的特点,其应用范围越来越广,已扩大到过程控制、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域。目前,在国际上CAN总线已经成为控制领域的热点,但CAN总线在矿井下等特殊环境下的应用还没有进行系统的研究。本文针对矿井下这种特殊环境设计了本安型CAN总线智能节点适配卡,为CAN总线在矿井下等一些比较恶劣环境下的应用提供了可靠的保证。
1 硬件结构
1.1适配卡的功能

    CAN总线与PC机的连接方法有两种[2~3]:①通过一个转换器与PC机的串行口连接。该种方式设计简单,但数据转发速度较慢。②在PC机的扩展槽里插入一块适配卡。由于使用适配卡所交换的数据量较大,比较适合CAN总线的需求,所以近年来大多使用适配卡的方式。适配卡既可以对数据起到转发的作用,即收集CAN总线上各个节点的数据,转发给上位机,并把上位机的命令和数据发给各节点,也可以完成对CAN总线上的用户系统的部分监控和管理工作,故又被称为智能适配卡。它可以减轻上位机的负担,提高系统的实时性。这种适配卡需要的硬件条件较高,且需要较多的程序存储器和数据存储器。作者研制的就是这种智能适配卡。
1.2 智能适配卡的硬件组成
    目前广泛流行的CAN总线器件分为两大类:一类是独立的CAN控制器,如PHILIPS公司的82c200、SJA1000及Intel公司的82526/82527等;另一类是带有在片CAN总线的微控制器,如P8xc582、P80C592FFA等。根据矿井下实际情况的需要,设计了如图1所示的CAN总线智能适配卡。它采用P80C592FFA作为CAN控制芯片;使用CY7C0944PV-AC作为双端口存储器;使用PCA82C250作为CAN控制器接口芯片。硬件电路中使用PCA82C250的目的是为了增大通信距离,提高系统的瞬间抗干扰能力。因为该智能适配卡是在矿井下应用,还必须具有防暴功能,因此使用6N137进行信号隔离(如图2所示)。

 

 


    在图1中,82C250接收总线上所有传输的帧,通过电流和电压隔离后,传送到P80C592的CAN模块,CAN模块比较接收码寄存器和帧的ID码,若相等则接收,并引发一个接收中断。在接收中断的处理中,P80C592读取CAN模块接收缓冲区中的数据,把它传送到CY7C09449的双口" title="双口">双口RAM中。最后PC机通过PCI总线定时读取CY7C09449双口RAM中的数据。中断申请电路是为保证PC机和适配卡上的微控制器之间能实时响应对方处理要求而设置的。中断申请电路由两个D触发器和一个用来译码的GAL芯片组成。两边的工作方式相同。
    设计中考虑到便于电路调试和处理整体运行时出现的问题,选择三种复位方式[1][5]。其硬件构成如图3所示。

 


    (1)上电复位:与PC机上" title="机上">机上电复位同时复位。当PC机通电复位时,CAN适配卡也同时复位。
    (2)手动复位:当调试中出现问题时,通过手动复位键复位,以便解决调试中出现的问题。
    (3)软件复位:在程序运行中出现问题时,不需要关掉PC机,只需启动PC机管理程序中的初始化功能模块即可,它可通过软件指令对CAN适配卡进行复位。
    硬件电路设计并不很困难,但也要注意一些事项,否则会事倍功半,功亏一篑。
    (1)地线的设计应特别注意,为了减少噪声,模拟信号的地线和数字信号的地线应该分开。
    (2)该适配卡的防暴技术主要采用电器隔离技术,同时采用本质安全技术,通过抑制电火花和热效应能量来防爆。电器设备的最大功率不应超过25W,对于5V电源的设备,它的功率一般要远远低于25 W。开关触电开闭时的放电也应注意,要减少电路的储能器件(如电感和电容),一般要求最大电容小于5μF,最大电感小于20μH。
2 软件接口设计[4]
    接口软件设计包括单片机上的汇编程序设计和PC机上的设备驱动程序设计。两者的纽带是CY7C09449上的双口RAM。
    这个双口RAM共有16KB的共享空间0x4000H~0x7FFFH,为了编程方便,把它分成两部分。0x4000H~0x5FFFH为发送帧空间,0x6000~0x7FFFH为接收帧空间。0x4E8是主机对本地处理器的邮箱HLDATA的地址,0x4F8是本地处理器对主机的邮箱LHDATA的地址,如图4所示。对于主机,这些地址都是偏移地址,还得加上PCI配置寄存器ABAR0中的值才是真正的物理地址。

 


    HLDATA和LHDATA的用法分别如图5和图6所示。把发送空间和接收空间设计成两个循环队列,分别用两个指针来控制。发送空间和接收空间都是8K、13位的地址,指针是它们的高8位,第5位为0。每个指针空间为32个字节,每帧10 个字节,有22 个字节是浪费的空间。由于已接收帧的地址和欲接收帧的地址不等,所以P80C592就需要发送帧。主机每接收一个帧,已接收帧地址加1,每发送一个帧,欲发送帧地址加1。P80C592每接收一个帧,欲接收帧地址加1,每发送一个帧,已发送帧地址加1。

 

 

 

    CAN总线具有许多优点,尤其是它的实时传输特性好,受到用户的欢迎。但它的抗干扰性、防暴性能较差。本文设计的CAN总线适配卡使用信号隔离和本质安全技术,很好地解决了这一问题,使CAN总线应用范围更加广泛,更能适应现场的要求。
参考文献
1 邬宽明. CAN总线原理与应用系统设计.北京: 北京航空航天大学出版社,1996(8):34~45
2 蒋建文,林 勇,韩江洪. CAN总线通信协议的分析和实现.计算机工程, 2002(2):219~220
3 成继勋,欧青立. CAN总线PC智能卡的研制. 自动化仪表,1999(7):9~11
4 周凤余,鲁守银. CAN总线系统智能节点设计与实现. 微计算机信息,1999(6):9~10
5 Gianluca Cena,AdrianoValenzano. FastCAN:A High-Performance Enhanced CAN-Like Network .IEEE Transactions on Industrial Electronics,2000;47(4): 951~952

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。