基于ARM7的LCD顯示電壓示波系統(tǒng)的設(shè)計
本設(shè)計以ARM7微處理器為核心,采用ARM7中的高速A/D為測壓單元,提高了數(shù)據(jù)傳輸?shù)目煽啃?數(shù)據(jù)結(jié)果通過LCD實時顯示,顯示方式友好直觀;采用RAM和UART分別存儲和傳輸數(shù)據(jù),實現(xiàn)了監(jiān)測數(shù)據(jù)的長期存儲和與PC的通信傳輸。采用31/2位或41/2位段位式LCD液晶數(shù)碼顯示器的儀表已不罕見,但段位式LCD顯示器的功能較局限。對于多功能的智能儀表,采用點陣式LCD液晶顯示模塊,可提供更為豐富靈活的顯示內(nèi)容。點陣式LCD顯示模塊是一種集顯示、控制與驅(qū)動與一體的顯示器件。為了簡化電路,充分發(fā)揮ARM的性能,采用了320×240的16級灰度LCD。
系統(tǒng)總體方案設(shè)計
本系統(tǒng)要求軟件完成的功能有以下幾個方面。
● 實時數(shù)據(jù)采集功能。系統(tǒng)要求能夠?qū)崟r采集外部電壓的實時數(shù)據(jù)。
● 采樣數(shù)據(jù)處理功能。在系統(tǒng)對實時數(shù)據(jù)采集完成后,要對數(shù)據(jù)進(jìn)行實時處理。實時處理主要是將外部電壓進(jìn)行高速A/D轉(zhuǎn)換,然后動態(tài)顯示。系統(tǒng)還可利用按鍵對超過報警設(shè)定值進(jìn)行動態(tài)修改。
● LED顯示和RTC功能。本實驗充分利用了LED顯示和實時時鐘功能。
● 報警處理功能。將實時數(shù)據(jù)與人機對話設(shè)定電壓測量最大值進(jìn)行比較,之后做出報警動作。
● 顯示最大值功能。將實時數(shù)據(jù)中的最大值給予保存和顯示。
● 利用EEPROM讀寫數(shù)據(jù)功能。系統(tǒng)可以在上電時讀取110位上次運行的實時數(shù)據(jù),并作為這次的歷史數(shù)據(jù)。系統(tǒng)還可以按鍵來存儲當(dāng)前的110位實時數(shù)據(jù)。
● 串口發(fā)送數(shù)據(jù)功能。系統(tǒng)可通過按鍵,通過串口將100位實時數(shù)據(jù)發(fā)送到上位機顯示。
為了實現(xiàn)系統(tǒng)的模塊清晰,本系統(tǒng)采用了μC/OS-II操作系統(tǒng)。按照上述要求,本系統(tǒng)將軟件劃分為4個功能模塊:A/D采集模塊、LED顯示和按鍵處理模塊、LCD顯示模塊、報警、存儲及串口處理模塊。采樣模塊完成對實時數(shù)據(jù)的采樣并保存;LED顯示按鍵處理模塊主要功能是對采樣數(shù)據(jù)的處理,并把它們轉(zhuǎn)換成有實際意義的參數(shù);LCD顯示模塊是將各種參數(shù)在LCD顯示出來;報警、存儲及串口處理模塊主要是實時對實時數(shù)據(jù)進(jìn)行相應(yīng)的處理。圖1即為總體系統(tǒng)設(shè)計整體結(jié)構(gòu)圖。
圖1 系統(tǒng)總體框圖
系統(tǒng)硬件組成及功能
1 LCD顯示部分
液晶顯示器(LCD) 具有功耗低、體積小、重量輕、厚度薄等許多其他顯示器無法比擬的優(yōu)點,普遍應(yīng)用于基于微處理器的儀器儀表及監(jiān)視、控制等智能裝置的終端顯示和人機接口中。STN LCD——市面上銷售的單色LCD絕大多數(shù)都是這種類型。STN LCD可選擇自帶LCD驅(qū)動器/控制器的STN LCD模塊。TFT LCD——即俗稱的“真彩色”液晶。TFT LCD通常一定要選擇總線型液晶顯示器,或者外接ARM的LCD驅(qū)動板也可以,總之要能夠連接單片機或者ARM。
2 LED顯示與鍵盤模塊
鍵盤顯示部分是利用我們最熟悉的8位LED數(shù)碼顯示加8位鍵盤輸入。圖2是自制的LED顯示與鍵盤模塊的電路圖。利用了飛利浦公司的SPI總線,簡單實用,有五根針腳引出。
圖2 LED顯示與鍵盤模塊
系統(tǒng)軟件設(shè)計
1 設(shè)計思想
在此簡易示波系統(tǒng)中,我們采用了LPC2138這種高性能ARM,由于ARM處理器處理速度極快,并且它內(nèi)部帶4路A/D轉(zhuǎn)換。我們知道,ARM中的Fpclk是ARM外設(shè)的頻率,常規(guī)情況下,是ARM內(nèi)核工作頻率的1/4,但我們可以自行修改設(shè)定Fpclk等于ARM內(nèi)核的頻率Fcclk,然后我們自行設(shè)定A/D轉(zhuǎn)換功能不分頻,并且可以設(shè)定采樣的精度設(shè)為8位,這樣每A/D轉(zhuǎn)換一次的時間就等于ARM的內(nèi)核工作頻率的9倍的時間,這樣每次A/D的時間就相當(dāng)快了,這時我們再采用兩路A/D間隔采樣,這樣每次A/D的時間就又縮短了一半。理論上講,這時的每次A/D采樣時間差不多為2μs。這樣,此系統(tǒng)的對外部電壓的響應(yīng)速度就提高了一個檔次了,所以此系統(tǒng)的A/D性能比較高。
2 任務(wù)的劃分
根據(jù)任務(wù)的劃分原則,分析得出了6個任務(wù):延時創(chuàng)建采樣任務(wù)、采樣任務(wù)、報警任務(wù)、實時時鐘顯示任務(wù)、串口任務(wù)、采樣數(shù)據(jù)顯示任務(wù)。其中采樣任務(wù)安排優(yōu)先級最高優(yōu)先級為4,采樣數(shù)據(jù)顯示任務(wù)優(yōu)先級為7,串口任務(wù)優(yōu)先級為8,報警任務(wù)優(yōu)先級為9,實時時鐘顯示任務(wù)為10。為了進(jìn)行初始化工作,在延時創(chuàng)建采樣任務(wù)中增加了對目標(biāo)板的初始化和任務(wù)、互斥信號量、信號量的創(chuàng)建工作等內(nèi)容。
3 共享資源的分析
在本測試要求中,采樣的數(shù)據(jù)既要實時地放到LCD液晶屏上顯示,而且還可以通過串口上傳到上位機上,因此要采取資源同步的方法,否則有可能破壞時間,實現(xiàn)資源同步的方法一般有兩種:關(guān)中斷;使用互斥信號量。在本測試中使用互斥信號。
4 行為同步
在本測試中要用到兩個行為同步,第一個是采樣的數(shù)據(jù)的顯示,測試要求把當(dāng)前采樣的數(shù)據(jù)通過LCD液晶屏上顯示出來,所以要在數(shù)據(jù)顯示任務(wù)中要等待采樣任務(wù)完畢的信號量,當(dāng)采樣完畢后,發(fā)送信號量,把當(dāng)前采樣的結(jié)果顯示出來。第二是查詢歷史記錄,用戶要查詢歷史記錄時,才把記錄顯示出來,所以在查詢歷史記錄任務(wù)里設(shè)置等待查詢信號。任務(wù)之間相互配合和協(xié)調(diào),才能得到預(yù)定的效果,這樣可以實現(xiàn)任務(wù)的同步。
圖3 采樣任務(wù)流程圖
5 軟件設(shè)計模塊流程圖
嵌入式操作系統(tǒng)是嵌入式系統(tǒng)硬件和應(yīng)用軟件之間的接口,它的使用可以提高軟件開發(fā)效率,它的可靠性和穩(wěn)定性直接影響著系統(tǒng)的運行性能。本軟件設(shè)計采用公開源碼的μC/OS-II多任務(wù)實時操作系統(tǒng)。μC/OS-II作為一個實時微內(nèi)核,實際上是一個高效的任務(wù)調(diào)度器,調(diào)度是線程級的,調(diào)度策略是采用靜態(tài)分配優(yōu)先級的方式,并且采用占先式的調(diào)度原則。為了實現(xiàn)基本的任務(wù)調(diào)度功能, μC/OS-II提供了必備的任務(wù)間通信手段,包括信號量、郵箱等。為了實現(xiàn)任務(wù)延時,還具有基本的時鐘管理。