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