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