- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于网络汽车电子远程诊断技术研究与应用
基于网络汽车电子远程诊断技术研究与应用
摘 要:主要探讨了汽车远程诊断系统的基本设计思路和关键技术,并在网络环境下采用面向对象的编程语言Borland C++ Builder6.0构建了基于网络的汽车电子远程诊断技术的系统。本系统可作为网络汽车的远程诊断平台,能尽早发现汽车电子控制器的故障并得到故障的危险优先级外,还能得到必要的故障维修处理指导以便对故障进行及时处理。
关键词:汽车远程诊断系统 C++ Builder6.0
目前我国汽车维修行业已经从完全依靠检查者的感觉和实践经验进行诊断的阶段发展到了利用专门设备进行综合检测诊断阶段。常用的检测诊断设备主要有传感器测试试仪,电喷车解码器,发动机综合分析仪,手持式故障诊断仪等。但是在传统汽车维修行业中普遍存在着很多问题,比如技术、地域、时间的限制。而汽车远程故障诊断技术恰恰可以成为传统诊断技术的补充。
一、汽车远程诊断的总体设计思路
1、汽车状态监测方面的考虑:(1)外置式监测。类似与在大型、关键、危险、连续运转的设备上安装的附加监测仪器系统,依托较为成熟的现有状态监测与故障诊断技术,实现在线的远程智能监测和故障诊断。(2)设计性监测。在汽车电子控制单元(ECU)设计阶段就将设备状态监测仪器作为设备的一个重要单元一并考虑,来设计和制造设备状态监测与故障诊断系统,设备状态监测系统便内置于设备中。目前进口或是国产的高档轿车配置了电脑编码故障诊断功能便是属于设计性监测。
2、通讯组网方面的考虑,可以利用嵌入式系统联入Intemet和利用网络汽车的车载计算机联入网络两种方案来解决。前者由于没有良好的用户界面使得交互比较困难,后者则可以大大改善汽车远程诊断用户与远程故障诊断中心的信息交互。
二、汽车电子远程诊断系统的体系结构
基于网络的汽车电子远程故障诊断系统总体结构主要由三层结构组成,三层分别为车载客户终端、远程诊断服务器、数据库服务器。其工作过程为:用户通过车载客户终端对汽车上的电子控制模块进行故障数据采集和状态监测后向远程诊断服务中心发出远程诊断请求;服务中心经权限检验后,对用户请求作出响应,启动相应功能模块,开始诊断工作,并借助网络与用户进行实时的信息交互传递。
三、主要实现的技术难点
1、串行通讯组件的实现:远程客户诊断程序将选用Borland C++ Builder6.0来实现。串行通讯实现的过程如下:用户选择需要诊断的车载ECU。点击建立连接按键和ECU建立连接,系统将把ECU的诊断基本信息如零件名、零件号等显示在对应的文本框中。再点击故障查询按键读取ECU的故障代码,如果有故障代码则将故障代码以及数据库中存放的故障代码的确切含义列出在表格区。如果故障是偶发性故障,或是经过处理已经排除的故障则可点击故障删除按键将ECU中的故障代码删除。系统还能设定ECU的零件码(用于标识ECU工作的系统配置环境)和车间码(用于标识ECU最后一次和诊断系统连接的信息)。
2、Winsock实现汽车电子远程诊断通讯
首先必须完成Winsock初始化;然后在服务器和客户端分别建立SOCKET;将服务器端SOCKET设置为监听模式:客户端SOCKET完成地址解析;客户端发出连接请求,服务器端通过accept或WSmAccept调用来接收请求。主要代码如下:
(1)初始化Winsock;
每一个Winsock应用程序都必须加载Winsock DLL的相应版本。如果调用Winsock之前没有加载Winsock库,函数会返回SOCKET_ERROR。加载Winsock库是通过调用WSAStartup函数来实现的。下面的代码加载Winsockl.1版本,如果加载出错或是版本不支持则返回。
#include /*如果加载2.0版则应该包含winsock2.h */
WSAData WinSocketAPIData;//定义一个保存加载版本库信息的WSAData结构
int nRc=WSAStartup(0x0101,WinSocketAPIData); if(aRc)return;//出错返回
if(WinSocketAPlData.wVersionr=0x0l01)
{ WSACleanup0;
Return;
}
(2)服务器端/客户端建立Winsock套接字;
所谓套接字,就是一个指向传输提供者的句柄。Win32中的套接字不同于文件描述符,所以它是一个独立的类型――SOCKET。套接字由两个函数建立的:WSASocket函数和socket函数。下面的代码建立一个服务器端的运行于TCP/IP协议上的流式套接字。
SOCKET sServerSock;
sServerSock=socket(AF INET
您可能关注的文档
最近下载
- 2025内蒙古孪井滩生态移民示范区社区专职工作者招聘10人考试备考试题及答案解析.docx VIP
- 金属粉末冶金材料.PPT VIP
- 新苏教版三年级上册数学(全册)同步随堂练习一课一练 .pdf VIP
- 《电工基本技能》教案项目五任务二 开关类低压电器的拆装.docx VIP
- 危险源辨识、风险评价表(建筑工程).xls VIP
- 连翘的育苗技术.pptx
- 第16课《诫子书》(教师版).docx VIP
- 跨部门合作流程与沟通模板.doc VIP
- SANKEN三肯变频器samco-ns TEXC-NS-002(小容量)使用手册调试说明书.pdf
- 《电工基本技能》教案项目五任务三 接触器的拆装.docx VIP
原创力文档


文档评论(0)