新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于TMS320F2812的產(chǎn)品預(yù)置參數(shù)在線調(diào)試研究

基于TMS320F2812的產(chǎn)品預(yù)置參數(shù)在線調(diào)試研究

作者: 時間:2016-12-08 來源:網(wǎng)絡(luò) 收藏

目前,各種光電設(shè)備被廣泛地應(yīng)用于軍事領(lǐng)域和公安、消防以及環(huán)境監(jiān)控等民用領(lǐng)域,它們在目標(biāo)偵察、監(jiān)視、預(yù)警、定位、導(dǎo)航、通信等場合起著重要的作用。隨著需求的增加,機(jī)載光電設(shè)備的批量生產(chǎn)中由于元器件和結(jié)構(gòu)裝調(diào)導(dǎo)致的個體差異造成了每個設(shè)備的程序進(jìn)行適當(dāng)?shù)膮?shù)調(diào)整,為了產(chǎn)品的規(guī)范管理,本文通過上位機(jī)調(diào)試界面進(jìn)行參數(shù)設(shè)置,并燒寫到伺服控制DSP中。

本文引用地址:http://m.butianyuan.cn/article/201612/328025.htm

TI公司推出的32位定點(diǎn)DSP控制器TMS320F2812,整合了DSP和微控制器的最佳特性,頻率高達(dá)150 MHz,是一款高性能32位控制專用芯片。采用它可以大大提高伺服系統(tǒng)的控制精度和速度。在存儲器方面,TMS320F2812包括128 KB 的FLASH Memory、18 KB 的片上RAM 和4 KB 的BOOT ROM.在產(chǎn)品研發(fā)和生產(chǎn)階段需要將用戶程序燒寫到FLASH 存儲器中,以實(shí)現(xiàn)用戶程序的脫機(jī)自動運(yùn)行。當(dāng)系統(tǒng)需要更新參數(shù)時,傳統(tǒng)的方法是通過實(shí)地取下設(shè)備,連接仿真器來更新程序數(shù)據(jù),尤其在戶外等較為復(fù)雜的場合,直接取下設(shè)備、連接仿真器存在較大困難,有時甚至難以實(shí)現(xiàn),此時通過上位機(jī)發(fā)指令的方法來更新程序中的數(shù)據(jù)就顯得尤為方便。

1 TMS320F2812 FLASH 燒寫介紹

TMS320F2812 FLASH 為了用戶使用方便,提供了專用的針對FLASH操作的庫文件及燒寫步驟。用戶在使用FLASH 用戶編程接口時必須使用Flash2812_API_V100.lib庫文件,然后按照以下步驟進(jìn)行:

(1)修改Flash281x_API_Config.h文件,此文件中主要是設(shè)置根據(jù)DSP的時鐘頻率;

(2)將Flash281x_API_Library.h文件加入到工程中;

(3)將Flash2812_API_V100.lib 文件加入到工程庫文件中;

(4)初始化PLL 控制寄存器(PLLCR);

(5)將FLASH API功能拷貝到內(nèi)部SARAM中;

(6)初始化Flash_CPUScaleFactor;

(7)調(diào)用擦除、寫入、檢查功能進(jìn)行參數(shù)的燒寫;

(8)返回主程序。

2 硬件

本文提出了一種通過雙口RAM與上位機(jī)通信來實(shí)現(xiàn)程序中參數(shù)更新的方法,該系統(tǒng)中DSP接收上位機(jī)發(fā)送控制指令及參數(shù),根據(jù)指令執(zhí)行不同的功能。DSP 接收控制指令,若程序不需更新,則直接跳轉(zhuǎn)到其他應(yīng)用程序入口;若參數(shù)需要更新,則調(diào)用更新服務(wù)程序,接收待更新數(shù)據(jù)、燒寫FLASH,復(fù)位、跳轉(zhuǎn)到應(yīng)用程序入口。硬件框圖如圖1所示。

3 軟件

3.1 軟件流程

DSP程序通過仿真器燒寫到FLASH,其功能為:實(shí)現(xiàn)讀取雙口RAM數(shù)據(jù)并判斷、燒寫FLASH、復(fù)位跳轉(zhuǎn)。

軟件流程圖如圖2所示。

3.2 讀取及處理雙口RAM數(shù)據(jù)軟件

DSP讀取外設(shè)雙口RAM中上位機(jī)發(fā)送的指令及參數(shù),根據(jù)協(xié)議讀取固定地址的指令和參數(shù),為了數(shù)據(jù)讀取的可靠性,指令和參數(shù)均重復(fù)寫在不同的三個地址,通過三判二,保證指令的可靠性。

3.3 對片內(nèi)FLASH的擦除、寫入操作軟件

3.3.1 對片內(nèi)FLASH的準(zhǔn)備

得到需要修改的參數(shù)值之后,需要將數(shù)據(jù)寫入FLASH存儲器進(jìn)行永久存儲。由于FLASH存儲器必須以扇區(qū)為單位進(jìn)行擦除和寫入操作,因此必須對cmd文件進(jìn)行相應(yīng)的配置,使參數(shù)值單獨(dú)放在一個扇區(qū)中,代碼存儲在其余的扇區(qū)中。把需要修改的數(shù)據(jù)值單獨(dú)放在J扇區(qū)。

3.3.2 片內(nèi)FLASH修改流程

把需要修改的數(shù)據(jù)值單獨(dú)放在了J扇區(qū),且J扇區(qū)中不再存儲其他任何內(nèi)容。這樣,就可以對J扇區(qū)進(jìn)行各種操作,而不用擔(dān)心對系統(tǒng)的代碼或數(shù)據(jù)產(chǎn)生影響了。

為了對FLASH進(jìn)行操作,需要用到TI為DSP2812提供的FLASH操作API函數(shù)庫:Flash2812_API_V210.lib.這個庫中包含了操作FLASH 的3 個重要函數(shù),F(xiàn)lash_Erase,Flash_Program和Flash_Verify.寫入完成后,程序切換到正常工作狀態(tài)。將參數(shù)值寫入FLASH的軟件流程如圖3所示。

3.3.3 片內(nèi)FLASH修改軟件

完整的擦寫過程可分為以下幾個步驟:

關(guān)中斷:在對FLASH 進(jìn)行操作前,須先關(guān)閉全局中斷。

燒寫過程:代碼的搬移,將映射在“Flash28_API”段上的代碼,復(fù)制到RAM空間去執(zhí)行擦除過程:由于2812最小可擦除的FLASH 內(nèi)存空間就是一個扇區(qū),而不能單獨(dú)擦除一個字。由于上述擦除的是J扇區(qū),故可以在J扇區(qū)內(nèi)寫數(shù)據(jù)。

校驗(yàn)過程:將已燒寫數(shù)據(jù)與燒寫數(shù)據(jù)逐個比較。

在更新程序全部寫入到FLASH 后,恢復(fù)程序運(yùn)行主頻,開始執(zhí)行應(yīng)用程序。

代碼如下:

4 結(jié)語

通過上位機(jī)調(diào)整參數(shù),并傳遞燒寫指令并將參數(shù)寫入FLASH 中的成功應(yīng)用,在大批量生產(chǎn)產(chǎn)品時保證了程序版本的一致性,狀態(tài)可控,保證了產(chǎn)品管理的規(guī)范性;此方法可多次且可靠、快速地更新產(chǎn)品需調(diào)整特性的參數(shù),方便了產(chǎn)品的調(diào)試,提高了產(chǎn)品的系統(tǒng)可維護(hù)性,具有較強(qiáng)的應(yīng)用價值。



關(guān)鍵詞: TMS320F2812預(yù)置參

評論


技術(shù)專區(qū)

關(guān)閉