技术中心
 
 

智能装置CAN转以太互连通信方案设计

   日期:2007-05-25     作者:管理员    

  摘要:提出了一种基于双处理器的CAN现场总线与以太网络互连解决方案,详细介绍了该通信接口卡的软硬件设计,实现了生产管理层和智能装置之间基于IEC6870-5-101,104通信规约的数据通信。

  关键词:CAN总线 以太网 DSP56F807 Rabbil2000 IEC6870-5-101/104

  目前,由于以太同的优势在工业控制现场仍然很难完全发挥出来,而且实时性和抗干扰能力也不能适应工业自动化范围中所有要求,所以最好的解决方案将以太网同现场总线相结合,充分利用两种通信技术在各自领域中的优点。具体表现为在生产管理与监控层采用高速以太网技术,而在现场设备层采用现场总线技术。

  1 系统结构

  本系统间隔单元设备采用嵌入式工业以太网技术,从而使智能装置真正成为工业以太网上独立的节点,保证了智能单元设备和上位机系统通信快速、完全、可靠,为远程管理智能装置创造条件。通信接口卡(Master板)与上位机信息交换是建立在TCCP/IP协议上的际电力行业标准的IEC104规约,采用Server/CLient通信服务模式,Master板作服务器可以支持多客户同时登入。系统

结构如图1所示。

点击看原图

点击看原图

  2 装置内部结构设计

  智能装置内部各功能模块采用高速现场总线CAN网络相连。总线不出装置,功能模块之间的数据交互快速可靠。在组帧上采用HLON规约,并使用CAN 2.0B扩展模式,为了保持协议标准化,在HLDN规约的基础上封装了IEC101规约。其内部结构如图2所示。

点击看原图

点击看原图

  3 硬件设计

  通信接口卡使用双处理器结构。一部分是使用Motorola公司DSP56F807芯片作为接口卡的CAN通信管理模块;另一部分是使用Rabbit2000核的RCM2100集成卡作嵌入式网关和cAN到盯HERNET规约转换模块。通信接口卡硬件逻辑框图如图3所示。

点击看原图

点击看原图

  通信接口卡采用主从工作方式,即DSP56F807作为主处理器,利用其自带的MSCAN模块负责管理CAN通信。DSP外扩64KBRAM,用于存储数据。RABBIT2000作为从处理器,负责进行CAN到ETHERNET转换,并负责管理装置同后台的以太网通信。RABBIT2000与DSP接口方式采用并行接口。板上还设有RS485、RS232接口,可以用于PC调试或与后台连接。DSP56FS07采用3.3V电源供电,RABBIT2000采用5V电源供电,经测试只要输入电压达到2.1V,RABBIT2000即认为高电平,DSP56F807输出高电平在2.lV以上;DSP56F807 I/O可以接受5V信号,所以DSP与RABBIT2000可以直接相连,无须进行电平转换。

  (1)DSP56FS07主处理器

  DSP数据总线DO~D15地址总线AO~A15,外扩64KRAM存储数据,RD、WD连接外扩RAM的读、写允许端,DS作为外扩RAM片选信号。DSP的GPIOB口连接从处理器的SDO-SD7,GPIODO、GPIOD1连接从处理器的SAO、SAl,GPIOD2、GPIOD3连接从处理器的写、读允许端(SWR、SRD)。一个中断IRQB连接从处理器的SAT,作为从处理器中断申请。DSP的PWMB2连接MAX705的WDI作为外部硬件看门狗喂狗信号,PWMB4连接发光二极管作为DSP的运行指示灯。用DSP的两个SCI模块RXD0、TXD0、RXDI、TXDI做成标准RS-232、485接口。引出DSP的ITAG口用于调试,用DSP的MSCAN模块和82C250作为CAN通信端口。通过DSP的SPI口与RABBIT2000同步串口B相连,作为另一种接口方式。DSP采用3.3V电源供电。

  (2)RABBIT2000从处理器

  该处理器使用内核为RABBIT2000的RCM2100集成卡。其SD0~SD7连接到DSP的GPlOBO-GPlOB7。SAl、SA0用来选择从处理器接口的四个数据寄存器中的一个,连接到DSP的GPIODl、GPIOD0。从芯片选择管脚SCS连接到DSP芯片的一个输出端GPlOD4。SRD连接到DSP的GPIOD3,如果SCS为低,这根线被拉低使地址线所选择的寄存器的内容被放置到总线上,SWR连接到DSP的GPIOD2,这根线能够将数据总线上的数据锁 存进入地址线所选择的寄存器中。SLAVEA刑连接到DSP的一个中断口IRQB,在它变低时向DSP申请中断。如果从处理器写SPDOR寄存器,SLAVEATTN这根线置为低电平,声明从处理器中有可用的数据;如果主处理器写从处理器状态寄存器,这根线变为高电平。使用串口A作为编程口,串口B及CLKB作为同步串口和DSP的SPI口相连,组成另一种接口方案。使用PC2

作为RABBIT2000运行指示灯,以太网模块(RCM2100自带RJ一45接口)引出通信指示灯。PE4、RES-1N、MAX705组成硬件看门狗电路。RCM2100采用5V供电。使用INTlA作为GPS对时。

  4 软件功能实现

  系统通信软件可以分成CAN总线接口通信程序、协议转换与以太网通信程序和上位机应用层TCP客户端程序设计三个部分。

  4.1 CAN总线接口通信程序

  CAN总线接口通信程序运行于DSP56F807上,使用CodeWarrior C/C++集成开发环境。该部分程序的主要目的是将智能装置内各种数据搜集起来,形成一个数据缓冲池,并不断刷新供上位机调取,而来自上位机的数据通过以太网网关被DSP接收到后将被转换为CAN协议数据,下发到装置内部各个插件。主要通信程序模块有:

  (1)CAN接收中断模块

  CAN网接收的短帧,存入共用发送处理区或者保存区。把CAN接收中断的数据进行分析处理,如果ID标识符的第一个字节的最高位为1,则是多信息帧数据,反之为单信息帧数据。如果是多帧信息,则根据帧序号把每帧数据按顺序压入接收缓存区。如果发现ID标识符

寄存器2的最高位为1,则代表结束帧,为0则代表中间数据帧。

  (2)CAN发送程序模块

  当有数据需要发往CAN口时,调用拆帧函数,使之转化为相对应HiLon CAN短帧,每个短帧区分配16字节空间,并分别存入2KB的CanSendBuf发送缓冲区,启动CAN发送中断。

  (3)并口接收中断模块

  在并口中断中,交换数据是相互的,双方均可主动发起数据。在底层并口交换数据程序中开辟了一个256字节的缓冲区,在中断中查询缓冲区是否已接收完;如果接收完,则处理送入1K并口接收缓冲区ParallelRecBuf。当一个数据包接收完,则压共用发送处理缓冲区。

  (4)并口发送程序模块

  当有数据需向并口发送时,从共用发送处理区或者保存区中取出数据组帧为IEC104信息体,送入1KB的并口发送区中ParallelSendBuf,启动底层并口发送中断。

  DSP主程序结构流程图如图4所示。

点击看原图

点击看原图

  4.2 协议转换与以太网通信程序

  嵌入式协议转换程序的设计思路为:当有以太网应用层数据发送到现场智能装置时,Rabbit把TCP数据报文解析出来后即发送给DSP处理,而当来自DSP的装置内部数据要发往以太网应用层时则将其打包成TCP数据报文发送给目标TCP客户端。该程序由Dynamic C开发环境开发。Dynamic C是Zwodd公司为其Rabbit系列产品开发的一种改进C语言开发系统。它提供丰富的函数库,能实现Socket级别的TCP/IP编程,并支持各种网络协议(如Http,Ftp等)。调用"dcrtcp.lib",定义数据类型为tcp_Socket的变量,建立TCP套接字,利用其特殊的协语句(GeState),可以实现在单一程序中实现多线程.同时建立与处理多个TCP连接,支持多客户端同时登入。

  4.3 上位机应用层TCP/IP客户端程序

  后台接口软件具有后台监控软件的中转代理和智能装置定值下载、报文监视,以及PC调试等功能。后台接口软件使用.Delphi 6.0快速开发环境(JlAD)开发。利用其自带的TClientSocket组件建立TCP客户端,TClientSocket组件封装了Socket套接字,只要将组件Active属性设置为True,那么它就会自动不断尝试连接指定IP地址与端口(IEC60870-5一104指定端口为24041的TCP服务器。TclientSocket组件自带的TNMUDP组件与其他应用程序(如后台监控软件)通信;开放原代码的tmsAdvstring第三方组件包实现报表的生成与打印。

  本文提出的基于双处理器的CAN总线与以太网互连方案是一种高性能、可靠快捷的互连方案,已经在局地网成功应用于智能装置中,满足水电站、变电站等工业场合的应用要求。该互连方案使智能装置与上位机系统有更深层次的互连,为远程管理智能设备创造条件,具有非常广阔的应用前景。


 


 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢