基于MC9328MX1嵌入式最小系統(tǒng)的設(shè)計
[b]引言 [/b] 嵌入式系統(tǒng)是以實際應(yīng)用為核心,對功能、可靠性、成本、體積、功耗有嚴格要求的專業(yè)計算機系統(tǒng),隨著嵌入式系統(tǒng)相關(guān)技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)功能越來越強,應(yīng)用接口更加豐富,根據(jù)實際應(yīng)用的需要設(shè)計出特定的嵌入式最小系統(tǒng)和應(yīng)用系統(tǒng),是嵌入式系統(tǒng)設(shè)計人員應(yīng)具備的能力,由于ARM嵌入式體系的結(jié)構(gòu)的一致性以及外圍電路的通用性,采用ARM內(nèi)核的嵌入式最小系統(tǒng)的設(shè)計原則和設(shè)計方法基本相同,本文基于MC9328MX1芯片介紹ARM嵌入式最小系統(tǒng)設(shè)計的一般方法。 1 MC9328MX1概述 MC9328MX1是Motorola公司基于ARM920T的龍珠(Dragon Ball)MX1處理器,MC9328MX1內(nèi)含ARM公司設(shè)計的16/32bit ARM920T微處理器內(nèi)核,采用RISC架構(gòu)的ARM微處理器具有體積小、功耗低、性價比高的特點,主要應(yīng)用于高級信息處理設(shè)備、智能電話、網(wǎng)頁瀏覽器、數(shù)字多媒體播放器、基于流行的Palm OS操作平臺的手提計算機和無線通信發(fā)射、接收設(shè)備等。 MC9328MX1的結(jié)構(gòu)框圖如圖1所示。 MC9328MX1的體系結(jié)構(gòu)如下:全16/32bit RISC架構(gòu),內(nèi)含效率高、功耗強大的ARM920T的處理器核,支持16bit Thumb和32bit ARM指令集的高性能RISC引擎,支持大、小端模式,內(nèi)部架構(gòu)為大端模式,外部存儲器可分為大、小端模式,基于JTAG接口的方案,邊界掃描接口,用于嵌入式多媒體應(yīng)用集成系統(tǒng)。
MC9328MX1的系統(tǒng)關(guān)系特性為:一體化的16KB指令Cache及16KB數(shù)據(jù)Cache,支持虛擬地址轉(zhuǎn)換存儲器管理單元(VMMU),支持 ROM/SRAM、Flash存儲器、DRAM和外部I/O以8/16/32bit的方式操作,支持EDO/常規(guī)或SDRAM存儲器,使用ARM先進的微控制器總線結(jié)構(gòu)(AMBA),即SoC多主總線接口,利用精簡先進的高性能總線(R-AHB)與速度較慢的片上外圍設(shè)備進行通信,可同時連接15個外部設(shè)備。 盡管嵌入式處理器芯片種類多,引腳繁雜,但根據(jù)它們各自的功能特點,因該分布是有規(guī)律的,在嵌入式最小硬件系統(tǒng)設(shè)計中,要注意區(qū)分處理器芯片引腳的類型,仔細分析研究關(guān)鍵引腳作用,才能保障最小系統(tǒng)的正常運行。 MC9328MX1采用MAPBGA封裝,共有256引腳,MC9328MX1的引腳可分為電源、接地、輸入(I)、輸出(O)、輸入/輸出(I/O)5 類。除了電源和接地線有近40根,以及地址總線,數(shù)據(jù)總線和通用I/O接口端,專用模塊SPI、UART、I2C、LCD等接口,需要認真仔細研究的引腳不是很多,電源和接地端是保障系統(tǒng)正常工作最基本的條件之一,輸入類型的有些引腳在系統(tǒng)設(shè)計時必須認真仔細對待,因為有些電平信號直接影響到 MC9328MX1的正常工作,輸出類型的引腳主要用于對外設(shè)的控制或通信,由MC9328MX1主動發(fā)出,對MC9328MX1自身的運行不會有太大的影響,輸入/輸出類型引腳是MC9328MX1與外設(shè)的雙向數(shù)據(jù)傳輸通道。 2 嵌入式最小系統(tǒng) 以ARM內(nèi)核嵌入式微處理器為中心,具有完全相配接的Flash電路、SDRAM電路、JTAG電路、電源電路、晶振電路、復位信號電路和系統(tǒng)總線擴展等,保證嵌入式微處理器正常運行的系統(tǒng),可稱為嵌入式最小系統(tǒng)。 嵌入式最小系統(tǒng)硬件結(jié)構(gòu)圖如圖2所示。
嵌入式最小系統(tǒng)硬件功能如下: 微處理器:MC9328MX1是系統(tǒng)工作和控制中心; 電源電路:為MC9328MX1核心部分提供所需的1.80V工作電壓,為部分外圍芯片提供3.0V的工作電壓; 晶振電路:為微處理器及其他電路提供工作時鐘,及系統(tǒng)中MC9328MX1芯片使用32KHz或32.768KHz無源晶振; Flash存儲器:存放嵌入式操作系統(tǒng)、用戶應(yīng)用程序或者其他在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等; SDRAM:作為系統(tǒng)運行時的主要區(qū)域,系統(tǒng)及用戶數(shù)據(jù)、堆棧均位于該存儲器中; 串行接口:用于MX1系統(tǒng)與其他應(yīng)用系統(tǒng)的短距離雙向串行通信; JTAG接口:對芯片內(nèi)部所有部件進行訪問,通過該接口對系統(tǒng)進行調(diào)試、編程等; 系統(tǒng)總線擴展:引出地址總線、數(shù)據(jù)總線和必須的控制總線,便于用戶根據(jù)自身的特定需求,擴展外圍電路。 [b] 3 最小系統(tǒng)硬件的選擇和單元電路的設(shè)計 3.1 電源電路設(shè)計[/b] 電源電路是整個系統(tǒng)正常工作的基礎(chǔ),設(shè)計的電源電路必須滿足系統(tǒng)對該電路性能指標的要求。MC9328MX1核心部分需1.80V工作電壓,部分外圍芯片需3.30V工作電壓,根據(jù)要求輸入5V直流電壓經(jīng)DC-DC變換,分別為系統(tǒng)提供1.80V和3.30V的工作電壓,不同系統(tǒng)根據(jù)實際功耗,選擇器件設(shè)計電源電路,電源電路如圖3所示。
3.2 晶振電路與復位電路設(shè)計 晶振電路為微處理器及其他電路提供工作時鐘,是系統(tǒng)必須的重要電路,MC9328MX1使用32KHz無源晶振,32KHz晶振頻率輸入 MC9328MX1后,經(jīng)PLL(鎖相環(huán))倍頻后達到16.384MHz,并輸入系統(tǒng)PLL及MCU PLL。MCU PLL將輸入的16.384MHz倍頻到最高192MHz,提供給ARM內(nèi)核使用,系統(tǒng)晶振電路如圖4所示。
復位電路主要完成系統(tǒng)的上電復位和系統(tǒng)在運行時用戶的按鍵復位功能,本系統(tǒng)采用較簡單的RC復位電路,復位電路如圖5所示。
3.3 Flash存儲器接口電路設(shè)計 Flash存儲器在系統(tǒng)中通常用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的數(shù)據(jù)等。Flash接口電路是最小系統(tǒng)設(shè)計中至關(guān)重要的電路。 常用的Flash存儲器為8bit/16bit數(shù)據(jù)寬度,工作電壓一般為3.3V,主要生產(chǎn)廠商為Intel、Atmel、Hyundai等,他們生產(chǎn)的同類器件一般具有相同的電氣特性和封裝形式,可根據(jù)需要選用。 為了充分發(fā)揮32bit MC9328MX1性能優(yōu)勢,直接采用1片32bit數(shù)據(jù)寬度的Flash存儲器芯片,也可采用2片16bit數(shù)據(jù)寬度的Flash存儲器芯片并聯(lián)構(gòu)建 32bit的Flash存儲器系統(tǒng),16bit Flash存儲器系統(tǒng)的構(gòu)建方法與32bit Flash存儲器系統(tǒng)相似,本系統(tǒng)使用2片28F320J3A組成32bit Flash存儲器32bit Flash存儲器系統(tǒng)如圖6所示。[!--empirenews.page--]
2片28F320J3A,其中一片為高16bit,另一片為低16bit,作為整體配置到MC9328MX1外圍接口模塊CS0空間,將 MC9328MX1的#CS接至2片28F320J3A的CE0端,CE1、CE2接地;2片28F320J3A的地址總線[A21-A1]均與 MC9328MX1的地址總線[A22-A01]相連,低16bit片的數(shù)據(jù)總線與MC9328MX1的低16bit數(shù)據(jù)總線[D15-D00]連接,高 16bit片的數(shù)據(jù)總線與MC9328MX1的高16bit數(shù)據(jù)總線[D31-D16]連接;2片28F320J3A的RP#端接VCC;2片 28F320J3A的OE端接MC9328MX1的#OE;2片28F320J3A的WE端接MC9328MX1的#EB;2片28F320J3A的 BYTE均上拉,使之工作在字模式。 3.4 SDRAM接口電路設(shè)計 與Flash存儲器相比較,SDRAM雖然不具有掉電保持數(shù)據(jù)的特性,但其存取速度大大高于Flash存儲器,并且具有讀/寫屬性,SDRAM在系統(tǒng)中主要用作程序的運行空間、數(shù)據(jù)及堆棧區(qū)。因此,SDRAM接口電路在最小系統(tǒng)設(shè)計中必須高度重視。 目前常用的SDRAM為8bit/16bit數(shù)據(jù)寬度、工作電壓一般為3.3V,主要生產(chǎn)廠商為Samsung、HYUNDAI、Winbond等,若同類器件具有相同的電氣特性和封裝形式可通用。但在使用SDRAM時要注意ARM芯片是否具有獨立的SDRAM的刷新控制邏輯,若有可直接與SDRAM接口,若無則不能直接與SDRAM連接。 根據(jù)系統(tǒng)的需求,可構(gòu)建16bit或32bit的SDRAM存儲器系統(tǒng),本系統(tǒng)采用2片K4S281632并聯(lián)構(gòu)建32bit的SDRAM存儲器系統(tǒng),單片K4S281632為16bit數(shù)據(jù)寬度、容量16MB,2片容量共32MB的SDRAM空間,可滿足嵌入式操作系統(tǒng)及各種較復雜運行的運行需求,使用 2片K4S281632構(gòu)建32bit的SDRAM系統(tǒng)電路如圖7所示。
2片K4S281632,其中一片為高16bit,另一片為低16bit。2片K4S281632作為一整體配接到DRAM/SDRAM的CSD0,將 MC9328MX1的#CSD接至2片K4S281632的CS端,2片K4S281632的CLK端接MC9328MX1的SDCLK端,2片 K4S281632的CLE端接MC9328MX1的SDCKE端;2片K4S281632的RAS、CAS、WE端分別接MC9328MX1的RAS、 CAS、SDWE端,2片K4S281632的地址總線[A08-A00]接MC9328MX1的[A10-A02];2片K4S281632的地址總線 [A10-A09]接MC9328MX1的[MA11-MA10];2片K4S281632的地址總線[A11]接MC9328MX1的[A12];2片 K4S241632的BA1、BA0接MC9328MX1的地址總線[A14-A13];高16bit片的[DQ15-DQ0]接MC9328MX1的數(shù)據(jù)總線[D31-D16]、低16bit片的[DQ15-DQ0]接MC9328MX1的數(shù)據(jù)總線[D15-D0];高16bit片的UDQM、LDQM 分別接MC9328MX1的DQM3、DQM2,低16bit片的UDQM、LDQM分別接MC9328MX1的DQM1、DQM0。 3.5 串行接口電路設(shè)計 MC9328MX1提供了串行接口,使用RS-232標準接口,近距離通信系統(tǒng)中可直接進行端對端的連接,但由于MC9328MX1系統(tǒng)中LVTTL電路的邏輯電平與RS-232標準邏輯電平不相匹配,二者間要進行正常的通信必須經(jīng)過信號電平轉(zhuǎn)換,本系統(tǒng)使用MAX3221電平轉(zhuǎn)換電路,以RS-232標準9芯D型接口為例,要完成最基本的串行通信功能,只需要RXD(數(shù)據(jù)接收)、TXD(數(shù)據(jù)發(fā)送)和GND(地)端即可。串行接口電路如圖8所示。
3.6 JTAG接口電路設(shè)計 JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),芯片內(nèi)部封裝了專門的測試電路TAP(測試訪問口),通過專用的JTAG測試工具對內(nèi)部節(jié)點進行測試和控制,目前大多數(shù)ARM器件支持JTAG協(xié)議,標準JTAG接口是4線;TMS(測試模式選擇)、TCK(測試時鐘)、TDI(測試數(shù)據(jù)串行輸入)、TDO(測試數(shù)據(jù)串行輸出)。JTAG接口的連接有兩種標準,即14針JTAG接口與MC9328MX1連接電路。