汽车诊断系统的通讯开发与研究

2010-03-16 01:18乔美昀
装备制造技术 2010年11期
关键词:PC机流程图串口

乔美昀,王 印

(上汽通用五菱汽车股份有限公司,广西 柳州 545007)

现代汽车已进入一个电子化武装的时代,汽车除了作为传统的交通工具之功能外,更多地成为一个人们休闲和娱乐的空间,有着第二家庭的美誉。越来越多的电子设备装备于汽车,使得诊断系统越来越复杂。随着微机技术、可视化开发应用软件的不断发展,汽车诊断也逐步走向信息化。而串行通信正是是实现计算机和外部设备(单片机、PLC等)数据交换的一个简捷又实用的方法。本文介绍了串行通讯的重要意义以及汽车故障诊断仪、ECU和计算机三者之间通讯的基本原理:多个电子控制单元(ECU),用于接收从安装在车内的各种传感器传出的感知信号,并依据汽车各装置的有无异常情况,产生与其对应的诊断代码;VCI盒即故障诊断仪,通过上述电子控制单元接收与诊断对象项目相对应的故障代码,并传送到PC机上;PC机诊断软件,用于分析和处理接收到的故障代码,并把故障的详细说明和应对措施等信息传送到VCI盒至汽车终端。

1 串行通讯故障诊断

不同的独立系统经由线路相互交换数据,即为通讯。通讯的目的就是数据交换。在电喷技术中,ECU电子控制单元起着关键性的核心作用,各种机械传感器的工作参数,都是沿着线路传输到ECU中然后被保存起来,或者是作进一步的处理。而这种传输遵循着特定的协议,对于这种协议的获取,可通过采用串行通信口到个人PC机上实现。要采集到ECU中的故障信息流数据,就有必要使用串行通信口进行数据流的采集,通过信号的转换,从而实现数据形式的转换。在汽车电脑ECU中的电压为0~12V,而通用PC的标准电压为0~5V,因此要进行相应的电平转换,以此来使用RS-232-C标准,RS-232-C的标准电压为3~15V,因此电平间的转换是不可避免的。出于ECU中的数据流通过标准的OBDII标准接口,将数据流通过RS-232-C传输到诊断盒上,通过电路板硬件的转换,将信号转换为数字信号的形式,再通过RS-232-C传入到通用PC上,即诊断仪在PC机上实现相应的处理。

1.1 串口初始化

串口初始化通过串口常规、串口事件控制、串口流控制、串口超时空置和串口监控控制共5个部分来实现。汽车故障诊断中,根据读取ECU内部不同的信息,设定不同的数组进行接收,在初始化中,通过串口初始化功能函数来实现整个过程。

串口初始化流程图见图1,串口初始化窗口设计见图2。

图1 串口初始化流程图

图2 串口初始化界面

1.2 通讯初始化与串口的自动连接设置

ISO9141-2、ISO14230(kwp2000)kw1281协议要求,在通讯前进行总线初始化激活总线后,才能与ECU建立通讯,ISO9141kw1281只用低速的初始化模式,ISO14230用高速和低速两种模式。专业诊断芯片自动进行总线初始化,它是在接收到第一个OBD命令时才开始初始化。一旦总线完成了初始化过程,就可与车辆进行数据通讯,但ISO9141、ISO14230、kw1281要求,在一定的时间内,数据总线上必须至少进行一次通讯,如果5s或更长时间没有通讯,ECU将会退出诊断模式。必须重新进行初始化后才能通讯。

专业诊断芯片在初始化完成建立连接后,如果检测到它与ECU已超过设定的时间没有通讯,专业诊断芯片将自动为你发送一数据包到总线上,以保持连接。

为方便维修技术人员的诊断工作,本系统通过上位机程序设置实现了串口的自动连接设置,完成了串口的初始化。打开端口,对缓冲区进行清空并读取数据,验证回执命令是否正确,如果正确则端口连接成功,否则需延时重新连接。串口通讯自动连接流程图如图3所示。

图3 串口通讯连接

1.3 串口通讯故障诊断设计原理

单片机与计算机之间采用RS232C标准进行点对点的通信连接,它们之间的通信采用“8位、无奇偶、波特率为38400bps”的方式。计算机作为上位机,定时对作为下位机的VCI盒“点名”,无“应答”就说明串口通信发生故障。

具体的方案:在程序运行过程中,计算机定时向VCI盒发一个控制代码,当VCI盒接收到该代码后,根据通信协议向计算机回传一个代码(该代码通过程序产生)。计算机在一定时间内接收到VCI盒发送来的代码,并与驱动程序识别代码比较,如2个识别代码相符,计算机驱动程序正常运行。若计算机在一定时内没有收到识别代码,或收到的识别代码与驱动程序识别代码不相符,计算机屏幕会出现消息框“请检查通信线路”。

2 故障诊断整体通讯思路

计算机故障诊断通讯过程,是通过2个定时器控件(Timer)完成的。当一事件产生时,发送能使信号进入“指令识别子程序”的控制代码中。当接收到数据后,回送一个“识别码”。计算机若在指定的时间内接收到正确的“识别码”程序,则正常运行;若在其时间内没接收到正确的“识别码”,此时通信中断。通讯过程中,当VCI盒接收到从计算机传送的指令后,将进行处理,转换成协议的正确形式再传送给ECU。ECU接收到指令后,与自己内部的指令进行比较,如正确,则将数据返回到诊断盒,经VCI盒处理,再发送到计算机上(如图4所示)。

图4 通讯中信号的传递

2.1 数据的发送与接收

当系统初始化完成后,开始故障诊断通讯,本系统利用RS-232通讯模式,通讯在数据的发送和接收过程中实现,图5、图6为数据发送和接收的流程图。

2.2 数据处理

在故障诊断数据处理的理论分析方面,研究了粗糙集理论及基于粗糙集理论的决策系统约减方法,构建了最优决策系统,简化了诊断结构,提高了诊断效率。该系统集各种数据处理功能于一身,包括阶次分析结果及各种时频信号特征值的存储及读取、诊断过程中所需各种ECU模块参数的设置、阶次分析各种参数的输入与读取、通过图形显示直观明了地分析数据、修改及拟定诊断结果中对应的故障类型、生成故障报表及对诊断结果进行实时查询等功能。在诊断通讯过程中,数据接收的过程,是一个数据处理的过程,根据ECU所对应的相应的协议,对其所接收到的数据作相应的处理。如图7所示。

图5 数据发送流程图

图6 接收命令流程

3 结束语

串口通讯的连接,是整个汽车故障诊断通讯的基础,串口通讯对整个诊断系统的工作性能,甚至是整个机车的工作性能,都有着重要的影响。模块化的构架理念,在整个通讯过程中具有重要的影响意义。本文利用串口通讯的强大功能,采用VB6.0程序编写,实现了汽车ECU模块与诊断盒及计算机之间的通讯。

[1]范逸之,陈立元.VisualBasic与RS232串行通信控制[M].北京:清华大学出版社,2002.

图7 数据处理流程图

[2]刘 畅,江道辉.利用SPComm控件实现PC机与单片机串口通讯[J].微计算机信息,2005,(12):89-91.

猜你喜欢
PC机流程图串口
浅谈AB PLC串口跟RFID传感器的通讯应用
一种程序源代码的标准化流程图转化方法∗
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
基于单片机与PC机的电气量采集系统设计
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式
VIVID3彩色超声仪结构原理及维修
宁海县村级权力清单36条