首页 > 嵌入式软件 > WinCE

当各种设备应用与管理系统发生故障时,准确而快速地进行故障诊断定位,对于系统的恢复,具有十分重要意义。然而,由于系统结构复杂,导致设备故障的原因很多,在现场分析、判断和处理故障时,往往依赖于维修人员对设备机理的把握程度和经验,导致故障定位不准,维修时间较长。故采用故障树分析法建立检测引导系统,以此来引导维修人员以专家的思维模式对设备进行检测修理,提高经济性和可靠性。这种检测引导系统即为专家系统。本文以串口通信故障检测为例,设计了一种嵌入式专家系统,结合嵌入式WinCE以及SQLite,达到引导检测的目的。

1 系统架构

1.1 专家系统简介

专家系统(ES)是人工智能领域最活跃和最广泛的领域之一[1]。自从1965 年第一个专家系统Dendral 在美国斯坦福大学问世以来,经过40年的开发,各种专家系统已遍布各个专业领域。目前,专家系统得到了更广泛的应用,并在应用开发中得到进一步发展。所谓专家系统就是使用人类专家推理的计算机模型来处理现实世界中需要专家作出解释的复杂问题,在没有专家参与的情况下得出与专家相同的结论。简言之,专家系统可视作“知识库”和“推理机”的结合,知识库是专家的知识在计算机中的映射,推理机是利用知识进行推理的能力在计算机中的映射,构造专家系统的难点也在于这两个方面。

1.2 系统组成

本文设计的智能专家系统包括用户界面、数据库以及模块化的程序。应用嵌入式数据库SQLite来实现知识的存储以及人机交互实现推理解释。故障树节点的所有信息均存储在SQLite中,并在数据库中实现故障节点的逻辑关系以此取代推理机,达到引导检测的目的[2]。

1.3 系统工作机制

专家系统的组织控制机构(即推理机)根据当前输入数据来运行知识库中的相应知识,按一定策略进行推理,以达到要求的目标。本文专家系统中,推理机根据用户参与选择后的故障信息,在知识库内寻找能与之匹配的故障树结点事件,每步推理都以用户反馈信息为依据,沿故障树脉络进行正向推理,逐步缩小故障范围,直至完成故障源定位。专家系统工作流程如图1所示。


2 专家库设计

本文引用地址: http://embed.21ic.com/software/wince/201806/63360.html

故障树分析FTA(Fault Tree Analysis)是一种演绎推理方法, 将系统可能发生的故障和故障原因由总体到部分按树状逐渐细化的图形演绎方法, 通过对故障树的定性和定量分析, 判明故障原因并可得出引发故障的相关因素的相关重要度[3]。故障树是用于系统可靠性分析和故障诊断的一种图形化故障模型,而基于规则的诊断专家系统的目标是当系统发生故障时综合利用各种诊断信息,根据知识库中的规则,通过推理确定系统的故障模式,推断出故障部位和故障原因,最后提出排除故障的方法和维修建议。故障树建立时,将最不希望发生的故障作为顶事件; 位于故障树底部, 导致其他事件的、不可再分的原因事件为底事件,其他事件都是中间事件。各事件间相互关系通过“与”门、“或”门、“非”门等逻辑门表示。

2.1 SQLite移植

从SQLite官方网站下载最新版本的SQLite,解压获得sqlite3.c、sqlite3.h、sqlite3ext.h三个源文件,还要下载一个基于Windows平台的edll压缩文档,解压获取sqlite3.def,最后下载一个支持命令行的版本文件,解压获得sqlite3.exe。然后生成工程:用VS2005新建DLL工程,选择智能设备在定制WinCE生成的SDK(如mini2440-CE6-SDK),把解压出来的源文件加入工程中。最后设置工程属性后编译:编译后便可生成适合设备平台的数据库使用文件sqlite3.lib、sqlite3.dll。以后只要把sqlite3.dll放到与工程相同的目录下,在工程链接的额外依赖中加入sqlite3.lib,然后在需要使用数据库的源文件中加入include“sqlite3.h”,SQLite数据库就可以使用了。

2.2 故障树的构建

基于故障树的推理是指利用故障现象信息和故障树节点间的逻辑关系进行推理,利用异常节点作为推理的起始点,利用辅助信息进行假设排除,最终确定故障原因。在进行故障诊断之前,系统要构造故障树,故障树的作用主要用于诊断过程的剪枝,即缩小状态空间的搜索范围,以提高系统工作效率。将数据库中的所有规则组织成若干棵树,每棵树的叶子节点对应一个故障现象或辅助信息,非叶子节点对应一个故障结论,父节点与子节点的关系构成规则,在数据库中记录故障树的根节点、节点层次、节点关系、叶子节点等信息。设置系统变量,用于判断系统是否进行过规则更新操作,在启动系统、退出规则维护界面和调用故障诊断功能时都进行判断,及时提示用户进行故障树的更新处理[4]。

串口无法通信或者通信过程中出现异常,就要对整体或者串口通信过程中的某个细节进行故障诊断。串口通信的实现需要如下几个模块:数据发送模块、数据接收模块、物理链路、中央处理单元、串口扩展板以及电源。故障主要有数据发送模块故障、接收模块故障以及串口扩展板故障三部分。在工作中,无论哪部分模块发生故障都将影响到整个通信过程。根据故障关系以及检测经验设计图2所示的串口通信故障树。


2.3 故障二叉树的建立

关系数据库管理系统的优势在于存储以二维数据表为模型的数据结构。本文将故障树压缩存储来降低检索算法的时空复杂度。

一般的树形dp都有这样的模型:f[x,y]=min{f[x1][y1],f[x2][y2],……f[xm][ym]}给每个儿子分配多少就需要枚举了,这种做法比较慢。但是如果转化为为二叉树之后,dp模型一般都是这样:f[x,y]=min{f[left[x],y1],f[right[x],y]},则变为给一个儿子进行分配就可以了,而且转化之后还有一个很有用的性质,即原树和二叉树的前序遍历相同,可以利用这个性质进行一些优化。而且在某些情况下,通过前序可以把树形dp转化为在线性表(如数组中的dp),这样许多转移方程就可以继续优化,所以在树的算法中把树转化为某种线性序可以大大优化模型,使其算法变得更简单高效。本着这种原则,本专家系统设计的SQLite表如表1所示。建立表之前,根据树转二叉树的算法对每个故障现象进行编号,表1中,NODE代表节点号;TEXT表示节点的故障现象;YESTO、NOTO表示判断后将要跳转的节点;NRANK表示节点等级,根节点等级为0,过度节点等级为1,当节点等级为2(即叶子节点)时,表示测试结束并给出是否保存结果的提示。

WinCE下读取数据库信息对系统进行专家诊断的核心代码如下:
if(atoi(sqlite->GetTableData(1,5))!=2)//保证在非叶子节
//点之间进行跳转
{
node = atoi(sqlite->GetTableData(node,3));//选择YESTO
//跳转到的节点
node = atoi(sqlite->GetTableData(node,4));//选择NOTO
//跳转到的节点
wsprintf(buff1, L"SELECT * from '%s' where NODE = %d ;",
table_name,node);//查询数据库
m_cap = sqlite->GetTableData(node,2);//读取node节点的
//故障现象
GetDlgItem(IDC_TITLE)->SetWindowText(m_cap);
//把故障现象显示出来
}

检测过程中,通过人机交互遍历故障二叉树如图3所示。图中二叉树的每一个叶子节点都是一次检测的结果,也就是故障的最终原因,它们的等级即NRANK都是2。通过等级的判断来确定是否是最终结果并提示保存。

3 系统的实现

本文以嵌入式操作系统Windows CE 和S3C2440A为开发环境,应用EVC++ 语言编写、应用程序和嵌入式数据库SQLite,开发了故障诊断专家系统,以串口通信故障检测为例,介绍了基于故障树分析法和专家规则的故障诊断专家系统的建立以及诊断过程。当串口通信故障检测开始时,测试人员只需要根据故障现象的提示进行是非判断,然后专家引导系统就会给出下一步的工作。系统工作流程图如图4所示。

专家系统运行的过程中,系统首次查询数据库,把故障树的根节点内容显示到提示信息。检测人员将提示故障现象正确与否的判断反馈给专家系统进行下一次数据库查询得到下一步的提示信息。检测人员参与之后的所有数据库查询工作都按照节点设计的逻辑进行跳转,然后重复人机交互操作,最后由专家系统给出确切答案,并提示检测人员对测试结果进行保存。

本文提出了一种基于二叉树遍历的检测专家系统并给出了多叉树转化为二叉树的方法,在嵌入式WinCE平台下将这种系统实现并在初步的实践检验中取得良好效果。以串口通信故障检测为例,详细地介绍了专家系统的建立过程以及工作原理,采用体积较小的嵌入式数据库SQLite以及WinCE友好的嵌入式人机交互界面和模块化程序设计方式,复用性好,可移植性高[5]。此系统模型广泛适用于交通、通信以及电力等设备的故障检测,在故障树的引导下进行专家级检测。

换一批

延伸阅读

[新鲜事] 这家被指抄袭谷歌的红芯浏览器承认基于开源架构,仍称“有创新”

这家被指抄袭谷歌的红芯浏览器承认基于开源架构,仍称“有创新”

深陷“造假”风波的国产浏览器品牌红芯,再度发声。8月16日晚,红芯时代(北京)科技有限公司发布声明称:红芯浏览器内核是基于通用的浏览器内核架构(即Chromium开源项目,但不是Chrome浏览器)的基础上进行......

关键字:浏览器 谷歌 红芯浏览器

[真心话] 三大运营商取消流量漫游费,本地流量将被国内流量替代

三大运营商取消流量漫游费,本地流量将被国内流量替代

7月1日,中国移动、中国联通和中国电信正式全面取消流量漫游费,原有套餐中的省内通用流量直接升级为国内流量,但并不包含港澳台地区。目前原来的本地流量已经转化为国内流量。对于本地流量转化为国内流量后价格是否......

关键字:电信 网络流量

[新鲜事] 阿根廷队告别俄罗斯世界杯,罗永浩:梅西巅峰期已过

阿根廷队告别俄罗斯世界杯,罗永浩:梅西巅峰期已过

6月30日晚,俄罗斯世界杯的赛场上上演16强焦点之战,阿根廷对法国。面对拥有身高、年龄、速度等优势,并坚持打高吊、防反的法国队,阿根廷队显得没有什么办法。虽然两次被幸运女神眷顾并一度以2:1领先,但法国队最......

关键字:阿根廷 世界杯

[真心话] 资深硬件研发工程师:抄袭可耻!但产品抄袭可用,资料抄袭可笑

资深硬件研发工程师:抄袭可耻!但产品抄袭可用,资料抄袭可笑

硬件研发一般是指电子产品硬件研发,是一种看得见实物的电子产品研发,比如我们所说的手机、鼠标、键盘、音响都是硬件,硬件开发也就是在这些方面进行的一系列研究。本文分享一位资深工程师对硬件研发的一些看法,希望能对大家有所帮助。......

关键字:硬件研发 抄袭 生产体系

[猎聘集] 面试过900+工程师的HR自述,手把手教你看破面试中的套路

面试过900+工程师的HR自述,手把手教你看破面试中的套路

技术面试常常有很多坑,不管是对面试官还是面试者来说,都是如此。这篇文章可以让技术面试官规避很多面试过程中可能出现的问题,也可以给即将参与技术面试的面试者一定的启发。......

关键字:技术面试

[真心话] 软件开源活动领航人Eric Raymond:C语言时代行将落幕

软件开源活动领航人Eric Raymond:C语言时代行将落幕

这几天来,我(Eric Raymond)在思考那些正在挑战C语言的系统编程语言领袖地位的新潮语言,尤其是Go和Rust。思考的过程中,我意识到了一个让我震惊的事实——我有着35年的C语言经验。每周我都要写很多C代码,但是我已经记不清楚上一次......

关键字:Eric Raymond C语言
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14