新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > K線(xiàn)診斷協(xié)議驅(qū)動(dòng)器設(shè)計(jì)

K線(xiàn)診斷協(xié)議驅(qū)動(dòng)器設(shè)計(jì)

作者: 時(shí)間:2014-03-19 來(lái)源:網(wǎng)絡(luò) 收藏

void k_ifc_rx(void)

{

k_u8 ch,SciSr1;

SciSr1=Kline_periph[SCISR1];

ch=Kline_periph[SCIDRL];

TimerStop(k_TP4);

switch(k_curmsg.state){

case k_FMT:

if(k_REP==k_drvhandle.mode){

if(ch==k_curmsg.fmt){

k_curmsg.state=k_TGTADDR;

k_SendChar(k_curmsg.tgt_addr);

}

}else{

k_curmsg.state=k_TGTADDR;

k_curmsg.fmt=ch;

}

break;

case k_TGTADDR:

...

break;

case k_SRCADDR:

...

break;

case k_DATALEN:

if(k_REP==k_drvhandle.mode){

if(ch==k_curmsg.datalen){

k_curmsg.msgdatalen=0;

k_curmsg.state=k_SID;

k_SendChar(k_curmsg.sid);

}

}else{

k_curmsg.msgdatalen=0;

k_curmsg.datalen=ch;

free(k_curmsg.data);

k_curmsg.data=malloc(k_curmsg.datalen);

k_curmsg.state=k_SID;

}

break;

case k_SID:

if(k_REP==k_drvhandle.mode){

if(ch==k_curmsg.sid){

k_curmsg.msgdatalen++;

if(k_curmsg.msgdatalen==k_curmsg.datalen){

k_curmsg.state=k_CS;

k_SendChar(k_curmsg.checksu);

}else{

k_curmsg.state=k_DATA;

k_SendChar(k_curmsg.data[0]);

}

}

}else{

k_curmsg.sid=ch;

k_curmsg.msgdatalen++;

if(k_curmsg.datalen==k_curmsg.msgdatalen){

k_curmsg.state=k_CS;

}else{

k_curmsg.state=k_DATA;

}

}

break;

case k_DATA:

...

break;

case k_CS:

k_curmsg.state=k_FMT;

if(k_REP==k_drvhandle.mode){

if(ch==k_curmsg.checksum){

k_curmsg.done=1;

}

}else{

k_curmsg.checksum=ch;

k_curmsg.done=1;

}

break;

} if((k_REQ==k_drvhandle.mode)(k_FMT!=k_curmsg.state)){

TimerStart(k_REP_P4MS,k_TP4,0,1);

}

}2.2 初始化

在開(kāi)始診斷服務(wù)之前,診斷儀必須對(duì)ECU進(jìn)行初始化,通過(guò)ECU的響應(yīng)獲取ECU支持的報(bào)文頭格式和定時(shí)參數(shù),建立診斷通訊4。初始化過(guò)程如圖1所示,診斷儀發(fā)送一個(gè)25ms ’0’、25ms’1’的WuP(WakeUp Pattern),然后發(fā)送STC(StartCommunication) Request,ECU檢測(cè)出WuP并接收到正確的STC Request后返回STC Response,該報(bào)文的Data字段為由兩個(gè)字節(jié)構(gòu)成的“關(guān)鍵字(Key Word)”,指定了ECU所支持的報(bào)文頭和定時(shí)參數(shù)信息,如Key Word指定為0x8fea即表示在報(bào)文頭中采用附加長(zhǎng)度信息Len表示數(shù)據(jù)字段長(zhǎng)度,同時(shí)采用默認(rèn)的定時(shí)參數(shù)。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉