在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            K線診斷協(xié)議驅(qū)動器設(shè)計

            作者: 時間:2014-03-19 來源:網(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 初始化

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



            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉