摘要
本篇筆記主要記錄基于恩智浦MPC5744P的SAE J1939協(xié)議棧開發(fā),接口設(shè)計,以之前總結(jié)的CAN驅(qū)動設(shè)計為基礎(chǔ)。
準(zhǔn)備工作
準(zhǔn)備一個CAN驅(qū)動可以正常工作的工程。
熟悉J1939協(xié)議文檔和標(biāo)準(zhǔn),特別是J1939-21和J1939-81。
CAN
恩智浦的MPC5744P控制器局域網(wǎng)絡(luò)CAN,跟我們之前使用的恩智浦Kinetis KV, 等系列的flexCAN結(jié)構(gòu)基本是一樣的,MPC5744P 支持CAN2.0B。CAN 的高層協(xié)議,J1939 是基于CAN2.0B的擴展幀,29位標(biāo)識符,支持單幀和多幀收發(fā)通信。本次設(shè)計主要實現(xiàn)SAE J1939 數(shù)據(jù)鏈路層和網(wǎng)絡(luò)管理層。
J1939和CAN接口
接口函數(shù)
基于上次做好的CAN驅(qū)動提供一個發(fā)送函數(shù),一個接收處理函數(shù),作為與J1939協(xié)議棧的接口,來完成J1939所有功能的實現(xiàn)和應(yīng)用。
接收接口用于獲取總線上的CAN報文幀,然后交由J1939的處理函數(shù)解析。這里發(fā)送函數(shù)未列出。
數(shù)據(jù)類型
根據(jù)J1939的標(biāo)準(zhǔn)和要求特定義以下數(shù)據(jù)類型,方便程序的開發(fā)和應(yīng)用
J1939對外接口
J1939對外接口除過初始化,就一個函數(shù),所有功能在這個函數(shù)里實現(xiàn),因為J1939協(xié)議棧內(nèi)部有很多時基,設(shè)計的是基于10ms,所以這個函數(shù)放在10ms里調(diào)用。
測試
SAE J1939協(xié)議是CAN的高層協(xié)議,是一種廣泛應(yīng)用于重型車,特種車,農(nóng)機,以及非路面設(shè)備車輛等。
SAE J1939 協(xié)議棧 主要參考標(biāo)準(zhǔn)J1939-21 數(shù)據(jù)鏈路層, J1939-81 網(wǎng)絡(luò)管理層 。標(biāo)準(zhǔn)的詳細(xì)內(nèi)容請參考SAE 的J1939標(biāo)準(zhǔn)。
編輯:jq
-
CAN
+關(guān)注
關(guān)注
57文章
2686瀏覽量
462910 -
數(shù)據(jù)鏈路層
+關(guān)注
關(guān)注
0文章
52瀏覽量
11977 -
接口函數(shù)
+關(guān)注
關(guān)注
0文章
11瀏覽量
8181
原文標(biāo)題:SAE J1939在恩智浦MPCxxx上實現(xiàn)
文章出處:【微信號:InterruptISR,微信公眾號:嵌入式程序員】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論