一种双余度can总线的网络控制方法

文档序号:7702245阅读:206来源:国知局

专利名称::一种双余度can总线的网络控制方法
技术领域
:本发明涉及一种双余度CAN(控制器局域网)总线的网络控制方法,它用于提高机电控制领域CAN总线应用的可靠性,属航空电子和空间
技术领域
。二
背景技术
:综合考虑传输速率、可靠性、应用成本等因素,成熟的CAN总线技术已逐步在飞行器设计尤其是无人机应用中得到认可。基本的CAN协议由于采用短帧格式、非破坏性位仲裁技术以及CRC(循环冗余校验)校验和帧内应答等检错措施,极大地保证了消息传输的正确性与可靠性。但是,与普通的工业应用不同,航空航天领域对整个系统的可靠性有着更高的要求,而实际应用中总线驱动器或控制器的异常,传输介质的损坏及环境的干扰等都会整个总线网络产生影响。因此,要满足长时间可靠运行的要求,采用余度设计是必要的。由于CAN的成熟应用,目前已有多款带2个CAN通道的微控制器可以选用,硬件基础比较完善。本发明从系统设计出发,旨在解决CAN总线应用层的错误检测及冗余机制实现问题。
发明内容1、目的本发明的目的是提供一种双余度CAN总线的网络控制方法,它综合考虑了设计对象的特点和现有的技术条件,避免因单个节点错误或部分介质故障而导致整个网络瘫痪的情况发生,提出了一套基于双余度CAN总线的错误检测和故障处理方法,用于提高全系统的可靠性。2、技术方案典型航电系统双余度CAN总线网络的基本组成如图l所示。虽然CAN总线本身为多主工作方式,各节点不分主从,但实际应用中一般会有一部或多部机载计算机作为主控节点,通过测量装置读取信息,同时发送指令控制执行装置;而测量装置和执行装置主要是被动的执行指令,互相之间无直接联系,这就为实现整个网络的集中控制提供了可能。另外,为了保证系统通信一致,规4定如下原则(1)一般情况下,同一时刻只能利用一条通道,避免交叉使用,以保证各节点能共享总线上的数据;(2)系统稳定运行时只有一个主控节点,用于对网络的检测情况进行汇总,决定是否进行通道切换等。为了实现全系统的分布控制与集中管理,在不改变硬件的条件下,这里将全部网络节点划分为主控节点和一般节点。一般节点要完成通信错误检测和上报的功能,主控节点除了自身错误检测之外还要对全系统的错误进行汇总,以决定是否进行通道切换和隔离部分异常节点等。本发明一种双余度CAN总线的网络控制方法,具体步骤如下-步骤一系统上电及节点初始化各节点设备按照相应的操作程序分别上电,并启动上电自检。由于CAN总线系统是分布式结构,所以此过程由各节点按照自身要求分别独立完成。对于节点内部CAN控制器的初始化要求是两路CAN总线以热冗余方式工作,即各两个CAN控制器都处于热备份状态,经初始化后都随时准备接收信息。步骤二系统初始化检测各节点上电自检完成后,要求全系统进行检测以确认状态,该过程由主控节点的上电检测程序控制完成。主控节点发送检测报文查询各节点的状态,两路CAN总线依次进行,以确定系统连接状态。如果各节点连接均正常,通信无误,则继续执行下一步;否则,主控节点将检测到的异常情况上报,由操作人员进行决策,忽略错误继续执行或排除故障后再进行重启等操作。步骤三正常工作及周期检测初始化检测通过后,系统正常工作开始。在完成相应功能的同时,各节点周期检测CAN总线通信情况,并将检测结果上报给主控节点。为了保证故障检测的完整性,根据CAN总线的结构特点,这里对错误进行了分类,以便于针对不同错误情况进行处理。在CAN总线系统中,从单个节点的角度,所有错误可以分为主动错误和被动错误。前者是由于节点自身故障引起的,而后者则是由于其他节点故障或通信介质故障使本节点的功能受到影响。5主动错误和被动错误中他节点故障均可以通过节点行为来检测,而对于通信介质故障这里通过CAN控制器错误计数进行间接判断。一般情况下,CAN控制器可以对发送和接收错误进行计数,根据错误计数所处范围,CAN2.0协议中规定节点处于下面三种状态之一错误激活态、忽略错误态、脱离总线态。另外,当错误计数数值大于96时,说明总线被严重干扰,因此这里多规定一种警告态。通过CAN控制器状态异常,可以界定一些经验性的通信介质故障。步骤四系统运行中异常处理系统运行过程中如果检测到工作异常,则根据节点的权限及错误类型不同进行分别处理。为了避免对总线系统其他部分的影响,各节点对于自身主动错误要及时进行隔离处理,而对于被动错误,一般节点不进行主动干涉。所有错误要求通过CAN报文汇总到主控节点,由其决定是否进行通道切换或系统降级处理等操作,并通过控制报文通知其他节点。步骤五主备通道切换后处理如果进行了主备CAN通道切换操作,则各节点对原通道复位。主控节点在一个系统周期内可根据各节点通信情况判断当前通道工作是否正常如果功能正常,则使用当前通道,原通道作为备用通道;如果通信仍有问题,则要求主控节点综合判断两通道的连接情况,根据各节点优先级情况进行系统降级处理。比较方式可以采用基于优先级的比较算法,如图3所示。具体做法是用二进制量分别表示两路CAN通道的连接状态,而将CAN总线网络的所有节点按照功能重要程度从高位到低位排列,每一位表示相应节点(或多个功能密切的节点单元组)的连接是否正常,正常则置零,非正常则置l。如此比较两个二进制量的大小,则可以按照尽可能保证系统主要功能的要求选择CAN通道。3、优点及功效本发明一种双余度CAN总线的网络控制方法,与现有技术相比,其优点是可以充分利用成熟的CAN器件构建双余度总线网络,而通过应用软件进行错误检测及规定不同节点的控制权限,实现分布式监测与集中管理的网络控制策略。同时提供了详细的CAN总线系统的故障检测方法,对不同的错误进行分类处理,易于编程实现,通用性强。该方法在不改变硬件设计的条件下提高6了CAN总线系统的容错能力,可以充分利用冗余机制保证系统可靠性。四图1是典型航电系统的双余度CAN总线网络拓扑结构示意图图2是CAN控制器的冗余结构示意图图3是基于优先级的两CAN通道连接状态比较图图4是本发明控制过程流程图图中符号说明如下H高电位;.L低电位;TXD发送器;RXD接收器。五具体实施例方式下面结合附图对本发明的具体实施方式做进一步说明。本发明的应用环境是基于CAN总线的分布式控制网络,寞基本组成如图1所示,包括主控节点及一系列测量装置和执行装置。各节点均为可编程智能节点,具有自检功能。各设备之间通过双余度CAN总线连接,节点采用图2所示的控制器冗余设计,单片机(或其他微处理器)通过不同的端口和中断同时控制两个CAN控制器。CAN控制器支持可读/写访问错误计数、错误报警限额寄存器可编程、CAN总线错误中断等扩展功能。本发明一种双余度CAN总线的网络控制方法,其节点的基本结构如图2所示,采用CAN控制器冗余设计。典型的CAN总线可分为4个环节,即CPU、CAN总线控制器、CAN总线驱动器、传输介质,相应的冗余措施有CAN总线驱动器的冗余,CAN总线控制器的冗余,以及全系统冗余。其中前两种仅是CAN总线通道的冗余,属于部分冗余,而全系统冗余则包括节点设备的冗余。全系统冗余固然可靠,但是考虑无人机的成本与重量要求,不可能实现所有设备的冗余。因此,这里采用CAN总线控制器冗余设计,即同时使用两条CAN总线,两个CAN总线驱动器和两个CAN总线控制器,单片机(或其他微处理器)通过不同的端口和中断同时控制两个CAN控制器。本发明的具体控制过程即具体操作步骤如下步骤一系统上电及节点初始化系统上电,各节点均进行自检,等待主控节点指令。两套CAN总线采用热备份方式运行一个CAN控制器作为系统上电后默认的CAN(主CAN);另一个为备用CAN(从CAN),作为主CAN的冗余。各节点初始化完成后,两个CAN控制器都处于热备份状态,随时准备接收信息,但对于占用信道的操作(发送消息)则只能由一个CAN控制器执行。换言之,在一个时间点上,系统中仅有一路CAN通道在工作,另一路处于监听状态(正常工作时),或故障状态(发生故障时)。步骤二系统初始化检测各节点启动后,由主控节点检测两路CAN总线的连接情况即由主控节点发送检测报文,其他节点分别回复自身状态,以此来确定全系统通信功能是否正常。检测指令有两种——广播检测(适用于所有节点)和定点检测(针对指定节点),由标识符进行区分。主控节点先发送广播检测报文,要求一般节点在规定时间内进行响应。对于超时未响应的节点,主控节点可再发送定点检测报文进行确认。如果有必要,该检测结果要上报给操作人员,进行故障排除或对下一步操作进行决策。步骤三正常工作及周期检测系统检测通过后,开始正常工作,同时要求各节点周期检测CAN总线通信情况,并将状态字通过周期消息汇总到主控节点,由主控节点进行综合判断与决策。根据CAN总线的结构特点,这里对错误进行了分类,以便于针对不同错误情况进行处理。在CAN总线系统中,从单个节点的角度,所有错误可以分为主动错误和被动错误。前者是由于节点自身故障引起的,而后者则是由于其他节点故障或通信介质故障使本节点的功能受到影响。不同错误的检测方法如表l所示。表1错误分类及检测<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>主动错误检测主要通过节点内部自检实现,而其他节点故障也可以通过节点行为来判断,但对于通信介质故障则难以找到实用的衡量准则。这里以CAN控制器错误计数为判据,可以界定一些经验性的通信介质异常。一般情况下,CAN控制器可以对发送和接收错误进行计数,根据错误计数所处范围,CAN2.0协议中规定节点处于下面三种状态之一错误激活态、忽略错误态、脱离总线态。其中错误激活态和忽略错误态仍可参与总线通信,脱离总线态则不允许单元对总线有任何影响。另外,当错误计数数值大于96时,说明总线被严重干扰,因此这里多规定一种警告态。每种错误状态均会产生相应中断通知CPU进行处理。错误状态的具体划分见表2。表2CAN控制器错误状态<table>tableseeoriginaldocumentpage9</column></row><table>步骤四系统运行中异常处理如果通信异常,则根据节点的权限不同进行相应处理。本系统将所有节点分为主控节点和一般节点,不同类型的节点有不同的权限,因而错误检测及处理的要求不同。1.对于一般节点,要将检测到的错误及时上报给主控节点,对于主动错误要及时进行故障隔离和复位等操作,而对于被动错误则不主动干涉,根据主控节点的指令进行处理。具体错误分类及处理见表3。表3—般节点错误处理<table>tableseeoriginaldocumentpage10</column></row><table>2.对于主控节点,要求对所有有关CAN通信的错误情况进行处理,及时进行通道切换及系统降级处理等操作,详见表4。10表5主控节点错误处理<table>tableseeoriginaldocumentpage11</column></row><table>步骤五主备通道切换后处理如果主通道出现异常导致系统切换到备用通道,则各节点要对原通道进行复位。此后主控节点在一个系统周期内根据各节点通信情况判断系统功能是否正常。如果可以完成正常通信则使用当前通道作为主通道,原通道作为备用通道;如果仍有问题,则需要同原通道的错误状态进行比较,择其优者进行降级处理,比较方式可以采用基于优先级的比较算法,如图3所示。具体做法是用二进制量分别表示两路CAN通道的连接状态,而将CAN总线网络的所有节点按照功能重要程度从高位到低位排列,每一位表示相应节点(或多个功能密切的节点单元组)的连接是否正常,正常则置零,非正常则置l。如此比较两个二进制量的大小,则可以按照尽可能保证系统主要功能的要求选择CAN通道。图4是本发明控制过程流程图,表示各步骤工作程序。权利要求1、一种双余度CAN总线的网络控制方法,其特征在于该方法具体步骤如下步骤一系统上电及节点初始化各节点设备按照相应的操作程序分别上电,并启动上电自检;因CAN总线系统是分布式结构,所以此过程由各节点按照自身要求分别独立完成;对于节点内部CAN控制器的初始化要求是两路CAN总线以热冗余方式工作,即各两个CAN控制器都处于热备份状态,经初始化后都随时准备接收信息;步骤二系统初始化检测各节点上电自检完成后,要求全系统进行检测以确认状态,该过程由主控节点的上电检测程序控制完成;主控节点发送检测报文查询各节点的状态,两路CAN总线依次进行,以确定系统连接状态;如果各节点连接均正常,通信无误,则继续执行下一步;否则,主控节点将检测到的异常情况上报,由操作人员进行决策,忽略错误继续执行及排除故障后再进行重启操作;步骤三正常工作及周期检测初始化检测通过后,系统正常工作开始;在完成相应功能的同时,各节点周期检测CAN总线通信情况,并将检测结果上报给主控节点;为了保证故障检测的完整性,这里对错误进行了分类,即分为主动错误和被动错误,前者是由于节点自身故障引起的,而后者则是由于其他节点故障、通信介质故障使本节点的功能受到影响;主动错误和被动错误中他节点故障均可以通过节点行为来检测,而对于通信介质故障这里通过CAN控制器错误计数进行间接判断,根据错误计数所处范围,CAN2.0协议中规定节点处于下面三种状态之一错误激活态、忽略错误态、脱离总线态;当错误计数数值大于96时,说明总线被严重干扰,因此这里多规定一种警告态;通过CAN控制器状态异常,可以界定其通信介质故障;步骤四系统运行中异常处理系统运行过程中如果检测到工作异常,则根据节点的权限及错误类型不同进行分别处理;为了避免对总线系统其他部分的影响,各节点对于自身主动错误要及时进行隔离处理,而对于被动错误,一般节点不进行主动干涉;所有错误要求通过CAN报文汇总到主控节点,由其决定是否进行通道切换、系统降级处理操作,并通过控制报文通知其他节点;步骤五主备通道切换后处理如果进行了主备CAN通道切换操作,则各节点对原通道复位;主控节点在一个系统周期内可根据各节点通信情况判断当前通道工作是否正常如果功能正常,则使用当前通道,原通道作为备用通道;如果通信仍有问题,则要求主控节点综合判断两通道的连接情况,根据各节点优先级情况进行系统降级处理;比较方式可以采用基于优先级的比较算法,具体做法是用二进制量分别表示两路CAN通道的连接状态,而将CAN总线网络的所有节点按照功能重要程度从高位到低位排列,每一位表示相应节点、多个功能密切的节点单元组的连接是否正常,正常则置零,非正常则置1;如此比较两个二进制量的大小,按照尽可能保证系统主要功能的要求选择CAN通道。全文摘要本发明提供一种双余度CAN总线的网络控制方法,它有五大步骤步骤一系统上电及节点初始化;步骤二系统初始化检测;步骤三正常工作及周期检测;步骤四系统运行中异常处理;步骤五主备通道切换后处理。该方法充分利用成熟的CAN器件构建双余度总线网络,并通过应用软件进行错误检测及规定不同节点的控制权限,实现分布式监测与集中管理的网络控制策略,同时它提供了详细的CAN总线系统的故障检测方法,对不同的错误进行分类处理,易于编程实现,通用性强。本发明在不改变硬件设计的条件下提高了CAN总线系统的容错能力,充分利用冗余机制保证系统可靠性;它在机电控制领域具有广泛的实用价值和应用前景。文档编号H04L12/40GK101631057SQ20091009128公开日2010年1月20日申请日期2009年8月17日优先权日2009年8月17日发明者吕明云,姜光泰,明祝,郑泽伟申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1