一种基于CAN总线的冗余控制器诊断***及方法
技术领域
本发明属于航空电子控制技术领域,特别涉及一种基于CAN总线的冗余控制器的诊断***及方法。
背景技术
发动机控制器是发动机管理***的控制核心,其除了基本控制功能外,还必须具体发动机诊断故障、存储故障码、上传故障信息的通讯服务等功能,以通知用户发动机故障相关信息。由于控制器数量和应用范围的限制,现有发动机诊断***一般主要由单控制器、诊断仪等组成,且采用标准诊断通讯服务,从而导致读取的故障信息单一,***成本高等不足。
航空发动机因为行业的特殊性,其具有较高的安全性、维修性、可靠性相关的需求,且航空控制器采用双控制器的方法提高控制***安全性,采用单控制器诊断***设计不能满足冗余设计的要求,因此设计一种适用于基于CAN总线的冗余控制器诊断***,对于航空发动机故障维护是非常必要的。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于CAN总线的冗余控制器诊断***及方法,这种***由冗余控制器、诊断工具、CAN通讯设备组成,冗余控制器之间以CAN总线为通讯媒介交互故障信息,并进行记录存储;诊断工具与冗余控制器之间通过CAN通讯设备,采用客户机-服务器通讯方式,以扩展的ISO14229标准通讯协议的诊断服务建立诊断控制流程,从而保证发动机故障信息的完整性,提高故障分析的效率,有利于售后发动机故障的排查。。
为了实现上述目的,本发明采用的技术方案为:一种基于CAN总线的冗余控制器诊断***,所述***基于两路CAN总线网络:内部网络、外部网络;
内部网络由冗余控制器组成,用于双控制器之间交互故障相关信息;
外部网络由诊断工具、冗余控制器组成,用于诊断工具与冗余控制器建立诊断信息读取控制流程,将冗余控制器故障和记录的信息向诊断工具传输。
所述诊断工具与冗余控制器之间采用客户机-服务器的方式通讯。
所述冗余控制器的双控制器诊断发动机的故障和周期性的记录发动机的工况,并将诊断出的故障以故障码和故障状态的形式存储。
诊断工具通过诊断服务与冗余服务器之间建立通信,通过CAN标识符来区别、识别控制器的信息。
所述诊断工具与冗余控制器建立通信连接,读取冗余控制器中记录、诊断的信息或者通过冗余控制器中的其中一个控制器读取记录、诊断的信息。
一种基于CAN总线的冗余控制器诊断***的诊断方法,冗余控制器上电初始化之后进入运行状态,周期的进行发动机诊断和工况记录信息的存储;当冗余控制器接收到诊断工具的诊断服务请求时,控制器根据诊断工具的需求进行相应诊断服务操作,诊断服务操作完成后,控制器重新进入正常工作状态并周期诊断和工况记录。
所述诊断工具用于显示双控制器的连接状态、读不同类型故障、判断记录工况的总时间、按要求读取记录工况并储存于文件中。
冗余控制器由控制器ECU_A、控制器ECU_B,其通过具有CAN收发器的电路接口连接,诊断工具与通过CAN设备连接到CAN网络,控制器ECU_A、控制器ECU_B分别通过各自具有CAN收发器的电路接口连接到CAN网络,通过CAN标识符进行区分。
外部诊断工具通过CAN总线设备与控制器的CAN接口连接组成CAN诊断网络,双控制器内部设定发送消息CAN标识符和接收消息CAN标识符,以区分与诊断工具的通讯。
根据诊断目标和诊断操作的选择,诊断工具向控制器发送相应操作的消息;控制器根据内部处理状态后回复响应;如果内部处理正常,控制器响应相应操作;如果内部处理异常,控制器响应对应操作负响应。
诊断工具接收到控制器的响应后,如果接收到正响应,诊断工具进行正常的显示或存储操作;如果接收到负响应或在一定时间内未收到响应,诊断工具向另一诊断目标发送请求消息。
诊断工具读取记录期间,双控制器均停止诊断且关闭之间的交互通讯。
预先设定保密算法来保证冗余控制器内部数据的完整。
诊断工具对控制器的操作需要进行安全访问服务的解锁,在解锁完成后才能进行操作。
本发明的优点在于:本发明双控制器运行期间交互故障,以实现内部故障的相互通知,优化发动机控制;通过CAN总线硬件媒介,扩展ISO14229标准协议中诊断服务,开发出双控制器和诊断工具的诊断协议,从而通过诊断工具可完整的读取出发动机运行时工况及期间发生的故障,帮助地面人员提高诊断效率。
附图说明
下面对本发明说明书各幅附图表达的内容及图中的标记作简要说明:
图1为本发明具体实施方式的诊断***结构图;
图2为本发明具体实施方式的控制器诊断工作流程图;
图3为本发明具体实施方式的读诊断服务流程图。
具体实施方式
下面对照附图,通过对最优实施例的描述,对本发明的具体实施方式作进一步详细的说明。
一种基于CAN总线的冗余控制器诊断***,该***基于两路CAN总线网络:内部网络和外部网络。内部网络为控制器ECU_A和控制器ECU_B间内部网络,其用于双控制器间故障的交互;外部网络由诊断工具通过CAN设备与控制器ECU_A、控制器ECU_B组成,诊断工具为客户机,控制器ECU_A和控制器ECU_B为服务器,采用客户机-服务器的通讯方式,实现诊断工具读取双控制器故障及相关信息的目的。不同网络的各节点通过不同的CAN标识符进行区分。正常运行期间,双控制器除进行相应的发动机算法控制外,还进行发动机故障的诊断和周期地工况记录。一旦检测出故障的状态发生变化,即故障由无到发生或由发生到修复,控制器将故障以故障码和故障状态的形式进行存储。双控制器内部均有专门的数据存储区,用于周期的记录发动机工况。诊断工具和双控制器以ISO14229诊断服务协议为基础进行开发,除实现协议基本的诊断服务外,还开发历史记录的相关服务,以完整地组成冗余诊断***中交互通讯协议。当控制器接收到诊断工具的会话切换消息时,控制器由正常运行状态进入诊断会话状态,并响应诊断工具的诊断服务请求。开发的诊断工具利用VC界面开发工具进行功能开发,功能具有打开CAN设备并与控制器建立连接、获取双控制器连接状态、读取发生/已修复/已删除故障、清除故障、读取历史记录并存储于指定文件等功能。当诊断工具请求某控制器的故障时,如果某控制器由于某种原因未能回复响应或回复负响应,则诊断工具向另一控制器请求某控制器的故障。
特征1:冗余控制器诊断***组成
本发明中外部诊断工具和双控制器组成完整的CAN网络,网络内包含控制器ECU_A、控制器ECU_B、诊断工具,***组成如图1所示。控制器ECU_A和ECU_B在硬件上至少有两路CAN总线驱动、内部存储器、诊断相关电路,软件上实现发动机诊断、诊断故障的存储、周期工况的存储、双控制器间故障交互、诊断通讯服务等功能。控制器针对诊断***的工作流程如图2所示,控制器上电初始化之后进入运行状态,周期的进行发动机诊断和工况记录信息的存储。当控制器接收到诊断工具的诊断服务请求时,控制器根据诊断工具的需求进行相应诊断服务操作,诊断服务操作完成后,控制器重新进入正常工作状态并周期诊断和工况记录。诊断工具软件上实现显示双控制器的连接状态、读不同类型故障、判断记录工况的总时间、按要求读取记录工况并储存于文件中等功能。***由两路网络组成,一个是控制器ECU_A和控制器ECU_B间的内部网络,一个是诊断工具与控制器ECU_A、控制器ECU_B间的外部网络,各节点分别由不同的CAN标识符区分。
特征2:诊断消息流程
诊断消息流程是外部诊断工具与控制器间进行交互的过程和步骤,其一般由外部诊断工具发起整个诊断消息流,而控制器根据诊断消息流程反馈相应的诊断消息。为了诊断交互消息的通用性、标准化、可扩展性,本发明以标准IS014229协议中定义的诊断服务为基础实现和规划整个诊断消息流程,具体的诊断消息流程如图3所示。本发明使用的ISO14229协议中的诊断服务及扩展服务如表1所示。诊断消息流程中诊断服务作用描述如下:
√通过切换会话服务选择进行正常会话模式或记录会话模式。
√通过安全访问服务提高***的安全性。
√通过读故障码服务实现对故障码的读取。
√通过清除故障码服务实现对故障码的删除。
√通过例行程序服务实现对记录的读取和删除。
√通过保持会话服务实现会话模式时间的延长和确定控制器的状态。
表1刷新诊断服务列表
一、诊断网络连接
读取诊断前提是建立整个诊断网络,外部诊断工具通过CAN总线设备与控制单元的CAN接口连接组成一个刷新CAN网络,连接方式见图1。双控制器内部设定了不同的发送消息CAN标识符和接收消息CAN标识符,以区分与诊断工具的通讯。诊断工具通过CAN标识符CANIDA_R选择控制器ECU_A进行通讯,控制器ECU_A通过CAN标识符CANIDA_T回复诊断工具的响应;诊断工具通过CAN标识符CANIDB_R选择控制器ECU_B进行通讯,控制器ECU_B通过CAN标识符CANIDB_T回复诊断工具的响应。
二、读诊断流程控制
诊断工具和控制器的通信以客户机-服务器方式进行,即控制器收到何种诊断工具的请求,控制器就会做出何种响应。但是控制器会对读诊断过程的命令先后顺序有一定的约束,具体读诊断控制流程如图3所示,流程步骤如下:
1、诊断工具根据诊断目标(控制器ECU_A或控制器ECU_B)和诊断操作的选择的不同,发送会话切换服务,这个服务被用来选择会话模式。如果选择故障码相关操作,则发送正常会话消息0x10 0x01 0x01;如果选择记录相关操作,则发送记录会话消息0x10 0x040x01。
2、控制器内部数据是有安全性要求的,不适合的操作可能破坏控制器或对航空设备安全标准产生风险,所以具体操作前设定保密算法来保证控制器内部数据的完整性是符合安全标准的。诊断工具对控制器的操作需要进行安全访问服务的解锁。
3、根据诊断目标(控制器ECU_A或控制器ECU_B)和诊断操作的选择,诊断工具向控制器发送相应操作的消息。控制器根据内部处理状态后回复响应。如果内部处理正常,控制器响应相应操作;如果内部处理异常,控制器响应对应操作负响应。
4、诊断工具接收到控制器的响应后,如果接收到正响应,诊断工具进行正常的显示或存储操作;如果接收到负响应或在一定时间内未收到响应,诊断工具向另一诊断目标发送请求消息。比如当诊断工具请求控制器ECU_A读取当前故障操作,若控制器ECU_A由于连接问题在一定时间内未回复,则诊断工具向控制器ECU_B请求控制器ECU_A的当前故障。
5、诊断工具读取记录期间,由于记录数据量较大,双控制器均停止诊断且关闭之间的交互通讯。
特征3:诊断工具实现
诊断工具采用VC语言进行开发,使用文本框控件、编辑框控件、按钮控件、TAB控件等多种对话框控件,并响应定时事件和按钮事件。诊断工具实现了特种2中定义的诊断服务和诊断消息流程,以满足诊断工具和双控制器的交互。具体诊断工具实现的功能如下:
1、通过“打开设备”按钮初始化CAN设备,根据ECU选择确定与哪个控制器建立连接。采用定时事件周期的判断相应控制器的连接状态,并在“通讯状态”中以红色表示示已连接。
2、通过“关闭设备”按钮中断CAN设备,并断开与控制器的连接。
3、通过“读取版本信息”按钮读取相应控制器的版本信息,版本信息包含软件***名、硬件版本信息、初版数据版本、新版数据版本。
4、读当前故障、读已删除故障、读已修复故障、清除信息功能采用TAB控制实现。“读当前故障”、“读已删除故障”、“读已修复故障”分别显示控制器的当前故障、已删除故障、已修复故障,控制器ECU_A和控制器ECU_B以分栏形式显示,在单击相应TAB控件分页时进行读取操作。“清除信息”中设计“清除故障信息”和“清除记录信息”两个按钮,并根据ECU选择状态确定操作哪个控制器。
5、读取记录主要实现了获取记录总时间、下载指定控制器指定时间的记录、将记录存储于指定文件、以进度条的形式表征下载的进度等功能。读取记录操作必须按以下流程操作:
ECU选择→获取记录总时间→输入下载记录时间→点击“下载”→输入保存的文件名。
显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,均在本发明的保护范围之内。