一種基于can總線的ecu在線程序升級系統及方法
【技術領域】
[0001 ]本發明涉及電動汽車技術領域,特別涉及一種基于CAN總線的ECU在線程序升級系統及方法。
【背景技術】
[0002]目前,ECU安裝在車上以后,要更新其中的程序,傳統的方法是通過調試接口(JTAG,DAP等)來下載程序,非常不方便。以電池管理系統為例,其主控制單元和從控制單元均固定于箱體之中,如果要升級應用程序,操作非常不方便。因此,有必要設計一種更方便快捷的方案實現程序升級。現在市場上有一些在線程序升級方案,其中大部分是基于RS232總線,但是RS232總線速率比較低,而且RS232總線不滿足汽車應用要求。CAN總線在汽車領域有著廣泛應用,因此設計一套基于CAN總線的ECU在線程序升級系統就顯得很有必要。
【發明內容】
[0003]為了克服已安裝在車上ECU的程序升級難題,本發明提供一種基于CAN總線的ECU在線程序升級系統及方法。
[0004]本發明的技術方案是:
一種基于CAN總線的E⑶在線程序升級系統,包括裝有上位機應用程序的PC機、CAN卡和車載嵌入式控制單元ECU,所述CAN卡一端與PC機通過USB接口連接,另一端通過CAN總線連接車載嵌入式控制單元ECU,車載嵌入式控制單元ECU安裝有用于引導加載的下位機Boot loader程序,上位機軟件與下位機Boot loader程序的通訊協議是基于標準的CCP協議編寫。
[0005]—種基于CAN總線的E⑶在線程序升級方法,包括步驟:
51、將新的用戶程序編譯生成HEX文件,上位機軟件加載并解析該HEX文件,得到相關的程序數據以及數據存儲地址;
52、上位機軟件在解析完HEX文件之后,就進入了與下位機通訊階段,上位機會首先發連接命令,該命令包含下位機地址信息,確保與唯一確定的下位機建立連接,下位機接收到連接命令,置位程序升級標志;
53、上位機和下位機建立好連接之后,通過密鑰機制進行密匙驗證,密鑰驗證程序完成之后,上位機會發擦除命令,下位機擦除掉原有程序數據;
54、之后上位機開始發送數據開始地址以及數據,下位機接收數據開始地址以及數據,并根據開始地址判斷是否需要將已經接收到的數據寫入Flash,直到全部數據接收完成并且全部寫入Flash中;
55、數據全部寫入Flash之后,上位機軟件發送斷開連接命令,下位機清除程序升級標志,復位下位機,進入用戶程序。
[0006]優選的,在上位機軟件解析完目標文件以后,根據地址大小對目標文件進行排序。
[0007]優選的,數據的分頁工作和Flash寫入算法是在下位機Bootloader程序中完成的,上位機軟件只負責解析目標文件并進行排序。
[0008]本發明的優點是:
本發明所提供的基于CAN總線的ECU在線程序升級系統及方法,采用CAN總線,實現ECU的在線程序升級,無需將ECU從車上拆下來,只需要CAN卡一端連接PC機的USB接口,另一端連接ECU的CAN總線,就可以通過上位機軟件實現ECU程序升級,不用增加額外的硬件,非常便捷。
【附圖說明】
[0009]下面結合附圖及實施例對本發明作進一步描述:
圖1為本發明所述的基于CAN總線的ECU在線程序升級系統的結構示意圖;
圖2本發明實施例中基于CAN總線的ECU在線程序升級系統的上位機軟件界面圖;
圖3本發明實施例中基于CAN總線的ECU在線程序升級系統的上位機軟件流程圖;
圖4本發明實施例中基于CAN總線的E⑶在線程序升級系統的下位機Bootloader程序流程圖。
【具體實施方式】
[0010]如圖1所示,本發明所揭示的基于CAN總線的ECU在線程序升級系統,包括裝有上位機應用程序的PC機、kvaser公司的USBcan Light型CAN卡和車載嵌入式控制單元E⑶,所述CAN卡一端與PC機通過USB接口連接,另一端通過CAN總線連接車載嵌入式控制單元ECU,車載嵌入式控制單元ECU安裝有用于引導加載的下位機Bootloader程序,上位機軟件與下位機Bootloader程序的通訊協議是基于標準的CCP協議編寫。本發明通過CAN總線,實現在線程序升級過程,只需要CAN卡一端連接PC機的USB接口,另一端連接E⑶的CAN總線,就可以通過PC機更新E⑶中的用戶程序。
[0011]圖2所展示的是上位機軟件界面圖,上位機軟件是LabVIEW開發環境編寫的。主界面主要由CAN卡配置區,加載程序選擇區,help文件區,加載進度顯示區和加載狀態顯示區。通過界面中不同功能的依次執行,可以實現HEX文件的正確下載。
[0012]本發明所述的基于CAN總線的E⑶在線程序升級方法包括步驟:
51、將新的用戶程序編譯生成HEX文件,上位機軟件加載并解析該HEX文件,得到相關的程序數據以及數據存儲地址;
52、上位機軟件在解析完HEX文件之后,就進入了與下位機通訊階段,上位機會首先發連接命令,該命令包含下位機地址信息,確保與唯一確定的下位機建立連接,下位機接收到連接命令,置位程序升級標志;
53、上位機和下位機建立好連接之后,通過密鑰機制進行密匙驗證,密鑰驗證程序完成之后,上位機會發擦除命令,下位機擦除掉原有程序數據;
54、之后上位機開始發送數據開始地址以及數據,下位機接收數據開始地址以及數據,并根據開始地址判斷是否需要將已經接收到的數據寫入Flash,直到全部數據接收完成并且全部寫入Flash中;
55、數據全部寫入Flash之后,上位機軟件發送斷開連接命令,下位機清除程序升級標志,復位下位機,進入用戶程序。
[0013]圖3所展示的是上位機軟件流程圖,在完成CAN卡配置之后,通過上位機主界面中的“打開文件”按鈕選擇需要載入的HEX文件,點擊“Reprogram”按鈕解析所在如的HEX文件,當點擊“Download”之后會依次運行接下來的連接下位機、獲取種子、解鎖下位機等流程。
[0014]圖4所展示的是下位機Bootloader程序流程圖,當上位機點擊“Download”按鈕之后,上位機和下位機進行通訊,上位機只有接收到下位機正確的應答信息,才會進入下一個流程。
[0015]本具體實施通過CAN總線,實現E⑶的在線程序升級,只需要CAN卡一端連接PC機的USB接口,另一端連接E⑶的CAN總線,就可以通過上位機軟件實現E⑶程序升級。
[0016]上述實施例只為說明本發明的技術構思及特點,其目的在于讓熟悉此項技術的人能夠了解本發明的內容并據以實施,并不能以此限制本發明的保護范圍。凡根據本發明主要技術方案的精神實質所做的修飾,都應涵蓋在本發明的保護范圍之內。
【主權項】
1.一種基于CAN總線的ECU在線程序升級系統,其特征在于:包括裝有上位機應用程序的PC機、CAN卡和車載嵌入式控制單元E⑶,所述CAN卡一端與PC機通過USB接口連接,另一端通過CAN總線連接車載嵌入式控制單元ECU,車載嵌入式控制單元ECU安裝有用于引導加載的下位機Boot loader程序,上位機軟件與下位機Boot loader程序的通訊協議是基于標準的CCP協議編寫。2.一種基于CAN總線的E⑶在線程序升級方法,其特征在于,包括步驟: 51、將新的用戶程序編譯生成HEX文件,上位機軟件加載并解析該HEX文件,得到相關的程序數據以及數據存儲地址; 52、上位機軟件在解析完HEX文件之后,就進入了與下位機通訊階段,上位機會首先發連接命令,該命令包含下位機地址信息,確保與唯一確定的下位機建立連接,下位機接收到連接命令,置位程序升級標志; 53、上位機和下位機建立好連接之后,通過密鑰機制進行密匙驗證,密鑰驗證程序完成之后,上位機會發擦除命令,下位機擦除掉原有程序數據; 54、之后上位機開始發送數據開始地址以及數據,下位機接收數據開始地址以及數據,并根據開始地址判斷是否需要將已經接收到的數據寫入Flash,直到全部數據接收完成并且全部寫入Flash中; 55、數據全部寫入Flash之后,上位機軟件發送斷開連接命令,下位機清除程序升級標志,復位下位機,進入用戶程序。3.根據權利要求2所述的基于CAN總線的ECU在線程序升級系統,其特征在于,在上位機軟件解析完目標文件以后,根據地址大小對目標文件進行排序。4.根據權利要求3所述的基于CAN總線的ECU在線程序升級系統,其特征在于,數據的分頁工作和Flash寫入算法是在下位機Bootloader程序中完成的,上位機軟件只負責解析目標文件并進行排序。
【專利摘要】本發明公開了一種基于CAN總線的ECU在線程序升級系統及方法,包括裝有上位機應用程序的PC機、CAN卡和車載嵌入式控制單元ECU,所述CAN卡一端與PC機通過USB接口連接,另一端通過CAN總線連接車載嵌入式控制單元ECU,車載嵌入式控制單元ECU安裝有用于引導加載的下位機Bootloader程序,上位機軟件與下位機Bootloader程序的通訊協議是基于標準的CCP協議編寫。本發明所提供的基于CAN總線的ECU在線程序升級系統及方法,采用CAN總線,實現ECU的在線程序升級,無需將ECU從車上拆下來,只需要CAN卡一端連接PC機的USB接口,另一端連接ECU的CAN總線,就可以通過上位機軟件實現ECU程序升級,不用增加額外的硬件,非常便捷。
【IPC分類】G06F9/445
【公開號】CN105573807
【申請號】CN201511014001
【發明人】金達鋒, 張振兵
【申請人】清華大學蘇州汽車研究院(吳江)
【公開日】2016年5月11日
【申請日】2015年12月31日