杨 帅,王 超,成建生
(1. 淮安信息职业技术学院,淮安 223003;2.江苏电子产品装备制造工程技术研究开发中心,淮安 223003)
基于Host Based架构模式的LON总线协议转换控制器
杨 帅1,2,王 超1,2,成建生1,2
(1. 淮安信息职业技术学院,淮安 223003;2.江苏电子产品装备制造工程技术研究开发中心,淮安 223003)
现场总线技术发展至今,凭借其优越的开放性、互换性、分布式等优越特性逐渐被越来越多的用户接受,但是相对集散控制来说,应用领域还是比较狭窄。在目前集散控制还是主流控制的背景下,提高现场总线应用范围的有效措施就是现场总线控制技术与集散控制技术融合,两者取长补短,增强系统的控制性能,为控制网络提供更大的灵活性。现场总线控制和集散控制是两种异域技术。一般情况下两者是不能互操作的,解决这一瓶颈的有效方法要使总线系统具有协议转换功能,实现了与集散控制系统的有机结合,因此提出了一种基于LonTalk标准协议和Modbus标准协议转换功能的LON总线协议转换控制器。
LON技术是一种致力于绿色节能和智能管理的总线控制网络平台,支持LonTalk标准协议。LonTalk协议所采用的算法是优先级带预测的P-坚持CSMA(载波监听多路访问),该协议能够预测LON总线网络负载,轻载时给网上节点分配数目较少的随机时隙以减少节点媒介访问延时;重载时给网络上节点分配的较多数目的随机时隙以减少各节点因同时发送消息带来的冲突,从而实现了随机时隙数目以概率P值的动态的调整。为提高紧急事件的响应时间,提供一个可选择优先级的机制,在发送过程中优先级数据报文将在时间片里将报文发送出去,加入优先级的节点具有更快的响应时间[1]。Modbus协议是应用于集散控制网络上的一种通信规约,支持传统的RS232、RS485。通过该协议控制器相互之间、控制器经由网络与其他设备之间都可以通信,它已经成为主流的工业标准之一,符合Modbus协议的不同厂商生产的控制设备可以连成工业网络,进行集中监控,实现LonTalk协议标准与Modbus协议标准的协议转换,现实意义巨大。
为了实现LON总线协议转换控制器的LonTalk协议标准与Modbus协议标准的转换,控制器采用Host Base设计框架,两处理器(即神经元芯片3150和单片机AT89C55)之间数据交换的方法,这种设计架构模式使LON总线协议转换控制器信息处理速度快,开发成本较低,性价比较高。神经元芯片3150是一种专门为设备提供智能和网络控制能力的集成芯片,由于神经元芯片将复杂的通信过程简化为网络变量和捆绑和连接,为充分发挥其优异的通信特性,将其定位从机角色,只承担信息通信任务。AT89C55一款片内具有20KFlash存储器、存储空间大,适合数据存储和处理,将其定位主机角色,承担数据的存储和处理。为了提高LON总线协议转换控制器的数据处理速度,3150和AT89C55之间采用Slave A模式并行接口进行连接,LON总线协议转换控制器的原理模型如图1所示。AT89C55通过MAX485/MAX232芯片接收和发送Modbus标准协议数据报文;3150通过FTT-10A收发器接收和发送LonTalk标准协议数据报文;Modbus标准协议数据报文和LonTalk标准协议数据报文通过Slave A模式的并行接口实现相互转换。AT89C55除了协议转换功能外,还担负着现场信号采集和信号输出的功能。
图1 LON总线协议转换控制器的的原理模型
图2 总线控制器Slave A模式并行接口电路原理图
神经元芯片3150与单片机AT89C55之间的Slave A模式并行接口原理电路如图2所示,Slave A模式并行接口由8根双向数据总线IO0~IO7、1根片选信号~CS、1根握手信号HS、1根读写控制信号R/~W构成,支持最高速率3.3M[3],极大提高数据报文处理的实时性。神经元芯片3150的IO0~IO7管脚依次与单片机AT89C55的P00~P07管脚相连形成数据总线,3150的IO8管脚与AT89C55的P12管脚相连形成片选信号线,3150的IO9管脚与AT89C55的P11管脚相连形成读写控制线,3150的IO10管脚与AT89C55的P10管脚相连形成握手控制线。3150与AT89C55两处理器之间在基于虚拟令牌乒乓式传递机制下实现数据报文的交换,有效解决了数据总线频繁占用、数据阻塞的瓶颈弊端[4]。3150与AT89C55之间互相传递虚拟令牌,拥有令牌的处理器具有写数据报文的主动权。当片选信号线~CS为低电平时,读写操作由R/~W控制信号线决定,当R/~W为低电平时,AT89C55占有令牌,当R/~W 为高电平时,3150占有令牌。握手信号HS为高电平时,3150处于忙状态,握手信号HS为低电平时,3150处于空闲状态。当AT89C55检测握手信号线HS为低电平时,在~CS信号的下降沿将数据写入数据总线。Modbus标准协议设备是采用的是标准EIA电平,单片机AT89C55采用的是标准的TTL电平,实现AT89C55与Modbus协议设备的数据报文相互传递,采用MAX232和MAX485进行电平转换,从而形成1路RS232接口和1路RS485接口,通过多路开关SW来决定RS232接口有效还是RS485接口有效。AT89C55的P14、P15、RXD、TXD管脚依次与MAX232芯片的R2OUT、T2IN、R1OUT、T1IN管脚相连,AT89C55的P13、RXD、TXD管脚依次与MAX485芯片的~RE和DE、R0、DI管脚相连,如图3所示。
图3 总线控制器232/485接口的电路原理图
实现LON总线协议转换控制器主机AT89C55数据报文的采集接受和输出发送,AT89C55通过UART串行中断接收和发送Modbus协议设备的数据报文,通过定时中断采集现场信号和输出信号,并将采集和接收到的数据报文暂存自己的数据存储区。AT89C55与Modbus协议设备的通信数据是成帧成包发送的。每包数据都有同步码、控制码、地址码、报文内容、校验码、结束码等部分组成。Modbus协议数据报文格式如下所示:
同步码 控制码 地址码 报文内容 校验码 结束码
实现LON总线协议转换控制器主机AT89C55与从机3150的数据交换,采用虚拟令牌乒乓式传输,LON总线协议转换控制器上电复位后,AT89C55发送同步值,3150读取后向AT89C55发送应答同步,当AT89C55和3150同步后,两处理器开始交换数据报文,AT89C55置低R/~W信号线占有令牌,通过置低~CS信号线选通3150并时刻监听从机3150的闲忙状态,当检测到信号线HS为低电平,即3150处于空闲状态,AT89C55立即将Modbus协议设备发送过来的数据报文写到Slave A模式并行接口的数据总线上,同时置高R/~W信号线交出虚拟令牌给3150,然后置高~CS信号线(同时迫使HS信号线也置高)开始读取Slave A模式并行接口数据总线。当3150占有虚拟令牌后,3150轮巡检测When( nv_update_occurs(输入网络变量 ))语句,当输入网络变量的值被更新时,通过io-out( )函数将数据报文发送到Slave A模式并行接口数据总线上,同时交出虚拟令牌,然后置低HS信号线,并通过任务驱动语句When()和io_in( )函数读取AT89C55发送过来的数据报文,由Neuron C语言设计的调度程序将报文数据赋值给输出网络变量,并通过3150内部固化的LonTalk协议的网络层、MAC层将类型、源地址、目标地址、变量名、变量内容等消息层层打包[5,6],将打包后的数据帧发送给LON网络总线上的LonTalk协议目标设备,LonTalk协议数据帧的格式如下:
同步码 域ID 地址码 配置表 网络变量消息 校验码
图4 虚拟令牌乒乓式传输机制流程图
网络变量消息的代码第一字节的第1位是1,表明该消息是网络变量;第2位表明该消息是输入网络变量还是输出网络变量(0为输入,1为输出),3~8位是网络变量选择器的高有效位;网络变量消息的代码第二字节是网络变量选择器的低有效位;余下的字节是网络变量的值;当网络变量修改消息发送后,如果LON总线网络的其它LonTalk标准协议接收设备有一个输入网络变量的选择器的值与发送消息中的选择器的值相同,那么接收设备上对应的输入网络变量修改事件发生,输入网络变量的值修改为发送网络变量消息的值,实现LON总线协议转换控制器与其它LonTalk标准协议设备的通信。LON总线协议转换控制器中3150固化的LonTalk协议能够自动完成虚拟令牌乒乓式传输机制,采用Neuron C语言将3150的IO口声明为Slave A并行接口:IO_0 parallel slave io_object_name;虚拟令牌的传递依靠事件io_out_ready()和io_out_request()完成,io_out_ready()为真时,3150交出令牌,io_out_request()为真时,3150拥有令牌。AT89C55不能自动完成虚拟令牌传递,需要用C语言编制虚拟令牌传递协议,包括主机的同步、握手、数据读写、令牌传递过程,传送的数据要遵从一定的格式,传送的数据要遵从一定的格式[7,8]。3150与AT89C55的令牌传递完整软件流程如图4所示。
利用LonMaker组网工具把LON总线协议转换控制器添加到LON网络上,通过LNS DDE SERVER或NL-OPC Server工具访问LON网络数据,实现LON总线协议转换控制器的网络集成,修改LON总线协议转换控制器的网络变量数值,该控制器通过232/485端口输出数据,Modbus设备通过232/485端口返回数据,LON总线协议转换控制器接收到数据报文后,进行LRC校验,然后解析,通过LonMaker软件监测返回的数据报文。
通过LonMaker监测到的返回数据正确,当每秒要传输的数据报文达500~1000包时,网络碰撞率稳定在10%,LON总线协议转换控制器性能良好。基于LonTalk协议标准与Modbus协议标准的转换功能的LON总线协议转换控制器是推进了企业网络一体化建设进程,实现了现场控制、生产监控层、生产管理层和生产决策层相互贯通,构建了一种分散控制、集中企业体系,这种体系模式是降低现代企业生产和运营成本的同时又能使管理者高效监管企业生产和运营。
[1]杨帅.基于虚拟令牌传输协议的LonWorks监控系统设计[J].低压电器.2010,(14):45-48.
[2]冯艳娜.基于Lonworks 总线的网关工具的设计[J].工矿自动化.2008,(5):139-141.
[3]杨帅.基于Slave_B并行传输模式的双绞线LON节点[J].仪表技术与传感器.2011,(5):48-50.
[4]田敏.一种采用Slave_B传输模式的LonWorks电力线节点[J].自动化仪表.2011,31(12):13-15.
[5]成建生.基于电力线通信模式的LON控制器的设计[J].电测与仪表.2011,48(4):86-89.
[6]杨帅.采用LonWorks电力载波技术的控制器[J].低压电器.2011,(13):41-44.
[7]杨帅.基于LonWorks总线的全分布式瓦斯监控系统[J].工矿自动化.2012,38(11):84-87.
[8]成建生.采用并行接口模式的LonWorks监控系统的设计[J].矿山机械.2010,38(12):62-65.
The LON bus controller based on conversion function of lonTalk protocol and modbus protocol
YANG Shuai1,2, WANG Chao1,2, CHENG Jian-sheng1,2
为了使LON现场总线技术和集散控制技术有机结合,设计了一种Host Based架构模式LON总线协议转换控制器。采用单片机AT89C55和神经元芯片3150分别作为LON总线协议转换控制器的主从处理器,通过建立的Slave A模式并行接口实现了虚拟令牌乒乓式传递机制下的数据报文的传递。LON总线协议转换控制器实现了LonTalk标准协议和Modbus标准协议之间的数据报文的相互转换。实验表明:LON总线协议转换控制器性能良好。
LonTalk协议;Modbus协议;协议转换;Slave_A接口;虚拟令牌传递
杨帅(1981 -),男,工程师,硕士研究生,研究方向为机电一体化与控制技术。
TP393.04
A
1009-0134(2014)06(上)-0116-04
10.3969/j.issn.1009-0134.2014.06(上).34
2014-01-25
2012年淮安市科技支撑计划项目(SN12052);2013年淮安市创新载体平台建设计划项目(HAP201313)