<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > HPI自舉在TMS320VC5402芯片上的實(shí)現

HPI自舉在TMS320VC5402芯片上的實(shí)現

作者: 時(shí)間:2007-03-09 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:在由TI系列組成的多機系統中,往往用HPI進(jìn)行多機數據交換。由于HPI的功能特性,產(chǎn)生了一種新的應用——使用HPI對進(jìn)行自舉。介紹了使用HPI對TMS320C5402進(jìn)行自舉,從而省掉了的EPROM,使DSP只使用SRAM,提高了處理速度,并使HOST CPU具有更大的控制權,很適合多處理器系統。 關(guān)鍵詞:自舉 DSP Bootloader 當前,器(DSP)芯片以其強大的運算能力在通信、電子、圖像處理等各個(gè)領(lǐng)域得到了廣泛的應用。使用DSP的系統可以按處理器使用的數目分為單處理器系統和多處理器系統。單DSP的系統盡管結構簡(jiǎn)單,但系統的功能將不可避免地有有所限制。由于DSP的控制功能不是非常強大,在應用中往往不得不把DSP作為目標系統專(zhuān)門(mén)負責復雜的運算,而另外使用一個(gè)主機(PC機或是單片機)對整個(gè)系統的運行實(shí)行控制。所以,在使用DSP的多處理器系統中,主機(單片機、PC機、另一個(gè)DSP芯片)與目標系統DSP的數據交換就成應用系統設計中必須考慮的重要問(wèn)題。 1 主機接口的傳統解決方案 解決主機與目標系統的數據交換是一個(gè)非常復雜的問(wèn)題,傳統的方式是采用DMA(Direct Memory Access)或全局存儲器(Global Memory)完成多機系統中的數據共享。在DMA方式下,讀寫(xiě)共享人存必須要求其它處理器處于停止工作的狀態(tài),所以DMA共享存儲器的方式往往不為人所用。全局存儲器是多個(gè)處理器共享的存儲器。在使用全局存儲器的應用系統中,DSP的地址空間被分成局部塊(Local Section)和全局塊(Global Section)。局部塊用于完成處理器自己的工作,而全局塊則用來(lái)完成與其它處理器的通信工作。在TMS320C5x器件中,使用全局存儲器分配寄存器Greg完成對全局內存的管理工作。Greg指定部分DSP內存為全局內存。比如,TMS320C5x器件能夠分配全局數據內存空間,并通過(guò)BR(Bus Request)和hcs控制信號實(shí)現與該內存的通信。當需要尋址全局內存空間時(shí),BR和hcs信號變低電平。于是外部邏輯進(jìn)行全局內存控制權的裁決,裁決的結果將通過(guò)選通信號通知某個(gè)TMS320C5x,從而使該DSP現在就擁有對全局內存的控制權。顯然,使用全局內存的方式來(lái)完成多DSP的共享數據通信是非常方便的。但是,應用系統往往由單片機作為主機,DSP作為目標系統構成。由于當前使用最多的單片機往往是8位機,使用16位機的共享內存完成主機與DSP的數據交換不是處理太復雜就是資源利用不充分。為了解決DSP與低檔8位主機的數據交換問(wèn)題,TI公司在TMS320C54x系列中使用了HPI接口。HPI將以往一些需片外實(shí)現的功能集成在片內,簡(jiǎn)化了與主機的連接,同時(shí)主機可以達到很高訪(fǎng)問(wèn)速度。該HPI端口在TI TMS320C6x系列的器件中也得到了保持,且功能有所增強。2 TMS320VC5402的HPI TMS320VC5402是TI公司的54X系列定點(diǎn)DSP,具有低功耗,高性能的特點(diǎn)。 CPU 增強的多總線(xiàn)結構,三條獨立的16bit數據存儲器總線(xiàn)和一條程序存儲器總線(xiàn);40bit運算邏輯單元(ALU),包括一個(gè)40bit的桶形移位器和兩個(gè)獨立的40bit累加器,17bit%26;#215;17bit并行乘法器;連接一個(gè)40bit的專(zhuān)用加法器,可用來(lái)進(jìn)行非流水單周期乘/加(MAC)運算;比較、選擇和存儲單元(CSSU)用于Viterbi運算器的加/比較選擇;指數編碼器在一個(gè)周期里計算一個(gè)40bit累加器的指數值;兩個(gè)地址發(fā)生器中有八個(gè)輔助寄存器和兩個(gè)輔助寄存器運算單元(ARAUs);數據總線(xiàn)具有總線(xiàn)保持特性。 存儲器 擴展地址模式可最大尋址到1M%26;#215;16bit外部程序空間,4K%26;#215;16bit片上ROM,16K%26;#215;16bit雙訪(fǎng)問(wèn)片上RAM。 指令集 支持單指令循環(huán)和塊循環(huán),存儲塊移動(dòng)指令提供了高效的程序和數據存儲器管理,支持32bit長(cháng)字操作數指令,支持兩個(gè)或三個(gè)操作數讀指令,支持并行存儲和并行加載的算術(shù)命令、條件存儲指令和中斷快速返回,支持定點(diǎn)DSP C語(yǔ)言編譯器。 片上硬件資源 軟件可編程等待狀態(tài)發(fā)生器和可編程存儲單元轉換,連接內部振蕩器或外部時(shí)鐘源的鎖相環(huán)(PLL)時(shí)鐘發(fā)生器,兩個(gè)多通道緩沖串口(McBPs),增強型8bit并行主機接口(HPI8),兩個(gè)16bit定時(shí)器,6通道直接存儲器訪(fǎng)問(wèn)(DMA)控制器。 電源 低功耗,工作電源有3.3V和1.8V(內核),用節電模式的IDLE1、IDLE2及IDLE3指令做功率控制,可禁止CLKOUT信號。 速度 在3.3V供電(1.8V核心電壓)下單周期定點(diǎn)指令的執行周期為10ns(100MIPS)。 仿真 符合IEEE1149.1邊界掃描邏輯標準的片內掃描仿真邏輯接口。 TMS320C54x系列DSP芯片中的HPI,能夠順序傳送或隨機傳送數據,產(chǎn)生HOST中斷和C54x中斷,接口靈活,并可通過(guò)DMA總線(xiàn)訪(fǎng)問(wèn)片內RAM。當TMS320C54x與主機(或主設備)交換信息時(shí),HPI是主機的一個(gè)外圍設備。HPI有8根數據線(xiàn)HD(0~7),在TMS320C54x與HOST傳送數據時(shí),HPI能自動(dòng)將外部接口傳來(lái)的連續數據組合成16位數后傳送給DSP。如果HOST和DSP競爭同一個(gè)地址,則HOST優(yōu)先,DSP等待一個(gè)HPI周期。 TMS320C54x系列發(fā)展到TMS320VC5402的時(shí)候,其HPI已經(jīng)得到了增強,被稱(chēng)為HPI-8。和TMS320C54x系列前幾款芯片中的標準HPI相比,HPI-8在幾個(gè)方面有所不同,見(jiàn)表1。表1 HPI-8和標準HPI的主要差別 增強型HPI(HPI-8)標準HPI可訪(fǎng)問(wèn)所有片內RAM空間HOST訪(fǎng)問(wèn)總是與TMS320C54z時(shí)鐘同步HOST和TMS320C54x都可訪(fǎng)問(wèn)片內RAM可訪(fǎng)問(wèn)所有片內2K的RAM空間HOST-Only模式下HOST訪(fǎng)問(wèn)與TMS320C54x時(shí)鐘同步HOST-Only模式,HOST具有獨占的訪(fǎng)問(wèn)權HPI-8的使用是通過(guò)對HPIA、HPIC和HPID三個(gè)寄存器賦值實(shí)現的。HPIA是地址寄存器,HPIC是控制寄存器,而HPID是數據寄存器。簡(jiǎn)單地說(shuō),HOST通過(guò)外部引腳HCNTL0和HCNTL1選中不同的寄存器,則當前發(fā)送8位數據就到該寄存器。在使用上,由于HPIC是16位寄存器,而HPI-8是8位的數據寬度,所以HOST向HPIC寫(xiě)數據時(shí),需要發(fā)送兩個(gè)一樣的8位數據。而地址寄存器HPIA選擇后,直接向它寫(xiě)數據就可以了,但是要注意MSB和LSB的順序。另外,HPIA具有自動(dòng)增長(cháng)的功能,在每寫(xiě)入一個(gè)數據前和每寫(xiě)入一個(gè)數據后,HPIA會(huì )自動(dòng)加1。這樣,如果使能了該功能,只需設定一次HPIA即可實(shí)現連續數據塊的寫(xiě)入和讀出。數據寄存器HPLD,嚴格就應該叫做數據緩沖寄存器,因為最終數據是要寫(xiě)到片內RAM的。只是在實(shí)現上,數據首先從HOST發(fā)到HPID中,然后根據HPIA指定的地址,HPID中的數據再寫(xiě)到片內RAM的地址中。不過(guò)對用戶(hù)而言,該過(guò)程是透明的。 3 使用HPI對DSP進(jìn)行自舉 HPI是作為多機數據交換而出現的,但是由于其功能特性,又產(chǎn)生一種新應用——使用HPI對DSP進(jìn)行自舉。實(shí)際上,TMS320VC5x系列DSP在片內固化的Bootloader程序中對HPI自舉提供了全面的支持。筆者在VOIP系統的開(kāi)發(fā)中,實(shí)現了使用HPI對DSP TMS320VC5402的自舉,從而省掉了DSP的EPROM,使DSP只使用SRAM,提高了處理速度,并使HOST CPU具有更大的控制權,很適合多處理器系統。對于計算機插卡式的DSP系統,程序可以從PC機的硬盤(pán)上獲取,從而減小了插卡版面空間占用,提高了處理速度。 在實(shí)現上,需要解決以下幾個(gè)問(wèn)題。 3.1 DSP片內固化的Bootloader程序對HPI自舉的支持自舉從本質(zhì)上說(shuō)就是在DSP啟動(dòng)后通過(guò)某種方式獲取運行代碼并開(kāi)始運行,這個(gè)過(guò)程是在固化在DSP片內的Bootloader程序輔助下完成的。在DSP上電以后,Bootloader程序按照一定的順序依次檢驗何種自舉方式可用,自舉方式包括HPI方式、Serial EEPROM方式、標準Serial Port方式、Parallel方式和I/O方式。 Bootloader查詢(xún)HPI方式是否可用是這樣進(jìn)行的:在啟動(dòng)以后,DSP片內0x7f地址的值被置為0,Bootloader不斷檢驗0x7f地址處是否出現了可用的程序指針的跳轉地址。當其發(fā)現該地址內的值不為0時(shí),即判定為DSP已由外部HOST CPU進(jìn)行了HPI自舉程序加載,并按照該值跳轉PC指針,開(kāi)始運行,從而完成HPI方式自舉 3.2 突破4K的空間限制 由于HPI-8的特性,HOST能夠訪(fǎng)問(wèn)所有的片內RAM空間,對于TMS320VC5402來(lái)說(shuō),其片內RAM地址空間從0000H到3fffH,一共4K。這已經(jīng)大大超過(guò)了標準HPI的2K的大小,但是對于大多數DSP應用程序來(lái)說(shuō),片內RAM除了放置程序代碼以外,很可能還需要留出一部分供數據空間使用。實(shí)際上,大部分代碼都可能放置在片外的程序空間,而這部分空間并不是HOST通過(guò)HPI-8所能夠訪(fǎng)問(wèn)得到的。所以需要使用某種技術(shù)突破4K的片內RAM空間限制。由于DSP程序本身是能夠訪(fǎng)問(wèn)到所有DSP程序、數據空間的,所以HOST可以首先放置一個(gè)體積不大于4K的程序到DSP內,再由該程序和HOST協(xié)作完成超出片內RAM的代碼放置工作。 一般將上述的首先放入DSP的程序稱(chēng)為kernel程序,其功能比較簡(jiǎn)單,本身不超過(guò)4K,可以由HOST全部放入到TMS320VC5402的片內RAM中,并被啟動(dòng)。 基于此種思路的流程圖如圖1所示。3.3 程序代碼的定位 編程序的時(shí)候使用符號作為地址,經(jīng)編譯、鏈接后,符號所表示的相對地址已經(jīng)轉化為絕對地址。要使程序能夠正常運行,需要將程序代碼寫(xiě)到指定的位置——絕對地址。在HOST→Kernel→DSP應用的HPI自舉方式中,HOST和Kernel需先后完成Kernel代碼和DSP應用程序代碼的定位工作。 因此,在HOST CPU的外存儲器中,至少需要保存DSP程序代碼和相應的地址信息。這些數據在由自舉程序寫(xiě)到DSP后,被拼接成正確的可執行代碼、已初始化數據等,并被正確定位。一般來(lái)說(shuō),HOST CPU的外存儲器中的DSP自舉數據是HEX格式的。雖然HEX格式有很多種,但任何一種包含有地址等信息的16進(jìn)制HEX格式文件都是適用的。 常見(jiàn)的HEX格式有ASCII、Intel、TI-Tagged等格式,如圖2所示。 在各種HEX格式中,Intel格式相對來(lái)說(shuō)比較適宜,因為在Intel格式的HEX文件中,代碼被分為每行一個(gè)塊,這種分塊的最大長(cháng)度固定,因此在DSP內預留的緩沖區的大小容易計算。Intel格式的HEX文件的格式為:BYTE1作為每塊的起始標志,總是“:”;BYTE2-3表示該真中有效數據的長(cháng)度,最長(cháng)為32個(gè)BYTE。這種有效數據可能是程序代碼,也可能是擴展地址信息;BYTE4-7表示該真內代碼的起始地址;BYTE8-9是類(lèi)型,00表示程序挖出,01表示結束,04表示擴展地址信息;BYTE10之后是代碼,直到最后兩個(gè)BYTE,表示校驗位。校驗位的值是該真中先前數據值和的補碼。 根據選定的HEX格式,CPU首先按照該格式的定義對Kernel的HEX數據進(jìn)行解釋?zhuān)@取各種信息后,CPU將其在TMS320VC5402片內RAM中組成可執行DSP程序。然后在CPU和kernel的共同作用下,對DSP應用程序的HEX數據進(jìn)行解釋?zhuān)詈笸瓿善湓贒SP中的拼接、定位并啟動(dòng)DSP應用程序——跳轉到DSP應用程序的起始地址。4 系統軟硬件設計與實(shí)現 4.1 系統框圖 在筆者開(kāi)發(fā)的VOIP系統中,使用了HPI對DSP(TMS320VC5402)進(jìn)行自舉的功能。其中相應部分的框圖如圖3所示。 對于PC機插卡的系統,該框圖更可以省略掉HPI以右的部分,而直接使用PC機的CPU和硬盤(pán)作為相應的控制和只讀存儲器件。這樣,僅需要為DSP配備RAM即可使其正常運行。 4.2 Kernel程序設計 按照前面所說(shuō),kernel程序的作用是用于突破MS320VC5402 4K片內RAM空間限制的中間程序,其功能無(wú)非就是按照和HOST CPU的某種約定,獲取DSP程序代碼和相應地址信息,在DSP所能夠訪(fǎng)問(wèn)到的存儲器空間(片內和片外)生成DSP程序代碼。由于Kernel的功能比較少,故其可以做得非常小。其中關(guān)鍵的生成DSP程序代碼部分的代碼如下: … .bss addr,1 ;程序代碼目的地址 .bss length,1 ;程序代碼長(cháng)度 .bss codedata,20 ;接收程序代碼緩沖區 … .text START: … MOVE: STM #addr,AR4 ;獲取程序代碼目的地址 LD *AR4,A STM #codedata,AR3 ;獲取程序代碼 MVDM #length,AR5 ;獲取程序代碼長(cháng)度 NOP MAR *+AR5(#-1) RPT *(AR5) ;定位 WRITA *AR3+ … ENDLOAD: B app_start ;啟動(dòng) … 4.3 運行流程 按照前述的系統構成,首先將PC機上調試好的Kernel程序和DSP應用程序(一般為COFF格式)轉換成HEX文件,并通過(guò)串口將這些文件存放到CPU的Flash中,在存放過(guò)程中應將HEX文件原樣保存,以保留其中所有的信息。在系統啟動(dòng)后,CPU從Flash中獲取Kernel的HEX數據,通過(guò)HPI將其在TMS320VC5402中組合出Kernel運行程序并啟動(dòng)。然后CPU從其Flash中獲取DSP應用程序的HEX數據,通過(guò)HPI將其分塊放入TMS320VC5402,并和已經(jīng)開(kāi)始運行的Kernel程序最終完成DSP引用程序的正確定位工作。最后啟動(dòng)DSP應用程序。 在實(shí)路中發(fā)現,雖然HPI的設計初衷是為了和低速8位機接口進(jìn)行數據交換,但是HPI本身的工作速度非常高。通過(guò)HPI方式加載一段不小于130K的DSP應用程序代碼所需要的時(shí)間不超過(guò)3秒鐘。 TI系列DSP提供了如此豐富的應用方式,無(wú)疑給DSP系統開(kāi)發(fā)者帶來(lái)了極大的方便。

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>