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