新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于K線/CAN總線的KWP2000協(xié)議分析及其協(xié)議棧的開

        基于K線/CAN總線的KWP2000協(xié)議分析及其協(xié)議棧的開

        作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

        圖6 協(xié)議棧開發(fā)及測試流程

        在MATLAB/Simulink/StateFlow中進行協(xié)議棧仿真開發(fā)是協(xié)議棧開發(fā)過程中的關(guān)鍵環(huán)節(jié),在這一過程中必須嚴格遵照協(xié)議標準來實現(xiàn)通訊邏輯,往往需要經(jīng)過多次“設(shè)計-仿真-修改”循環(huán)才能使系統(tǒng)最終趨于完善。MATLAB的圖形界面提供了方便快捷的仿真輸入/輸出接口,可大幅度加快開發(fā)進度。

        協(xié)議棧開發(fā)完成后可利用CANoe作為標準進行系統(tǒng)集成測試,CANoe的協(xié)議測試環(huán)境如圖7所示。

        1.jpg

        圖7 CANoe的測試環(huán)境示意圖

        CANoe中的KWP2000實際指的是基于的KWP2000,即15765協(xié)議。由于CANoe默認的硬件板卡是CAN卡,因此在建立仿真程序時,只需將ECU的網(wǎng)絡(luò)模塊設(shè)置為kwp2000.dll即可進行的KWP2000服務(wù)測試。kwp2000.dll中包含15765應(yīng)用層協(xié)議中規(guī)定的服務(wù)請求、服務(wù)指示、服務(wù)響應(yīng)和服務(wù)確認接口函數(shù),用戶調(diào)用這些函數(shù)即可完成Tester端和ECU端的KWP2000診斷服務(wù)。此外,該模塊中的功能函數(shù)還可對ECU的源地址、目標地址、尋址模式等參數(shù)進行動態(tài)設(shè)置。需要注意的是,kwp2000.dll目前只提供了部分KWP2000服務(wù)的接口函數(shù),如果用戶需要進行其它的KWP2000服務(wù)測試,必須根據(jù)KWP2000應(yīng)用層協(xié)議構(gòu)造服務(wù)報文數(shù)據(jù),然后調(diào)用該模塊中的 KWP_DataReq()和KWP_GetRxData()函數(shù)進行報文的發(fā)送和接收。

        進行基于K線的KWP2000服務(wù)測試時,需要將KLineCPL.dll模塊加入CANoe仿真環(huán)境,并使用一個代理節(jié)點來實現(xiàn)CAN網(wǎng)絡(luò)和K線之間的報文轉(zhuǎn)發(fā)。此時CANoe使用計算機的串口,并通過一個串口/K線轉(zhuǎn)換器與實際的ECU相連,如圖8所示。

        圖8 CANoe中基于K線的KWP2000測試連接示意圖

        6 結(jié)束語

        KWP2000是一套非常完善的車載故障診斷協(xié)議標準,協(xié)議的分層結(jié)構(gòu)使得KWP2000診斷服務(wù)并不依賴于某種特定的網(wǎng)絡(luò)介質(zhì),其應(yīng)用層可以移植到任何一種物理層和數(shù)據(jù)鏈路層協(xié)議之上。基于的KWP2000順應(yīng)了目前車載網(wǎng)絡(luò)發(fā)展的大趨勢,將逐步取代K線診斷協(xié)議,成為下一代車載診斷協(xié)議的主流之一。

        MATLAB/Simulink/Stateflow為協(xié)議棧開發(fā)提供了方便直觀的圖形用戶接口和功能強大的仿真調(diào)試環(huán)境及代碼生成工具,為嵌入式開發(fā)開辟了一條高效快捷之路。Vector公司的CANoe和相關(guān)硬件板卡是一個功能強大的應(yīng)用開發(fā)平臺,可針對基于K線和CAN總線的KWP2000進行 ECU和診斷設(shè)備的上層協(xié)議開發(fā)、測試及仿真。


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 共和县| 闽侯县| 昌乐县| 榕江县| 普安县| 泸溪县| 海兴县| 旬邑县| 呼伦贝尔市| 甘南县| 梓潼县| 明星| 新巴尔虎右旗| 长治市| 阳泉市| 黑山县| 尤溪县| 武陟县| 靖西县| 龙州县| 自贡市| 高要市| 安徽省| 万年县| 通河县| 虎林市| 紫云| 平安县| 公安县| 阳原县| 甘孜县| 湖州市| 介休市| 河池市| 屯留县| 郑州市| 阳东县| 阿图什市| 额尔古纳市| 永福县| 潼关县|