基于ARM核的音頻解碼器單芯片系統(tǒng)研究
本文引用地址:http://2s4d.com/article/264817.htm
EP7209中斷控制器有兩個中斷類型:中斷請求(IRQ)和快速中斷請求(FIQ)。中斷控制器有能力控制來自22個不同的FIQ和IRQ中斷源的中斷。這22個之中,有17個被映射為IRQ輸入,而另5個源被映射為FIQ輸入。FIQ較IRQ有較高的優(yōu)先級。如果來自于同一個組(IRQ或 FIQ)的兩個中斷被接收到的話,其服務(wù)次序必須由軟件來解決。所有中斷均為電平敏感,也就是說,它們必須與下列的次序一致。
(1)中斷器件(內(nèi)部或者外部)產(chǎn)生適當(dāng)?shù)闹袛唷?/p>
(2)如果中斷屏蔽寄存器中適當(dāng)?shù)奈灰驯辉O(shè)置,那么一個FIQ或IRQ將由中斷控制器產(chǎn)生。
(3)如中斷被使能的話,處理器將跳轉(zhuǎn)到適當(dāng)?shù)牡刂贰?/p>
(4)中斷調(diào)度軟件讀中斷狀態(tài)寄存器,以確定中斷源并調(diào)用相應(yīng)的中斷服務(wù)例程。
(5)中斷服務(wù)例程中的軟件將清除中斷源,這是通過對申請中斷的器件采取一些由該器件特定的行動來實施的(如,讀UART RX寄存器)。
然后,中斷服務(wù)例程可以重新使能中斷。任何其它未處理的中斷都將以相同的方法被服務(wù)?;蛘?它可以返回到中斷調(diào)度軟件。此軟件能檢查任何其它的未處理中斷并能相應(yīng)地調(diào)度它們。"End of Interrupt"類型的中斷將被鎖存。所有其它的中斷源(如外部中斷源)必須保持有效,直到相應(yīng)的服務(wù)例程開始執(zhí)行為止。
6. EP7209的啟動方式
片上啟動ROM的128字節(jié)中包含有一個指令序列。此指令序列能夠初始化器件,然后配置UART1以接收2048字節(jié)的串行數(shù)據(jù)。這些數(shù)據(jù)接收后將置于片上的SRAM中。一旦下載傳送完成,執(zhí)行將跳轉(zhuǎn)到片上SRAM的起始處。這將允許諸如在產(chǎn)品的制造過程中將代碼下載并編程到系統(tǒng)Flash中這樣的操作。
是否從片上啟動ROM啟動系統(tǒng)是由nMEDCHG引腳在電源復(fù)位期間的狀態(tài)決定的。如果nPOR有效時,nMEDCHG為高,那么,EP7209將從連接到CS[0]的外部存儲器器件啟動(正常啟動模式);如果nMEDCHG為低,那么,啟動將從片上ROM處開始。注意:在兩種情形下,上電復(fù)位結(jié)束后,EP7209將處于后備態(tài),而且為了真正地開始執(zhí)行啟動序列,需要在WAKEUP引腳上有一個由低到高的跳變。
片上ROM啟動的結(jié)果是對所有片選的解碼都翻轉(zhuǎn)了??刂茊舆x項的信號由nPOR鎖存,這意味著地址和總線寬度的重新映射將繼續(xù)應(yīng)用,直到nPOR的再一次有效為止。從ROM啟動后,啟動ROM的內(nèi)容可從地址0x0000000處讀回來;而在正常操作狀態(tài)下,啟動ROM的內(nèi)容可從地址范圍 0x70000000中讀回。
7. 存儲器和I/O擴展接口
EP7209能夠解碼6個分立的線性存儲器或擴展段。其中的兩個可為PC Card卡預(yù)留,每一個接口連接到一個獨立的單個CL-PS6700器件。每一個段的大小為256MB。兩個附加段(除了這6個段以外的)被用于片上 SRAM和片上ROM。片上ROM空間被完全解碼,SRAM空間也被完全解碼到編程在LCDCON寄存器中的視頻幀緩沖器的最大容量中(128KB)。超出此地址范圍的SRAM空間不被完全解碼(即超出128KB范圍的任何存取將繞回到128KB范圍內(nèi))。6個段中的任一個可配置成與傳統(tǒng)SRAM接口一致的接口相連接,而且能單獨地被編程為8、16或32位寬,支持頁模式存取,并且在執(zhí)行非連續(xù)存取時可插入1~8個等待狀態(tài),執(zhí)行觸發(fā)模式存取時可插入 0~3個等待狀態(tài)。零等待狀態(tài)連續(xù)存取特性被設(shè)計成支持觸發(fā)模式的ROM。對使用nMWE引腳的可寫存儲器件,不允許零等待狀態(tài)連續(xù)存取,至少應(yīng)插入一個等待狀態(tài)(等待狀態(tài)數(shù)應(yīng)編程到適當(dāng)?shù)腗EMCFG寄存器的連續(xù)域中)??偩€周期也可以通過使用EXPRDY輸入信號來進(jìn)行擴展。
8. 大端配置與小端配置
EP7209對內(nèi)部寄存器使用小端(little endian)配置。然而,連結(jié)器件到用大端(big endian)配置的外部存儲器系統(tǒng)上是可能的。ARM720T控制寄存器中的大端/小端位設(shè)置了EP7209在處理存儲器中的字時是按大端格式還是小端格式進(jìn)行。存儲器被認(rèn)為是從0開始向前編號的字節(jié)的線性組合。字節(jié)0~3容納第1個被存儲的字,字節(jié)4~7容納第2個字,等等。在小端規(guī)劃中,字中編號最低的字節(jié)認(rèn)為是字的最低位字節(jié),而編號最高的字節(jié)被認(rèn)為是字的最高位字節(jié)。存儲系統(tǒng)的Byte0在這個規(guī)劃中應(yīng)當(dāng)連到數(shù)據(jù)線7到0(D[7:0])。在大端規(guī)劃中,字的最高位字節(jié)被存儲于編號最低的字節(jié)中,而最低字節(jié)存儲于編號最高的字節(jié)中。因此,存儲器系統(tǒng)的Byte0應(yīng)當(dāng)連到數(shù)據(jù)線31到 24(D[31:24])。裝載和存儲指令是被大小端配置影響的唯一指令。
9. 支持片上幀緩沖器的LCD控制器
LCD 控制器提供了所有需要的控制信號以便直接與一個單面板復(fù)合LCD接口。面板的大小是可編程的,可以是以16像素為增量,從32到1024像素的任何寬度(線長度)??偟囊曨l幀緩沖大小可編程為高達(dá)128KB。這等同于理論上最大的面板大小1024×256像素(每像素4個位 )。視頻幀緩沖器可定位于任何一個片選所控制的存儲器中。在任何一個片選所控制的存儲器中,它的起始地址固定于地址0X00000000。LCD視頻幀緩沖器的起始地址定義在寄存器FBADDR[3:0]中,這些位將成為外部地址總線的最重要nibble(半字節(jié))。缺省起始地址為 0XC0000000(FBADDR=0XC)。一個使用片上SRAM(OCSR)建立的系統(tǒng)將把片上SRAM用于LCD視頻幀緩沖以及用于各種數(shù)據(jù)的存儲。LCD視頻幀緩沖器起始地址在這個系統(tǒng)中應(yīng)當(dāng)設(shè)置為0X6。
三、內(nèi)存映射
地址空間的低2GB分配給了存儲器。在EP7209中,恰好在2GB下的8KB的空間是為內(nèi)部寄存器所準(zhǔn)備的且不可存取,EP7209的MMU應(yīng)被編程為在訪問這一區(qū)域時產(chǎn)生一個中斷例外。
通過從十六進(jìn)制地址8000.0000到8000.3FFF的一組內(nèi)部存儲器位置來尋址內(nèi)部外圍部件。這些內(nèi)存位置在EP7209中被認(rèn)為是內(nèi)部寄存器。從0x8000.0000到0x8000.1FFF含有與CL-PS7111兼容的寄存器,包含了這些寄存器是為了向下兼容并稱它們?yōu)榕f的內(nèi)部寄存器。
表2顯示了ARM720T處理器的4GB地址空間范圍在EP7209中是如何被映射的(當(dāng)從片上啟動ROM啟動時將有不同的內(nèi)存映射),所顯示的內(nèi)存映射假定兩個CL-PS6700卡控制器連結(jié)上了。如果此功能不需要的話,那么nCS[4]和nCS[5]存儲器空間是可用的。外部啟動ROM沒有被完全解碼(即:啟動代碼在0x7000.0000到0x8000.0000的256MB字節(jié)空間內(nèi)將重復(fù))。SRAM可被完全解碼至最大的大小,即128KB,對超出此范圍的任何位置的存取將繞回到這個范圍內(nèi)。
晶振相關(guān)文章:晶振原理 矢量控制相關(guān)文章:矢量控制原理 鎖相環(huán)相關(guān)文章:鎖相環(huán)原理
評論