袁維蓉
本文詳細(xì)介紹了目前DSP芯片程序燒錄的一般方式和其存在的諸多問題,基于此原因針對性地開發(fā)了一種基于CAN總線的TI DSP 28335芯片程序的燒錄方法。此方法接線簡單便捷,燒寫速度比傳統(tǒng)方式快幾倍。
電機控制器主控芯片目前大多采用TI公司的數(shù)字信號處理器(簡稱DSP)芯片,如TMS320LF2407,TMS320F2812,TMS320F28335(下文簡稱28335)等,28335又因具有高性能靜態(tài)COMS技術(shù),主頻高達(dá)150MHz,還具有高性能的32位CPU以及增強型的CAN模塊等優(yōu)點而成為當(dāng)前電機控制器主控芯片的首選。
目前28335芯片程序燒寫技術(shù)背景
目前,常用的DSP程序燒寫有三種方法:利用仿真器燒寫、通過撥碼開關(guān)選擇芯片引導(dǎo)程序及CAN通訊單行燒寫。
大多目前,DSP程序燒寫一般是利用仿真器完成來進(jìn)行。DSP與仿真器通過JATG接口(2×7的雙排插針)進(jìn)行連接,而雙排插針只能布置在控制板上,無法引出到控制器殼體外,控制器一旦封蓋后就不方便再進(jìn)行程序升級;雖然在產(chǎn)品定型前的就算在程序調(diào)試階段可以使用仿真器進(jìn)行程序燒寫,但仿真器插拔次數(shù)過多接口就會造成接口松動,造成接觸不良,經(jīng)常出現(xiàn)導(dǎo)致DSP與CCS應(yīng)用軟件連接不上的問題故障。
后來,有些也有部分用戶通過目標(biāo)板上的撥碼開關(guān)選擇芯片引導(dǎo)程序,采用SPI\SCI串口或CAN通訊等方式燒錄程序。由于這種方式需進(jìn)行撥碼開關(guān)選擇,均需對目標(biāo)板進(jìn)行操作,且SPI\SCI為串口通訊,不能實現(xiàn)遠(yuǎn)程燒寫,且燒寫時間長,都不是程序燒寫的最佳方式。
再后來又出現(xiàn)了CAN通訊單行燒寫是另一種燒寫方式,其應(yīng)用于CAN通訊郵箱少的DSP芯片,通過采用少量郵箱進(jìn)行數(shù)據(jù)傳送,等待上位機目標(biāo)代碼完整傳送完一行數(shù)據(jù)后將該行數(shù)據(jù)燒寫到FLASH對應(yīng)地址中,完成本行燒寫后再進(jìn)行下一行數(shù)據(jù)傳輸。由于采用較少郵箱傳送數(shù)據(jù),決定了通訊傳輸速度慢,進(jìn)而影響整個程序燒寫的速度,這種方式也不是DSP28335最佳CAN通訊燒寫程序方法。
鑒于這些缺陷,以上幾種燒錄方法對控制器在廠內(nèi)的程序調(diào)試和用戶現(xiàn)場的程序升級均不能方便完成。因此,我們針對28335芯片設(shè)計開發(fā)了一種快速、便捷的利用CAN通訊進(jìn)行DSP程序代碼燒錄的方法。
28335平臺CAN程序燒寫的技術(shù)方案
工作原理介紹。本技術(shù)采用上位機程序,將CCS編譯輸出的.OUT文件燒錄到DSP28335控制芯片中,計算機與DSP28335之間的通訊工具可采用以太網(wǎng)CAN-BUS進(jìn)行數(shù)據(jù)傳輸,因此可利用以太網(wǎng)進(jìn)行控制芯片的程序燒寫,也可采用普通CAN卡進(jìn)行上位機與DSP28335之間的數(shù)據(jù)傳輸進(jìn)行程序燒寫。燒寫系統(tǒng)構(gòu)成。本技術(shù)采用上位機程序,將CCS編譯輸出.的OUT文件燒錄到DSP28335控制芯片中,計算機與DSP28335之間的通訊工具可采用以太網(wǎng)CAN-BUS進(jìn)行數(shù)據(jù)傳輸,因此可利用以太網(wǎng)進(jìn)行控制芯片的程序燒寫,也可采用普通CAN卡進(jìn)行上位機與DSP28335之間的數(shù)據(jù)傳輸進(jìn)行程序燒寫。
程序燒寫過程中,上位機采用VC6.0軟件進(jìn)行編寫,上位機能將.OUT文件轉(zhuǎn)換為16進(jìn)制代碼,并通過CAN郵箱將程序代碼發(fā)送至DSP28335芯片,實時監(jiān)測DSP28335回傳標(biāo)志,以確定下一步進(jìn)行的燒寫流程;為確保CAN通訊掉線后或DSP28335燒寫錯誤后重新進(jìn)行程序燒寫,上位機具有重新燒寫功能。
DSP28335程序的需編寫程序燒寫功能模塊,其通過定時查詢上位機程序燒寫指令,根據(jù)指令進(jìn)入程序燒寫流程。為配合上位機燒寫流程,DSP28335程序根據(jù)燒寫狀態(tài),回傳燒寫其狀態(tài)到上位機,包括燒寫正確、連續(xù)燒寫、重新燒寫及燒寫完成等狀態(tài)標(biāo)志。為提高燒寫速度,程序燒寫功能模塊充分利用了DSP28335的32個郵箱與上位機進(jìn)行數(shù)據(jù)交換,采用多行目標(biāo)程序同時傳輸?shù)姆绞竭M(jìn)行數(shù)據(jù)傳輸。
程序燒寫的具體過程包含以下幾個步驟:
工作過程描述。用仿真器將包含CAN燒寫程序功能的代碼燒錄到DSP(DSP芯片第一次下載用戶代碼所采用的燒寫方式);根據(jù)硬件線路連接圖將DSP的CAN總線與CAN卡以及計算機進(jìn)行連接;利用CAN通訊將上位機“FLASH擦除”和“程序燒寫”命令發(fā)送到DSP;DSP收到命令后進(jìn)行相關(guān)參數(shù)配置、API版本校對及密碼解鎖等處理,如果以上處理成功則進(jìn)行下一步,失敗則提示上位機需重新進(jìn)行第3步操作;DSP利用FLASH擦除函數(shù)對指定FLASH區(qū)進(jìn)行擦除,擦除成功進(jìn)行下一步,失敗則提示上位機需重新進(jìn)行第3步操作;DSP對燒寫模塊子函數(shù)變量進(jìn)行初始化配置;通過上位機界面選擇需要燒錄的目標(biāo)程序(.OUT文件),上位機軟件將其轉(zhuǎn)化成16進(jìn)制格式文件,選擇界面上的“程序燒錄”,上位機軟件將目標(biāo)程序通過CAN總線傳輸程序代碼,同時下傳代碼校驗碼;DSP接收到數(shù)據(jù)后進(jìn)行校驗及解析,校對代碼是否正確,如果有誤則將錯誤信息傳送給上位機,上位機進(jìn)行重新燒錄等處理;代碼正確則利用FALSH燒錄函數(shù)進(jìn)行代碼燒錄;循環(huán)直到DSP解析出程序燒寫已經(jīng)完成時,DSP進(jìn)入初始化程序段,并將燒寫完成標(biāo)記上傳給上位機,程序燒寫操作結(jié)束。
CAN程序燒寫的特點和優(yōu)點
利用CAN通訊進(jìn)行DSP程序燒寫的特點:本技術(shù)為提高CAN燒寫速度,上位機采用VC6.0進(jìn)行編寫,其能完成下位機程序(.OUT文件)轉(zhuǎn)換,并運用VC多線程技術(shù),縮短接收和下傳數(shù)據(jù)等待時間以及接收和下傳數(shù)據(jù)之間的銜接時間。充分利用DSP28335多郵箱的優(yōu)勢,采用一次多行數(shù)據(jù)傳輸、燒寫,在程序中采取了防跳行、漏行措施,在確保燒寫正確的前提下,實現(xiàn)高速CAN通訊燒寫程序。
利用CAN通訊進(jìn)行DSP程序燒寫的優(yōu)點:相對于傳統(tǒng)的程序燒寫方式,本技術(shù)實現(xiàn)了遠(yuǎn)程燒寫程序,極大地方便了對目標(biāo)板進(jìn)行程序升級、替換。在程序燒寫方式中利用DSP28335芯片CAN通訊郵箱多的優(yōu)勢,采用多行傳輸數(shù)據(jù)、燒寫,相對于單行燒寫技術(shù),本技術(shù)將鋤程序燒寫速度提高近20倍,本技術(shù)在實際燒寫447,124字節(jié)大小的.OUT文件所需時間在5S左右,極大提高了對目標(biāo)板進(jìn)行程序升級、替換調(diào)試程序的效率。
由于本技術(shù)可以通過英特網(wǎng)進(jìn)行數(shù)據(jù)傳輸和代碼燒寫,鑒于以上優(yōu)點,該技術(shù)可將廣泛應(yīng)用于電動車電機控制器的廠內(nèi)DSP程序調(diào)試和用戶現(xiàn)場DSP程序的升級換代。由于本技術(shù)可以通過英特網(wǎng)進(jìn)行數(shù)據(jù)傳輸和代碼燒寫,為以后產(chǎn)品的產(chǎn)品程序升級、用戶服務(wù)提供了極大的方便,同時,也為公司節(jié)約了出差成本,用戶也能得到及時的升級服務(wù)。也進(jìn)一步降低了公司的服務(wù)及開發(fā)成本。