Ⅰ ECU刷寫,兩組CAN線,一組診斷,一組刷寫,怎麼跳線
ECU上電後,先進入bootLoader確定application程序是否有問題,如果沒有問題則跳轉至application,如果application出現問題,程序會停留在bootloader中,等待刷寫命令。軟體刷寫主要分為三部分:
1、pre-programming step
2、programming step
3、post-programming step
pre-programming step
從名字可以看出,該步驟主要是下載程序前的一些操作,包括喚醒ECU、讀取特定的DID、通信管理等,詳細的操作見圖1。
圖1 pre-programming step
其中:
1、喚醒ECU,喚醒的方法和策略由汽車製造商制定;
2、為了關閉DTC存儲和運行0x28服務關閉相關的通信,需運行0x10服務跳轉至extendedDiagnosticSession,
3、進入extendedDiagnosticSession後,汽車製造商可以進一步進行特定數據鏈路的初始化;
4、運行0x31服務對刷寫條件進行檢查,例如低壓電是否在正常范圍內;
5、為了防止刷寫過程中出現異常誤觸發DTC存儲,運行0x85服務關閉DTC的存儲;
6、該步驟提供給汽車製造商一個介面,可以通過0x31服務啟動或關閉ECU的故障安全響應(failsafe reaction);
7、為了提高刷寫速度,降低刷寫程序時匯流排負載率,通過運行0x28服務關閉無關報文,比如應用報文和網路管理報文;
8、在關閉部分通信之後,通過0x22服務讀取被刷ECU的狀態(應用軟體和數據)、軟體指紋信息等;
9、為了減少刷寫的時間,可以通過0x87服務提高CAN匯流排的波特率。
programming step
該步驟用於將軟體或者數據下載到被刷ECU中,主要包括進入特定的安全等級、寫入指紋信息、下載軟體和數據等,如圖2所示。
圖2 programming step
其中:
1、運行0x10服務進入programmingSession;
2、運行0x27服務進入特定的安全等級;
3、運行0x2E服務將指紋信息寫入ECU;
4、運行0x34、0x36、0x37服務將永久存儲區寫入默認值;
5、運行0x31服務檢查步驟4是否成功,另外一種方法是通過0x37的響應確定是否成功;
6、運行0x31服務對特定的Flash進行擦除;
7、分別運行0x34、0x36、0x37服務將Flash driver下載至內存中;
8、運行0x31服務檢查Flash driver下載是否成功;
9、分別運行0x34、0x36、0x37服務將軟體和數據下載至ECU的flash中;
10、運行0x31服務檢查步驟9是否下載成功;
11、運行0x31服務驗證程序是否能正常運行,例如checksum、標志位等;
12、在下載完軟體和數據後,汽車製造產商需要一些特定的操作,比如寫入VIN碼等。
post-programming step
該步驟主要通過0x11服務對ECU進行復位或者通過0x10服務將session切換至defaultSession,如圖3所示,如果在pre-programming step中調整了波特率,須通過特定的操作將波特率調整至正常值。通常操作是運行0x11服務使ECU復位,回到正常狀態。
圖3 post-programming step
該刷寫流程是14229標准中提到的,不同的OEM有不同的標准,但是主體的步驟與14229應該還是相同的。
Ⅱ 汽車ecu程序怎麼編程
汽車ecu中的程序是程序員根據汽車的特點編寫的,每個廠家的編程代碼都不一樣。
汽車電子控制單元是指汽車的電子控制單元。它的主要功能是從感測器收集信息,然後計算一些數值,然後控制執行器執行相應的動作。知名企業包括博世、Mainland China和電裝。
ecu的開發需要硬體工程師、底層軟體工程師、控制策略工程師、標定工程師、上位機軟體工程師等人員。
產品級電子控制單元應具有以下功能:
1.bootloader:在開發過程中,下載程序和調試之間有一個特殊的介面,批量生產後程序可能會發生變化,因此需要編寫一個引導程序來更新程序。
2.信號採集:車上有很多感測器,包括模擬信號和數字信號,系統可以對信號進行採集和處理。
3.執行機構驅動:發動機上有很多驅動器,如節氣門、噴油電磁閥、點火電磁閥、氧感測器等。主要有高低電平、PWM波等兩種驅動信號。
4.通信:ecu與其他附件之間的通信是為了故障診斷和校準,可以快速准確地找到汽車的故障部位。