基于CDMA和CAN总线的车辆远程故障诊断系统
3 软件设计
该系统的软件设计主要分为两部分:位于车辆信息技术服务中心的专家系统设计和位于车辆的车载故障诊断单元设计。
3.1 专家系统设计
这部分是位于车辆信息技术服务中心的应用程序,除了普通的web服务,GPS服务,跟踪服务等以外,最主要的是能提供故障的专家诊断。这部分功能由专家系统辅助以现场专家来完成。通过专家系统来尽可能快地给车主反馈故障诊断的信息,并提出解决的专家建议。
开发专家系统,首先需要将汽车维修领域专家的大量实际维修经验进行汇总和提炼,编成知识库,构成专家系统的核心部分;然后建立推理机,推理机可根据车载故障诊断单元发送过来的数据,利用知识库中的知识,按一定策略进行推理,从而得出诊断结果。专家系统的结构如图2所示:
知识库的建立直接关系到车辆信息技术服务中心服务质量的高低,也影响着车主是否大量采用这个系统,所以收集,整理专家知识的工作特别重要,其难点主要在于专家知识的收集与表述。因为现在的汽车制造厂商十分繁多,具体的车系更多。虽然现在大部分车辆都提供OBD-II接口,但是从接口中读出的故障码的信息十分有限;各大汽车生产厂商检测故障用的手持设备与OBD-II通信的协议也各不一致,而且得到的故障码包含的信息大量的是靠维修工人的经验来判读。所以专家知识的积累与整理显得十分重要。
在归纳知识时要考虑的因素很多, 为了充分利用专家系统的符号推理能力, 凡是能用数学公式描述的知识,均作为具体求解器的方法实现,其余的作为规则存储于知识库。
规则知识的表示形式为:
规则号 if (前提) then (结论)
前提是一个条件或几个条件的“and”形式,若是后一种情况,只有在几个条件都成立时,结论才被接受。每个条件可以是若干项的“or”形式。
以下是一条具体的规则:
rule5:
if
(1) 收到故障码:p0201
(2) 收到故障码:p0202
(3) 收到故障码:p0203
(4) 收到故障码:p0204
(5) 发动机缸数:8
发动机喷油嘴故障严重,需马上修理。
推理机设计时本系统采用了两级es推理控制策略。结合领域知识,将总体故障分析求解任务分解为不同的子任务,如发动机故障分析子任务、轮胎故障诊断子任务等。每个子任务有各自的目标求解变量,服从不同的求解方法,彼此之间既相互独立又存在着相互联系。通过正向推理求解其目标变量,并将所求结果显示给车主。
而汽车故障诊断的各子任务间是有一定的依赖关系的,各子任务的求解是有一定的前提条件的,例如,气缸喷油嘴子任务的求解必须在油嘴线路电压已知的前提下才能进行,因而,各求解器中都设置了激活条件,只有满足了这些条件,求解器才能被激活从而进行目标变量的求解。元级推理机利用此关联对象集信息按一定的顺序激活相关的求解器进行重新推理。
解释机制通过与推理机输出的数据, 回答用户提出的how、why、what、whether等问题。
3.2 车载故障诊断单元软件设计
车载故障诊断单元主要负责车载故障数据的读取,并通过无线网络()将故障码实时送到远程车辆信息技术服务中心,简单的故障信息,如:一般故障(不用马上处理),故障(需马上修理),严重故障(需请求交通拯救)需要及时反馈给车主(包括以文字的方式反馈到车主车载屏上,更紧急的时候通过语音或者视频对话来沟通)。更详细的故障情况车主可以通过移动电脑或者移动电话访问相关远程车辆信息技术服务中心的网站来获取。
车载故障诊断单元的主程序在执行完初始化功能,再根据当前故障状态位的值设置定时中断的时间后,然后就进入低功耗模式。单元读取故障码和其他运行数据,以及这些数据的传输都放置在中断程序,中断结束立即进入低功耗模式。车辆故障状态位正常时,可取60min定时中断一次,调用crc-16校验计算执行库后,通过无线方式发送给远程车辆信息技术服务中心。在故障状态位出现多位数值为“1”时,缩短定时中断时间,增加数据采样及发送频率。定时中断程序流程如图3所示:
数据接收程序在主程序完成初始化功能后,模块进入等待SPI数据工作状态。在接收到一个数据帧,crc校验(采用查表法实现,减小微控制器cpu占用时间)和车辆信息技术服务中心id判断无误后,送液晶显示并点亮相应的指示灯以表示各模块工作正常。当某个模块出现故障时,启动led闪烁警告或蜂鸣器报警。程序流程图如图4所示。
cdma相关文章:cdma原理
评论