基于CAN总线的光电经纬仪远程监控系统
扫描二维码
随时随地手机看文章
1 引言
CAN (Controller Area Network,控制器局域网)总线最初是德国BOSCH公司为汽车的监测、控制系统而设计的一种有效支持分布式实时控制的串行通信网络,由于CAN总线具有通信率高、实时性好、可靠性高、连接方便和性价比高等特点,推动了其应用开发的迅速发展。由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而扩展到了机械工业、纺织机械、农用机械、机器人、数控机床、医疗机械、家用电器及传感器等领域。CAN总线是目前惟一有国际标准的现场总线,并已被公认为最有前途的现场总线之一。
然而,随着计算机、控制、通信、网络等信息技术的发展, 信息交换的领域已经覆盖了工厂、企业乃至世界各地的市场。为实现工业企业的综合自动化, 需要建立包含从工业现场设备层到企业控制层、管理层等各个层次的网络平台。以太网以其能便捷地访问远程系统、共享/访问多数据库等优势,许多现场总线系统最终都连接到以太网。
本文从大型光电跟踪设备的网络化出发,设计一种基于CAN总线网络的光电经纬仪的远程通信方案。
2 光电经纬仪内部通信网络设计与实现
2.1 CAN总线技术特点
CAN总线可有效支持分布式控制或实时控制。该总线的通信介质可以是双绞线、同轴电缆或光纤,其主要特点如下: CAN总线为多主站总线,各节点可在任意时刻向网络上的其他节点发送信息,且不分主从: CAN总线采用独特的非破坏性总线仲裁技术,高优先级节点优先传送数据,故实时性好; CAN总线具有点对点、一点对多点及全局广播传送数据的功能;CAN总线采用短帧结构,每帧有效字节数最多为8个,数据传输时间短,并有CRC及其它校验措施,数据出错率极低; CAN总线上某一节点出现严重错误时,可自动脱离总线,而总线上的其他操作不受影响; CAN总线系统扩充时,可直接将新节点挂在总线上,因而走线少,系统扩充容易,改型灵活; CAN总线的最大传输速率可达1Mb/s,直接通信距离最远可达到10km(速率在5kbps以下); CAN总线上的节点数取决于总线驱动电路。在标准帧(11位报文标识符)时可达到110个,而在扩展帧(29位报文标识符)时,个数不受限。
2.2 光电经纬仪CAN总线网络系统架构
光电经纬仪之间的实时通信在传统上使用串行接口,但其存在较多的先天性缺陷:通信速率低、传输距离短、线路利用率低、容错性差、不易扩展、难以维修和测试。CAN总线应用于光电经纬仪内部通讯可以简化系统结构,提高通讯实时性、传输速率,降低误码率,具有较好的抗电磁干扰性和系统的可扩展性。
在任何测控系统中,都要通过测量装置获取环境和相关的输入参数,然后执行控制算法,做出相应的控制决策,启动执行设备来实现对系统的控制。基于现场总线建立的测控系统将单个分散的测量仪表和控制设备变成网络节点,将控制系统中所需的基本控制、补偿计算、参数修改、报警、显示、监控、优化等功能也分散到各个节点中。因而总线上的节点应该具有总线通信功能、测量或控制功能,还要具有相当的协调能力,这必然离不开微处理器,这种类型的节点称为智能节点。
大型光电经纬仪是一种多传感器融合的测控设备,一般由机上数据通信系统,机上控制系统,调焦系统,激光系统,卫星电视系统,伺服系统,红外电视系统,编码器电控系统等分系统组成,不同型号的经纬仪内部系统构成不同。
以上述八个系统组成为例设计光电经纬仪内部通信系统架构[1]如下:
图1 光电经纬仪内部CAN通信网络
在图1所示CAN总线网络中,每一个分系统都是一个智能节点,各分系统共用总线实现系统之间的数据传送。在这种由CAN总线网络构成的通信系统中,每一个分系统完成自身的数据的采集、处理,把需要跟其它分系统交互通信的信息发送到总线上,比如状态信息、命令信息等等。各个分系统之间可以完成点对点,点对多点以及广播式数据通信。
2.3 CAN智能节点的硬件架构
本系统中,CAN节点采用: ECU(AT89C51)+CAN控制器(SJA1000)+CAN收发器(PCA82C250)的电路结构,CAN总线控制器、总线驱动器和单片机连接基本方法[2]如图2:
2.4光电经纬仪内部通信系统中CAN应用层协议
本协议遵循CAN2.0B规范,根据经纬仪内部各系统相互之间通信方式的特点,采用源→目的方法,每个节点都有自己固定的标识地址,且节点数小于64,设计时把机上数据通信系统作为主节点,而将机上控制系统,调焦系统,激光系统,卫星电视系统,导航电视系
图2 CAN总线接口电路原理图
统,红外电视系统,编码器电控系统设置为从节点。本协议可完成以下功能: (1)特定信息的广播(广播帧); (2)任意节点之间的连接(单播帧); (3)点对多点的信息交换(组播帧)。 本设计中SJA1000工作在PeliCAN模式,它支持标准帧和扩展帧两种帧格式,采用单滤波和双滤波两种模式实现节点之间的组播、广播和单播[5]。组播帧采用标准帧格式,单滤波模式,广播和单播帧采用扩展帧格式,双滤波模式。 组播、广播和单播帧的标识符分配如图3所示:
组播 |
28 |
27 |
26 |
25 |
24 |
23~18 |
DB1.~DB1.4 |
DB1.~DB1.0 |
|||||||
1 |
源节点地址 |
自定义 |
目标组编号 |
||||||||||||
广播 |
28 |
27 |
26 |
25 |
24 |
23~13 |
|
||||||||
1 |
源节点地址 |
自定义 |
|||||||||||||
单播 |
28 |
27~24 |
24~21 |
20~17 |
16~13 |
||||||||||
0 |
源节点地址 |
目标节点地址 |
自定义 |
目标节点所在组编号 |
|||||||||||
图3 帧标识符分配
自定义的标识符可以设置成命令属性或状态、报告等等。对所有的命令或状态、数据、报告属性、除定时采集发送的数据外,原则上均需应答(发送确认帧以保证通讯正常)。
3 光电经纬仪内部CAN网络与Internet连接的设计与实现
人们往往采用嵌入式技术设计一个仅能连接以太网与CAN 总线的网关用来实现CAN网络与以太网的连接。将这种应用方案应用在大型光电跟踪设备上就可以实现对光电跟踪设备的远程监控以及信息的共享。通过远程控制来实现不适合人员长期操控或恶劣环境下的无
人操作测量,无人操控测量可以减少测量结果中的人为误差,使测控更加地精确。
3.1 嵌入式网关设计
在本设计中,嵌入式网关通过以太网控制器接口与以太网相连,通过CAN控制器接口与现场总线相连,硬件连接框图如图4所示。
图4中采用集成CAN通信控制器的MC68HC05X16单片机和RTL8019AS以太网控制器来实现CAN与以太网的连接。RTL8019AS是台湾Realtek公司制造的一种高集成度的全双工10Mbps 以太网控制芯片[4],可实现基于Ethernet协议的MAC层的全部功能,内置16KB的SRAM、双DMA通道和FIFO,可完成数据包的接收和发送功能。MC68HC05X16采用RTL8019AS同以太网上的操作站进行数据交换,通过内置CAN控制器与CAN总线上其它节点进行数据交换。在交互过程中MC68HC05X16依据应用要求对数据进行处理。
处理器MC68HC05XI6负责对以太网控制器RTL8019AS和SJAIO00的控制。微处理器内驻有TCP/IP通信协议和CAN协议,完成以太网协议和CAN总线协议转换,实现以太网和CAN间的数据通信。
4 软件设计
通信软件包括RTLS019AS和CAN的发送、接收程序。对于CAN的发送接收程序在文献[2]中已给出详细程序,由于篇幅限制此处不再赘述。对RTLS019AS的软件操作,有查询和中断方式有实时性要求的环境一般采用中断方式处理RTLS019AS数据的收发。程序入口根据读取的RTLS019AS中断状态寄存器(ISR)值进行相应处理
以太网通信部分的软件主要有两部分:一是RTL8019AS的驱动程序(包括RTL8019AS初始化、以太网报文的接收和发送);二是为实现数据远程传输而进行的TCP/IP协议处理,将从光电经纬仪采集到的数据按TCP/IP协议进行封装,使数据能够通过Internet直接传输到目的主机上。RTL8019AS初始化的过程实际上就是完成对RTL8019AS的内部寄存器的配置,确定发送和接收条件,并对以太网控制芯片缓冲区进行划分。
收发数据的过程实际上就是通过DMA对RTL8019AS内部RAM进行读写操作的过程[3]。8019接收缓冲区实际上是一个循环FIFO(先进先出)队列,芯片内RAM读写操作不采用中断方式,而是以查询方式,即CURR(当前页寄存器)值是否等于BNRY+1来判断是否接收到新数据。接收流程图如图5所示
图5 RTL8019AS数据接收流程图
当MC68HC05XI6接收到来自以太网的TCP数据报,标志位置1,在CAN处理子程序中,根据该标志位判断是否有数据要发送给另一节点。在具体调试时使一个CAN节点每隔一段时间向网关转换模块发送一些数据。网关接收数据后,通过以太网转发给上位机,上位机通过超级终端显示接收的数据。同样,可以通过超级终端发送一些键入的数据。经过转换模块传给另一个CAN节点,从而改变它的一些内部数据。
5 结束语
本文作者创新点是将CAN总线网络应用于大型光电测控设备,从而简化了设备的庞大复杂的内部结构,并且由于CAN自身的优点,使得设备的可靠性、数据传输速率均得到提高,并且降低了误码率。现场技术与控制技术相结合使现场总线在以太网远程监控系统中得到了广泛的应用,CAN网络与以太网的连接可以实现对光电经纬仪的远程操控以及信息共享,这已成为测控领域的发展趋势。
参考文献:
[1]刘晓晶,续志军,绝对式光电轴角编码器CAN总线接口[J],微计算机信息,2007,23:1-2
[2]饶运涛,邹继军,郑勇芸.现场总线CAN 原理与应用技术[M],北京航空航天大学出版社
[3]杜尚丰,曹晓钟,徐津.CAN总线测控技术及其应用[M],电子工业出版社
[4] 林士兵,袁 焱,杨煜普.TCP/IP 网络与CAN 网络网关的设计与实现[J],计算机工程2007.02
[5]孙立辉,和志强.基于SJA1000的CAN总线系统中广播和组播的实现[J],仪表技术与传感器,2003