基于ARM高速閃存MCU應對廣泛嵌入式需求
突出特點
由于采用了ARM7TDMI-S內(nèi)核,LPC2000系列MCU工作頻率達60MHz,與其他8-bit產(chǎn)品相比具有更強的功能延展性。同時它借助片上存儲器加 模塊實現(xiàn)了“零等待訪問”高速閃存功能,提高了指令執(zhí)行的效率。
此外,LPC2000的外設接口非常豐富,包括UART、SPI、I2C、CAN、ADC、 PWM、RTC等。LPC2000系列MCU應用領域非常廣泛,從網(wǎng)絡通信、 馬達控制,到汽車和消費電子都適合于涉足。
嵌入式系統(tǒng)是面向用戶、面向產(chǎn)品、面向應用的,它是將先進計算機技術、半導體技術和電子技術以及各行業(yè)的具體應用相結(jié)合的產(chǎn)物,因此它是一個高度密集、不斷創(chuàng)新的知識集成系統(tǒng)。作為嵌入式系統(tǒng),它必須能夠根據(jù)應用的需求可以對軟硬件進行裁剪,精簡系統(tǒng)以滿足應用系統(tǒng)在功能、可靠性、成本、體積等各種要求。
嵌入式處理器是嵌入式系統(tǒng)硬件最核心的部分,飛利浦推出十余款基于 ARM7 的高性能低功耗LPC2000系列微控制器,來滿足不斷增長的嵌入式市場需求。
這一系列新款微控制器LPC2114/2124/2119/2129/2194、LPC2210/2212/2214、LPC2290 /2292/2294在高性能低功耗的基礎上提供了增強的通信功能和片上代碼保護機制。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適用于通信網(wǎng)關、協(xié)議轉(zhuǎn)換器、嵌入式軟調(diào)制解調(diào)器等。6通道的PWM更能用于復雜的馬達控制應用??傊w利浦ARM嵌入式微控制器應用領域包括工業(yè)控制、通信、安防系統(tǒng)、醫(yī)療儀器、航空航天、汽車和消費電子等,覆蓋了從低端到高端的嵌入式產(chǎn)品應用。
以ARM7微核心的體系架構(gòu)
以LPC2214為例,其結(jié)構(gòu)框圖如下:
圖1,LPC2214結(jié)構(gòu)框圖
LPC2214的CPU是一個支持實時仿真和跟蹤的16/32 位ARM7TDMI-S 處理器,該款處理器主要用于對功耗和成本要求比較苛刻的應用。由于使用了三級流水線技術,實現(xiàn)了指令的高效執(zhí)行。ARM7TDMI-S處理器除了支持標準32位 ARM指令集,也支持16位的THUMB指令集,THUMB 代碼僅為ARM 代碼規(guī)模的65%,但其性能卻相當于連接到16位存儲器系統(tǒng)的相同ARM處理器性能的160%。
片上系統(tǒng)時鐘由外部振蕩器經(jīng)過鎖相環(huán)倍頻產(chǎn)生,最高工作頻率高達60MHZ。片內(nèi)存儲器控制器是通過單獨的局部總線與CPU接口,這樣做的目的是為了避免總線仲裁的不確定性、總線獲得的延遲和總線上的等待周期,從而獲得更高的實時性能。
中斷控制器和外部總線控制器是通過AMBA 高性能總線(AHB)實現(xiàn)與CPU接口的,外部總線控制器支持8/16/32位外部存儲器。
LPC2214片內(nèi)外設通過VPB總線,AHB 到VPB 的橋與AHB 總線相連。同時其具有多個串行接口,包括2 個16C550 工業(yè)標準UART、高速I2C 接口(400 kHz)和2 個SPI 接口。它還具有8路10 位A/D 轉(zhuǎn)換器(0~3V測量范圍),轉(zhuǎn)換時間可低至2.44uS;2個32 位定時器(帶4 路捕獲和4 路比較通道);PWM 單元(6 路輸出);實時時鐘和看門狗,112個通用I/O 口(可承受5V 電壓);2 個低功耗模式:空閑和掉電。
{{分頁}}
片上集成高速閃存
LPC2000系列的片上閃存專為嵌入式應用而設計。采用0.18微米的工藝,雙晶體管單元和耐久的寫/擦機制,可實現(xiàn)寫/擦一萬次,128位寬的優(yōu)化陣列,零等待的訪問,使程序可以全速運行。同時還提供對片上程序保護機制,防止代碼被復制。
圖2,存儲器加速模塊
LPC2000系列微控制器能夠?qū)崿F(xiàn)零等待訪問的高速閃存,這主要歸功于片上的存儲器加速模塊。圖2為存儲器加速模塊的結(jié)構(gòu)框圖。128位寬度的閃存陣列通過單獨的局部總線與處理器接口,每周期可為ARM內(nèi)核提供四條32位指令。這使得MCU無需經(jīng)過等待狀態(tài)就可直接從閃存上執(zhí)行指令,從而消除了一般閃存讀取時的等待時間。為了解決指令序列的變化,指令和數(shù)據(jù)的不同處理帶來的等待時間,模塊內(nèi)部實現(xiàn)了預取緩沖器、避免數(shù)據(jù)讀/寫打亂地址序列的數(shù)據(jù)旁路和跳轉(zhuǎn)跟蹤緩沖器三個功能塊的聯(lián)合工作,并用兩組128位寬度的存儲器來進行并行訪問,消除延時。
存儲器加速模塊的作用取決于系統(tǒng)時鐘的大小。LPC2000系列片上閃存的訪問時間為50nS,對于系統(tǒng)時鐘不高于20MHZ的應用,在1個周期內(nèi)就可將閃存的內(nèi)容讀出,此時沒必要使用存儲器加速模塊。時鐘頻率越高,當直接執(zhí)行閃存中的代碼時,系統(tǒng)性能受影響越大,此時使能存儲器加速模塊,可以得到接近4倍速度的加速,真正實現(xiàn)零等待高速閃存。由于LPC2000可直接從閃存執(zhí)行指令,無需引導期間將代碼傳送到SRAM,這不僅省掉了耗時又耗能的系統(tǒng)啟動步驟,還節(jié)省了昂貴的SRAM。
對片內(nèi)閃存的編程可通過幾種方法來實現(xiàn):通過內(nèi)置的串行JTAG 接口,通過串口進行在系統(tǒng)編程(ISP),或通過在應用編程(IAP)。
{{分頁}}
豐富的外部總線接口
LPC22XX系列產(chǎn)品提供了外部存儲器接口,其中包含了24條地址線A0~A23,32條數(shù)據(jù)線D0~D31及相關的總線使能線;其中數(shù)據(jù)線寬度可選擇8位,16位或32位來使用,圖3為32數(shù)據(jù)線寬度和8/16/32位數(shù)據(jù)線寬度的外部存儲器連接示意圖:
圖3,32數(shù)據(jù)線寬度外部存儲器接口
LPC22XX提供了4個獨立且可同時配置存儲器組,每組可有16MB的地址空間,并且可與SRAM、Pseudo-SRAM、FLASH、EPROM、BURST ROM或其他的I/O DEVICE 作適當?shù)倪B接與存取。
若選用帶有片上閃存的產(chǎn)品,可選擇是由片上閃存啟動或是由外部存儲器來啟動程序。LPC22XX系列產(chǎn)品,還提供了可編程的等待周期及閑置周期,最高可允許插入32個等待周期和16個閑置周期。
矢量中斷控制器
LPC2000系列的矢量中斷控制器可以支持最多32個中斷請求,可根據(jù)需要將其編程分為3 類:FIQ、矢量IRQ 和非矢量IRQ??焖僦袛嗾埱?FIQ)要求具有最高優(yōu)先級。矢量IRQ 具有中等優(yōu)先級。該級別可分配32個請求中的16個。非矢量IRQ 的優(yōu)先級最低。這種可編程分配機制意味著不同外設的中斷優(yōu)先級可以動態(tài)分配并調(diào)整。對于任意矢量中斷,一旦發(fā)出請求,CPU可在一個周期內(nèi)過讀取VIC并跳轉(zhuǎn)到相應的中斷服務程序的入口地址,這將中斷延時降低到最小。
參考設計方案:稅控收款機
稅控收款機是一種帶有計稅功能的電子收款機,不僅是商業(yè)企業(yè)經(jīng)營管理的得力助手,也是稅務人員常駐店內(nèi)采集銷售數(shù)據(jù)的執(zhí)法代表。它內(nèi)部裝有自動記錄但不能更改和抹掉的計稅存儲器,記錄著每日的營業(yè)數(shù)據(jù)和應納稅額,是向納稅機關納稅的憑據(jù)。
中國2003年10月1日通過了《稅控收款機國家標準》,該標準的實施催生了一個巨大的稅控機市場。
稅控收款機由以下幾部分組成:中文顯示系統(tǒng);中文打印系統(tǒng);專用稅控處理系統(tǒng);外圍設備驅(qū)動;電源;帶物理安全保證的機箱。
稅控機制由以IC卡為基礎的發(fā)行、管理、申報、維護、經(jīng)營等系統(tǒng)組成。納稅戶銷售商品在稅控收款機中的記錄與相關的時間等信息可在機內(nèi)保留5~10年,不可修改、不可清除。有關數(shù)據(jù)由稅務部門用專用IC卡讀出,以便稽查。
{{分頁}}
這里給出以LPC2214為主控單元的一個最小系統(tǒng)參考設計,該系統(tǒng)主要由主控MCU模塊、時鐘模塊、電源模塊、監(jiān)控模塊、IC卡讀寫模塊、稅控存儲器、狀態(tài)指示電路、接口電路等組成。硬件結(jié)構(gòu)如圖所示:
圖4, 采用LPC2214的稅控收款機硬件框圖
嵌入式微控制器選用飛利浦LPC2214,充分合理地利用了其片內(nèi)實時時鐘、外部存儲器接口、UART等其它外設接口。片上閃存作為用戶程序的存儲空間,其高速零等待特性保證系統(tǒng)的實時運行。其片上程序保護機制,防止代碼被任意更改和復制。整個系統(tǒng)的設計結(jié)構(gòu)簡潔,極具競爭優(yōu)勢。
稅控收款機軟件設計采用模塊化思想,嵌入式控制器使用基于μC/OS內(nèi)核的RTOS操作系統(tǒng),其用戶程序的開發(fā)大體分為如下部分:主程序、自檢診斷模塊、IC卡讀寫模塊、UART通訊模塊、開票模塊、液晶顯示和按鍵等人機接口模塊。
評論