本發(fā)明涉及高速實時數(shù)字信號處理領域,特別是涉及TigerSHARC DSP芯片的應用技術。
背景技術:
DSP芯片是實現(xiàn)高速信號處理和實時信號處理的重要技術手段,廣泛應用于通信、雷達、聲吶、網(wǎng)絡等領域。
ANALOG DEVICE公司的TigerSHARC DSP芯片是一種高性能的數(shù)字信號處理芯片,其核心工作頻率高,運算能力強,可用于處理具有大數(shù)據(jù)流和多計算任務的項目。TigerSHARC DSP具有靜態(tài)超標量體系結(jié)構,支持32比特和40比特的浮點運算以及8比特、16比特、32比特和64比特的定點處理,可使處理器在一個時鐘周期內(nèi)同時執(zhí)行4條指令,完成24個16比特的定點運算和6個浮點運算。具有三條獨立的128比特寬的內(nèi)部數(shù)據(jù)總線,每條總線連接到一塊的內(nèi)部存儲區(qū),支持QUADWORD長度的數(shù)據(jù)、指令和I/O操作,提供超高速的內(nèi)部存儲器帶寬。TigerSHARC DSP具有DMA控制器和片間高速數(shù)據(jù)傳輸鏈路LINK口,具有外部中斷引腳及可編程的指示信號,具有內(nèi)部計時器和計時器溢出管腳、外部的靜態(tài)存儲及動態(tài)存儲器接口、主處理器接口、無縫的多處理器接口、JTAG測試口。這些特點使得TigerSHARC DSP成為完成并行高速信號處理和并行實時信號處理的很好的選擇。
TigerSHARC DSP支持兩類引導模式:主引導模式(master boot)和從引導模式(slave boot)。
在主引導模式下,TigerSHARC DSP作為主動方,用外部口輸出地址、讀BMS等控制信號,從EPROM或FLASH中加載代碼。在從引導模式下,TigerSHARC DSP作為被動方,不向外部輸出控制信號,外部主機向 TigerSHARC DSP的主機端口或鏈路口傳送要加載的代碼,TigerSHARC DSP僅僅啟動若干DMA,并執(zhí)行第一個DMA所接收到的加載核。
不論哪種引導模式,它們都有相同的引導過程。
(1)TigerSHARC DSP自動啟動一個DMA,自動把256個32位字傳送到內(nèi)部存儲器的地址Ox00~0xFF。
(2)執(zhí)行上述256指令(稱為加載核),加載核啟動其他DMA把后續(xù)指令和數(shù)據(jù)加載到內(nèi)部和/或外部存儲器。
(3)加載核自我覆蓋。
除上述兩類引導模式,另外還可以選擇“非引導”模式或利用TigerSHARC DSP的EZ-ICE仿真器通過JTAG口加載程序。在“非引導”模式時,TigerSHARC DSP從有效的IRQs所設定的矢量表地址執(zhí)行。
上述主引導模式中,通過外部主機向TigerSHARC DSP機載引導的功能對于實際應用至關重要,特別是在系統(tǒng)調(diào)測試階段、試驗階段和設備使用維護階段,該功能可以避免大量的使用仿真器的繁瑣操作,并可以在不打開設備外機箱的情況下進行對TigerSHARC DSP程序的維護和測試。
盡管可以通過TigerSHARC DSP的鏈路口進行外部主機加載,但外部主機一般采用x86架構處理器、ARM或單片機等,沒有TigerSHARC DSP鏈路口兼容的鏈路口,需要復雜的電路來進行接口協(xié)議轉(zhuǎn)換,實現(xiàn)極為復雜。因此,通過TigerSHARC DSP的主機引導加載是實現(xiàn)外部主機加載最為簡單的實現(xiàn)方式。
然而,ANALOG DEVICE公司提供的TigerSHARC DSP主機引導加載方法卻無法實現(xiàn),ANALOG DEVICE公司也未給出彌補這一缺陷的方法。
技術實現(xiàn)要素:
(一)要解決的技術問題
本發(fā)明提供了一種針對TigerSHARC DSP芯片的主機引導加載方法,該方法可以解決通過TigerSHARCA DSP的鏈路口進行外部主機加載的復雜性。
(二)技術方案
本發(fā)明提供了一種針對TigerSHARC DSP芯片的主機引導加載方法,所述方法用于將DSP的加載文件通過主機引導的方式加載到TigerSHARC DSP芯片中,其特征在于,包括以下步驟:
申請TigerSHARC DSP的外部總線成功后;
主機向TigerSHARC DSP的AUTODMA0寄存器寫63次數(shù)據(jù)0x0000ffff;
從主機順序讀入所述加載文件的前256字,順序?qū)懭隩igerSHARC DSP的從0x0開始的內(nèi)存地址;
主機向TigerSHARC DSP的AUTODMA0寄存器寫1次數(shù)據(jù)0x0000ffff;
主機將剩余的加載文件寫入AUTODMA0寄存器,并釋放總線。
上述方案中,所述加載文件包括程序和數(shù)據(jù)。
上述方案中,所述申請TigerSHARC DSP的外部總線,包括以下步驟:
步驟S1:電源穩(wěn)定后,通過復位電路,先置TigerSHARC DSP復位管腳/RESET信號有效,使TigerSHARC DSP芯片硬復位;
步驟S2:延時至少500ms,確保TigerSHARC DSP芯片硬復位;
步驟S3:置TigerSHARC DSP的/HBR信號為低,向DSP申請外部總線;
步驟S4:查詢TigerSHARC DSP的/HBG信號,若為低,則外部總線申請成功,若為高,執(zhí)行步驟S3;
上述方案中,所述將剩余的加載文件寫入AUTODMA0寄存器,并釋放總線,包括以下步驟:
外部主機順序讀入加載文件數(shù)據(jù),寫入TigerSHARC DSP的AUTODMA0寄存器;直至處理完加載文件的全部數(shù)據(jù);
置TigerSHARC DSP的/HBR信號為高,釋放總線。
(三)有益效果
本發(fā)明克服了TigerSHARC DSP芯片無法通過芯片生產(chǎn)廠商提供的主機引導加載方法實現(xiàn)主機引導加載程序的缺陷,使能夠通過主機接口對 TigerSHARC DSP芯片加載程序,提高了TigerSHARC DSP芯片使用的靈活性,以及由TigerSHARC DSP芯片構成的信號處理系統(tǒng)使用的靈活性。
附圖說明
圖1是本發(fā)明一種針對TigerSHARC DSP芯片的主機引導加載方法的流程圖;
圖2是本發(fā)明的實施例,基于精簡ISA計算機總線對TigerSHARC DSP芯片的主機引導加載的原理圖;
圖3是本發(fā)明的實施例,基于精簡ISA計算機總線對TigerSHARC DSP芯片的主機引導加載方法的流程圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
圖1是本發(fā)明一種針對TigerSHARC DSP芯片的主機引導加載方法的流程圖;
針對TigerSHARC DSP芯片的主機引導加載方法的步驟包括:
步驟S1:電源穩(wěn)定后,通過復位電路,先置TigerSHARC DSP復位管腳/RESET信號有效,使TigerSHARC DSP芯片硬復位;
步驟S2:延時至少500ms,確保TigerSHARC DSP芯片硬復位;
步驟S3:置TigerSHARC DSP的/HBR信號為低,向DSP申請外部總線;
步驟S4:查詢TigerSHARC DSP的/HBG信號,若為低,則外部總線申請成功,執(zhí)行步驟S5,若為高,執(zhí)行步驟S3;
步驟S5:向TigerSHARC DSP的AUTODMA0寄存器寫63次數(shù)據(jù)0x0000ffff;
步驟S6:主機順序讀入4字節(jié)加載文件數(shù)據(jù),順序?qū)懭隩igerSHARC DSP的內(nèi)存地址;
步驟S7:再重復步驟S6 255次;
步驟S8:向TigerSHARC DSP的AUTODMA0寄存器寫1次數(shù)據(jù)0x0000ffff;
步驟S9:外部主機順序讀入4字節(jié)加載文件數(shù)據(jù),繼續(xù)順序?qū)懭階UTODMA0寄存器;
步驟S10:重復步驟9,直至處理完加載文件的全部數(shù)據(jù);
步驟S11:置TigerSHARC DSP的/HBR信號為高,釋放總線。
如圖2所示的基于精簡ISA計算機總線對TigerSHARC DSP芯片的主機引導加載的原理圖,包括精簡ISA總線、地址譯碼、控制信號產(chǎn)生、數(shù)據(jù)產(chǎn)生和地址產(chǎn)生。
其中,精簡ISA總線是采用了ISA總線數(shù)據(jù)信號、地址信號和部分控制信號的總線,一般由嵌入式計算機提供ISA總線,在使用時,只采用ISA總線的數(shù)據(jù)信號、地址信號和部分的ISA控制信號用于對TigerSHARC DSP進行控制和實現(xiàn)TigerSHARC DSP主機引導加載。
地址譯碼用于解析精簡ISA總線IO地址空間,產(chǎn)生針對TigerSHARC DSP的功能指令、數(shù)據(jù)指令和地址產(chǎn)生指令;即選取ISA總線可用的IO空間作為被控TigerSHARC DSP芯片的ISA地址空間,對上述ISA地址空間不同的地址進行讀寫操作,通過地址譯碼和讀寫控制產(chǎn)生不同的TigerSHARC DSP操作指令,包括功能指令、數(shù)據(jù)指令和產(chǎn)生地址指令。
控制信號產(chǎn)生用于將地址譯碼產(chǎn)生的功能指令,轉(zhuǎn)換為具有讀寫、控制時序的控制信號輸出到TigerSHARC DSP的控制引腳,包括產(chǎn)生/WRL信號、/RD信號、/HBR信號和/RESET等信號,控制信號接收TigerSHARC DSP的/HBG信號,用于判斷總線申請是否成功。
數(shù)據(jù)產(chǎn)生用于在地址譯碼產(chǎn)生數(shù)據(jù)指令時,通過固定的時序,將16位ISA數(shù)據(jù)轉(zhuǎn)換為32位數(shù)據(jù)發(fā)送到TigerSHARC DSP的低32位數(shù)據(jù)總線上。
地址產(chǎn)生用于在地址譯碼發(fā)出產(chǎn)生地址指令時,通過固定的時序,將16位ISA數(shù)據(jù)作為低位,地址譯碼空間作為高位,生成32位地址數(shù)據(jù)發(fā)送到TigerSHARC DSP的地址總線上。
在本實施例中,選取0x700~0x7ff為被控TigerSHARC DSP芯片在ISA總線中的地址空間,在地址空間0x700~0x7ff范圍內(nèi),ISA高八位地 址固定不變,命名為基地址,低八位地址按照需求可進行劃分,下面是與加載數(shù)據(jù)或程序有關的地址列表,地址數(shù)值可任意設置:
BASE+0X02:寫TigerSHARC DSP內(nèi)部寄存器的地址,16位數(shù)據(jù)為地址低16位;
BASE+0X04:寫數(shù)據(jù)到PLD中作為寫地址操作時將數(shù)據(jù)寫入TigerSHARC DSP總線上的鎖存數(shù)據(jù),連續(xù)兩次寫,第一次對應TigerSHARC DSP低16位數(shù)據(jù),第二次寫對應TigerSHARC DSP高16位數(shù)據(jù),兩次連續(xù)寫為一個完整組合,先寫數(shù)據(jù)再寫地址;
BASE+0X06:向TigerSHARC DSP申請外部總線,寫任意數(shù)產(chǎn)生該申請;
BASE+0X08:釋放TigerSHARC DSP外部總線,寫任意數(shù)執(zhí)行該釋放工作;
BASE+0X0A:寫TigerSHARC DSP內(nèi)部存儲區(qū)0,16位數(shù)據(jù)為地址低16位;
BASE+0X22:讀地址,以檢查DSP外部總線狀態(tài),數(shù)據(jù)最低位有效;
BASE+0X72:寫該地址產(chǎn)生系統(tǒng)復位命令,對TigerSHARC DSP硬復位;
其中,BASE為基地址0x700。
對TigerSHARC DSP進行復位時,輸出任意數(shù)到BASE+0X72地址,通過地址譯碼產(chǎn)生復位指令輸出到控制信號產(chǎn)生,然后控制信號產(chǎn)生符合TigerSHARC DSP復位需求的/RESET信號,之后延時至少500ms,確保復位有效完成。
對于申請TigerSHARC DSP總線操作,輸出任意數(shù)到BASE+0X06地址,通過地址譯碼產(chǎn)生總線指令輸出到控制信號產(chǎn)生,然后控制信號產(chǎn)生將TigerSHARC DSP的/HBR信號持續(xù)拉低。
對于判斷TigerSHARC DSP總線申請是否有效,讀BASE+0X22地址信號,此時,TigerSHARC DSP的/HBG信號連接至ISA數(shù)據(jù)總線的最低位,通過判斷該位數(shù)據(jù)是否為0,則可以判斷申請TigerSHARC DSP地址總線操作是否有效。
對于向AUTODMA0寄存器寫數(shù)據(jù),先向BASE+0X04地址寫入低16位數(shù)據(jù),地址譯碼產(chǎn)生數(shù)據(jù)指令發(fā)送到數(shù)據(jù)產(chǎn)生,數(shù)據(jù)產(chǎn)生將ISA數(shù)據(jù)總線上的數(shù)據(jù)三態(tài)鎖存在TigerSHARC DSP的低16位數(shù)據(jù)總線上;再向BASE+0X04地址寫入高16位數(shù)據(jù),地址譯碼產(chǎn)生數(shù)據(jù)指令發(fā)送到數(shù)據(jù)產(chǎn)生,數(shù)據(jù)產(chǎn)生將ISA數(shù)據(jù)總線上的數(shù)據(jù)三態(tài)鎖存在TigerSHARC DSP的次低16位數(shù)據(jù)總線上;最后,BASE+0X02地址寫入0x740,地址譯碼產(chǎn)生寫寄存器指令和產(chǎn)生地址指令分別發(fā)送到地址產(chǎn)生和控制信號產(chǎn)生,地址產(chǎn)生將ISA數(shù)據(jù)總線上的數(shù)據(jù)鎖存到TigerSHARC DSP的低16位地址總線上,地址產(chǎn)生將預存的寄存器高16位地址鎖存到TigerSHARC DSP的高16位地址總線上,控制信號產(chǎn)生將/WRL信號置低,同時數(shù)據(jù)產(chǎn)生和地址產(chǎn)生驅(qū)動數(shù)據(jù)和地址到TigerSHARC DSP的數(shù)據(jù)總線和地址總線。
對于向TigerSHARC DSP的加載內(nèi)存空間寫數(shù)據(jù),先向BASE+0X04地址寫入低16位數(shù)據(jù),地址譯碼產(chǎn)生數(shù)據(jù)指令發(fā)送到數(shù)據(jù)產(chǎn)生,數(shù)據(jù)產(chǎn)生將ISA數(shù)據(jù)總線上的數(shù)據(jù)三態(tài)鎖存在TigerSHARC DSP的低16位數(shù)據(jù)總線上;再向BASE+0X04地址寫入高16位數(shù)據(jù),地址譯碼產(chǎn)生數(shù)據(jù)指令發(fā)送到數(shù)據(jù)產(chǎn)生,數(shù)據(jù)產(chǎn)生將ISA數(shù)據(jù)總線上的數(shù)據(jù)三態(tài)鎖存在TigerSHARC DSP的次低16位數(shù)據(jù)總線上;最后,向BASE+0X0A地址寫入地址的低16位,地址譯碼產(chǎn)生寫內(nèi)存指令和產(chǎn)生地址指令分別發(fā)送到地址產(chǎn)生和控制信號產(chǎn)生,地址產(chǎn)生將ISA數(shù)據(jù)總線上的數(shù)據(jù)鎖存到TigerSHARC DSP的低16位地址總線上,地址產(chǎn)生將預存的加載內(nèi)存空間的高16位地址鎖存到TigerSHARC DSP的高16位地址總線上,控制信號產(chǎn)生將/WRL信號置低,同時數(shù)據(jù)產(chǎn)生和地址產(chǎn)生驅(qū)動數(shù)據(jù)和地址到TigerSHARC DSP的數(shù)據(jù)總線和地址總線。
對于釋放TigerSHARC DSP總線操作,輸出任意數(shù)到BASE+0X08地址,通過地址譯碼產(chǎn)生總線指令輸出到控制信號產(chǎn)生,然后控制信號產(chǎn)生將TigerSHARC DSP的/HBR信號持續(xù)拉高。
圖3為實施例基于精簡ISA計算機總線對TigerSHARC DSP芯片的主機引導加載方法的流程圖,其步驟包括:
步驟一:向ISA地址BASE+0X72寫0,產(chǎn)生系統(tǒng)復位命令,電路產(chǎn)生符合TigerSHARC DSP復位需求的/RESET信號,使TigerSHARC DSP芯片硬復位;
步驟二:延時至少500ms,確保TigerSHARC DSP芯片硬復位;
步驟三:向ISA地址BASE+0X06寫任意數(shù),向TigerSHARC DSP申請外部總線;
步驟四:從ISA地址BASE+0X22讀入16位數(shù)據(jù),查詢/HBG信號狀態(tài),判斷TigerSHARC DSP總線申請是否成功,若讀入數(shù)據(jù)的最低位為0,則對應/HBG信號為0,DSP總線申請成功,順序執(zhí)行步驟五,若讀入數(shù)據(jù)的最低位為1,則對應/HBG信號為1,TigerSHARC DSP總線申請不成功,返回執(zhí)行步驟三;
步驟五:向ISA地址BASE+0X04寫0xFFFF;
步驟六:向ISA地址BASE+0X04寫0x0000;
步驟七:向ISA地址BASE+0X02寫0x740,通過步驟五至步驟七,實現(xiàn)向AUTODMA0寄存器寫入數(shù)據(jù)0x0000ffff,重復步驟五至步驟七共63次;
步驟八:提供ISA總線的主機順序讀入4字節(jié)加載文件數(shù)據(jù),將低16位寫入ISA地址BASE+0X04;
步驟九:將高16位寫入ISA地址BASE+0X04;
步驟十:將低16位的DSP地址寫入ISA地址BASE+0X0A,通過步驟五至步驟七,提供ISA總線的主機讀入4字節(jié)加載文件數(shù)據(jù),順序?qū)懭胍?x0開始的對應的TigerSHARC DSP內(nèi)存地址;重復步驟八至步驟十共256次;
步驟十一:向ISA地址BASE+0X04寫0xFFFF;
步驟十二:向ISA地址BASE+0X04寫0x0000;
步驟十三:向ISA地址BASE+0X02寫0x740,通過步驟五十一至步驟十三,實現(xiàn)向TigerSHARC DSP的AUTODMA0寄存器寫入數(shù)據(jù)0x0000ffff;
步驟十四:提供ISA總線的主機繼續(xù)讀入4字節(jié)加載文件數(shù)據(jù),將低16位寫入ISA地址BASE+0X04;
步驟十五:將高16位寫入ISA地址BASE+0X04;
步驟十六:將0X740寫入ISA地址BASE+0X02,通過步驟十四至步驟十六,提供ISA總線的主機讀入4字節(jié)加載文件數(shù)據(jù),繼續(xù)順序?qū)懭隩igerSHARC DSP的AUTODMA0寄存器,重復步驟十四至步驟十六直至讀完、寫入所有的加載數(shù)據(jù)文件;
步驟十七:向ISA地址BASE+0X72寫0x0000,置/HBR信號為高,釋放TigerSHARC DSP總線。
應當注意,為了使本發(fā)明的實施方式更容易理解,上面的描述省略了對于本領域的技術人員來說是公知的、并且對于本發(fā)明的實施方式的實現(xiàn)可能是必需的更具體的一些技術細節(jié)。例如,上面的描述省略了對ISA總線的一般性描述。上述說明僅僅是示意性的而不是限制性的。
以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。