国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于CAN總線的ECU在線編程技術

發(fā)布時間:2014-12-24 15:30    發(fā)布者:designapp

        點擊這里,你可以下載到有關汽車電子最新解決方案的白皮書及參考設計。

隨著IAP技術的出現(xiàn)以及Flash價格的降低,一般的電控單元(ECU)都具有IAP(In Application Programming)功能和較大的Flash空間,為實現(xiàn)ECU在線編程功能提供了必要條件。目前基于IAP技術的在線編程的方案有很多,采用的通信方式和具體實現(xiàn)方法也各不相同。參考文獻[2]采用RS232總線和YMODEM協(xié)議開發(fā)的用于智能終端的在線升級系統(tǒng),但是RS232總線的傳輸速率有限。參考文獻[3]采用LIN總線實現(xiàn)的適用于汽車ECU的在線升級系統(tǒng),LIN總線除了傳輸速率有限以外,同時它只是一種輔助總線,并不是所有車身ECU都采用LIN接口。參考文獻[1][4]采用基于CCP(CAN Calibration Protoc01)協(xié)議的在線升級系統(tǒng),兼具CAN總線傳輸速率快和CCP協(xié)議可擴展性好的優(yōu)點。本文采用CAN總線,基于CCP原理自定義協(xié)議的在線升級系統(tǒng),具有傳輸速度快的特點。自定義協(xié)議各命令基本沿用CCP協(xié)議,但內(nèi)容做了改動,這樣通過改動協(xié)議內(nèi)容能夠很好地適合特定環(huán)境的應用。同時在升級過程中加入升級請求標志位,能夠很好地改進程序下載過程中命令延時等待、應用程序下載失敗以后下次無法連接的問題。
1 在線編程系統(tǒng)設計
在線編程系統(tǒng)硬件主要包含三個部分:帶有下載上位機軟件的PC機、USB—CAN接口卡和安裝有Bootloader程序的ECU。上位機通過USB—CAN接口卡與ECU通信,并進行代碼的升級。軟件主要包含兩個部分:上位機的Bootloader下載程序和下位機的Bootloader程序。
1.1 通信協(xié)議與上位機程序設計
1.1.1 通信協(xié)議的制定
系統(tǒng)通信協(xié)議的以CCP協(xié)議原理為基礎,結合實際操作過程的需求來制定。CCP協(xié)議提供11個基本命令和17個可選命令,基本命令包括:CONNECT、GET_CCP_VERS lON、EXCHANGE_ID、SET_MTA、DNLOAD、UPLOAD、GET_DAQ_PTR、WRITE_DAQ、START_STOP、DISCONNECT。本協(xié)議采用其中CONNECT、DISCONNECT、CLEAR_MEMORY、PROGRAM、SETMTA。命令內(nèi)容根據(jù)實際需要自定義;消息應答信號有連接成功應答、編程準備就緒應答、頁編程完成應答、編程完成應答、編程失敗應答、SECTION擦除就緒應答、SEC—TION擦除完成應答等。本套自定義協(xié)議能夠很好地應用在實際下載過程中。
1.1.2 PC端下載程序的組成
PC端的Bootloader下載程序主要功能是實現(xiàn)對目標文件的解析和與下位機軟件通信。下載程序采用VisualC++6.0編寫,主要分成目標文件加載與解析以及Flash編程兩個模塊。
(1)目標文件的生成和解析
系統(tǒng)應用程序文件采用*.HEX格式文件,該文件是記錄文本行的ASCII文本文件,每一行是一條記錄,每條記錄是16進制數(shù)組成的機械碼或數(shù)據(jù)常量。記錄格式::LL ADDR TT[DDD…]CC
其中,冒號是記錄開始;LL表示數(shù)據(jù)長度,即[DDD…]的字節(jié)數(shù);ADDR表示地址信息;TT表示記錄的類型;[DDD…]表示數(shù)據(jù)內(nèi)容;CC表示校驗和。
利用Tasking開發(fā)環(huán)境,能夠生成包含應用程序的*.HEX文件,文件中的記錄類型只有數(shù)據(jù)記錄、線性擴展地址記錄和文件結束記錄。通過上位機載入目標文件,逐條檢索文件內(nèi)容將帶有地址信息的數(shù)據(jù)解析出來,并以CAN數(shù)據(jù)幀(8字節(jié))的形式存放,每16幀數(shù)據(jù)組合成一個頁,同時記錄每個數(shù)據(jù)頁的首地址。
(2)Flash編程模塊
Flash編程模塊實現(xiàn)與下位機的通信,主要包含命令的解析、CAN總線驅(qū)動、數(shù)據(jù)發(fā)送和狀態(tài)顯示等部分。CAN總線驅(qū)動采用廣州周立功單片機發(fā)展有限公司的USB—CAN采集卡的驅(qū)動程序,加入提供的庫函數(shù),來實現(xiàn)對于CAN總線數(shù)據(jù)的發(fā)送和接收。上位機軟件提供相關命令的按鈕,下載過程中通過按動相應按鈕來實現(xiàn)命令的發(fā)送。下載過程中如果接收到連接成功、編程完成或者編程失敗等信號以后,顯示相應狀態(tài)。
1.1.3 PC端下載程序的運行流程
PC端程序運行以后,通過上位機界面上的“載入文件”按鈕,將要升級程序HEX文件載入,點“解析按鈕”,程序自動將HEX文件分成包含有效數(shù)據(jù)長度為128字節(jié)的頁,同時將頁首地址保存。根據(jù)已經(jīng)制定好的協(xié)議,上位機將這些命令封裝成CAN總線消息發(fā)送到下位機。編程過程中,上位機將所需要發(fā)送的程序頁總數(shù)發(fā)送給下位機,然后從第一頁開始發(fā)送,每一頁發(fā)送完成以后,等待下位機發(fā)送頁編程完成信號,完成以后繼續(xù)發(fā)送下一頁,直到所有程序頁都發(fā)送完成,這時如果無錯誤,接收下位機編程完成應答消息,顯示編程完成;否則顯示編程失敗。程序流程圖如圖l所示。


圈1 PC端下載程序流程圖





       
1.2 Bootloader設計
Flash編程的機制主要有兩種,分別是調(diào)用Flash擦寫函數(shù)法和Flash kernel。Flash kernel法需要在進行軟件升級時將Bootloader程序中Flash擦寫以及相關的初始化程序都下載到單片機RAM中,這對RAM資源的要求較高,對于單片機來說這是有困難的。采用Flash擦寫函數(shù)法,只需要在升級程序時調(diào)用Flash擦寫函數(shù)即可。對于某些單片機,在對Flash進行擦寫時,加在Flash區(qū)的電壓高于普通電壓,會引起Flash區(qū)的操作不穩(wěn)定,因此也需要將Flash擦寫函數(shù)放在RAM中運行,這樣采用Flash擦寫函數(shù)能夠有效的減少RAM區(qū)的占用。In—fineon XC2000單片機支持同時對不同頁的讀/寫操作,不會出現(xiàn)Flash擦寫操作不穩(wěn)定的問題,因此本設計采用Flash擦寫函數(shù)法。
1.2.1 Flash空間代碼分布
本設計中ECU采用XC2785A單片機,其片上集成32 KB的PSRAM和832 KB的Flash(0xC00000~oxCCFFFF)用于代碼存儲。Flash陣列由4個塊組成,分別是F0(256 KB,0xC00000~0xC3FFFF)、F1(256 KB,0xC40000~0xC7FFFF)、F2(256 KB,0xC80000~0xCBFFFF)、F3(64 KB,0xCC0000~0xCCFFFF)。每一個Flash塊由若干個大小為4 KB的扇區(qū)組成,而每一個扇區(qū)可分為32個頁(128字節(jié)),可封每個頁單獨進行擦除和編程操作。Flash區(qū)段的最開始存放程序的中斷向量表,0xC01000~OxCODFFF區(qū)段存放Bootloader代碼,0xC0E000~0xC0EFFF區(qū)段中的最開始那個頁存放升級標志,0xCOF000~0xCOFFFF區(qū)段為單片機保留區(qū)段,0xCl0000~0xCCFFFF段存放應用程序,代碼空間分布如圖2所示。


圖2 Flash空間代碼分布示惹圖


1.2.2 Bootloader程序流程
復位中斷向量的出口地址是0xC01000,因此單片機上電啟動或者軟件重啟以后,首先跳轉到STARTUP.C,通過判斷升級標志是否置位來進行跳轉。若置位表示有升級請求,則進行Bootloader的初始化,然后執(zhí)行主函數(shù),升級完成以后擦除標志位;若無升級請求則跳轉到用戶程序區(qū)執(zhí)行用戶程序。用戶程序更新時,需要同時更新中斷向量,這樣保證用戶程序能夠正常使用中斷功能。
參考文獻[1]中采用的方法是在用戶程序運行時,接受到連接命令,則單片機跳轉到Bootloader程序執(zhí)行升級流程,但是如果升級過程中出現(xiàn)錯誤,用戶程序升級未完成,則下一次上電系統(tǒng)將無法運行。參考文獻[4]中,采用上電進入Bootloader之前發(fā)送握手信號,等待上位機回復,這樣每次上電都要先進行Bootloader的初始化,并且等待這種方式不能很好地保證和上位機連接。本文采用增加升級狀態(tài)標志位的方法,用戶程序在運行時,如有升級請求則置狀態(tài)標志位,并軟件重啟。重啟以后,單片機先檢測狀態(tài)標志位,有升級請求則進入Bootloader進行軟件升級,若升級過程中出現(xiàn)錯誤導致升級未完成的話,升級狀態(tài)標志位將不會清除,單片機重啟以后仍然進去Bootloader,直接操作上位機上的編程按鈕即可進行程序升級操作。這種方法能夠有效解決升級過程中出現(xiàn)失敗以及握手等待的問題,下位機軟件流程如圖3所示。


圖3下位機軟件流程圖





       
1.3 在線編程系統(tǒng)工作流程
系統(tǒng)連接完成以后,通過上位機載入需要更新的應用程序文件,點擊“CONNECT”按鈕,在線編程系統(tǒng)啟動,系統(tǒng)工作過程如圖4所示。上位機界面中顯示連接成功,則可進行下一步操作。點擊擦除按鈕,上位機發(fā)送擦除指令,下位機擦除相應Flash區(qū)域以后發(fā)送給上位機應答信號。上位機給下位機發(fā)送編程命令的同時,發(fā)送給下位機需要編程的頁總數(shù)。下位機在接收到頁編程地址以后,連續(xù)接收上位機發(fā)送過來的16幀數(shù)據(jù)(一頁128字節(jié)),然后擦除相應區(qū)域,并將這一頁數(shù)據(jù)寫入相應的頁,頁編程完成以后向上位機發(fā)送頁編程完成應答,接著接收上位機發(fā)送過來的下一頁數(shù)據(jù),當所有頁編程完成以后向上位機發(fā)送編程完成應答信號。此時斷開連接,ECU將會軟件重啟。若編程過程中有任一頁編程失敗,上位機則顯示編程失敗,斷開連接以后ECU重啟,仍然進入Bootloader程序,然后直接點擊編程即可。


圖4 系統(tǒng)工作過程


2 在線編程功能驗證
在線升級系統(tǒng)采用PC機(安裝有上位機軟件),連接廣州周立功單片機發(fā)展有限公司的USB—CAN采集卡,ECU的CPU采用Infineon XC2785A單片機,系統(tǒng)連接完成以后進行升級測試。本文設計的在線編程方案測試結果如下:圖5為待更新程序的HEX文件(通過Tasking環(huán)境生成),其中有下劃線的位HEX文件記錄中的數(shù)據(jù)記錄,起始地址為0xCll000;圖6為程序下載到Flash以后的數(shù)據(jù),通過Tasking軟件的Debug狀態(tài),來查看Flash地址為0xCll000的數(shù)據(jù)。通過對比兩幅圖片,發(fā)現(xiàn)程序數(shù)據(jù)正確下載到了相應的Flash區(qū)域。在下載過程中,通過錯誤操作制造在線編程失敗現(xiàn)象,然后斷開連接,ECU重啟以后仍然進入Bootloader程序,直接在上位機界面上點擊“Program”,能夠完成在線升級。實驗結果表明,所設計的基于CAN總線的在線升級系統(tǒng)能夠?qū)崿F(xiàn)代碼在線下載的功能,并且能夠有效改善升級過程中下載失敗的問題。


圖5 目標HEX文件2圖6 Flash中的數(shù)據(jù)


結語
本文提出的基于CAN總線的ECU在線升級系統(tǒng)設計方案,切實可行,并已在Infineon XC2785A單片機上完成實際測試。Infineon XC2000單片機具有相同的內(nèi)核,因此此方案將對這一系列單片機的Bootloader設計具有指導意義。同時采用升級標志位的方法,對于單片機IAP功能的實現(xiàn)提供一個有益的參考。


本文地址:http://www.qingdxww.cn/thread-136557-1-1.html     【打印本頁】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內(nèi)容、版權和其它問題,我們將根據(jù)著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節(jié)省時間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品久久久久 | 激情欧美成人狠狠色金八天国 | 91久久国产青草亚洲 | 在线看片日本 | 91免费精品国偷自产在线在线 | 噜噜噜 综合 亚洲 | 日韩在线不卡 | 91一级片| 四虎免费视频 | 亚洲一区免费在线观看 | 99视频在线精品免费 | 成人精品在线视频 | 免费精品一区二区三区在线观看 | 日韩高清免费观看 | 四虎国产精品一区二区 | 69黄色 | 99re这里有免费视频精品 | 手机看片日韩 | 欧美一区永久视频免费观看 | 偷偷狠狠的日日日日 | 欧美国产日韩在线 | 亚洲三页 | 欧美 在线播放 | 久久婷婷久久一区二区三区 | 亚洲免费色视频 | 国产区精品福利在线社区 | 亚洲好骚综合 | 台湾黄三级高清在线观看播放 | 人人爰人人人人人鲁 | 成人国产在线看不卡 | 欧美性色xo影院永久禁欲 | 伊在人亚洲香蕉精品区麻豆 | 一区不卡在线观看 | 久久久综合视频 | 欧美视频亚洲视频 | 一级a毛片免费观看久久精品 | 污网站导航| 欧美日韩精品在线 | 国产一区二卡三区四区 | 九九香蕉视频 | 日本中文字幕视频 |