32位ARM內(nèi)核微處理器W90N740及其應(yīng)用
關(guān)鍵詞:ARM7TDMI;RISC;W90N740;片上系統(tǒng);路由器
W90N740是臺(tái)灣Winbond公司開發(fā)的基于32位ARM核的高性能、低功耗微處理器。W90N740采用ARM7TDMI內(nèi)核,內(nèi)建兩個(gè)10/100Mb MACs以太網(wǎng)絡(luò)控制器,并采用Winbond獨(dú)家專利的網(wǎng)絡(luò)地址轉(zhuǎn)換加速器NAT Accelerator。該器件用硬件方式加速網(wǎng)絡(luò)封包的轉(zhuǎn)換,不僅減少了中央處理器的負(fù)擔(dān),同時(shí)也大幅提高了寬頻的整體系統(tǒng)效能。而芯片方式集成的USB控制器則可透過USB界面連結(jié)各種電腦周邊設(shè)備,以增添產(chǎn)品附加值。此外,W90N740內(nèi)部還集成了EBI(external bus interface)控制器、系統(tǒng)管理器、GDMA控制器等。因而在許多應(yīng)用領(lǐng)域,用該器件設(shè)計(jì)的系統(tǒng)成本比目前同類產(chǎn)品要低。加上ARM公司開發(fā)環(huán)境支持匯編語言、C和C++,其軟件開發(fā)也十分方便。因此,W90N740雖不是主流產(chǎn)品,但也是許多網(wǎng)絡(luò)電子產(chǎn)品的選擇方案之一。
1?。粒遥腕w系結(jié)構(gòu)
1.1 ARM體系的指令集
ARM體系具有ARM和Thumb兩種指令集。當(dāng)處理器工作在ARM狀態(tài)時(shí),執(zhí)行ARM指令集;而當(dāng)其工作在Thumb狀態(tài)時(shí),則執(zhí)行Thumb指令集。
所有ARM指令都是32位長(zhǎng)度。指令以字對(duì)準(zhǔn)方式保存,這樣,ARM狀態(tài)指令地址的最低2位總是零。實(shí)際上,一些指令通常使用最低有效位來判定代碼是轉(zhuǎn)向Thumb代碼還是ARM代碼。
ARM指令集主要包括存儲(chǔ)器訪問指令、數(shù)據(jù)移動(dòng)指令、數(shù)據(jù)處理指令、分支指令、協(xié)處理器指令、狀態(tài)寄存器轉(zhuǎn)移指令和異常處理指令等。
所有Thumb指令都是16位長(zhǎng)度,這些指令可在存儲(chǔ)器中以半字對(duì)準(zhǔn)方式保存。因而,指令的最低有效位在Thumb狀態(tài)下總為零。實(shí)際上,Thumb指令集是32位ARM指令集的功能子集。
1.2 ARM體系的編程模型
(1)ARM支持的數(shù)據(jù)類型
ARM處理器支持下列數(shù)據(jù)類型:Byte(字節(jié)),8位;Halfword(半字),16位;Word(字,必須與4字節(jié)邊界對(duì)齊),32位。
(2)ARM處理器模式
ARM體系結(jié)構(gòu)支持7種處理器模式:用戶模式(User)、 快速中斷請(qǐng)求(FIQ,Fast Interrupt request)、中斷請(qǐng)求(IRQ,Interrupt ReQuest)、管理(Supervisor)、中止(Abort)、系統(tǒng)(System)和未定義(Undefined)。除用戶模式外,其它模式統(tǒng)稱為特權(quán)模式。大多數(shù)應(yīng)用程序可在用戶模式下執(zhí)行。當(dāng)處理器工作在用戶模式時(shí),正在執(zhí)行的程序不能訪問被保護(hù)的系統(tǒng)資源,也不能改變模式,除非發(fā)生異常。因此,開發(fā)中應(yīng)適當(dāng)編寫操作系統(tǒng)來控制系統(tǒng)資源的使用。
(3)ARM寄存器組織
ARM處理器總共有37個(gè)寄存器?其中有31個(gè)32位的通用寄存器(包括程序計(jì)數(shù)器?PC?)和6個(gè)32位的狀態(tài)寄存器(但是只使用了其中的12位)。該處理器將寄存器安排成部分重疊的組,每種處理器模式使用不同的寄存器組。同時(shí)?在所有處理器模式下都可以訪問當(dāng)前程序狀態(tài)寄存器CPSR。而CPSR則包含條件碼標(biāo)志、中斷標(biāo)志位、當(dāng)前處理器模式以及其它狀態(tài)和控制信息。每種異常模式都有一個(gè)程序狀態(tài)保存寄存器SPSR。當(dāng)異常出現(xiàn)時(shí)?SPSR可用于保留CPSR的狀態(tài)。
(4)異常處理
異常通常由內(nèi)部或外部源產(chǎn)生,并引起一個(gè)事件。比如,外部中斷或試圖執(zhí)行未定義指令都會(huì)引起異常。在處理異常之前,必須保留處理器狀態(tài),以便在異常處理程序完成后,使原來的程序能夠重新執(zhí)行。同一時(shí)刻可能出現(xiàn)多個(gè)異常。ARM支持七種類型的異常。異常出現(xiàn)后,系統(tǒng)將強(qiáng)制從異常類型對(duì)應(yīng)的固定存儲(chǔ)器地址開始執(zhí)行程序。
(5)存儲(chǔ)器和存儲(chǔ)器映射I/O
ARM體系結(jié)構(gòu)允許使用現(xiàn)有的存儲(chǔ)器和I/O器件來進(jìn)行各種各樣的存儲(chǔ)系統(tǒng)設(shè)計(jì)。ARM體系結(jié)構(gòu)使用232個(gè)8位字節(jié)的單一線性地址空間。設(shè)計(jì)時(shí)可將字節(jié)地址作為無符號(hào)數(shù)看待,范圍為0~232-1。而將地址空間看作由230個(gè)32位字組成。每個(gè)字的地址都是字對(duì)準(zhǔn)的,故地址可被4整除。其存儲(chǔ)器的存儲(chǔ)使用了兩種映射方法:小端存儲(chǔ)系統(tǒng)和大端存儲(chǔ)系統(tǒng),其映射方式分別如圖1(a)、(b)所示。
圖2
2?。祝梗埃危罚矗暗慕Y(jié)構(gòu)特點(diǎn)
W90N740的內(nèi)部功能框圖如圖2所示。W90N740內(nèi)核為80MHz的ARM7TDMI 32位處理器,可支持大/小模式?Big/Little-Endian mode?的工作方式。該內(nèi)核內(nèi)置有8kB的指令高速緩沖存儲(chǔ)器(I-Cache)和2kB 數(shù)據(jù)高速緩沖存儲(chǔ)器(D-Cache),它們是相同類型的存儲(chǔ)器(除容量大小不同外),可與存儲(chǔ)器之間以塊(cache line)為單位進(jìn)行數(shù)據(jù)交換。每個(gè)高速緩沖存儲(chǔ)器具有4字塊大小,當(dāng)其中一個(gè)高速緩沖存儲(chǔ)器未命中時(shí),其4字塊大小的信息必須從外部寄存器中連續(xù)的獲取,其替換算法采用最近最少使用算法(LRU, Least Recently Used)。當(dāng)I-Cache或D-Cache被禁用時(shí),可以通過Cache 控制寄存器把Cache設(shè)置成片上 RAM。另外,W90N740還提供了一個(gè)8字的寫緩沖器(Write-Buffer).主要用來優(yōu)化向主存儲(chǔ)器的寫入操作。Cache和寫緩沖器的引入大大改善了W90N740存儲(chǔ)系統(tǒng)的性能。
W90N740內(nèi)含鎖相環(huán)PLL,可用于CPU和USB 主機(jī)控制器,使用參考頻率為15MHz。PLL給其它片內(nèi)控制器提供的時(shí)鐘頻率范圍為3~30MHz。
W90N740內(nèi)有USB 主機(jī)控制器,該控制器兼容USB 1.1標(biāo)準(zhǔn),支持低速率(1.5Mbps)和全速率(12Mbps)的USB 設(shè)備。同時(shí)還內(nèi)置有用于實(shí)時(shí)數(shù)據(jù)傳輸?shù)模模停量刂破鳌?/P>
通過W90N740中EBI控制器提供的外部總線可訪問片外SDRAM、ROM/SRAM、Flash memory和I/O設(shè)備。在內(nèi)置 cache失效時(shí),EBI控制器仍可獲得與CPU核相同的工作頻率以保證其處理速度。具有兩個(gè)10/100Mbps以太網(wǎng)MAC控制器?EMC?是W90N740的一大特點(diǎn)。MAC控制器主要應(yīng)用于WAN或LAN。它內(nèi)有兩個(gè)MAC控制器,因而可大大增強(qiáng)此芯片在WAN端口與LAN端口之間的應(yīng)用性能,降低系統(tǒng)成本。EMC采取的工作方式是半/全雙工方式,每個(gè)EMC除包括IEEE802.3以太網(wǎng)協(xié)議引擎外,還含有DMA控制器和收/發(fā)FIFO。EMC提供有兩個(gè)可選擇的接口:媒質(zhì)獨(dú)立接口MII( Media Inde-pendent Interface)和精簡(jiǎn)媒質(zhì)獨(dú)立接口RMII?Reduced MII??使用時(shí)可選擇任一接口,同時(shí)結(jié)合片外速率為10/100Mbps的PHY芯片接口還可以設(shè)計(jì)多種類型的應(yīng)用產(chǎn)品。另外,EMC支持長(zhǎng)幀(長(zhǎng)度大于1518 字節(jié))和短幀(長(zhǎng)度小于64 字節(jié))兩種幀結(jié)構(gòu),而且對(duì)外部的PHY也具有站點(diǎn)管理功能。
NAT加速器 ?Patent Pending?主要用來提供硬件加速功能,其目的是加快端口和IP地址的查尋及網(wǎng)絡(luò)地址的轉(zhuǎn)移,其中包括MAC地址的轉(zhuǎn)移。同時(shí),NAT加速器還可提供64項(xiàng)地址轉(zhuǎn)移列表。W90N740有兩個(gè)通道可用于通用直接存儲(chǔ)器訪問GDMA(General Direct Memory Access)。在CPU不干預(yù)的情況下,GMDA控制器可直接控制以下三種形式的數(shù)據(jù)傳輸:即存儲(chǔ)器與存儲(chǔ)器之間、存儲(chǔ)器至I/O之間以及I/O至存儲(chǔ)器之間。
基于中斷操作的UART模塊具有全設(shè)置的MO-DEM控制功能(CTS,RTS,DSR,DTR,RI和DCD等),其主要作用是完成來自外圍設(shè)備(如MODEM等)的串并轉(zhuǎn)換和來自CPU的并串轉(zhuǎn)換。高級(jí)中斷控制器AIC(Advanced Interrupt Controller)具有18?jìng)€(gè)中斷源,其中包括4個(gè)外部中斷源。它們可以靈活地設(shè)置成可編程的IRQ或FIQ中斷模式,并可對(duì)4個(gè)外部中斷源進(jìn)行可編程的邊沿觸發(fā)或優(yōu)先級(jí)觸發(fā)。同時(shí),也可對(duì)其進(jìn)行可編程的低使能或高使能。在中斷嵌套時(shí),AIC可自動(dòng)檢測(cè)出低優(yōu)先級(jí)中斷。
另外,W90N740具有兩個(gè)帶8 位優(yōu)先級(jí)的定時(shí)器和一個(gè)可編程的24位看門狗定時(shí)器,這些定時(shí)器有短模式、周期模式和插入模式三種工作模式。同時(shí)具有21個(gè)可編程I/O接口,這些I/O接口可設(shè)置成多種功能的接口。W90N740的JTAG調(diào)試接口支持多種調(diào)試開發(fā)工具。
3?。祝梗埃危罚矗暗膽?yīng)用
3.1 W90N740在VoIP路由器用戶板中的應(yīng)用
在VoIP(Voice over IP)路由器用戶板的設(shè)計(jì)中,筆者選用W90N740來進(jìn)行信息包解包,其系統(tǒng)硬件結(jié)構(gòu)如圖3所示。其工作過程如下:
首先將來自用戶接口的語音數(shù)據(jù)經(jīng)過語音處理模塊處理以產(chǎn)生PCM語音數(shù)據(jù),然后將其傳送給DSP處理器并由DSP對(duì)該PCM語音數(shù)據(jù)進(jìn)行回聲抵消、語音壓縮等序列處理,接著由W90N740封裝控制信息打包,再由UART口傳送給雙端口RAM,最后送給VoIP路由器主板。與此相反,由路由器主板把從網(wǎng)絡(luò)接收到的語音數(shù)據(jù)包經(jīng)過雙端RAM傳送給W90N740,由其MAC進(jìn)行解包處理并去除控制信息,而后得到語音壓縮包,經(jīng)MAC0口傳送給DSP并由DSP進(jìn)行語音解碼等處理后,得到PCM語音數(shù)據(jù)送回到語音處理模塊;最后由用戶接口送給用戶端。這里,W90N740與DSP芯片之間采用的工作方式是主從方式,CPU為主控設(shè)備,DSP為從設(shè)備,主要實(shí)現(xiàn)整個(gè)系統(tǒng)的控制、DSP程序的下載和語音數(shù)據(jù)包的傳送等功能。
3.2 W90N740在其它領(lǐng)域的應(yīng)用
由于W90N740內(nèi)置有兩個(gè)以太網(wǎng) MAC和USB 主機(jī)以及32位ARM的微控制器,因此,它和W99684CBM或W99688CBM3數(shù)字相機(jī)晶片結(jié)合可組成為網(wǎng)絡(luò)相機(jī)。這樣,連上網(wǎng)絡(luò),使用者便可以透過電腦或彩屏手機(jī)隨時(shí)監(jiān)視遠(yuǎn)方場(chǎng)景。
W90N740在稅控機(jī)、快速閃存、打印機(jī)伺服器、無線接入點(diǎn)、用戶網(wǎng)關(guān)、GPS、局域網(wǎng)監(jiān)控等系統(tǒng)無疑將具有廣泛的用途。
評(píng)論