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