摘 要: 產品批量生產時,由于元器件及結構裝調等存在個體差異,使得每臺產品的程序都需要根據實際情況進行適當調整,既費時費力也不利于產品的規范化管理。針對產品批量化生產的要求,提出了一種基于TMS320F2812的產品預置參數在線調試方法,可以通過上位機界面進行參數設置,同時實現在程序中燒寫。該方法應用于光電設備批量生產過程中,大幅度減少了程序調試與燒寫的工作量,同時提高了產品的可維護性,具有較強的應用推廣價值。
關鍵詞: DSP; FLASH存儲器; 調試; TMS320F2812
中圖分類號: TN60?34 文獻標識碼: A 文章編號: 1004?373X(2013)23?0115?03
TMS320F2812 DSP?based online writing of product preset parameters by burning means
ZHAO Pin?ya, QU Ji?feng
(Air?to?air Missile Research Institute, Luoyang 471009, China)
Abstract: Because of the individual difference caused by the components and structural assembling and debugging, so when the product are in volume production, each procedure needs appropriate adjustment according to the actual situation. In this way, it not only wastes time and energy, but also bad for the standardized management. So aiming at the requirement of volume production, an online debugging method of product preset parameter based on TMS320F2812DSP is proposed, which can set the parameters through the host computer interface and realize on?line writing in programs. The method is applied in the volume production of photoelectric equipment, which greatly reduced the workload of program debugging and on?line writing, and improved the maintainability of the products. It has great promotional value.
Keywords: DSP; FLASH memory; debugging; TMS320F2812
0 引 言
目前,各種機載光電設備被廣泛地應用于軍事領域和公安、消防以及環境監控等民用領域,它們在目標偵察、監視、預警、定位、導航、通信等場合起著重要的作用。隨著需求的增加,機載光電設備的批量生產中由于元器件和結構裝調導致的個體差異造成了每個設備的程序進行適當的參數調整,為了產品的規范管理,本文通過上位機調試界面進行參數設置,并燒寫到伺服控制DSP中。
TI公司推出的32位定點DSP控制器TMS320F2812,整合了DSP和微控制器的最佳特性,頻率高達150 MHz,是一款高性能32位控制專用芯片。采用它可以大大提高伺服系統的控制精度和速度。在存儲器方面,TMS320F2812包括128 KB的FLASH Memory、18 KB的片上RAM和4 KB的BOOT ROM。在產品研發和生產階段需要將用戶程序燒寫到FLASH存儲器中,以實現用戶程序的脫機自動運行。當系統需要更新參數時,傳統的方法是通過實地取下設備,連接仿真器來更新程序數據,尤其在戶外等較為復雜的場合,直接取下設備、連接仿真器存在較大困難,有時甚至難以實現,此時通過上位機發指令的方法來更新程序中的數據就顯得尤為方便。
1 TMS320F2812 FLASH燒寫介紹
TMS320F2812 FLASH為了用戶使用方便,提供了專用的針對FLASH操作的庫文件及燒寫步驟。用戶在使用FLASH用戶編程接口時必須使用Flash2812_ API_V100.lib庫文件,然后按照以下步驟進行:
(1)修改Flash281x_API_Config.h文件,此文件中主要是設置根據DSP的時鐘頻率;
(2)將Flash281x_API_Library.h文件加入到工程中;
(3)將Flash2812_API_V100.lib文件加入到工程庫文件中;
(4)初始化 PLL 控制寄存器(PLLCR);
(5)將FLASH API功能拷貝到內部SARAM中;
(6)初始化Flash_CPUScaleFactor;
(7)調用擦除、寫入、檢查功能進行參數的燒寫;
(8)返回主程序。
2 硬 件
本文提出了一種通過雙口RAM與上位機通信來實現程序中參數更新的方法,該系統中DSP接收上位機發送控制指令及參數,根據指令執行不同的功能。DSP 接收控制指令,若程序不需更新,則直接跳轉到其他應用程序入口;若參數需要更新,則調用更新服務程序,接收待更新數據、燒寫FLASH,復位、跳轉到應用程序入口。硬件框圖如圖1所示。
圖1 硬件框圖
3 軟 件
3.1 軟件流程
DSP程序通過仿真器燒寫到FLASH,其功能為:實現讀取雙口RAM數據并判斷、燒寫FLASH、復位跳轉。
軟件流程圖如圖2所示。
圖2 軟件流程圖
3.2 讀取及處理雙口RAM數據軟件
DSP讀取外設雙口RAM中上位機發送的指令及參數,根據協議讀取固定地址的指令和參數,為了數據讀取的可靠性,指令和參數均重復寫在不同的三個地址,通過三判二,保證指令的可靠性。
3.3 對片內FLASH的擦除、寫入操作軟件
3.3.1 對片內FLASH的準備
得到需要修改的參數值之后,需要將數據寫入FLASH存儲器進行永久存儲。由于FLASH存儲器必須以扇區為單位進行擦除和寫入操作,因此必須對cmd文件進行相應的配置,使參數值單獨放在一個扇區中,代碼存儲在其余的扇區中。把需要修改的數據值單獨放在J扇區。
3.3.2 片內FLASH修改流程
把需要修改的數據值單獨放在了J扇區,且J扇區中不再存儲其他任何內容。這樣,就可以對J扇區進行各種操作,而不用擔心對系統的代碼或數據產生影響了。為了對FLASH進行操作,需要用到TI為DSP2812提供的FLASH操作API函數庫:Flash2812_API_V210.lib。這個庫中包含了操作FLASH的3個重要函數,Flash_Erase,Flash_Program和Flash_Verify。寫入完成后,程序切換到正常工作狀態。將參數值寫入FLASH的軟件流程如圖3所示。
圖3 參數值寫入流程圖
3.3.3 片內FLASH修改軟件
完整的擦寫過程可分為以下幾個步驟:
關中斷:在對FLASH 進行操作前,須先關閉全局中斷。
燒寫過程:代碼的搬移,將映射在“Flash28_API”段上的代碼,復制到RAM空間去執行擦除過程:由于2812最小可擦除的FLASH內存空間就是一個扇區,而不能單獨擦除一個字。由于上述擦除的是J扇區,故可以在J扇區內寫數據。
校驗過程:將已燒寫數據與燒寫數據逐個比較。
在更新程序全部寫入到FLASH 后,恢復程序運行主頻,開始執行應用程序。
代碼如下:
…………
{
InitPll(0x0F); //主頻設置為150 MHz
DINT; //關中斷
Status = Flash_Erase(SECTORJ,EraseStatus);
if(Status != STATUS_SUCCESS)
{
flash_Error(Status);
}
Flash_ptr = (Uint16 *)0x3D8000;
Status = Flash_Program(Flash_ptr,Flash_buffer,6,ProgStatus);
if(Status != STATUS_SUCCESS)
{
flash_Error(Status);
}
Status = Flash_Verify(Flash_ptr,Flash_buffer,6,VerifyStatus);
if(Status != STATUS_SUCCESS)
{
flash_Error(Status);
}
Flash_written |=0xff00;
EINT; //開中斷
InitPll(0x09); //主頻改回90 MHz
}
…………
4 結 語
通過上位機調整參數,并傳遞燒寫指令并將參數寫入FLASH中的成功應用,在大批量生產產品時保證了程序版本的一致性,狀態可控,保證了產品管理的規范性;此方法可多次且可靠、快速地更新產品需調整特性的參數,方便了產品的調試,提高了產品的系統可維護性,具有較強的應用價值。
參考文獻
[1] 蘇奎峰,呂強,耿慶鋒.TMS320F2812原理與開發[M].北京:電子工業出版社,2005.
[2] 韓豐田.TMS320F281X原理及應用技術[M].北京:清華大學出版社,2009.
[3] TI. TMS320F28x McBSP peripheral reference guide [EB/OL]. [[2002?05?20].]http: //www.ti.com/litv/pdf/spru061c.
[4] Texas Instruments. TMX320F281x Flash API Version 1.00 [EB/OL]. [[2003?12?10].] http://galera.ii.pw.edu.pl/dsp/F28x/F2812_ page/ Flash281x_API_V100.pdf.
[5] Texas Instruments. TMX320F2810,TMX320F2811, [TMX320F?]
2812,TMX320C2810,TMX320C2811,TMX320C2812,Digital Signal ProcessorsData Manual [M]. USA: Texas Instruments Inc, 2006.
[6] Texas Instruments. TMX320F28x DSP Boot ROM Reference Guide [M]. USA: Texas Instruments Inc, 2004.
作者簡介:趙嬪婭 女,1979年出生,工程師。從事機載光電系統研究。
渠繼峰 男,1982年出生,工程師。從事機載光電伺服控制系統研究。