技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > LPC2132在嵌入式系統(tǒng)中的應(yīng)用技術(shù)

LPC2132在嵌入式系統(tǒng)中的應(yīng)用技術(shù)

時間:2008-07-24 10:47:00來源:ronggang

導(dǎo)語:?本文設(shè)計了LPC2132與LCM的硬件接口,在軟件接口中,提出用匯編語言文件存儲漢字點(diǎn)陣信息針對常見液晶顯示刷新速度慢的現(xiàn)象,提出了提高液晶顯示刷新速度的方法
摘 要:ARM7微處理器LPC2132具有高的集成度和高性價比,很適合于嵌入式系統(tǒng)設(shè)計,本文設(shè)計了LPC2132與LCM的硬件接口,在軟件接口中,提出用匯編語言文件存儲漢字點(diǎn)陣信息,而在C語言文件中調(diào)用漢字點(diǎn)陣信息的混合編程方法,提高了資源利用效率,針對常見液晶顯示刷新速度慢的現(xiàn)象,提出了提高液晶顯示刷新速度的方法。提出了用時鐘寄存器保存系統(tǒng)參數(shù),從而使LPC2132具有數(shù)據(jù)掉電保存功能,并介紹了I2C總線應(yīng)用技術(shù)等。 關(guān)鍵詞:嵌入式系統(tǒng);LPC2132; ARM ; LCM顯示 1. 引言   SoC在醫(yī)療器械中應(yīng)用前景廣闊[1],LPC2131/2132/2138是基于一個支持實時仿真和嵌入式跟蹤的32/16位ARM7TDMI-STM CPU的微控制器,帶有32kB/64kB/512 kB的嵌入的高速Flash存儲器和8/16/32kB片內(nèi)靜態(tài)RAM。多達(dá)47個5V的通用I/O口,1個(LPC2132/2132)或2個(LPC2138)8路10位A/D轉(zhuǎn)換器共包含16個模擬輸入,1個10位D/A轉(zhuǎn)換器,可提供不同的模擬輸出(LPC2132/2138)。多個串行接口,包括2個16C550工業(yè)標(biāo)準(zhǔn)UART、2個高速I2C接口(400kbit/s)、SPITM 和SSP。內(nèi)部集成實時時鐘等,資源比較豐富,使它們特別適用于工業(yè)控制和醫(yī)療等嵌入式系統(tǒng)。本文以LPC2132為例,介紹LPC2132的設(shè)計經(jīng)驗與設(shè)計技術(shù)。 2. 顯示設(shè)計   顯示設(shè)計是所有嵌入式系統(tǒng)的重要組成部分之一。顯示器件包括LED、字符LCM、圖形LCM、VFD等,其中圖形LCM(如128x64、192x64等點(diǎn)陣)可顯示ASCII字符、漢字和圖形,且性價比較高,在嵌入式系統(tǒng)中的應(yīng)用日趨廣泛,雖在MCS-51系列中的設(shè)計已非常成熟。但由于ARM與MCS-51有許多不同之處,其設(shè)計方法當(dāng)然也有差別,下面以LPC2132和192x64點(diǎn)陣LCM為例進(jìn)行說明。   2.1 與液晶顯示模塊(LCM)的硬件接口設(shè)計   1) 電平匹配:LPC2132系列操作電壓范圍:3.0~3.6 V,選擇3V的LCM當(dāng)然沒有問題,但市場上3V的LCM價格常常比5V貴,而LPC2132的I/O口可承受5V的最大電壓,所以可采用5V的LCM,但需在LCM與LPC2132相連的I/O口上接5V上拉電阻。   2) I/O連接:LPC2132沒有外部總線,所有I/O口都需要進(jìn)行配置,由內(nèi)部寄存器決定是輸入還是輸出。其中P0口共有31個I/O口,P1口有16個I/O口,而且I/O口的編號不連續(xù)(如P0.28與P1.25相鄰),由于編程時對I/O口采用位操作,所以具體連接時,可根據(jù)硬件電路板布線需求進(jìn)行連接。為提高顯示刷新速度,需檢測LCM內(nèi)部的忙標(biāo)志,每次向LCM寫數(shù)據(jù)前,先讀取LCM的狀態(tài),當(dāng)狀態(tài)為非忙時才能寫入顯示數(shù)據(jù),這樣,要注意動態(tài)設(shè)置與LCM數(shù)據(jù)線相連的LPC2132的I/O口方向,而且8個數(shù)據(jù)位要用IOSET和IOCLR逐一控制。   3) 液晶背光控制:由于液晶的背光電流需要100多毫安,電壓一般在5V左右,而LPC2132的I/O口驅(qū)動能力較弱,采用圖1的驅(qū)動電路,LPC2132能可靠控制背光LED的亮與滅,且對系統(tǒng)無干擾。 [align=center] 圖1液晶背光控制電路[/align]   2.2 液晶顯示的軟件設(shè)計   LPC2132可采用CodeWarrior進(jìn)行軟件開發(fā),由于用C語言進(jìn)行編程,開發(fā)速度比較快。在編寫LCM程序時,先編寫硬件驅(qū)動程序,包括LCM初始化函數(shù),寫LCM數(shù)據(jù)函數(shù),寫LCM命令函數(shù),讀LCM數(shù)據(jù)函數(shù),讀LCM命令函數(shù),在這些函數(shù)的基礎(chǔ)上,編寫顯示16x16點(diǎn)陣漢字的函數(shù),設(shè)置顯示位置函數(shù)等,鑒于篇幅限制,就不在此贅述,下面重點(diǎn)向讀者介紹如何顯示漢字的技巧和提高液晶顯示刷新速度。   在顯示漢字信息時,需要先用工具軟件提取待顯示漢字的點(diǎn)陣,并將這些點(diǎn)陣信息保存在程序中,如果單純采用C語言,則只能定義數(shù)組變量,然后在顯示時調(diào)用所定義的數(shù)組變量。但采用這種方法有以下缺點(diǎn)。1)采用數(shù)組變量定義字符點(diǎn)陣,將浪費(fèi)寶貴的RAM資源。2)當(dāng)顯示內(nèi)容豐富,需定義的大量的點(diǎn)陣數(shù)據(jù)時,造成RAM容量不足。如果采用匯編語言文件與C語言文件混合編程,將字符點(diǎn)陣信息以程序代碼的形式保存,不占用RAM,則可克服上述問題。下面以顯示漢字“上?!保?6x16點(diǎn)陣)為例,介紹具體方法:   1) 點(diǎn)陣信息的定義。   建立一個以s為擴(kuò)展名的匯編語言文件,文件內(nèi)容具體如下。   EXPORT shang16x16   EXPORT hai16x16   AREA TTTT,CODE,READONLY   ENTRY;   shang16x16   DCB 0,0,0,0,0,0,255,32   DCB 32,32,32,48,32,0,0,0   DCB 6,16,16,16,16,16,31,16   DCB 16,16,16,16,24,16,0,0   hai16x16   DCB 16,33,198,144,136,247,148,180   DCB 212,148,148,246,132,128,0,0   DCB 2,62,1,0,12,11,8,9   DCB 10,40,56,15,8,0,0,0   END   上面的文件中定義了“上海”的漢字點(diǎn)陣信息,將此文件添加到項目文件中,編譯后點(diǎn)陣信息以程序代碼的方式存儲在FLASH中。   2) 點(diǎn)陣信息的申明。   建立一個以h為擴(kuò)展名的頭文件,對匯編語言文件中定義的字符點(diǎn)陣信息進(jìn)行申明,以便項目中其他程序可使用定義的點(diǎn)陣信息,例如lattice.h,文件具體內(nèi)容如下:   extern unsigned char shang16x16[];   extern unsigned char hai16x16[];   3) 點(diǎn)陣信息的引用。   將此頭文件插入到其他文件中。例如:假設(shè)函數(shù)void WR_LCM16x16(unsigned char x_row,unsigned char y_col,unsigned char *p_matrix)的功能是在x_row行,y_col列位置開始顯示p_matrix所指向的字符點(diǎn)陣。則WR_LCM16x16(2,0,shang16x16)和WR_LCM16x16(2,16,hai16x16)就可顯示“上?!?。   液晶顯示刷新速度是液晶應(yīng)用的關(guān)鍵技術(shù),筆者摸索如下的方法,可大大提高顯示刷新速度。   1)充分利用LCM的判忙標(biāo)志位,減小讀寫間隔。如192x64等液晶顯示模塊,其接口中含有判忙標(biāo)志位。如果只是簡單在兩次讀寫間隔插入一定的延遲,則會使等待時間加長,刷新變慢。   2)信息分類,減少重復(fù)刷新??蓪⒄麄€屏幕分成空白區(qū)、顯示固定信息區(qū)、顯示動態(tài)信息區(qū)。如參數(shù)名稱、單位等可劃歸固定信息,而實時數(shù)據(jù)則歸為動態(tài)信息。只有在第一次進(jìn)入某個畫面時,刷新固定信息區(qū),其余時刻,只刷新動態(tài)信息區(qū)。   3)建立數(shù)據(jù)更新標(biāo)記,進(jìn)一步減小動態(tài)信息刷新工作量。在內(nèi)存中為每個動態(tài)信息建立一顯示緩沖區(qū),只有那些動態(tài)信息發(fā)生改變的項,才需要刷新。   綜合應(yīng)用上述方法,可大大提高顯示刷新速度。 3.系統(tǒng)參數(shù)掉電保存技術(shù)   由于LPC2132片內(nèi)沒有EEPROM,當(dāng)系統(tǒng)掉電后,所有參數(shù)都將丟失,如果所需要保存的參數(shù)比較多,就只有給系統(tǒng)擴(kuò)展類似2402等EEPROM芯片,但如果需保存的數(shù)據(jù)較少(比如小于10字節(jié)),則可考慮利用系統(tǒng)的實時時鐘寄存器資源,而不必擴(kuò)展EEPROM,以降低產(chǎn)品成本,下面進(jìn)行具體介紹。   LPC3123的實時時鐘有獨(dú)立的電源電路,專用電源管腳可與電池或3.3V的電壓相連,在產(chǎn)品設(shè)計中,一般用電池供電,以維持時鐘不間斷運(yùn)行。LPC2132中有完整的時間寄存器。但在設(shè)計過程中,并非需要所有的寄存器,比如,年、月、日、時、分、秒、星期等報警寄存器中,就有些在設(shè)計時沒有被使用,只要在設(shè)置報警屏蔽寄存器時將不用的報警寄存器屏蔽,對應(yīng)報警寄存器的數(shù)據(jù)對報警就沒有影響,則可將這些寄存器用于保存數(shù)據(jù),只要維持時鐘供電,這些數(shù)據(jù)就不會丟失。   LPC2132有2個高速I2C接口,當(dāng)需要存儲的數(shù)據(jù)量教大時,可在I2C接口上連接24xx系列EEPROM芯片,使用前,先對相關(guān)引腳進(jìn)行配置,使其具有I2C總線功能,另外,當(dāng)采用I2C中斷時,還要將對應(yīng)的中斷打開,使用比較方便。但在使用I2C時要注意,連續(xù)2次I2C總線讀或?qū)?,要有必要的時間間隔,即必須等前次總線結(jié)束時,才能重新啟動總線,否則會出錯。 4.其它應(yīng)用技術(shù)   在進(jìn)行硬件設(shè)計時要注意:LPC2132的I/O口的灌入電流大于驅(qū)動電流,在驅(qū)動LED時可考慮采用灌入電流(I/O口輸出低電平時LED亮)技術(shù),如果采用此法依然不能滿足要求,則可用多個I/O口并聯(lián)或加驅(qū)動電路。   LPC2132內(nèi)部8路10位A/D轉(zhuǎn)換器,但在使用時,要給I/O口加穩(wěn)壓二極管保護(hù),防止輸入的模擬量超限而損壞芯片。   在進(jìn)行軟件設(shè)計時要注意:盡量使用位操作指令I(lǐng)OSET和IOCLR控制LPC2132的I/O口,而不要直接操作I/O口寄存器(如IO0PIN或IO1PIN),否則會出現(xiàn)不可預(yù)料的結(jié)果。   在調(diào)試時要注意:LPC2132支持JTAG調(diào)試,但因JTAG使用了系統(tǒng)的定時器T0,所以當(dāng)用戶用JTAG進(jìn)行軟件調(diào)試時,不能使用定時器T0,否則會出錯。 5.應(yīng)用實例   筆者以LPC2132為核心,設(shè)計了生物安全控制柜的控制器,生物安全控制柜是醫(yī)療消毒儀器,醫(yī)療器械放進(jìn)安全控制柜,利用紫外線進(jìn)行殺菌消毒,當(dāng)消毒完畢,為防止柜內(nèi)沒有被紫外線照射殺死的病毒漂浮出來,要求當(dāng)柜門打開時,啟動送風(fēng)機(jī)和排風(fēng)機(jī),送風(fēng)機(jī)從室外補(bǔ)充新風(fēng),經(jīng)過濾器后送進(jìn)安全控制柜。排風(fēng)機(jī)將內(nèi)部有菌空氣經(jīng)過濾器過濾后排出到室外。并保證安全控制柜內(nèi)維持一定的負(fù)壓。   安全控制柜有兩種工作模式:操作模式和消毒模式。在操作模式下,允許進(jìn)行開門、關(guān)門動作,允許對照明燈和外接電源插座的控制,但禁止開啟紫外燈,而且只要門打開,就自動啟動送風(fēng)機(jī)和排風(fēng)機(jī),只要門關(guān)閉,則送風(fēng)機(jī)和排風(fēng)機(jī)立即自動停止;在消毒模式下,只允許對紫外燈開關(guān)動作、照明燈和外接電源插座的控制,而禁止開門和啟動風(fēng)機(jī)動作。   系統(tǒng)要求實時顯示消毒進(jìn)度,送、排風(fēng)機(jī)的風(fēng)速,過濾器差壓數(shù)值,當(dāng)出現(xiàn)送風(fēng)風(fēng)速大于排風(fēng)風(fēng)速、消毒時前門開啟、過濾器實效等故障時,則進(jìn)行報警。另外,還需顯示當(dāng)前時鐘等。   系統(tǒng)還設(shè)有風(fēng)機(jī)、紫外燈、照明、插座、門開、門關(guān)、UP、DOWN、LEFT、RIGHT、ENTER按鍵,用來控制相應(yīng)的操作和參數(shù)設(shè)置等。圖2為生物安全控制柜的結(jié)構(gòu)框圖。 [align=center] 圖2 生物安全控制柜結(jié)構(gòu)框圖[/align]   從圖2可以看出,整個系統(tǒng)僅需少量的外圍電路和驅(qū)動電路,性能價格比較高。具體實現(xiàn)方法:采用HONYWELL的24PC系列壓力傳感器測量控制內(nèi)部壓力,經(jīng)放大電路放大后送LPC2132的內(nèi)部A/D轉(zhuǎn)換模塊,實現(xiàn)A/D轉(zhuǎn)換,根據(jù)檢測的壓力數(shù)據(jù),計算風(fēng)機(jī)的風(fēng)速及內(nèi)部壓力狀態(tài),并執(zhí)行相應(yīng)的動作。顯示采用192x64圖形LCM,顯示信息量大。全中文界面,用戶操作十分方便。 6. 結(jié)束語   本文作者創(chuàng)新點(diǎn)為設(shè)計了LPC2132與液晶的硬件接口電路;提出了匯編語言與C語言混合編程方法;摸索出提高液晶顯示刷新速度的設(shè)計技術(shù);介紹了LCP2132系統(tǒng)中的參數(shù)保存技術(shù)和其他應(yīng)用技術(shù);并將這些技術(shù)成功地應(yīng)用到具體產(chǎn)品設(shè)計中。 參考文獻(xiàn)   [1] 李浩,馬文麗等.基于SoC芯片的嵌入式醫(yī)學(xué)檢測設(shè)備平臺設(shè)計,微計算機(jī)信息,2005 年第7-2 期:第63-64頁   [2] LPC2131/2132/2138使用指南,http://www.zlgmcu.com   [3] 李維堤,郭強(qiáng). 液晶顯示技術(shù)[M]. 北京:電子工業(yè)出版社,2000

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:采用新技術(shù) 九江石化變頻調(diào)速...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.connectcrack.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號