1 引言
针对自动化控制领域,现场总线在底层控制网络中得到了大量的应用,但随着网络技术和嵌入式的发展和技术变革,智能化需求日益增长,控制系统的网络化和开放性成为行业的发展趋势。目前,现场总线技术自身还具有一定的局限性,特别是现存的种国际标准的现场总线在通信协议和总线标准方面互不相容、竞争并存,不能实现互操作,这严重限制了现场总线在控制领域的发展。在控制网络系统升级改造的过程中,由于不同的现场嵌入式设备厂商采用不同的通信方式,相互之间又没有一种通用的软件协议,使得在工业智能网络中用于连接嵌入式设备的通信硬件媒介千差万别,现场总线和通信协议也各不相同,形成一个互不兼容的异构网络,缺乏开放性和兼容性[1]。
2 网络通信相关技术介绍
PLC具有通用计算机的些特点,但是它的工作方式与通用计算机有很大的区别,它采用循环扫描的工作方式。其原理可以解释为对任务程序的处理是按照一定的访问顺序和执行顺序工作的,每完成一个扫描周期,再从头循环执行用户程序,周而复始的运行。其工作过程如图1所示,主要包括三个阶段:输入采样阶段、程序执行阶段、输出扫描阶段[2]。
图1 PLC工作原理图
随着通信协议成为一个嵌入式控制网络的关键组成部分,满足高带宽和可预测性要求的新协议需求增加。有多种实时通信协议,在这些协议中能满足车辆复用的协议有:控制器区域网络(CAN)、本地互联网络(LIN)和SAE J1850目前在大规模使用。此外只有少数协议适合具有可预测性强制要求的安全应用,文献进行满足安全性的嵌入式系统通信协议的一项调查和比较显示,数据通信活动必须能被触发,不论是基于事件的动态响应,还是基于时间轮询的静态触发[3]。一方面,有基于时间处理的静态调度信息协议,例如,用于航空电子设备行业的SAFE BUS和SPIDER协议,用于汽车行业的TTCAN和时间触发协议TTP。另一方面,一些是通过动态调度信息的通信协议,比如,控制器区域网络(CAN)被大量的使用在各个领域,LONWORKS协议和PROFIBUS协议普遍用在实时系统中。在这当中,CAN总线在分布式嵌入式实时系统领域是最知名和广泛使用的事件驱动通信协议[4]。
3 拥塞控制算法在嵌入式网关中的研讨
3.1 主动队列管理策略控制模型
为了解决数据通信活动必须能被确定性触发的问题,采取主动而非响应性的分组丢弃就是一种有效手段。相应的队列管理策略被称为主动队列管理是缓冲队列管理的主流算法。的基本思路是,根据队列长度的变化情况,在队列缓存溢出之前,对到达的分组数据以概率丢弃标记,分组的丢弃标记信号经过延时之后被源端检测到,源端由此判断网络的状态,根据不同状态调用相应的控制算法来调节发送速率,从而使路由器缓存中的队列长度得到控制[5]。这样,策略就形成一个闭环控制系统,其中是控制器,其输出为系统的控制信号,而源端的速率控制算法则是系统的执行器,它和路由器的队列长度特性以及链路延时一起,组成了系统的广义对象,如图2所示。
图2 主动队列管理策略控制模型
链路算法的研究目前集中在“主动队列管理”(Active Queue Management,AQM)算法方面,同传统的“队尾丢弃”(Droptail)相比,AQM在网络设备的缓冲溢出之前就丢弃或标记报文。
3.2 AQM的主要优点
(1)减少网关的报文丢失。使用AQM可以保持较小的队列长度,从而增强网络中间节点容纳突发流量的能力[6]。
(2)减小报文通过网关的延迟。减小平均队列长度可以有效地减小报文在网络设备中的排队延迟。
(3)避免Lock-out行为的发生。
3.3 RED算法
AQM的一个代表算法是RED(random early detection)算法。RED比Droptail具有更好的性能,在RFC2309中,强烈推荐使用RED作为今后的标准。但是进一步研究发现,RED的性能对算法的参数设置十分敏感,至今没有在interrnet中得到广泛的使用。根据文献提供的结果显示,RED的性能优于Droptail,但是它存在两个主要缺陷:
(1)RED对参数设置很敏感,改变参数对性能影响很大,到目前为止,如何确定这些参数还没有明确的方法;
(2)随着网络中“流”数目的增加,网关的平均队列长度会逐渐增加,这对提高实时性也是不利的。
4 协议转换网关设计
4.1 网关组成结构
协议转换网关主要包括核心处理器、以太网控制器、RS485/232收发器等现场总线
控制器、外围I/O设备、片外存储器等,网关组成结构如图3所示。
图3 网关硬件结构组成图
(1)请求和控制信息数据通过以太网链路到达网关,网关中以太网控制芯片实现以
太网物理层的数据流通;
(2)处理器的EMAC模块对数据进行拆巾贞处理,获得链路层的有效数据;
(3)这些数据通过高速总线(AHB)交予网关转换程序处理,获得原始的请求和控
制信息;
(4)再根据目标总线协议格式进行数据封装,选择芯片内相应的总线通道发送数据;
(5)数据帧通过与这些总线通道联通的片外总线收发模块到达相应的物理总线链路。
反向转换为上述数据过程的反向流通,实现跨网络的数据转发[7]。
4.2 软件层次结构图
在系统程序结构设计上,引入嵌入式通信中间件软件设计思想。对各设备进行抽象,网络协议库的实现采用分层结构设计,使用信息机制实现各层间的访问,屏蔽高层对底层的访问细节,实现程序接口的透明调用,方便程序跨平台的移植和调试[8]。软件层次结构如图4所示。
图4 软件层次结构图
5 结束语
分析控制网络中异构硬件架构与异构通信协议,着重研讨了各种总线网络通信协议和通信特征。对异构网络间互联通信机制的研究与分析,提出并完成基于嵌入式中间件协议库协议转换网关的设计,定义了嵌入式中间件协议库组件化的原则和粒度控制,使用共享内存技术实现数据交换。完成协议转换网关的软件和硬件设计与实现,包括协议库的设计与实现、统一访问接口设计与转换流程的实现。为保证协议转换网关在异构控制网络链路的服务质量,针对通信协议转换过程存在复杂的不确定性因素,分析信息网络拥塞控制技术以及源端拥塞控制算法和链路控制算法的优缺点,提出一种基于模糊控制的拥塞控制策略。