孟繁江
摘要:本文提出一种新的适配卡设计方案,采用ISA接口,使用89C52微处理器,SJA1000作为通信控制器,并利用双口RAM作为PC机与控制器之间的数据交换通道,使用EPLD器件作为双口RAM的控制和中断信号处理。最后简要阐述了适配卡的软件设计。
关键词:局域控制网 总线适配卡 设计
1 概述
现场总线技术将专用的微处理器置入传统的测量控制仪表中,使它们各自都具有数字计算和数字通信能力,采用可进行简单连接的双绞线作为总线,把多个测量控制仪表连接成网络系统,并按公开、规范的通信协议,在现场的多个微机化测量控制设备之间以及现场仪表与远程监控计算机之间,实现数据传输与信息交换,形成适应各种实际需要的自动控制系统。目前,在变电站综合自动化系统中CAN总线已有少量应用,其中的通信适配卡多为非智能型的,即在卡上未采用微处理器。本文所介绍的适配卡采用89C52作为微控制器,将大大减少PC主机的通信负担。且在设计中使用最新的EPLD器件作为双口RAM的逻辑控制和中断信号控制,使得电路比较简单,而且具有很好的可扩展性。
2 现场总线的技术特点
CAN现场总线的技术特点:①CAN总线是到目前为止唯一有国际标准的现场总线;②CAN为多主工作方式,网络上的任一节点均可在任意时刻主动的向网络上其它节点发送信息,而不分主从;在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多可在134μs内得到传输;a.数据的转发,适配卡把总线上各个节点的信息转发给PC机,并将PC机的命令和数据转发给各个节点;b.用于完成CAN总线上用户的部分监控和管理任务。
3 适配卡的结构
这里研制的CAN适配卡由ISA接口、双口RAM、微控制器89C52、CAN通信控制器SJA1000、CAN收发器82C250、数据缓存器、地址译码与控制逻辑和中断信号控制逻辑等部分组成。
3.1 双口RAM及控制电路 PC机与CAN控制器之间要进行数据的传送,必须在PC机和适配卡上的微处理器之间建立双向的数据通道。这里采用共用外部数据存储器的方法。集成双口RAM是一种性能优良的快速通信器件,适用于多CPU分布式系统及高速数字系统中,它有两路完全独立的端口,每个端口都有完整的地址和数据控制线,这里采用IDT7006双口RAM。对于双口RAM的应用,一个很重要的问题就是必须避免两个端口的争用,两边同时读/写同一地址单元。但只要遵循一定的通信规则,使用合理的控制逻辑电路是可以避免争用现象的。这里采用可编程逻辑器件EPM7128S来实现。EPN171285是一种典型的EPLD器件,采用了先进的CMOSEEPROM技术,内含2500个逻辑门和128个宏单元,可以在PCB板上直接对芯片进行编程。在该适配卡中,EPM7128S主要完成数据总线的驱动、中断信号处理以及共享存储器和数据缓冲器的地址译码。适配卡上的双口RAM使用内存映像的方式直接映射到主机内存空间,实现适配卡与主机的数据交换。内存映象法是将适配卡的数据存储地址配置于PC机的主存储器的高端,PC机可以采用写主存储器的方式将数据直接写在适配卡的数据存储器中,PC机不访问适配卡的微控制器时就可以读写数据存储器的数据。
3.2 微控制器电路 微控制器采用ATMEL公司的89C52,它与MCS51系列完全兼容,带有8k字节的系统可编程Flash和256B的片内RAM。它主要承担节点与PC机之间的数据通信和协调管理工作。电保护电路,可防止因适配卡掉电引起的测量数据丢失。由于适配卡的工作环境干扰很严重,使得电路调试比较复杂且故障率也较高,本卡设计了三种复位方式。一种为上电复位方式,即在PC机通电时,同时对适配卡也进行复位;第二种为在调试时出现故障,使用手动复位键进行复位;第三种方式为软件复位,这种方法是使用初始化模块中的软件指令对适配卡进行复位。
3.3 通信控制器 CAN通信控制器采用PHILIPS公司的SJA1000,它是一种独立的CAN控制器,主要应用于移动目标和一般的工业环境中的区域控制。在本适配卡中SJA1000主要完成具体的报文发送和报文接收。SJA1000的基本特点有:①具有扩展的64字节接受缓冲器,先进先出(FIFO);②支持CAN2.0A和CAN2.0B协议;③支持11位和29位的标识码;④通信速率可达1Mbps;⑤24MHz时钟频率;⑥可与不同的微处理器接口;⑦可编程的CAN输出驱动器配置;可工作于BasicCAN和PeliCAN两种状态。CAN控制器的内部采用模块结构,由七个部分组成:接口管理逻辑(IML)用于解释来自CPU的命令,控制CAN寄存器的寻址,向主控制器提供中断信息和状态信息;发送缓冲器(TXB)是CPU与BSP之间的接口,缓冲器可以存储有13个字节的一条完整的报文;接收缓冲器(RXB)是接收滤波器和CPU之间的接口,用于存储从CAN总线上接收并被确认的信息;验收滤波器(ACF),用于对接收到的标识码进行验收,以决定是否接收下这条报文;位流处理器(BSP)是一个在发送缓冲器、RXFIFO和CAN总线之间控制数据流的队列发生器,它还执行总线上的错误检测、仲裁、填充和错误处理;位时序逻辑(BTL),用于监视串行的CAN总线和位时序;错误管理逻辑(EML),用于限制传输层模块的错误。
3.4 辅助电路 CAN控制器SJA1000并不能直接与总线相连,还要通过总线驱动器才能接于总线上。本适配卡采用82C250总线驱动器,为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和TX1通过高速光耦6N137后与82C250相连,使得总线上的各节点具有很好的电气隔离。
4 CAN通讯适配卡的软件设计
适配卡主要承担上位机和节点之间的报文转发任务。软件设计包含两部分:一部分是上位机的应用程序设计,该程序采用VB6.0开发,用于完成上位机和双口RAM之间的通信,主要包括上位机向适配卡上的双口RAM发送控制命令、数据命令、请求数据命令、请求状态命令和接收数据等。另一部分是适配卡上的微处理器的程序设计,使用KeilC编写,下位机上的程序负责微处理器与双口RAM以及微处理器与SJA1000之间的通信。其软件设计的主要任务是向CAN控制器转发来自PC机的命令,并由SJA1000进一步转发到CAN节点,并将由控制器接受的来自节点的数据和状态信息送到双口RAM。同时在程序开发中还包含对89C52的初始化,双口RAM的初始化以及SJA1000的初始化。SJA1000初始化主要是指设置模式、总线时序、中断使能、屏蔽码和ID信号,这些设置是通过对芯片的内部寄存器赋值来实现的,如表中SJA1000寄存器初始化参考。
5 小结
CAN总线通讯适配卡,不仅可用于变电站测控系统,而且适用于其它分布式现场总线控制系统。它可以适应不同的传输速率和距离,易于编写接口程序。由于采用了EPLD技术,可方便地设计适配卡的逻辑功能,且易于对适配卡进行扩展和升级。