基于16位控制器的汽車車身電子控制系統解決方案
為了方便調試,可以在設備正常工作時將一個主機系統連接到目標MCU系統,從而在不干擾設備運行的條件下實現對閃存或寄存器內容的監測。所連接的調試系統也能取代 MCU的控制來讀寫 CPU寄存器、設置硬件斷點或跟蹤單條指令。
傳統的電路嵌入式仿真器與目標系統之間通常需要30到40個連接,而上述后臺調試接口只需要2到4個連接。單根BKGD通信信號和公共地是必須的。增加復位信號能使主機更容易地強迫和控制系統復位,在某些情況下增加VDD能允許調試夾具從目標系統中“竊取”電源。
這種簡單的接口為汽車電子設計師提供了對安裝在運動汽車電子控制模塊中的MCU的調試訪問能力。當汽車在正常路況下行進時,許多問題只能經過調試才能發現。
內存編程
與閃存編程相關的最重要因數是速度與方便性。編程速度取決于閃存單元的編程時間以及從編程器到目標MCU的數據傳輸速度,當然還有其它因數,如編程前擦除陣列的時間,用于驗證編程操作成功與否的時間。MC9S12DP256編程任意16位字的時間是45ms,但一個突發編程操作允許對同一排32字閃存中的任意附加字以20ms速度編程。理論上采用單線后臺調試接口可在 27ms 內傳送一個字信息,這比閃存的實際編程時間稍慢一些。實際編程還需額外的任務開銷,如驗證開銷。獨立編程器工具SCBDMPGMR12能在稍少于10s的時間內完成256KB閃存的擦除、編程和驗證操作。
驗證是產生開銷的重要因數之一。重傳所有的數據以實現字對字的驗證將使編程時間加倍。一個快速的辦法是在數據編程進閃存時進行CRC計算,然后在整個閃存編程完成后重讀閃存內容來驗證CRC值。這種操作完全能以總線速度進行,而且無需重傳數據。
將數據到目標的傳送分離出來,使它在數據編程進閃存前完成也會使編程時間加倍。交好的方法是數據傳送與編程操作并行展開。通常, 要先把編程算法發送到目標MCU,從而便于管理收到的數據并把數據送入RAM緩沖器,然后控制擦除與編程操作。該編程算法利用二個數據緩沖器來接收將被編程進閃存的數據。當第一個緩沖器裝滿數據后,編程算法就開始把這些數據編程進閃存,同時新的數據被裝載到第二個緩沖器。后臺接口可以用來接收數據并把它們寫入RAM,這一操作不會干擾目標CPU的工作,因為CPU是從另外一個緩沖器讀取數據編程進閃存的。
MC9S12DP256 中的閃存被分成4個獨立的64KB塊,因此可獨立地對這4個塊執行擦除與編程操作。在基于后臺調試的閃存編程情況下,由于數據傳送速度稍慢于閃存的平均字編程速度,因此試圖交織進行獨立陣列的編程操作是不切實際的,但對所有4個塊并行執行批量擦除操作是可行的。
后臺訪問給首次閃存編程提供了極其便利的途徑,但一些用戶仍希望采用其它系統總線如CAN總線、J1850總線或串行接口總線來完成所有的現場再編程操作。在主應用程序中包含合適的啟動裝載程序能方便地做到這一點。為了對來自于成品汽車中某根總線的某些特殊代碼作出響應,啟動裝載程序應能擦除閃存并接受新的編程數據。 本文引用地址:http://www.104case.com/article/162546.htm
評論