1.一種DSP芯片在線升級方法,其特征在于:所述升級方法通過CAN通訊總線對各節(jié)點的DSP芯片進行在線程序升級。
2.根據(jù)權(quán)利要求1所述的DSP芯片在線升級方法,其特征在于:所述升級方法包括以下步驟:
S1:打開上位機軟件,設(shè)置好必要配置,進行COFF文件解析;
S2:使用CAN通信方式連接DSP芯片與上位機,給DSP芯片上電復(fù)位并啟動CAN通訊模塊;
S3:DSP撥碼開關(guān)均上拉,保持默認從FLASH啟動,程序運行到主函數(shù)入口地址處;
S4:開始啟動二次boot程序,延時等待約5s,若超時,直接跳轉(zhuǎn)進入S8;
S5:上位機在5s內(nèi)不斷發(fā)送boot升級命令,若命令正確,則進入S6,若受到干擾或命令錯誤,則跳轉(zhuǎn)到S2;
S6:用戶程序升級過程:將S1中解析后提取的COFF文件中的段數(shù)據(jù),通過CAN通訊分包將其發(fā)送至下位機DSP芯片,更新FLASH中用戶程序,完成加載用戶程序升級;
S7:跳轉(zhuǎn)到用戶程序入口地址,進入S8;
S8:執(zhí)行用戶程序,完成boot升級功能。
3.根據(jù)權(quán)利要求2所述的DSP芯片在線升級方法,其特征在于:所述步驟S1中COFF文件解析過程包括:
a1、在CCS上根據(jù).cmd文件內(nèi)存分配要求編寫用戶升級程序,然后編譯鏈接生成最終可執(zhí)行的用戶程序.out文件,即COFF文件;
b1、上位機直接加載用戶程序.out文件進行解析,將解析完數(shù)據(jù)存放入緩存區(qū)和相應(yīng)的變量中,生成一個擴展名為.sc文件進行保存;
c1、使用TI工具dis2000.exe對.out文件進行反匯編,與上位機解析出的數(shù)據(jù)進行對比,確保上位機解析正確;
d1、提取COFF文件中對應(yīng)的段數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的DSP芯片在線升級方法,其特征在于:所述步驟b1中上位機直接加載用戶程序.out文件進行解析的過程為:首先分析.out文件的文件頭以確定有多少個段,然后逐段分析段信息頭,根據(jù)段屬性標識以確定是否需要下載,段頭中的絕對地址、段數(shù)據(jù)長度等信息作為升級文件的一部分,與需下載的段數(shù)據(jù)合并成最終的下載文件,最后以.sc文件的形式保存所有解析得到的數(shù)據(jù)信息;所述步驟d1中提取COFF文件中的段數(shù)據(jù)與步驟b1解析過程中確定需下載的段數(shù)據(jù)進行對應(yīng)。
5.根據(jù)權(quán)利要求2所述的DSP芯片在線升級方法,其特征在于:所述步驟S6中通過CAN通信啟動用戶程序升級過程為:
a6、DSP芯片通過CAN總線接收上位機發(fā)送的擦除命令,擦除用戶程序所需固化的FLASH扇區(qū),成功擦除后反饋信息告訴上位機擦除成功;
b6、DSP芯片通過CAN總線接收上位機發(fā)送的寫命令,上位機將S1中解析后提取的用戶程序COFF文件中的段數(shù)據(jù),通過CAN通訊分包將其發(fā)送至下位機DSP芯片,DSP芯片再根據(jù).cmd內(nèi)存分配方式合理分配用戶程序各段在FLASH中的存儲空間,然后執(zhí)行寫操作將用戶程序按數(shù)據(jù)段組包依次寫入FLASH對應(yīng)扇區(qū),寫成功后反饋信息告訴上位機FLASH寫入成功;
c6、DSP芯片通過CAN總線接收上位機發(fā)送的退出命令,指示DSP編程操作完成,不用返回給上位機任何信息,直接退出BootLoader程序。
6.根據(jù)權(quán)利要求5所述的 DSP芯片在線升級方法,其特征在于:所述步驟b6中通過CAN通訊分包發(fā)送的方式為:通過三次探測,下位機進行COFF文件數(shù)據(jù)段下載;
第一次探測:首先給DSP芯片發(fā)送一個數(shù)據(jù)‘A’進行握手,握手成功后則繼續(xù)給DSP芯片發(fā)送一個文件報文數(shù)據(jù)進行傳輸通訊測試,成功測試后反饋一個探測成功信息,否則反饋一個失敗信息;
第二次探測:首先給DSP芯片發(fā)送一個數(shù)據(jù)‘A’進行握手,握手成功后則繼續(xù)給DSP芯片發(fā)送另一個文件報文數(shù)據(jù)進行傳輸通訊測試,成功測試后反饋一個探測成功信息,否則反饋一個失敗信息。
7.在前兩次探測均成功的情況下進行第三次探測:首先仍然給DSP芯片發(fā)送一個數(shù)據(jù)‘a(chǎn)a’進行握手,握手成功后先給DSP芯片發(fā)送一個擦除命令,等待擦除成功后再給DSP芯片發(fā)送FLASH寫操作命令,然后將數(shù)據(jù)段報文分包傳輸給DSP芯片,等待寫命令成功完成后發(fā)送退出命令,上位機提示下載完成,否則任何一個步驟出錯均反饋一個失敗信息,中斷文件下載程序過程。
8.根據(jù)權(quán)利要求6所述的DSP芯片在線升級方法,其特征在于:所述第三次探測中將數(shù)據(jù)段報文分包傳輸給DSP芯片的過程為:根據(jù)用戶程序COFF文件格式將其分成多個數(shù)據(jù)段,對每段進行分包處理,給每個包加上自定義的報頭和報尾,以12幀數(shù)據(jù)為一個包進行發(fā)送,按數(shù)據(jù)段逐包發(fā)送,直到最后一個包發(fā)送結(jié)束。
9.根據(jù)權(quán)利要求5所述的DSP芯片在線升級方法,其特征在于:所述步驟b6中寫操作過程采用FLASH燒寫算法:通過CAN總線接收上位機發(fā)送的用戶程序分包數(shù)據(jù),再根據(jù)用戶程序段分配FLASH獨立扇區(qū),RAM緩存區(qū)中每接收到一個數(shù)據(jù)包就進行斬頭去尾操作,立即將剩余的用戶程序數(shù)據(jù)寫入指定的FLASH內(nèi)存區(qū)進行固化,采用邊接收邊燒寫的方式,直到所有用戶程序下載結(jié)束。
10.根據(jù)權(quán)利要求5所述的DSP芯片在線升級方法,其特征在于:所述步驟b6中FLASH中的存儲空間的分配方式如下:FLASH 8個扇區(qū)中前四個扇區(qū)固化BootLoader程序,后四個扇區(qū)燒錄用戶應(yīng)用程序。