专利名称:一种控制器局域网总线智能适配卡的制作方法
技术领域:
本实用新型涉及一种控制器局域网(Controller Area Network,简称CAN)总线适配卡,特别是涉及一种基于PC104系统的CAN总线智能适配卡。
背景技术:
CAN总线是一种多主机远程网络通讯控制方式。由于其极高的可靠性、独特灵活的设计和低廉的价格,已被广泛应用到自动化控制系统中,特别是在现场的智能仪器仪表、控制器、执行器等底层设备间的数据通信方面发挥着巨大的作用。例如,CAN总线控制已成功地应用于农业温室控制系统、储粮水分控制系统、畜舍监视系统、温度压力等非电量测量、环境检测等农业控制系统的广阔领域。
PC104系统是一种新型的嵌入式PC机标准,这种PC机有两个总线插头P1和P2,其中P1有64脚,P2有40脚,共104脚。它可以在体积和功耗要求苛刻的场合完全实现普通PC机的功能,同时在软件和硬件上与标准台式PC机体系结构几乎完全兼容。该PC104系统具有尺寸小(标准尺寸为90mm×96mm)、自堆总线结构(取消了底版和插槽)及总线驱动电流小的特点,因此适合应用于高密度、小体积、便携式的测控设备。
结合PC104系统和CAN总线两者的优点,人们设计出基于PC104系统的CAN总线适配卡。广州周立功单片机发展有限公司生产的PC104-CAN单路非智能CAN接口卡是使用系统内存地址映射空间方式控制板卡。由于PC104主板的部分内存地址空间可能已经被主板或其他设备占用,因而不能保证能够获得足够的系统内存资源以供硬件接口卡使用,因此PC104-CAN单路非智能CAN接口卡在部分计算机(包括所使用的操作系统)上不能正常使用,硬件板卡及其驱动程序不能保证完全兼容不同的计算机。而且该PC104-CAN接口卡采用串行通信方式,数据传输速率比较低。由于CAN总线多用于现场总线控制系统,要求数据传输速率比较高。因此,就需要一种工作高效、节省系统资源的CAN总线适配卡。
发明内容
本实用新型的目的是提供一种基于PC104总线的数据传输速率高、兼容性强、接口简单、工作高效的CAN总线智能适配卡。本适配卡可用于系统总体架构以PC104嵌入式计算机系统为核心,配合基于CAN总线的多路数据采集系统中,完成信息的采集、处理、可靠传输。
为了达到上述目的,本实用新型采用如下技术方案该适配卡包括一CAN总线接口,用于连接CAN网络;一与采集设备接口电连接的CAN总线收发器,用于接收和发送CAN总线网络中的数据;一与CAN总线收发器电连接的CAN总线控制器,用于对数据处理后传给CAN收发器,以及接收、处理来自CAN总线收发器的数据并输出;一PC104总线插槽,用于接PC104系统的主板;一与CAN总线控制器电连接的微处理器,用于对CAN总线的状态控制和维护。
该适配卡还包括与微处理器相连接的并行接口电路和一地址选择电路,,用于采用并行通信方式传输数据;所述并行接口电路与所述PC104总线插槽电连接;所述地址选择电路由PC104总线地址的最低二位和一个比较器组成,用于对并行接口电路的读写操作控制。
该适配卡还包括连接在CAN总线收发器和CAN总线控制器之间的至少两个高速光耦,用于光电隔离,增强系统的抗干扰能力。
该适配卡还包括所述高速光耦的电源模块。
本实用新型的有益效果是1.兼容性强。适配卡与PC104总线的连接不占用主板内存地址空间,它只占用需4个空闲的I/O端口地址即可,因而不会出现不能够获得足够的系统资源以供硬件接口卡使用的问题。
2.数据传输速率高。该适配卡采用并行通信方式解决了串行接口传输速率较低不能满足系统对数据通信的实时性要求的缺点。
3.智能化。板卡上利用低功耗的单片机来智能地完成CAN数据包的收发,这样不但可以减少模块的体积和功耗,而且使得模块接口简单、工作高效,从而使PC104主机摆脱对CAN总线的状态控制和维护工作,只管接收、发送数据即可,所有的维护工作由单片机完成,这样可以使PC104主机有更多的CPU资源进行复杂的控制算法和更多的人机交换工作。
图1PC104-CAN总线智能适配卡系统框图;图2本实用新型具体实施例的工作原理图;图3本实用新型具体实施例的CAN控制器部分的原理图;图4本实用新型具体实施例的主控电路框图。
具体实施方式
以下结合附图和具体实施方式
对本实用新型作进一步详细描述。
如图1所示,该适配卡包括CAN总线接口,用于连接CAN网络;与采集设备接口电连接的CAN总线收发器,采用82C250芯片,用于接收和发送CAN总线网络中的数据;与CAN总线收发器82C250芯片电连接的CAN总线控制器,采用Philips公司的SJA1000芯片,并辅以该公司PCA82C250芯片为收发接口驱动器,用于将微处理器发出的数据处理后传给CAN收发器,以及接收、处理来自收发器的数据并传给微处理器;与CAN总线控制器SJA1000芯片电连接的微处理器,采用单片机80C51芯片,用于对CAN总线的状态控制和维护;与微处理器80C51芯片电连接的并行接口电路,采用8255A芯片,用于采用并行通信方式传输数据;与并行接口电路8255A芯片电连接的PC104总线插槽,用于接PC104系统的主板;与微处理器和并行接口电路相连接的地址选择电路,由PC104总线地址的最低二位SA0、SA1和8位比较器74LS688组成,用于对并行接口电路8255A芯片的读写操作控制。
还包括连接在CAN总线收发器82C250芯片和CAN总线控制器SJA1000芯片之间的至少两个光耦,采用6N137芯片,用于光电隔离,增强系统在恶劣环境中使用的可靠性;还包括给两个光耦供电的光耦电源模块,采用B05058芯片。
下面对每一部分进行具体介绍1)适配卡与PC104总线的硬件接口在地址选择上,PC104总线具有访问64K个I/O端口的能力,但实际只用了1K个端口地址(0000H-03FFH),其中前256个字节(0000H-00FFH)分配给PC104系统主板上的I/O接口芯片,其余的768个字节(0100H-03FFH)分配给扩充卡。而对于8255A芯片,只需4个I/O端口地址即可满足需要,它们分别用作对端口A、端口B和端口C的数据传输以及对方式选择控制字的操作。如图2所示,PC104总线地址的最低二位SA0和SA1可分别接至8255A芯片的A0口和A1口,由于8255A只有四个寄存器,所以只需用到A0,A1两根地址线来选择,高位地址只是通过一个比较器后用来选通8255A的片选信号,所以只要是主板没用到的I/O地址都可以使用。查询PC104的I/O端口地址分配表,本实用新型选用地址空间280H-283H对8255A的I/O端口操作。当PC104总线上送出的地址信号为280H-283H之一时,地址比较器送出选通信号至8255A芯片作为其片选信号,PC104即可对8255A芯片进行相应的读写操作。
2)并行通信方式的实现如图2所示,采用可编程并行接口8255A芯片来解决传输方式及速率问题。8255A芯片的主要作用是采用并行通信方式与PC104总线直接进行I/O口读写。由于CAN总线多用于现场总线控制系统,要求数据传输速率比较高,最高能达到1MbPs,而串行通信方式的数据传输速率比较低,其标准波特率系列中最高也只能达到19200bPs。因此串行接口将成为传送数据的瓶颈,不能满足系统对数据通信的实时性要求。基于上述考虑,该适配卡采用并行通信方式。8255A芯片有3种基本的工作方式,这里选用方式2,即双向传输方式。双向方式只适用于端口A(PA口)。PA口在同单片机80C51芯片的P1口电连接,以便在8255A芯片和单片机80C51芯片之间传送数据。8255A芯片的端口C则自动配合端口A提供相应的控制信号,以配合单片机80C51芯片对8255A芯片的读写操作。所选用的控制信号如图2示,8255A芯片的数据总线(DBUS)与PC104总线的数据线相连,在方式2下8255A芯片的8位数据总线既可以向PC104总线上发送数据,也可以从PC104总线上接收数据。当PC104系统机要给单片机80C51芯片传送数据时,首先在PC104总线上通过软件访问地址为282H的端口,此时程序指向8255A的状态口,读取8255A芯片端口C各位的状态,判断其中IBF位是否有效,即8255A芯片的输入锁存器中是否有数据尚未取走。若有效,则延迟操作;反之则通过软件向地址为282H的端口写入数据,将数据传送给8255A芯片的端口A。此时输出缓冲器满,8255A芯片送出OBF信号至单片机80C51芯片的INTO引脚,通知单片机80C51芯片将数据取走。单片机80C51芯片响应中断后,送出ACK信号给8255A芯片,使8255A芯片的输出缓冲器开启,送出数据。然后单片机80C51芯片即可将所读到的数据通过CAN总线控制器SJA1000芯片和收发器82C250芯片传输。当数据要传输到PC104系统机时,单片机80C51芯片从CAN总线控制器SJA1000芯片和收发器82C250芯片接收数据,并判断8255A芯片的IBF是否为有效,即8255A芯片的输入锁存器是否已满。若满,则单片机80C51芯片调用延时程序延迟操作;反之则将数据传送至8255A芯片的端口A,同时发送STB选通信号,将数据送入8255A芯片的输入锁存器。PC104系统机则查询8255A芯片端口C中IBF控制端的状态。当IBF变为有效时,表示已有数据到来,PC104系统机转入对I/O端口280H的读写操作,将8255A芯片输入锁存器中的数据取走,并放入应用程序中进行处理。
3)CAN控制器部分这部分由CAN控制器SJA1000芯片和CAN收发器82C250芯片以及至少两个高速光耦6N137芯片组成,如图3所示。单片机80C51芯片负责将PC104总线送过来的数据送向CAN控制器,并经由CAN控制器、光耦以及CAN收发器将数据发往CAN总线。为了增加系统抗干扰能力,在SJA1000芯片和CAN总线收发器82C250之间使用了2个高速光电隔离器件6N137芯片进行隔离,隔离部分由DC/DC进行供电。单片机80C51程序设计是整个模块智能化工作的关键,单片机80C51负责与8255A芯片以及CAN控制器SJA1000芯片之间进行通信。智能化的目的是使PC104主机摆脱对CAN总线的状态控制和维护工作,只管接收、发送数据即可,所有的维护工作由单片机完成。这样可以使主机有更多的CPU资源进行复杂的控制算法和更多的人机交换工作,4)通讯卡设备驱动VxD及上位PC104嵌入式计算机系统模块的设计主要包括PC104系统机端的应用程序接口函数,负责完成PC104系统机端与8255A之间的通信,可以用可视化的编程工具,如Visual Basic6.0编写。PC104系统机端软件主要包括向适配卡上的8255A发送控制命令、数据命令和请求数据命令,还将接收到的数据进行后处理,如数据显示。在Windows98下,必须通过编写运行在内核模式(ring-0级)下的虚拟设备驱动程序VxD(Virtual device driver)来访问底层硬件,实现对硬件中断、DMA、I/O或者是绝对存储访问等。各硬件设备都有相应的虚拟设备驱动程序vxD。本智能适配卡的硬件电路设计原理要求上位机PC104的CPU和适配卡之间的数据信息交换,通过PC104主机的扩展I/O端口,采用查询的方式进行,即先查询适配卡的运行状态,再进行数据信息交换和命令信息传输。为了方便使用者使用,上述对VxD服务的调用封装成DLL,使VxD对使用者透明。DLL为使用者提供了允许端口控制函数,关闭端口控制函数及读取端口函数,写端口函数,使得配置和集成应用很方便。本例中用到的函数有四个,分别说明如下①Initialize()允许端口控制函数。在使用端口输入输出函数之前调用一次,成功返回“1”,失败返回“0”。
②Shutdown()关闭端口控制函数。在退出程序时执行一次,成功返回“1”,失败返回“0”。
③GetPortVal(ByVal PortAddr As Integer,ByRef Portval As Long,ByValbSize As Byte)As Boolean读取端口函数,PortAddr为端口地址,Portval为端口值,bSize为要读取的字节数。读取成功时返回“1”,失败时返回“0”。
④SetPortVal(ByVal PortAddr As Integer,ByVal Portval As Long,ByValbSize As Byte)As Boolean写端口函数。PortAddr为端口地址,Portval为要写的值,bSize为要写入的字节数。写入成功返回“1”,失败返回“0”。在应用程序中使用时只需把.dll以及.vxd文件拷贝到工作目录下,并在VB模块文件中声明用到的函数即可。
5)主控电路如图4所示,接收过程CAN总线网络中的数据经CAN总线接口进入CAN总线收发器82C250芯片接收,之后进入CAN控制器SJA1000芯片的接收缓冲区并进一步存入单片机80C51芯片的内部RAM,最后通过8255A芯片的并行通信方式与PC104总线直接进行I/O口读写,传到上位机PC104系统机后进行数据的后处理;发送过程上位机PC104系统机的数据经过8255A芯片的并行通信方式经由PC104总线发送至单片机80C51芯片内部RAM,之后传送至CAN控制器SJA1000芯片的发送缓冲区以CAN总线协议通过CAN总线收发器82C250发送至CAN总线网络中。
权利要求1.一种控制器局域网总线智能适配卡,该适配卡包括一CAN总线接口,用于连接CAN网络;一与采集设备接口电连接的CAN总线收发器,用于接收和发送CAN总线网络中的数据;一与CAN总线收发器电连接的CAN总线控制器,用于对数据处理后传给CAN收发器,以及接收、处理来自CAN总线收发器的数据并输出;一PC104总线插槽,用于接PC104系统的主板;其特征在于,还包括一与CAN总线控制器电连接的微处理器,用于对CAN总线的状态控制和维护。
2.根据权利要求1所述的适配卡,其特征在于,还包括与微处理器相连接的并行接口电路和一地址选择电路,用于采用并行通信方式传输数据。
3.根据权利要求2所示的适配卡,其特征在于,所述并行接口电路与所述PC104总线插槽电连接。
4.根据权利要求1所述的适配卡,其特征在于,还包括连接在CAN总线收发器和CAN总线控制器之间的至少两个高速光耦,用于光电隔离,增强系统的抗干扰能力。
5.根据权利要求4所述的适配卡,其特征在于,还包括所述高速光耦的电源模块。
6.根据权利要求2所述的适配卡,其特征在于,所述地址选择电路由PC104总线地址的最低二位和一个8位比较器组成,用于所述并行接口电路的读写操作控制。
专利摘要本实用新型涉及一种基于PC104系统的控制器局域网(英文简称CAN)总线智能适配卡,旨在提供一种数据传输速率高、兼容性强、接口简单、工作高效的CAN总线智能适配卡。该适配卡包括CAN总线接口、与采集设备接口电连接的CAN总线收发器、与CAN总线收发器电连接的CAN总线控制器、PC104总线插槽、高速光耦以及微处理器和并行接口电路。适配卡采用微处理器,使得PC104系统主机摆脱对CAN总线的状态控制和维护工作,只管接收和发送数据,节省了系统资源;适配卡采用并行通信方式,提高数据传输速率。
文档编号H04L12/02GK2779738SQ20052000215
公开日2006年5月10日 申请日期2005年2月7日 优先权日2005年2月7日
发明者李民赞, 杨玮, 刘卉 申请人:中国农业大学