摘 要 論文以ARM7處理器LPC2104和實(shí)時(shí)嵌入式操作系統(tǒng) I.LC/OS—II為基礎(chǔ) .建立了基LPC2104的嵌入 式開發(fā) 平臺(tái),實(shí)現(xiàn) 了 USB通信、嵌入式 Internet通信 、紅外通信 等非常熱門嵌入式應(yīng)用術(shù) 。同時(shí)硬件的體積更小、功耗更低、功能更多、擴(kuò)展性更強(qiáng) 。此外 ,由于所使用的嵌入式實(shí)時(shí)操作系統(tǒng) ~C/OS—II已經(jīng)通過了可靠性的認(rèn)證 。這樣使得整個(gè)系統(tǒng)的運(yùn)行更加穩(wěn)定 ,程序的維護(hù)和升級(jí)也更加方便。
1 概 述
嵌入式處理器是嵌入式系統(tǒng)的核心部分 ,處理器的選擇是關(guān)鍵 。目前 ,ARM處理器已遍及工業(yè)控制 、消費(fèi)電子產(chǎn)品 、通信系統(tǒng)等各類 產(chǎn)品市場(chǎng) ,基于ARM 技術(shù)的微處理器應(yīng)用約 占了 32位 RISC處理器 75%以上的市場(chǎng)份 額I】1。ARM 處理 器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、Intel的 Xscale、In— tel的 StrongARM等幾個(gè) 系列 1,其 中 ARM7、ARM9、ARM9E和ARM1OE為 4個(gè)通用處理器系列 。
ARM7系列微處理器為低功耗的32位RISC處理器 ,適合用于對(duì)價(jià)位和功耗要求較高的產(chǎn)品應(yīng)用中。ARM7微處理器 系列具有如下特點(diǎn) :
(1)極低 的功耗 ;
(2)提供 0.9MIPS/MHZ的三級(jí)流水線結(jié) 構(gòu)(取 指 、譯碼 、執(zhí)行 );
(3)最高主頻可到達(dá) 13OMIPS;
(4)代碼密度高并支持 16位 的 Thumb指令集 ;
(5)對(duì)操作系統(tǒng)的支持廣泛 ,包括 Windows CE、Linux、 Palm OS等 。
ARM7系列微處理器包括ARM7TDMI、ARM7TDMI—S、 ARM720T、ARM7EJ等4種類型 。其中T代表支持16位Thumb指令集 ,D代表支持片上 Debug,M 表內(nèi)嵌硬件乘法器 ,I代表支持嵌入式ICE。按照低功耗 、低成本 、小體積 、多功能及實(shí)時(shí)性的要求 ,Philips公司 的LPC2104是一 個(gè)非 常好 的 選擇 ,LPC2104處理器就是屬于ARM7TDMI—S系列的ARM處理器的一種。
本文內(nèi)容組織 如下:第 2部分是LPC2104處理器介紹 ,第3部分是系統(tǒng)硬件的設(shè)計(jì) ,第4部分是軟件的設(shè)計(jì) ,第 5部分是結(jié)束語。
2 LPC21o4處理器介紹
LPC2104微控制器是飛利浦半導(dǎo)體公司推出的16/32位 ARM7TDMI—S CPU,并帶有128/256K字節(jié) 的高速Flash存儲(chǔ)器的微控制器。128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過30%.而性能的損失卻很小。由于LPC2104微控制器采用非常小的64腳封裝 、極低的功耗 、多個(gè)32位定時(shí)器以及多達(dá)9個(gè)外部中斷 .這使它們特別適用于工業(yè)控 制 、醫(yī)療系統(tǒng) 、遠(yuǎn)程訪問控制和電子收款機(jī)等小型化 的應(yīng)用領(lǐng)域 。由于內(nèi)置 了寬范圍的串行通信接 口,它們也 非常適合 于通 信網(wǎng)關(guān)協(xié)議轉(zhuǎn)換器 、嵌入式 軟件調(diào)制解調(diào)器 以及其它各種類型的應(yīng)用。
LPC2104帶有一個(gè)支持實(shí)時(shí)仿真和跟蹤的ARM7TDMI—SCPU。并嵌入了 128KB高速 Flash存儲(chǔ)器。與片內(nèi)存儲(chǔ)器控制器接口的ARM7局部總線 、與中斷控制器接 口的 AMBA高性能總線(AHB)和連接片 內(nèi)外設(shè)功能的 VLSI外設(shè)總線 。
AHB外設(shè)分配了 2M字節(jié)的地址范圍 ,它 位于 4G字節(jié)ARM 存儲(chǔ)器空間的最頂端 。每個(gè)AHB外設(shè) 都分 配了16K字節(jié)的地址空間 。LPC2104的外設(shè)功能 (中斷控制器除外 )都連接到VPB總線。AHB到 VPB的橋接將 VPB總線與 AHB總線相連。VPB外設(shè)也分配了 2M 字節(jié)的地址范 圍。從 3.5G地址 點(diǎn)開 始。每個(gè) VPB外設(shè)在 VPB地址 空間 內(nèi)都分配了16K字節(jié) 地址空間 。LPC2104內(nèi)部存儲(chǔ)空間如圖1所示 :
主要的特征如下:
極小封裝 :TQFP48(7 7mm2);
128K字節(jié)片內(nèi) Flash程序存儲(chǔ)器 ,具有 ISP(In—SysteProgramming,在線可試試編程 )和I AP(In-Application Program一ming,在應(yīng)用 中可編程 )功能;16K靜態(tài) RAM;
雙UART。其中一個(gè)帶有完全的調(diào)制解調(diào)器接口;I2C、S串行口:
兩個(gè)定時(shí)器 。具有4路捕 獲/比較通道 ;6路輸出的 PW單元 :實(shí)時(shí)時(shí)鐘 ;看門狗定時(shí)器 ;
32位通用 I/0 口;
CPU操作 頻率可 達(dá) 60MHz;雙 電源 (CPU操 作 電壓范圍1.65V~1.95V.I/0電壓范 圍 :3.0V~3.6V);兩個(gè)低 功耗模 式 (閑和掉電)。
LPC2104的內(nèi)核結(jié)構(gòu) 如圖 2所示 。
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)功能概述
本系統(tǒng)采用模塊 化的結(jié)構(gòu)設(shè) 計(jì)思想,將設(shè)備分為主控模塊和各個(gè)功能模塊。如圖 3所示 。主控模塊和各功能模塊之間有統(tǒng)一的或者特定的接口形式 .用戶可根據(jù) 不同的需要選用不同的功能模塊 .各種類型的數(shù)據(jù)可以同時(shí)傳輸而不相互干擾時(shí)。也可根據(jù)市場(chǎng)的需求 繼續(xù)擴(kuò)展 其它功能模塊 ,例如光電通信模塊等。這樣的設(shè)計(jì)結(jié)構(gòu),不僅方便了使用 ,也有利于以后統(tǒng)的升級(jí)。
主控模塊主要負(fù)責(zé)人機(jī)交互、與功能模塊通信、數(shù)據(jù)存儲(chǔ)數(shù)據(jù)傳輸?shù)裙δ?。用戶通過控制主控模塊來對(duì)功能模塊和系統(tǒng)的其它功能進(jìn)行操作 .?dāng)?shù)據(jù)存儲(chǔ)在主控模塊內(nèi)。然后,主控模塊可以通過電話線撥號(hào)上網(wǎng)或者通過USB口接入聯(lián)網(wǎng)的PC機(jī)向服務(wù)器發(fā)送數(shù)據(jù)或者與掌上電腦通過紅外模塊通訊。這樣的三種數(shù)據(jù)傳輸方式,可以滿足大多數(shù)用戶的需要。
主控模塊在整個(gè)系統(tǒng)具有很重要的作用,相當(dāng)于人的中樞神經(jīng)。以下就是對(duì)主控模塊硬件和軟件設(shè)計(jì)的具體介紹。
3.2 系統(tǒng)硬件設(shè)計(jì)
根據(jù)整個(gè)系統(tǒng)的設(shè)計(jì)思想,在對(duì)主控模塊進(jìn)行硬件電路設(shè)計(jì)時(shí),處理器的選擇是關(guān)鍵的問題。按照低功耗、低 成本、小體積、多功能的要求,Philips公司的LPC2104是一個(gè)非常好的選擇。
由功能框圖4可以看出,只需要 在 LPC2104周圍增加較少的元器件和電路,就能設(shè)計(jì)出功能較強(qiáng)的、符合要求的主控模塊的電路。
3.3 LPC2lo4引腳分配及模擬總線
LPC2104只有 64個(gè)引腳,無外部總線控制器 .因而它沒有外部總線,外接擴(kuò)展芯片不是很方便。不過因?yàn)樗鼈兊乃俣群芸?。所以即使使用軟件模擬總線外接擴(kuò)展芯片也比普通的單片機(jī)快得多。因此,我們應(yīng)用LPC2104的模擬總線外擴(kuò)芯片能夠滿足設(shè)計(jì)要求。
除了電源、復(fù) 位、晶振等引腳,LPC2104有32個(gè)功能復(fù)用的可編程的通用IfO 口(P0.0一P0.31)。在系統(tǒng)設(shè)計(jì)中。UART0 占用了 P0.0和P0.1;I2C 占用了 P0.2和 P0.3:UART1占用了 P0.8和 P0.9;按鍵占用了 P0.14和 P0.15。在剩余的引腳中 ,將 P0.17一P0.24這 8個(gè)連續(xù)的I/O 口來模擬八位數(shù)據(jù)/地址總線,P0.4模 擬地址鎖 存信 號(hào) ALE,P0.5模 擬讀 信號(hào) RD.P0.6模擬寫信號(hào) WR,如圖5所示。
模擬總線是為 了彌補(bǔ)LPC2104無外部總線的缺點(diǎn)而設(shè)計(jì)的 。因?yàn)樵诳偩€操作的過程中,不能被中斷,所以總線訪問前后要關(guān)開中斷 。要對(duì)模擬總線進(jìn)行初始化。
3.4 人機(jī)交互部分
人機(jī)交互部分的設(shè)計(jì)本著使用最簡(jiǎn)化的原則,采用了點(diǎn)陣液晶顯示模塊和 3個(gè)按鍵的組合形式。液晶選用了信利的MG12864—7型點(diǎn)陣液晶模塊,其顯示容量為 128x64個(gè)點(diǎn),體積 只有 54cmx50cmx6.5cm,內(nèi)部帶有一10v電壓 產(chǎn)生器和EL背光逆變器 .使 用單 5V電源供電,非常適合便攜式的產(chǎn)品應(yīng)用。
由于液晶模塊的工作電壓為5V,LPC2104的 I/O 口電壓是3.3V,所以需要在處理器和液晶模塊之間加一片總線收發(fā)器 74LVC4245.如圖 6所示。74LVC4245是一種雙電源的總線收發(fā)器,同時(shí)工作在兩種電源下:A端用5V電源作為VCCA,IfO 口接5V 器件的數(shù)字邏輯電路 ;B端用3.3V電源作為VC.CA.L/O 口接 3.3V 器件的數(shù)字邏輯電路 :DIR引腳可以控制總線的傳輸方向。這樣,利用74LVC4245就能方便的實(shí)現(xiàn)3.3V和 5V系統(tǒng)之間的邏輯電平轉(zhuǎn)換 。從電路圖可以看出 ,當(dāng)LPC2104通過模擬總線對(duì)液晶模塊進(jìn)行操作時(shí) ,用 P0.7來控制數(shù)據(jù) 總線的方向。另外 ,液 晶模塊根據(jù)節(jié)電的需要 .沒有使用背光功能。
3個(gè)按鍵 通過邏輯與門與 LPC2104的兩個(gè)外部 中斷引腳連接 。按鍵部分就可采用中斷的輸入方式 ,減少了處理器輪詢按鍵的工作量。更為重要 的是,可 以使用這兩個(gè)外部中斷的掉 電喚醒功能。這樣 當(dāng)處理器不工作的時(shí)候,可以進(jìn)入掉電狀態(tài), 只有當(dāng)處理器需要響應(yīng)按鍵 的時(shí)候,按鍵的中斷輸入會(huì)使處理器從掉電模式喚醒 ,這樣就大大降低了處理 器的功耗 。
3.5 通信 部分
主控模塊的通信分為 3個(gè)部分 :USB、UART0、UART1。USB用來連接主控模塊和PC機(jī),其驅(qū)動(dòng)芯片 D12使用地址/ 數(shù)據(jù)總 線連 接方式 ,LPC2104使用外 部 中斷 0,如圖 7所示 。UART0用來與各個(gè)功能模塊通信 ,其中包括紅外通信模塊。除了紅外模塊多需要一個(gè) L/O 口(P0.25)來進(jìn)行作為選擇波特率的控制信號(hào) 外 .其它模塊都 只需要 與 UART0的 TXD0、RXDO 和 GND三根線連接即可。UART1是用來與Modem通信的,外置 Modem 的接口是 RS232接 口, 這樣需要將 UART1的TXD1、RXD1通過 MAX3232進(jìn)行 電平轉(zhuǎn)換后 與 Modem 相連 ,如圖 8所 示
3.6 其它功能部件
LPC2104帶有 I2c總線,可以很方便的外擴(kuò)一些 I2C功能器件。為了能夠存儲(chǔ)用戶個(gè)人信息 、少量生理數(shù)據(jù) ,主控模塊在 LPC2104的I2c總線 t擴(kuò)展了一片 1K的E2PROM芯片CSI24WC08。 它 可 以在 3.3V電源 下工 作 .其 I2c總線地 址 為 :讀 :0xA1、 o)(A3、o)(A5、o)(A7.寫:o)(A0、o)(A2、0xA4、0xA6。
液晶顯示面板 由主界面 、消息區(qū)兩部分組 成 ,其中主界面 顯示當(dāng)前選擇的功能參數(shù)設(shè) 置和當(dāng)前狀態(tài) (進(jìn)行/失?。∠?),消息區(qū)顯示當(dāng)前聯(lián)機(jī)狀態(tài) 、錯(cuò)誤原因等。整個(gè)面板設(shè)計(jì)與按鍵設(shè)計(jì)緊密結(jié)合 ,使用方便 ,所有功能均可在 1—3次按鍵 中完成,如圖 10所示
4 系統(tǒng)軟件設(shè)計(jì)
采用嵌入式實(shí)時(shí)操作系統(tǒng) p~C/OS—II。使用 ARM 和 Thum指令集混合編譯來優(yōu)化代碼密度 。
4.1 任務(wù)的分配和軟件系統(tǒng)結(jié)構(gòu)
采用嵌入式實(shí)時(shí)操作系統(tǒng) p~C/OS—II。用戶級(jí)有六個(gè)任務(wù)
(1)負(fù)責(zé)啟動(dòng)任務(wù)按鍵的響應(yīng)。優(yōu)先級(jí) 6;
(2)負(fù)責(zé)系統(tǒng)的工作狀態(tài)。優(yōu)先級(jí) 5;
(3)液晶模塊顯示 ,優(yōu)先級(jí) 4;
(4)負(fù)責(zé)通過 Modem撥號(hào)接入 Internet的通信任務(wù) ,優(yōu)先級(jí) 3;
(5)負(fù)責(zé) USB的通信任務(wù),優(yōu)先級(jí) 2;
(6)與各功能模塊通信 ,進(jìn)行數(shù)據(jù)信號(hào)采集 和存儲(chǔ),優(yōu)先級(jí)l。軟件系統(tǒng)結(jié)構(gòu)如圖 l1中(a)圖所示 。
6結(jié)束語
基于面向?qū)ο窦夹g(shù)使得塑料門窗CAD系統(tǒng)WinDoor不再是簡(jiǎn)單的“畫圖”系統(tǒng),從根本上超越了傳統(tǒng)的點(diǎn)、線、面相結(jié)合的低層次門窗設(shè)計(jì)方式。用戶可以直接利用現(xiàn)實(shí)世界中的門窗各部件的概念在計(jì)算機(jī)對(duì)應(yīng)模型中進(jìn)行設(shè)計(jì) ,符合人類的思維特點(diǎn),尺寸驅(qū)動(dòng)的參數(shù)化設(shè)計(jì)思想有利于用戶方便快捷的設(shè)計(jì)和修改窗型,并使設(shè)計(jì)的正確性得到根本保證,極大的提高了門窗的效率和質(zhì)量。同時(shí),本系統(tǒng)的設(shè)計(jì)思想具有推廣價(jià)值,稍加改動(dòng)便可以應(yīng)用于建筑行業(yè)的鋁合金門窗 、幕墻等的繪制與計(jì)算。圖5所示為本系統(tǒng)所繪制的6個(gè)典型窗型!