论文部分内容阅读
[摘 要]根据现在的CAN总线通讯手段的特征与船舶导航系统通讯能力的要求,设计出一个符合高可靠性条件的CAN网络通讯体系。这个通讯体系只要通过双路CAN总线、CAN中继器以及通讯节点构成。CAN智能通讯节点能够随时监测通讯情况并在出现故障的时候立即自动切换线路,本文通过设计CAN通讯节点的备用驱动程序,对船舶的通讯系统进行检测,证明了船舶网络通讯的可靠性得到了明显的提高。
[关键词]CAN总线;船舶导航系统;高可靠性;网络通讯技术
中图分类号:TP273 文献标识码:A 文章编号:1009-914X(2015)24-0129-01
前言
对于船舶而言,今后将以建立自动化、信息化、模块化以及综合化的网络监控体系为发展目标。船舶上的所有体系,包含了导航体系、动力体系、通讯体系、武器体系等多个体系的各类控制器与传感器都必须要无缝挂接到这个高度集成化的平台中,从而完成船舶的信息共享的要求[1]。基于现今的船舶功能,对船舶的网络通讯技术也有了更高的标准,不仅要有更强的网络抗干扰技能、更快的网络信息传输速度,还要有高可靠性以及高稳定性的网络。
一、高可靠性CAN网络通讯系统的总体设计
CAN网络通讯体系只要通过双路CAN总线、CAN中继器以及通信节点构成。将通信节点分开连接到两条总线上,当通信节点正在正常使用的时候,选取其中一条总线展开数据通讯,如果通讯过程中发生中断或是异常情况,那么该通信节点就会自行切换至另一条CAN总线,利用两条总线已经两个通信节点完成了通讯设备的冗余能力,从而最大限度的提高了通讯体系的可靠性。两条CAN总线间的数据转发则是靠中继器来完成,用户可以通过设置中继器进行报文过滤,从而缩小了无用数据在网上的传播范围,减轻了网络的负荷。由于中继器是维系两条总线的重要设备,因此中继器必须要有更高的可靠性。
二、CAN网络节点的冗余驱动
冗余系统就是将两个总线驱动器、两条总线以及兩个总线控制器同时投入使用。这样的冗余方式能够让CPU同步接收处理两条总线上传来的信息,然后通过比较之后选取其中一组信息进行使用,并且CPU也能够同时向两条总线发送共同的信息。此外,CPU还能够在通信节点发送信息的时候,选取其中之一的总线控制器在一条CAN总线上传送,从而让接收方只能够接收到一个控制器传送的信息。
故障检测是总线自动进行切换的基础,其目的是在于检查通讯节点的情况保持数据接收和发送的高有效性。所有的CAN总线通讯节点控制器都有接收错误以及发送错误的计数器,其中接收错误计数器是用于统计在报文接收的过程中出现的数据错误量,而发送错误计数器则是用于统计在报文发送的过程中发生的数据错误量。一旦报文能被正确的接收或是传送,计数器的数值就会相应减少,反之,计数器的数值则会继续累加[2]。计数器的减少、增加比例是由CAN总线的有效、无效信息的接收比例来决定的。计数器能够反映出总线上发生干扰的频率,依据先前设置的数值矫正节点错误的情况。
针对于CAN总线的切换方案设计,必须要先对SJA1000独立控制器的有关寄存器的状况与设置进行了解,唯有如此才能够根据状况改变设计切换方式。牵涉到的寄存器包含了:中断、中断使能、错误报警限制、RX错误计数、仲裁丢失捕捉、TX错误计数、错误代码捕捉、状态等类型的寄存器。
SJA1000控制器的状态寄存器能够反映出当前CAN控制器的情况,其中的状态寄存器SR.6代表着CAN总线的出错情况,状态寄存器SR.7则代表总线的情况。
根据CAN2.0协议的要求,在CAN控制器的传送与接收过程中,一旦检测到错误就会对错误计数器造成影响。只要有一个错误计数器满或是超出了CPU的报警限定范围的时候,就会置位错误状态位,并且在允许中断的过程中出现错误报警中断。复位之后的CPU报警控制硬件的默认值为96,此数值能在错误报警控制寄存器里设置。只要是在复位状态下,CPU都是能够对其进行读写的,但在工作状态下只有可读形式。传送错误计数器与接收错误计数器分别代表了在信息传输过程中的错误数值。当硬件复位之后,它们的数值就会变成初始化数值0。当它们工作时会跟着总线的通讯情况发生变化,但是它们的数值对CPU而言只有可读形式。
在CAN总线进行工作的过程中,主要会出现以下这两种因故障需切换总线的状况:
1.通过状态寄存器的传送结束后出现的TCS标识位来推断传送是否成功。如果超出设置要求依然无法发送成功,这时候就可以进行线路切换。
2.经过推断节点状况有没有产生改变展开故障检测。利用设定错误中断,中断子程序的方式切换总线。
对于第一种状况来说,在总线节点使用传送功能的过程中,执行了传送报文的命令后,就要对状态寄存器传送结束后出现的TCS数值进行检测。如果传送成功,那么系统就会正常运行。如果TCS的数值是0,则说明了报文发送还没有完成。对状态寄存器的TCS数值进行三次检测,如果一直都是发送不成功,那么就要进行切换线路,把目前出现错误的节点关闭,同时将另外一条总线的节点打开。
对于第二种状况而言,如果设置了允许线路错误中断、允许错误报警中断以及允许消极中断的功能,一旦接受错误计数器和发送错误计数器之中的任何一个计数器的数值超出了CPU默认的报警限定值96的时候,就会出现错误报警而造成的线路中断;如果接受错误计数器和发送错误计数器之中的任何一个计数器的数值超出128的时候,通讯节点就会进入错误消极的情形,从而造成了错误消极中断现象;如若发送错误计数器的数值超出了255,将会造成CAN总线关闭的现象,CAN控制器将进行复位并且会造成总线错误中断与错误报警的情况[3]。不过在这值得关注的是,在错误报警中断处理的过程中,会把全部的错误计数器的数值清除至0,以此保持节点的正常运行,可是这会造成一定程度的局限:将计数器清零的方式仅仅是把发送错误计数器和接收错误计数器的数值清零,并不是真正意义上的清除造成错误的原因;而且,任何一个错误计数器的数值超出96就会触发错误报警中断,但是造成总线关闭中断的要求则是发送错误计数器的数值超出255,所以可以理解为,当错误报警中断和总线错误中断共同启动时,错误报警中断会把总线错误中断给屏蔽掉。因此可能会造成通讯系统不能响应总线错误中断,系统无法关闭总线的情况,导致了CAN总线无法稳定。因为这个原因,使用允许错误报警中断的时候,就必须要检测错误计数器的数值有没有达到CPU报警的范围。
三、结束语
CAN网络通讯体系不仅达到了船舶导航系统可靠通讯的要求,还考虑了当前的CAN总线通讯手段的特征以及它的局限性,采用了双路CAN总线、CAN中继器以及通讯节点构成了整个通讯体系。根据设备容易出现的各种故障,将它们分为两种类型,并对它们进行针对性的驱动设计,从而做好对通讯情况的实时监测,一旦出现故障就会自行切换总线。在冗余系统双路CAN总线、中继器以及通讯节点的共同配合下,明显提高了船舶通讯导航系统的可靠性。
参考文献
[1] 吴宗哲.无线网络技术在船舶导航系统中的应用研究[D].哈尔滨工程大学2013:689-671.
[2] 韩华锦.船舶导航系统网络监测装置的设计与实现[D].哈尔滨工程大学2012:1242-1245.
[3] 张士超.基于CAN总线船舶导航系统高可靠性网络通讯技术研究[D].哈尔滨工程大学2010:2153-2156.
[关键词]CAN总线;船舶导航系统;高可靠性;网络通讯技术
中图分类号:TP273 文献标识码:A 文章编号:1009-914X(2015)24-0129-01
前言
对于船舶而言,今后将以建立自动化、信息化、模块化以及综合化的网络监控体系为发展目标。船舶上的所有体系,包含了导航体系、动力体系、通讯体系、武器体系等多个体系的各类控制器与传感器都必须要无缝挂接到这个高度集成化的平台中,从而完成船舶的信息共享的要求[1]。基于现今的船舶功能,对船舶的网络通讯技术也有了更高的标准,不仅要有更强的网络抗干扰技能、更快的网络信息传输速度,还要有高可靠性以及高稳定性的网络。
一、高可靠性CAN网络通讯系统的总体设计
CAN网络通讯体系只要通过双路CAN总线、CAN中继器以及通信节点构成。将通信节点分开连接到两条总线上,当通信节点正在正常使用的时候,选取其中一条总线展开数据通讯,如果通讯过程中发生中断或是异常情况,那么该通信节点就会自行切换至另一条CAN总线,利用两条总线已经两个通信节点完成了通讯设备的冗余能力,从而最大限度的提高了通讯体系的可靠性。两条CAN总线间的数据转发则是靠中继器来完成,用户可以通过设置中继器进行报文过滤,从而缩小了无用数据在网上的传播范围,减轻了网络的负荷。由于中继器是维系两条总线的重要设备,因此中继器必须要有更高的可靠性。
二、CAN网络节点的冗余驱动
冗余系统就是将两个总线驱动器、两条总线以及兩个总线控制器同时投入使用。这样的冗余方式能够让CPU同步接收处理两条总线上传来的信息,然后通过比较之后选取其中一组信息进行使用,并且CPU也能够同时向两条总线发送共同的信息。此外,CPU还能够在通信节点发送信息的时候,选取其中之一的总线控制器在一条CAN总线上传送,从而让接收方只能够接收到一个控制器传送的信息。
故障检测是总线自动进行切换的基础,其目的是在于检查通讯节点的情况保持数据接收和发送的高有效性。所有的CAN总线通讯节点控制器都有接收错误以及发送错误的计数器,其中接收错误计数器是用于统计在报文接收的过程中出现的数据错误量,而发送错误计数器则是用于统计在报文发送的过程中发生的数据错误量。一旦报文能被正确的接收或是传送,计数器的数值就会相应减少,反之,计数器的数值则会继续累加[2]。计数器的减少、增加比例是由CAN总线的有效、无效信息的接收比例来决定的。计数器能够反映出总线上发生干扰的频率,依据先前设置的数值矫正节点错误的情况。
针对于CAN总线的切换方案设计,必须要先对SJA1000独立控制器的有关寄存器的状况与设置进行了解,唯有如此才能够根据状况改变设计切换方式。牵涉到的寄存器包含了:中断、中断使能、错误报警限制、RX错误计数、仲裁丢失捕捉、TX错误计数、错误代码捕捉、状态等类型的寄存器。
SJA1000控制器的状态寄存器能够反映出当前CAN控制器的情况,其中的状态寄存器SR.6代表着CAN总线的出错情况,状态寄存器SR.7则代表总线的情况。
根据CAN2.0协议的要求,在CAN控制器的传送与接收过程中,一旦检测到错误就会对错误计数器造成影响。只要有一个错误计数器满或是超出了CPU的报警限定范围的时候,就会置位错误状态位,并且在允许中断的过程中出现错误报警中断。复位之后的CPU报警控制硬件的默认值为96,此数值能在错误报警控制寄存器里设置。只要是在复位状态下,CPU都是能够对其进行读写的,但在工作状态下只有可读形式。传送错误计数器与接收错误计数器分别代表了在信息传输过程中的错误数值。当硬件复位之后,它们的数值就会变成初始化数值0。当它们工作时会跟着总线的通讯情况发生变化,但是它们的数值对CPU而言只有可读形式。
在CAN总线进行工作的过程中,主要会出现以下这两种因故障需切换总线的状况:
1.通过状态寄存器的传送结束后出现的TCS标识位来推断传送是否成功。如果超出设置要求依然无法发送成功,这时候就可以进行线路切换。
2.经过推断节点状况有没有产生改变展开故障检测。利用设定错误中断,中断子程序的方式切换总线。
对于第一种状况来说,在总线节点使用传送功能的过程中,执行了传送报文的命令后,就要对状态寄存器传送结束后出现的TCS数值进行检测。如果传送成功,那么系统就会正常运行。如果TCS的数值是0,则说明了报文发送还没有完成。对状态寄存器的TCS数值进行三次检测,如果一直都是发送不成功,那么就要进行切换线路,把目前出现错误的节点关闭,同时将另外一条总线的节点打开。
对于第二种状况而言,如果设置了允许线路错误中断、允许错误报警中断以及允许消极中断的功能,一旦接受错误计数器和发送错误计数器之中的任何一个计数器的数值超出了CPU默认的报警限定值96的时候,就会出现错误报警而造成的线路中断;如果接受错误计数器和发送错误计数器之中的任何一个计数器的数值超出128的时候,通讯节点就会进入错误消极的情形,从而造成了错误消极中断现象;如若发送错误计数器的数值超出了255,将会造成CAN总线关闭的现象,CAN控制器将进行复位并且会造成总线错误中断与错误报警的情况[3]。不过在这值得关注的是,在错误报警中断处理的过程中,会把全部的错误计数器的数值清除至0,以此保持节点的正常运行,可是这会造成一定程度的局限:将计数器清零的方式仅仅是把发送错误计数器和接收错误计数器的数值清零,并不是真正意义上的清除造成错误的原因;而且,任何一个错误计数器的数值超出96就会触发错误报警中断,但是造成总线关闭中断的要求则是发送错误计数器的数值超出255,所以可以理解为,当错误报警中断和总线错误中断共同启动时,错误报警中断会把总线错误中断给屏蔽掉。因此可能会造成通讯系统不能响应总线错误中断,系统无法关闭总线的情况,导致了CAN总线无法稳定。因为这个原因,使用允许错误报警中断的时候,就必须要检测错误计数器的数值有没有达到CPU报警的范围。
三、结束语
CAN网络通讯体系不仅达到了船舶导航系统可靠通讯的要求,还考虑了当前的CAN总线通讯手段的特征以及它的局限性,采用了双路CAN总线、CAN中继器以及通讯节点构成了整个通讯体系。根据设备容易出现的各种故障,将它们分为两种类型,并对它们进行针对性的驱动设计,从而做好对通讯情况的实时监测,一旦出现故障就会自行切换总线。在冗余系统双路CAN总线、中继器以及通讯节点的共同配合下,明显提高了船舶通讯导航系统的可靠性。
参考文献
[1] 吴宗哲.无线网络技术在船舶导航系统中的应用研究[D].哈尔滨工程大学2013:689-671.
[2] 韩华锦.船舶导航系统网络监测装置的设计与实现[D].哈尔滨工程大学2012:1242-1245.
[3] 张士超.基于CAN总线船舶导航系统高可靠性网络通讯技术研究[D].哈尔滨工程大学2010:2153-2156.