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