陳啟興,于紅兵,祁秋紅
(成都信息工程學院 通信工程學院,四川 成都 610225)
TI公司的DSP處理器目前上市的有4類:32位實時微處理器,DSP&ARM+DSP,多核DSP,低功耗 DSP[1],廣泛應用于通信、自動控制、應用電子等領(lǐng)域[2-5]。TI公司的低功耗DSP性價比優(yōu)、可靠性強、程序保密性高,因而應用十分廣泛,比如圖像處理、視頻處理、音頻處理、儀器儀表等領(lǐng)域。只有32位實時微處理器片內(nèi)有供用戶使用的Flash,而其它的處理器都沒有。因此,這3種微處理器的自舉加載方式有些差異。比如,TMS320C2812允許用戶片內(nèi)或偏外 Flash加載用戶程序[6],TMS320C5402有 5種加載方式:熱自舉、串行EPROM自舉、并行I/O空間自舉、并行EPROM自舉和HPI接口自舉[7]。為了提高運行速度,TI公司的DSP處理器的后三類芯片內(nèi)都沒有供用戶使用的Flash,其自舉加載只能采用片外擴展的存儲空間了。因此,TI公司的后三類DSP處理器的自舉加載實現(xiàn)起來就要復雜些。很多的學者提出了有建設性的方法,典型的就是二次引導并行EPROM自舉引導方式[8-9],這種方式簡易有效,對于用戶程序不大的情況,這是一個非常好的辦法。TMS320VC5402是一款性價比非常高的高速、低功耗的DSP芯片,使用非常廣泛。本文提出一種TMS320VC5402的并行I/O空間自舉加載方法,該方法具有簡易有效,實用于用戶程序較大的情況。
TI公司為其C5000系列和C6000系列的自舉加載方法提供了一個建議,并免費提供了相應的工具軟件[10]。首先,DSP仿真軟件(CCS)編譯鏈接后生成的是二進制COFF 格式文件(后綴為out);然后,通過HEX轉(zhuǎn)換工具(hex500.exe)將COFF目標文件轉(zhuǎn)換為標準的ASCII碼十六進制格式文件;最后,把ASCII碼十六進制格式文件燒寫到FLASH芯片里面。對于TI的建議,如果產(chǎn)品開發(fā)成功,在批量生產(chǎn)的時候是可行的,因為可以先燒寫 ASCII碼十六進制格式到FLASH 芯片,再焊接FLASH芯片在PCB板上。但是,對于開發(fā)階段和軟件升級的時候,就不方便了,因為從PCB拆下FLASH芯片是一件不容易的事情,還可能損壞PCB上的銅箔和其它元器件。所以,探討一種通過CCS軟件,借助仿真器對FLASH在線編程方法,對于開發(fā)階段和軟件升級方面是有積極意義的。
目前,針對 TMS320VC5402,使用比較多的FLASH在線編程方法是二次并行引導法,很多同仁已經(jīng)有報告了[11-13]。這種方法的基本思想是通過CCS軟件,借助仿真器首先把用戶程序(out文件)下載到片內(nèi)RAM,再下載并運行燒寫FLASH的程序,即把RAM區(qū)的用戶程序燒寫到FLASH芯片內(nèi),實質(zhì)是屬于并行EPROM自舉方式。因為CCS下載了2次代碼,F(xiàn)LASH是TMS320VC5402的外擴數(shù)據(jù)存儲器,所以叫二次并行引導法。
TMS32C5402的程序和數(shù)據(jù)存取器映射圖如圖1所示,用戶可用數(shù)據(jù)存儲器的空間有:0x0060~0x3FFF(片內(nèi)),0x8000~0xFFFF(片外),共47.906 25 kW,其中片內(nèi)的15.906 25 kW,片外的32 kW;在微計算機模式下用戶可用的程序存儲器空間有:0x0000~0x007F(片外),0x0080~0x3FFF(可設為片內(nèi)或片外),0x8000~0xBFFF(片外),共36 kW,其中片外最多36 kW,片內(nèi)最多15.875 kW;在微處理器模式下用戶可用的程序存儲器空間有:0x0000~0x007F(片外),0x0080~0x3FFF(可設為片內(nèi)或片外),0x8000~0xFF7F(片外),共略小于48 kW,其中片外最多48 kW,片內(nèi)最多15.875 kW。在采用二次并行引導法的條件下,如果TMS320VC5402有擴展RAM,則用戶程序的最多為36 kW(微計算機模式)或略小于 48 kW (微處理器模式);如果TMS320VC5402無擴展 RAM,則用戶程序的最多為15.875 kW(微計算機模式或微處理器模式)。對于TMS320VC5402的二次并行引導法,適用的用戶程序大小是有要求的,開發(fā)人員在設計硬件系統(tǒng)的時候,需要對用戶代碼大小進行評估。二次并行引導法必須同時滿足2個條件:①用戶代碼大小必須小于外擴 FLASH(數(shù)據(jù)存儲器);②用戶代碼大小必須小于程序存儲器空間大小。因此,如果TMS320VC5402有擴展 RAM,則用戶程序的最多為32 kW;如果TMS320VC5402無擴展RAM,則用戶程序的最多為15.875 kW。
圖1 TMS320VC5402的存儲器映射
(1) 硬件設計
TMS320VC5402的存儲器有數(shù)據(jù)存儲器、程序存儲器和I/O存儲器,互相獨立,各位64 kW。本位提出的并行I/O空間自舉加載方法屬于并行I/O空間自舉方式的在線編程方法,也需要兩次加載。通過CCS軟件,借助仿真器首先把用戶程序(out文件)下載到片內(nèi)RAM,再下載并運行燒寫FLASH的程序,即把RAM區(qū)的用戶程序燒寫到FLASH芯片內(nèi)。與二次導引法不同的是,TMS320VC5402外擴的FLASH屬于I/O存儲器,而不是數(shù)據(jù)存儲器。
TMS32C5402訪問片外I/O存儲器的時序如圖2所示,根據(jù)該時序圖可以得到外擴 I/O存儲器的原理電路如圖3所示。在圖3中,巧妙采用了比較器74HC85,沒有采用CPLD或FPGA之類的芯片進行地址譯碼和時序控制,這對于節(jié)約成本是十分有利的,比如民品開發(fā)。外擴的 I/O空間尋址范圍為:0x8001 ~0xFFFF,改變 74HC85的 1、14、11和 9腳的高低電平,可以容易調(diào)整I/O空間尋址范圍。
根據(jù)前面的分析,對于并行 I/O空間自舉加載方法,由于I/O存儲器的外擴空間可達64 kW,所以,如果TMS320VC5402有擴展RAM,則用戶程序的最多為36 kW(微計算機模式)或略小于48 kW(微處理器模式);如果 TMS320VC5402無擴展RAM,則用戶程序的最多為15.875 kW。
(2) 燒寫FLASH的軟件設計
當用戶項目調(diào)試完成后,就可以得到用戶程序入口地址、每一個程序段的大小和偏移地址,也就是說可以得到一個Boot表。根據(jù)Boot表的具體內(nèi)容,燒寫FLASH的流程如圖4所示,值得注意的是,如果硬件是按照圖3設計的,則從I/O空間的地址0x8001開始依次遞增燒寫。
圖2 TMS320VC5402的并行I/O口讀和寫
圖3 與Flash芯片有關(guān)的電路
圖4 燒寫FLASH芯片的流程
TMS320C542的并行I/O空間自舉加載方法在橫向項目“軟件無線電平臺研究”上進行了實踐,性能穩(wěn)定,效果不錯。
論文在分析了TMS320C542 DSP 芯片的存儲結(jié)構(gòu)和特點, 并著重分析其二次引導法之后,結(jié)合工作實際,給出了一種切實可行的并行I/O空間自舉加載方法。對于并行I/O空間自舉加載方法,如果TMS320VC5402有擴展RAM,則用戶程序的最多為36 KW(微計算機模式)或略小于48 KW(微處理器模式);如果TMS320VC5402無擴展RAM,則用戶程序的最多為15.875 KW。實踐證明,該方法構(gòu)思新穎,操作簡單等優(yōu)點,并能簡化系統(tǒng)軟硬件設計工作,具有很高的實用價值。
[1] T I.Embedded Processors[EB/OL].(2011-07-13)[2011-12-01].http://www.ti.com/lsds/ti/dsp/embedded_p rocessor.page?DCMP=TIHomeTracking&HQS=Other+OT+home_p_processors.
[2] 季宇,金彥亮.基于無線傳感技術(shù)的人體姿態(tài)檢測系統(tǒng)[J].通信技術(shù),2011,44(11):49-51.
[3] 張簡,孔翠香. 嵌入式無線視頻小車的設計與實現(xiàn)[J].通信技術(shù),2011,44(11):113-116.
[4] 郭星明,趙曙光,熊斌. 一種基于DSP的手機音頻優(yōu)化方法[J].通信技術(shù),2011,44(05):33-36.
[5] 曹瑞,馮桂, 一種改進的數(shù)字水印算法[J].信息安全與通信保密,2007,40(07):31-33.
[6] TEXAS INSTRUMENT. Embedded Processors[EB/OL].(2011-05-02)[2011-12-01].http://www.ti.com/lit/ds/sprs174s/sprs174s.pdf.
[7] T I. Embedded Processors[EB/OL].(2008-11-27)[2011-12-01].http://www.ti.com/litv/pdf/sprs096c.
[8] 郭改枝,范鵬程. TMS320C54XDSP自舉加載技術(shù)[J]. 內(nèi)蒙古師范大學學報,2008, 37(02): 216-218.
[9] 張秀麗,張瑞華,涂曉峰. TMS320VC5402并行引導加載系統(tǒng)設計[J]. 寧波大學學報,2005, 18(02): 2004-2006.
[10] TEXAS INSTRUMENT. Embedded Processors[EB/OL].(2004-11-16)[2011-12-01].http://www.ti.com/lit/an/spra618b/spra618b.pdf.
[11] 張喜平, 梁書斌. TMS320VC54x系列DSP芯片自舉程序的優(yōu)化設計[J]. 韶關(guān)學院學報, 2006,27(03): 24-28.
[12] 劉苗. TMS320VC5402片外存儲器擴展及自舉引導程序的設計[J]. 沈陽航空工業(yè)學院學報,2006,23(03):57-59.
[13] 張小莉. 基于串口的DSP軟件下載設計與實現(xiàn)[J]. 信息安全與通信保密,2012(01):70-71.