首 页文档资料下载资料维修视频汽修在线平台
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 机械工程 > 摩托车维修
浅析电喷摩托车控制单元制作及下线检测实现
来源:摩托车技术  作者:佚名  2018-06-14 10:23:42



    2.3数据帧的接收
    a)分析:串口通信是一位一位数据传送的,接收则是一个一个字节接收的,不是一帧一帧接收的。当接收到第一、第二个字节时,判断是否是FE,如果是,则表示接收一帧数据开始,并保存这两个数,然后接收第三个字节,为数据个数(Num),确定后面要接收的数据长度和触发事件,并把Num后面接收到的所有数据用数组保存起来,以备处理。
    b)变量(均为全局变量)定义:1)定义五个布尔值(Boolean). Framebeginone、 Framebegintwo:初始值为false,判断接收数据帧开始是否以FE开头;databegin:初始值为false,判断接收数据帧开始;commandok:初始值为false,判断是否接收命令字;Handshake:初始值为false,判断PC上位机与ECU通信是否成功;2)定义两个字节(Byte) a、 b变量:用于存储接收的第一、第二个字节FE;3)定义一个字节型数组:DBufA[]:长度1到255,用于存储接收个数后面的所有数据区内容。
    2.4实施的部分代码
    刀接收数据
      Procedure TMain.MSCommconnectionComm(Sender: TObject);
    Var //变量定义
    DataBuffer: array of byte;//用于接收一个一个字
    minteger; AllDataALLDataCs: byte;//判断校验和
    Begin
    AlIDataALLDataCs:=O;
    Try
    Set] ength(DataBuffer、 I);
      If mscommconnection.commevent=2 then
    Begin if databegin=false then
    Begin DataBuffer:=mscommconnection.input;
    If (DataBuffer [0]=53) then begin//判断接收命令字
    Sendata(254);
    Sendata(254);
    Sendata(2);
    Sendata(154);
    Sendata(152);
    Commandok:=true;
    Handshake:=true;
    End; end;
    If handshake=true then begin
    If Framebeginone=false then begin
    If DataBuffer [0]=254 then begin
    A:= DataBuffer [0];
    Framebeginone:=true;
    End; end;
      Else
    If Framebegintwo=false then begin
    If DataBuffer [0]=254 then begin
    B:= DataBuffer [0];
    Framebegintwo:=true;
    Mscommconnection.rthreshold:=29;
    End; end;
    End; end;
    Else begin
    For n:=1 to 29 do begin
    DataBuffer:=mscommconnection.input;
    DBufA [n]:=DataBuffer [0];
    ALLDataCs:=ALLDataCs+ DBufA [n];
    End;
    If DBufA [29]<>(a+b+ALLDataCs一DBufA [29])
mod 256 then begin
    Sendata(254);
    Sendata(254);
    Sendata(2);
    Sendata(124);
    Sendata(128);
Databegin:=false;
……
End
Else begin

Sendata(254);
Sendata(254);
Sendata(2);
Sendata(154);
Sendata(152);
End;
End; end;
Except
End; end;
///自定义发送数据模块
Procedure TMain.SendData (BData: byte); [2]
var
OutbufData: array of byte;
B
  egin
Setlength (outbufData、 1);
OutbufData [0]:=BData;
Mscommconnection. Output: =outbufData;
End;

    3 小结
    电子控制单元作为摩托车行业应对严格的国家法规的主要手段,也是满足客户追求动力性、经济性的重要途径。电子控制单元的精细制作,严格检测成为保证电子控制单元正常工作的基本。本文仅简单分析了控制单元基本制作和下线测试,成批量的生产,需要更加精准,精细的设备来处理。
 

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:134,312.50000 毫秒