摘 要:提出一種通過RS-232總線對F240系統(tǒng)實現(xiàn)在線編程的方法,解決了早期軟件升級時需要將F240仿真器連接至模塊內(nèi)的編程連接器而需要將產(chǎn)品開蓋導致的操作不便問題。該方法已在某些航空機載遠程接口單元上得到應用,實踐結果表明該方法操作方便,軟件燒寫結果穩(wěn)定可靠,具有一定的工程應用價值。
關鍵詞:在線編程;DSP;FLASH存儲器;SRAM存儲器;軟件升級
中圖分類號:TP302.1" " 文獻標志碼:A" " 文章編號:1671-0797(2025)07-0056-04
DOI:10.19514/j.cnki.cn32-1628/tm.2025.07.014
0" " 引言
SMJ320F240HFPM為美國德州儀器(TI)公司生產(chǎn)的一款數(shù)字信號處理器,其功能強大,靈活性強,具有較快的計算和響應速度,因而廣泛應用于軍工產(chǎn)品中。F240片內(nèi)有16 kB的FLASH存儲器,用于用戶代碼的存放。產(chǎn)品交付用戶后,有時因為主機單位需求的變更或需對自身軟件進行完善,要對軟件進行升級。傳統(tǒng)的軟件升級方法為將F240仿真器連接在模塊內(nèi)的編程連接器上進行程序燒寫,因此在外場進行軟件升級時需將產(chǎn)品從飛機上拆下,將產(chǎn)品開蓋進行升級,操作起來很不方便,有時甚至會引起用戶不滿。并且F240的片內(nèi)FLASH存儲器容量有限,為16 kB,有時在軟件中增加一些功能后,會出現(xiàn)FLASH存儲器容量不足的問題。
為了解決上述問題,本文提出了一種基于F240的在線編程方法,設計專門用于程序燒寫的boot軟件,將其通過仿真器固化在F240片內(nèi)的FLASH存儲器中,這部分軟件通常不需要更改,將產(chǎn)品的應用軟件固化在F240片外的FLASH存儲器中,這樣,當需要對產(chǎn)品的應用軟件進行升級時,可以不用將產(chǎn)品開蓋,通過在產(chǎn)品上連接RS-232串口電纜即可實現(xiàn)應用軟件的在線升級,便于維護,并且由于F240片外的FLASH存儲器可以根據(jù)實際需要選擇容量更大的存儲器,因此可以解決應用軟件功能增加后導致F240片內(nèi)FLASH存儲器容量不足的問題。
1" " 硬件設計
某航空機載遠程接口單元為實現(xiàn)通過RS-232串口進行在線編程,并解決軟件功能增加后出現(xiàn)的F240片內(nèi)FLASH容量不足問題,進行了設計更改。實現(xiàn)該遠程接口單元在線編程的硬件系統(tǒng)包括F240、時鐘、SRAM存儲器、FLASH存儲器、可編程邏輯器件、RS-232信號收發(fā)器等,其原理框圖如圖1所示。
其中,F(xiàn)240、時鐘、可編程邏輯器件、RS-232電路可沿用該遠程接口單元之前的硬件設計,F(xiàn)LASH存儲器是為了實現(xiàn)在線編程新增的元器件,SRAM存儲器是為了實現(xiàn)在線編程更換的元器件。更換SRAM存儲器是由于在進行軟件調(diào)試時需將軟件加載到SRAM存儲器中,且在生成串口燒寫的文件時,需要將軟件先加載至SRAM存儲器中生成.dat文件,因此軟件的大小除了受到FLASH存儲器容量的限制,也受到SRAM存儲器容量的限制。在某遠程接口單元中,原來選用了2片容量為32k×8 B的SRAM,即2片總容量為32k×16 B,更改后將2片SRAM存儲器更換成1片容量更大的SRAM存儲器。
1.1" " 處理器和時鐘
處理器采用美國TI公司推出的一款高性能低功耗的16位定點數(shù)字信號處理器——SMJ320F240HFPM,該處理器具有高速、低功耗、工作溫度為-55~+125 ℃等特點,產(chǎn)品最高頻率可達20 MHz,運算處理能力為20 MIPS。其主要特征如下:
1)采用高性能靜態(tài)COMS工藝,四種低功耗操作模式可進一步節(jié)電。
2)具有544 B片內(nèi)數(shù)據(jù)/程序DARAM,16 kB FLASH EEPROM程序存儲器[1],共計224 kB的存儲空間(包括64 kB的程序存儲空間、64 kB的局部數(shù)據(jù)存儲空間、64 kB的I/O訪問空間及32 kB的局部數(shù)據(jù)存儲空間)。采用先進的哈佛結構,它通過保持兩組分離的存儲器總線結構(程序和數(shù)據(jù))實現(xiàn)全速執(zhí)行,使處理能力最大。
3)4級流水線、8級硬件堆棧、6個外部中斷[2]。
4)片上集成事件管理器、ADC、28個可編程復用I/O引腳、鎖相環(huán)(PLL)時鐘發(fā)生器、具有實時中斷的看門狗電路、串行通信接口(SCI)、串行外設接口(SPI)等功能外設。
5)處理器的輸入時鐘由外部晶振提供,通過F240片內(nèi)鎖相環(huán)時鐘模塊(PLL)生成CPUCLK,CPUCLK再輸入至可編程邏輯器件中,作為可編程邏輯器件的時鐘信號。
F240程序存儲器映射如圖2所示,圖中MP/MC為微處理器/微計算機方式的選擇管腳。當MP/MC為低電平時,F(xiàn)240被配置為微計算機方式,選用片內(nèi)程序存儲器;當MP/MC為高電平時,F(xiàn)240被配置為微處理器方式,選用片外程序存儲器。
1.2" " SRAM存儲器
SRAM存儲器采用了1片國微公司的某型SRAM芯片,訪問時間為20 ns,存儲容量為256 kB。
SRAM芯片的數(shù)據(jù)輸入/輸出I/O0~I/O15管腳通過總線驅動器連接至F240的并行數(shù)據(jù)總線D0~D15管腳,地址輸入A0~A15管腳通過總線驅動器連接至F240的并行地址總線A0~A15管腳,部分地址輸入管腳連接至可編程邏輯器件中用于實現(xiàn)地址譯碼。SRAM的片選信號CE#、寫使能信號WE#、輸出使能信號OE#和高低位使能信號BHE#、BLE#連接至可編程邏輯器件的I/O管腳,由邏輯進行控制。
1.3" " FLASH存儲器
FLASH存儲器采用了1片復旦微電子的某型FLASH芯片,存儲容量為16 MB,位寬為32位,訪問時間為70 ns,常溫擦寫次數(shù)為1萬次。
FLASH芯片的數(shù)據(jù)輸入/輸出I/O0~I/O15管腳通過總線驅動器連接至F240的并行數(shù)據(jù)總線D0~D15管腳,地址輸入A0~A15管腳通過總線驅動器連接至F240的并行地址總線A0~A15管腳,部分地址輸入管腳連接至可編程邏輯器件中用于實現(xiàn)地址譯碼。FLASH的片選使能管腳CE1#~CE4#、芯片寫使能管腳WE1#~WE4#、公共輸出使能管腳OE#連接至可編程邏輯器件的I/O管腳,由邏輯進行控制。
2" " boot軟件設計
2.1" " 工作方式選擇
遠程接口單元系統(tǒng)有兩種運行方式:周期監(jiān)控狀態(tài)、調(diào)試維護狀態(tài)。根據(jù)外部離散量信號(GSE開關、IP1開關)決定運行哪種工作方式。周期監(jiān)控狀態(tài)運行方式滿足用戶全部功能、性能要求;調(diào)試維護狀態(tài)必須在地面進行,主要目的是實現(xiàn)遠程接口單元軟件的在板編程及數(shù)據(jù)下載。遠程接口單元上電后,首先檢測GSE開關、IP1開關的狀態(tài),并根據(jù)二者狀態(tài)進入相應的工作方式。
遠程接口單元工作方式定義如表1所示。
GSE和IP1均為“地/開”離散量輸入信號,“開”時為1,“地”時為0。
當GSE=1時,則不再檢測IP1的狀態(tài),進入周期監(jiān)控狀態(tài),此時跳轉至程序空間地址入口0x4000,執(zhí)行應用軟件。
當GSE=0時,繼續(xù)檢測IP1的狀態(tài):
1)若IP1=0,進入數(shù)據(jù)下載狀態(tài),該狀態(tài)用于下載記錄在RIU內(nèi)部的數(shù)據(jù)信息,這些數(shù)據(jù)信息可用來進行故障排查。
2)若IP1=1,進入在板編程狀態(tài),該狀態(tài)用于應用軟件的在線升級。
2.2" " 擦除
由于FLASH存儲器的寫操作只能將1變?yōu)?,而不能將0變?yōu)?,只有擦除操作可以把0變?yōu)?[3],因此如果要改變存儲單元的狀態(tài),必須先將其擦除,將所有位都寫為1,然后再進行寫入操作。擦除操作可以擦除一個扇區(qū)或整個芯片,本文介紹的方法采用扇區(qū)擦除。所用FLASH的擦除操作需要通過執(zhí)行相應的命令序列[4]實現(xiàn),命令序列定義如表2所示。
2.3" " 編程
從RS-232串口接收數(shù)據(jù),并進行校驗和檢查,檢查接收的編程起始地址和編程長度是否滿足要求,如滿足要求,則將從串口接收的字符以塊的方式寫入到FLASH中,并進行校驗和檢查。器件的編程同樣需要通過執(zhí)行相應的命令序列實現(xiàn),命令序列定義如表2所示。
3" " 具體實現(xiàn)方法
3.1" " 燒寫文件的生成方法
使用TI公司的CC2000集成開發(fā)環(huán)境編譯生成的.out文件不能直接通過串口進行燒寫,需將.out文件轉換成可直接通過串口燒寫的.bin文件[5]。燒寫文件的生成方法如下:
1)在調(diào)試狀態(tài)下(MP/MC信號為高電平),給產(chǎn)品加電,打開CC2000開發(fā)環(huán)境,將程序加載至SRAM中。
2)點擊“File/data/save”,對話框的文件名中將出現(xiàn)“.dat”,保存類型將出現(xiàn)“Hex(*.dat)”,點“保存”,出現(xiàn)“Storing Memory into...”對話框,在Address框中輸入編程起始地址0x4000,在Length框中輸入編程長度0x7FFF,在Page框中選Program,如圖3所示,點“OK”,當進度條結束后,則生成.dat文件,生成.dat文件后可下電。
3)在flashdsp.exe程序中,點擊“UTILITY”,點“打開”,選擇要轉換的.dat文件,點“確定”,則生成.bin文件。
3.2" " 程序燒寫方法
通過RS-232串口進行程序燒寫的方法如下:
1)連接燒程序的串口電纜,接入串口,將GSE開關撥到“0”,IP1開關撥到“1”。
2)打開串口調(diào)試程序,設置波特率及校驗位。
3)給產(chǎn)品上電,串口會提示是否進行編程(圖4),如確認進行編程則輸入“y”,并按回車,接下來會自動將FLASH中的0x4000~0xBFFF空間進行擦除,擦除成功后,關閉該串口調(diào)試程序。
4)打開flashport.exe后,點擊“SETPORT”,在下拉菜單中選擇“PORT PROP”。設置端口號及波特率,設置完成后點擊“OK”回到主界面(圖5)。
5)點擊主界面上的SEND DATA,出現(xiàn)“Form1”窗口,點擊“OPEN”選擇要燒入的.bin文件,在PROG_ADDR框中輸入編程起始地址,點擊“SEND DATA”開始燒入程序(圖6)。
6)燒寫成功完成后,會顯示“PROGRAM OK?。 贝翱?,點擊“確定”(圖7),則程序燒寫完畢,給產(chǎn)品下電。
4" " 結束語
本文介紹了一種在地面狀態(tài)下對F240系統(tǒng)實現(xiàn)在線編程的方法,該方法已在大量產(chǎn)品中實現(xiàn)了成功應用,表明該方法可靠性高、簡單實用、操作便捷,可大大提高這些產(chǎn)品的可維護性和擴展性,為機載計算機F240系統(tǒng)的在線升級提供了一種有效的解決方案。
[參考文獻]
[1] 孟武勝,楊鵬.TMS320F240在同步電機變頻調(diào)速中的應用[J].自動化與儀表,2007,22(2):84-87.
[2] 李虹,李春旭,路廣,等.一種可應用于數(shù)字化焊接電源的DSP芯片——TMS320F240[J].蘭州理工大學學報,2006,32(2):5-8.
[3] 王歡,林志貴,張彩霞,等.DSC系列Flash在線編程研究與實現(xiàn)[J].天津工業(yè)大學學報,2012,31(5):84-88.
[4] 崔迎煒,張曉林.利用DSP實現(xiàn)FLASH的在線編程[J].遙測遙控,2002,23(6):33-36.
[5] 劉政華,常培平.RS422總線的TMS320F2812軟件在線加載方法[J].單片機與嵌入式系統(tǒng)應用,2019,19(5):63-66.
收稿日期:2024-12-24
作者簡介:艾莉(1982—),女,陜西西安人,高級工程師,研究方向:機載計算機技術。