专利名称:基于can总线的分布式控制网络智能管理装置及管理方法
技术领域:
本发明属于工业自动化控制领域,特别涉及到一种基于控制器局域网CAN现场总线的分布式控制网络的通信管理装置及子网间的互联管理方法。
背景技术:
CAN总线是为了解决现代汽车中控制与测试仪器之间的数据交换而开发的一种串行数据通信总线。CAN总线技术具有高的实时性和可靠性,在工业现场中已经得到了广泛的使用。但随着CAN总线所应用的控制网络结构的不断复杂化和系统规模的上升,CAN总线由于本身缺乏对高层网络协议的支持,因此在通信网络的检测、诊断和管理等方面还不完善,对于同构和异构的控制子网络之间的互联也存在许多困难。
目前,国外的相关产品尽管在商业上具有较强的检测性能,例如美国的Contemporary Controls公司的DNA Analyzer协议分析器等,但往往价格昂贵、应用范围较窄,不适合在中小规模的工业现场应用中推广。国内的相关产品和技术的研发,对于CAN总线通信自身的网络管理技术还较少涉及。专利03208726.8“基于USB接口的便携式CAN总线分析记录仪”虽然能够不依赖PC机独立进行CAN总线分析和记录,但是它只能对总线状态和总线当前通信数据进行检测与显示,并不具备对总线通信情况进行智能化管理的功能,更不能对网络故障情况进行判断。专利200310109393.1“一种现场总线通信故障记录装置”是对现场总线中的通信故障进行记录和输出,但是对于通信故障只是进行了一种被动的判断,无法对总线运行状态和通信情况进行实时检测,更缺少对CAN网络通信质量的管理机制。
发明的内容本发明的目的在于避免上述已有技术的不足,提供一种基于CAN总线的分布式控制网络进行智能网络管理的组件单元,以完成网络通信管理、网络状态分析、网络故障判断、网段间数据管理,及总线实时检测与显示的功能。
实现本发明目的的技术思路是打破以往产品仅对CAN总线网络通信进行被动监测的状况,引入网络质量服务技术对CAN总线通信协议进行补充,动态调整节点优先级,对网络通信进行管理,解决暂态网络的通信堵塞以及部分节点软故障的问题;并通过节点和总线的自测试,对总线进行通信状态检测及网络故障类别判断;在数据通信方面,网络管理装置通过数据转换单元和PCI总线控制单元,实现与上位PC机的通信连接,操作人员可方便地依托上位PC机对网络管理装置进行参数设定,直观地查看下位管理装置的检测数据,最终实现对CAN总线网络进行动态通信管理调度和质量检测。
本发明的硬件电路包括CAN总线接口单元、CAN总线通信控制单元、数据转换单元和PCI总线控制单元。其中CAN总线接口单元用于接收CAN总线上的通信报文,将总线上的差分电平转换成数字逻辑电平;CAN总线通信控制单元对转换后的CAN报文进行滤波、转换和调度处理,并将处理后的数据传送给数据转换单元和PCI总线控制单元;数据转换和PCI总线控制单元,用于将接收到的数据发送到PCI总线上进行数据交换,完成与上位控制机的通信。
本发明利用上述硬件电路对网络通信进行管理的方法,按如下过程进行(1)CAN接口单元对CAN总线中的未知数据进行采样,并送至CAN通信控制单元同时完成位速率检测,动态调整优先级,故障诊断三部分的通信检测和管理,所述的位速率检测,是通过控制单元对采样的数据帧进行判断与分析,根据CAN总线错误中断递归算法,检测当前网络位速率并将检测得到的位速率送至控制单元内部寄存器(1)保存;所述的动态调整优先级,是由通信控制单元创建一个优先级管理表,将网络节点分成三类,按照QoS理论动态分配节点优先级,并送至其内部寄存器(1)保存;所述的故障诊断,是由控制单元根据采样数据进行故障诊断与故障修复,并将判断得到的故障位置和故障类别参数,送至通信控制单元内部寄存器(2)保存;(2)通信控制单元将寄存器(1)和寄存器(2)中保存的参数发送至数据转换单元和PCI总线控制单元,完成整个CAN网络通信的智能管理。
上述管理的方法,其中位速率检测功能完成对当前网络传输的位速率测试,是根据CAN总线错误中断递归算法,由CAN总线通信控制单元首先设定一个位速率,然后对该设定的位速率逐渐减小,当减小到与当前的位速率相等时,CAN总线通信控制单元将接收到一个报文,检测到正确的位速率。
上述管理的方法,其中动态调整优先级的过程如下(1)由网络通信控制单元创建一个优先级管理表,该管理表包括了各节点的类别,节点通信优先级,QoS管理等参数;(2)通信控制单元按照自身CAN网络通信情况,将网络节点分为三类,逐个分配优先级域值;
(3)发生网络堵塞时,节点向通信控制单元发送优先级晋升请求;(4)通信控制单元接收到若干个上述请求,将请求在节点管理数据表中进行查找,并按照表中的通信队列对通信控制单元接收的节点请求进行排序,产生一个临时请求通信序列;(5)在下个通信周期内,如果该临时请求通信排序中最高级别的节点,持续给网络通信控制单元发送请求,则通信控制单元给该节点发送网络通信管理报文,允许该节点提升自身的优先级;(6)当该节点完成数据通信以后,向通信控制单元发送优先级恢复请求,并由通信控制单元直接依照优先级管理表对请求节点进行优先级恢复。
上述管理的方法,其中故障诊断的过程如下(1)由通信控制单元建立一个故障管理表,存储各节点在CAN控制器中错误计数器的值;(2)通信控制单元根据自身CAN网络通信要求,设定一个错误标志值,读取故障管理表的节点故障值与该错误标志值进行比较;(3)比较后对故障管理表中的各故障节点进行动态优先级提升,进而对节点故障作出分配最高的优先级或修复;(4)对于不能修复的故障节点,按照优先级管理表恢复节点优先级,并通信控制单元对当前CAN网络进行总线自测;(5)将自测数据与故障管理表进行比较确定最终的故障节点,并通过收发器向该故障节点发送故障测试帧,根据故障测试返回情况判断出故障错误位置,并由通信控制单元内部的统计控制器中接收与发送错误计数值,判断出节点的错误类型;(6)通信控制单元将判断得到的故障位置和故障类别参数,送至通信控制单元内部的寄存器(2)保存。
上述管理的方法,其中CAN接口单元对CAN总线中的未知数据进行采样,是利用微处理器中自带的CAN收发器,参照CAN2.0基本协议,侦听CAN网络上的数据传输,并将采样数据送至微处理器中,采用添加在处理器中的CAN总线状态检验算法对采样的数据帧进行判断与分析,完成整个数据采样。
上述管理装置,其中CAN总线通信控制单元由ARM芯片LPC2294及相应外围电路构成,LPC2294内部集成了4路的CAN总线控制器,ARM芯片在内部资源范围内对CAN报文进行读写,按照程序设定进行相应的处理,LPC2294的地址线与读写访问控制线和数据转换模块相连,对上位机通信的数据进行读写。
本发明具有如下优点1.本发明由于采用ARM芯片LPC2294作为核心处理器,可利用其内部的CAN模块实现网络通信管理、总线检测与显示、网络状态分析、网络故障判断、网段间数据管理的功能;2.本发明由于利用添加在LPC2294芯片内部的QoS质量服务理论对网络数据通信进行管理,完成动态调整优先级和智能识别网络软故障等功能;3.本发明由于利用了嵌入式技术在ARM控制器中进行编程,实现了在管理装置内部对CAN通信质量进行通信管理的功能,极大地提高了整个网络通信质量检测的实时性;4.本发明由于利用高速的PCI总线接口和ARM芯片,提升了高负荷下的单元数据处理能力。
试验表明,本发明能够智能地管理CAN网络数据通信,检测CAN总线通信状态,进行故障诊断,并能和上位PC机通信,方便数据存储,人机交互,可广泛用于工业控制领域。
图1是本发明的智能管理装置原理框2是本发明管理装置电路结构3是本发明通信管理流程图具体实施方式
以下参照附图对本发明作进一步详细描述。
参照图1,本发明主要由CAN总线接口单元、CAN总线通信控制单元、数据转换单元、PCI总线控制单元组成,各单元之间通过数据/地址线、控制线双向连接。CAN总线接口单元,用于接收CAN总线上的通信报文,并将该总线上的差分电平转换成数字逻辑电平,传输给CAN总线通信控制单元。CAN总线通信控制单元,对转换后的CAN报文数据进行滤波、转换和调度处理,传送给数据转换单元,该数据转换单元,将处理后的CAN总线报文信息传送至PCI总线控制单元与PC控制的PCI总线进行数据交换,完成与上位控制机的通信。
参照图2,CAN总线的差分电平信号经过二极管保护电路和滤波电路送入CAN总线驱动收发芯片PCA82C250的输入端,将差分电平信号转换成串行数字逻辑信号,并经6N137光电隔离电路隔离后送至LPC2294的CAN总线串行端口对转换后的CAN报文进行滤波、转换和调度处理。该6N137光电隔离电路连接在PCA82C250和CAN总线控制电路之间,以减少外部总线对单元内部电路的干扰,提高通信的质量。该LPC2294芯片内部集成了4路的CAN总线控制器,其性能相当于单片集成的SJA1000CAN控制器,编程控制非常方便。隔离后的CAN总线串行信号可以直接连接至LPC2294的4个CAN端口。ARM芯片在内部资源范围内对CAN报文进行读写,按照程序设定进行相应的处理。LPC2294的地址线与读写访问控制线和数据转换模块相连,对上位机通信的数据进行读写。数据转换单元由ALTERA公司的FP6A芯片EP1C6完成,它作为ARM控制芯片和PCI接口芯片之间的数据缓冲区,将处理后的CAN总线报文信息传送至PCI总线接口。PCI总线的PCI9052的数据线、地址线和读写控制线也和数据转换单元的EP1C6的I/O端口相连。通信数据经ARM控制器处理之后立刻送至EP1C6,同时EP1C6控制PCI9052读取端口的数据,与PC控制的PCI总线进行数据交换。类似的,当数据由上位机下传时,由PCI9052将并行数据送至EP1C6的I/O端口,再由EP1C6控制LPC2294来读取数据。这样充分保证了数据传输的实时性,减小了控制器的资源开销,提高了单元的稳定性和可靠性。
参照图3,本发明通过固化在ARM芯片LPC2294里的软件程序对CAN网络通信进行智能管理,其通信管理过程如下CAN总线中的未知数据,经过二极管保护电路和滤波电路由CAN接口单元PCA82C250进行采样,并经6N137光电隔离电路隔离后送至CAN通信控制单元LPC2294的CAN总线串行端口,数据在送入CAN通信控制单元以后,同时完成位速率检测,动态调整优先级,故障诊断三部分的通信检测和管理。
1.位速率检测采样数据送至通信控制单元以后,控制单元对采样的数据帧进行判断与分析,根据CAN总线错误中断递归算法,检测当前网络位速率。首先通信控制单元设定一个位速率,通常这个预设的位速率与网络当前的位速率不同。因为CAN控制器下在仅听模式不能发送报文也不能产生出错帧,这样它就产生了一个错误中断,然后对该设定的位速率逐渐减小,当减小到与当前的位速率相等时,CAN总线通信控制单元将接收到一个报文,检测到正确的位速率。CAN通信控制单元将检测得到的位速率送至控制单元内部寄存器1保存。
2.动态调整优先级采样数据送至通信控制单元后,由控制单元根据QoS理论动态划分网络节点优先级。
首先,通信控制单元创建一个优先级管理表,在表中将网络节点分成三类,依照节点类别、网络安全报警和QoS质量服务来给底层节点的优先级进行初始分配,共同划分127位优先级域值范围。
其次,各节点按照初始分配的优先级收发数据。当稳态网络发生暂态变化时,第二类节点需要发送大量占用带宽的报文,此时就会发生网络堵塞,二类节点向通信控制单元发送优先级晋升请求,该晋升请求得到网络最高优先级分配。通信控制单元接收到若干个上述请求,将请求在节点管理数据表中进行查找,按照表中的通信队列对通信控制单元接收的节点请求进行排序,产生一个临时请求通信序列。
再次,在下个通信周期内,如果该临时请求通信序列中最高级别的节点,持续给通信控制单元发送请求,则通信控制单元给该节点发送网络通信管理报文,允许该节点提升自身的优先级。该节点收到网络通信管理报文以后,提升通信优先级,如果通信成功,则向通信控制单元发送应答报文,表示优先级晋升成功,如果没有成功,则继续发送晋升请求。
最后,该节点完成数据通信,向通信控制单元发送通信完成报文,提出优先级恢复请求。此时通信控制单元直接依照优先级管理表对请求节点进行优先级恢复。通信控制单元将一个周期内的临时请求通信序列与优先级管理表送至其内部寄存器1保存。
3.故障处理采样数据送至通信控制单元后,由通信控制单元根据采样数据进行故障修复与故障诊断。
(1)故障修复的过程如下首先,通信控制单元创建一个故障管理表,读取采样数据中各节点的通信错误值,根据自身CAN网络通信要求,预先设定一个错误标志值。
其次,如果节点的错误值大于预先设定的错误标志值,则通信控制单元直接向该节点发送故障诊断报文,提升该节点的通信优先级,如果节点的错误计数值不再增加,则说明该故障已经修复。在节点通信完毕后,节点向通信控制单元发送优先级恢复请求,通信控制单元相应地恢复该节点优先级;如果错误计数值继续增加,则通信控制单元为该节点分配最高优先级。
最后,当分配了最高优先级的节点,如果错误计数值不再增加,则修复该节点故障。如果其错误计数值仍然增加,通信控制单元依照优先级管理表,恢复该节点的优先级并转入故障诊断进程。
(2)故障诊断过程如下首先,通信控制单元对当前CAN网络进行总线自测,分为局部自测和整体自测。局部自测是对单个节点进行测试,不需要来自于其他节点的应答。整体自测是在操作模式下控制器与局部测试一样执行相同的命令,但是在运行系统中需要CAN总线的应答。
其次,在结束总线自测以后,通信控制单元对节点故障进行故障位置和故障类别两项参数的判断。
对于节点故障位置的判断,是由CAN网络通信控制单元依照故障管理表,通过收发器对网络中指定的节点发送故障测试帧,通过故障测试帧中故障测试场和故障节点的通信数据帧相应场的位与情况来判断错误位置。
对于节点故障类别的判断,是由CAN网络通信控制单元通过统计控制器中的接收与发送错误计数值,来判断节点的错误类型。当发送错误计数器值大于或等于256时,节点的错误状态为“总线关闭”;当接收错误计数值介于1和127之间,在成功地接收到报文后,接收错误计数器的值减1。当接收错误计数器值为0,则它保持0,当接收错误计数器值大于127,则它设定一个介于119到127之间的值。当发送错误计数器值等于或超过128时,或当接收错误计数器值等于或超过128时,节点的错误状态为“错误被动”。
最后,将判断得到的故障位置和故障类别参数,送至通信控制单元内部寄存器2保存。
在完成CAN网络各项参数的检测和管理后,通信控制单元将寄存器1和寄存器2中保存的参数当前网络的位速率、临时请求通信序列、优先级管理表、故障位置和故障类别发送至数据转换单元和PCI总线控制单元,与PC机控制的PCI总线进行数据交换,将数据转化为上位PC存储数据,从而完成整个CAN网络通信的智能管理。
本发明的实验结果如下实验条件CAN总线的通信速率是25kbps,网络带宽的有效利用率是83%,一台基于周立功公司PCI9810卡的上位机,一个基于ARM芯片LPC2294的CAN网络智能管理装置,十个基于CAN控制器SJA1000的下位节点。
实验过程本实验依托现有的实验平台,利用软件通过十个下位CAN节点持续发送长帧报文,模拟工业现场的通信极端情况,比如网络堵塞等。首先通过网络智能管理装置,测试出某个节点的十六条数据帧收发平均延时和最大延时,如表1的第3行和第5行,然后通过智能网络管理装置动态调整节点的优先级,再次测试相同十六条数据帧收发的平均延时和最大延时,如表1的第2行和第4行。比较第3行和第2行可以得出,经过智能网络管理装置改进的CAN总线数据收发的平均延时比普通情况下的平均延时最多降低了55.74%,如表1第6行中的第一项,比较第5行和第4行可以得出,经过智能网络管理装置改进的CAN总线数据收发的最大延时比普通情况下的最大延时最多降低了40.28%,如表1第7行中的第五项。实验证明,本发明极大地改进了CAN网络通信质量。
表1智能网络管理装置实验数据(单位ms)
表1中的第一行是帧的属性ID,第二行是动态调整优先级以后数据帧收发的平均延时,第三行是普通情况下数据帧收发的平均延时,第四行是动态调整优先级以后,数据帧收发的最大延时,第五行是普通情况下数据帧收发的最大延时,第六行是数据帧平均时延优化比例,第七行是数据帧最大延时的优化比例。
权利要求
1.一种基于CAN总线的分布式控制网络智能管理装置,包括CAN总线接口单元,用于接收CAN总线上的通信报文,将总线上的差分电平转换成数字逻辑电平;CAN总线通信控制单元,用于对转换后的CAN报文进行滤波、转换和调度处理,并将处理后的数据传送给数据转换单元和PCI总线控制单元;数据转换和PCI总线控制单元,用于将接收到的数据发送到PCI总线上进行数据交换,完成与上位控制机的通信。
2.利用权利要求1的装置对网络进行管理的方法,按如下过程进行(1)CAN接口单元对CAN总线中的未知数据进行采样,并送至CAN通信控制单元同时完成位速率检测,动态调整优先级,故障处理三部分的通信检测和管理,所述的位速率检测,是通过控制单元对采样的数据帧进行判断与分析,根据CAN总线错误中断递归算法,检测当前网络位速率并将检测得到的位速率送至控制单元内部寄存器(1)保存;所述的动态调整优先级,是由通信控制单元创建一个优先级管理表,将网络节点分成三类,按照QoS理论动态分配节点优先级,并送至其内部寄存器(1)保存;所述的故障处理,是由控制单元根据采样数据进行故障诊断与故障修复,并将判断得到的故障位置和故障类别参数,送至通信控制单元内部寄存器(2)保存;(2)通信控制单元将寄存器(1)和寄存器(2)中保存的参数发送至数据转换单元和PCI总线控制单元,完成整个CAN网络通信的智能管理。
3.根据权利要求2所述的方法,其特征在于位速率检测的过程如下(1)根据CAN总线错误中断递归算法,由CAN总线通信控制单元首先设定一个位速率;(2)逐渐减小设定的位速率,当减小到与当前的位速率相等时,CAN总线通信控制单元将接收到一个报文,检测到正确的位速率。
4.根据权利要求2所述的方法,其特征在于动态调整优先级的过程如下(1)由网络通信控制单元创建一个优先级管理表,该管理表包括了各节点的类别,节点通信优先级,QoS管理等参数;(2)通信控制单元按照自身CAN网络通信情况,将网络节点分为三类,逐个分配优先级域值;(3)发生网络堵塞时,节点向通信控制单元发送优先级晋升请求;(4)通信控制单元接收到若干个上述请求,将请求在节点管理数据表中进行查找,并按照表中的通信队列对通信控制单元接收的节点请求进行排序,产生一个临时请求通信序列;(5)在下个通信周期内,如果该临时请求通信排序中最高级别的节点,持续给网络通信控制单元发送请求,则通信控制单元给该节点发送网络通信管理报文,允许该节点提升自身的优先级;(6)当该节点完成数据通信以后,向通信控制单元发送优先级恢复请求,并由通信控制单元直接依照优先级管理表对请求节点进行优先级恢复。
5.根据权利要求2所述的方法,其特征在于故障处理的过程如下(1)由通信控制单元建立一个故障管理表,存储各节点在CAN控制器中错误计数器的值;(2)通信控制单元根据自身CAN网络通信要求,设定一个错误标志值,读取故障管理表的节点故障值与该错误标志值进行比较;(3)比较后对故障管理表中的各故障节点进行动态优先级提升,进而对节点故障作出分配最高的优先级或修复;(4)对于不能修复的故障节点,按照优先级管理表恢复节点优先级,并通信控制单元对当前CAN网络进行总线自测;(5)将自测数据与故障管理表进行比较确定最终的故障节点,并通过收发器向该故障节点发送故障测试帧,根据故障测试返回情况判断出故障错误位置,并由通信控制单元内部的统计控制器中接收与发送错误计数值,判断出节点的错误类型;(6)通信控制单元将判断得到的故障位置和故障类别参数,送至通信控制单元内部的寄存器(2)保存。
6.根据权利要求2所述的方法,其特征在于CAN接口单元对CAN总线中的未知数据进行采样,是利用微处理器中自带的CAN收发器,参照CAN2.0基本协议,侦听CAN网络上的数据传输,并将采样数据送至微处理器中,采用添加在处理器中的CAN总线状态检验算法对采样的数据帧进行判断与分析,完成整个数据采样。
7.根据权利要求5所述的方法,其特征在于步骤(3)中对节点故障作出分配最高的优先级或修复是按照错误计数值的继续增加而进行不同的处理,即读取故障管理表,如果节点故障值大于错误标志值,则通过动态调整优先级提升该节点的优先级;如果错误计数值继续增加,则为该节点分配最高的优先级;如果节点故障值不再发生,则在发完数据后的下个周期还原该节点的优先级,修复节点故障;如果节点故障值还是继续增加,则按照优先级管理表,恢复节点优先级,通信控制单元对当前CAN网络进行总线自测。
8.根据权利要求1所述的管理装置,其特征在于CAN总线通信控制单元由ARM芯片LPC2294及相应外围电路构成,LPC2294内部集成了4路的CAN总线控制器,ARM芯片在内部资源范围内对CAN报文进行读写,按照程序设定进行相应的处理,LPC2294的地址线与读写访问控制线和数据转换模块相连,对上位机通信的数据进行读写。
全文摘要
本发明公开了一种分布式控制网络智能管理装置及管理方法。该管理装置的CAN总线接口单元接收CAN总线上的通信报文,将总线上的差分电平转换成数字逻辑电平,通过CAN报文进行滤波、转换和调度处理,并将处理后的数据传送给数据转换单元和PCI总线控制单元进行数据交换,完成与上位控制机的通信。该管理方法是通过储存在ARM芯片中的软件功能模块来实现,这些软件功能模块分别完成网络通信管理、网络性能检测、网络故障诊断、网段间数据管理以及CAN与PCI协议转换等功能。本发明无需通过和上位控制机的通信,就可实现在管理单元内部对CAN通信质量的实时分析,并对已经出现的节点故障进行修复,极大地提高了整个网络通信质量检测的实时性,可用于工业控制领域。
文档编号G05B19/418GK1838011SQ20061004262
公开日2006年9月27日 申请日期2006年4月4日 优先权日2006年4月4日
发明者王昌明, 吕宁, 方堃 申请人:西安电子科技大学