新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于S3C44B0的數(shù)據(jù)監(jiān)測(cè)模塊實(shí)時(shí)性分析與設(shè)計(jì)

基于S3C44B0的數(shù)據(jù)監(jiān)測(cè)模塊實(shí)時(shí)性分析與設(shè)計(jì)

作者: 時(shí)間:2013-04-06 來(lái)源:網(wǎng)絡(luò) 收藏

(2) A/D采集時(shí)間

  系統(tǒng)A/D采集轉(zhuǎn)換需要采用高速動(dòng)態(tài)的波形采集方式,每秒最高可采50 000個(gè)數(shù)據(jù),那么采集一個(gè)數(shù)據(jù)源的時(shí)間為 2 μs。完成對(duì)32個(gè)測(cè)點(diǎn)64個(gè)數(shù)據(jù)源的采集時(shí)間僅為2 μs×64=128 μs。

  采集數(shù)據(jù)的頻率最低可以為每秒鐘采集2500個(gè)數(shù)據(jù),那么采集一個(gè)數(shù)據(jù)的時(shí)間最大值為0.5 ms。

(3) 顯示時(shí)間

  嵌入式觸摸屏裝置是一種人機(jī)交互設(shè)備,將觸摸屏安裝在液晶屏上,配以相應(yīng)的控制電路對(duì)觸摸屏和進(jìn)行控制。用戶(hù)通過(guò)觸摸操作,就可以對(duì)相應(yīng)的設(shè)備進(jìn)行交互。觸摸屏由觸摸檢測(cè)部件和觸摸屏控制器組成。

  采集到的數(shù)據(jù)送回到觸摸屏控制器的X與Y值僅是對(duì)當(dāng)前觸摸點(diǎn)的電壓值的A/D轉(zhuǎn)換值,它不具有實(shí)用價(jià)值。這個(gè)值的大小不但與觸摸屏的分辨率有關(guān),也與觸摸屏與的貼合情況有關(guān)。因此,要想得到比較精確的體現(xiàn)LCD坐標(biāo)的觸摸屏位置,還需要在程序中進(jìn)行轉(zhuǎn)換。假設(shè)LCD的分辨率是320×240,坐標(biāo)原點(diǎn)在左上角;觸摸屏分辨率是900×900,坐標(biāo)原點(diǎn)在左上角,則轉(zhuǎn)換公式如下:

按此在新窗口瀏覽圖片

  式中:X、Y是對(duì)當(dāng)前觸摸點(diǎn)電壓值的A/D轉(zhuǎn)換值;X1、X2、Y1、Y2分別是觸摸屏坐標(biāo)的最大值和最小值。

  LCD顯示時(shí)將采集到的坐標(biāo)經(jīng)過(guò)具體的轉(zhuǎn)換程序進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換需要有一定的時(shí)間,所以LCD的顯示時(shí)間t包括取得當(dāng)前觸摸點(diǎn)的電壓值的時(shí)間以及由程序轉(zhuǎn)換得到當(dāng)前A/D轉(zhuǎn)換值的時(shí)間。觸摸屏采用中斷方式對(duì)數(shù)據(jù)進(jìn)行采樣,可以利用定時(shí)器對(duì)觸摸屏的采樣基準(zhǔn)時(shí)間進(jìn)行設(shè)定,一般設(shè)定觸摸屏的采樣基準(zhǔn)時(shí)間為10 ms。觸摸屏每隔10 ms對(duì)數(shù)據(jù)進(jìn)行一次采樣,即每隔10 ms對(duì)每個(gè)通道的數(shù)據(jù)進(jìn)行一次采樣,并將其顯示在LCD上。

  根據(jù)以上所述,系統(tǒng)對(duì)每個(gè)通道數(shù)據(jù)源的測(cè)量時(shí)間tchannel =通信時(shí)間tc +采集時(shí)間ts+顯示時(shí)間tl=10 ms + 0.5 ms +10 ms = 20.5 ms。此時(shí)系統(tǒng)中最多64個(gè)通道,那么系統(tǒng)完成64個(gè)通道的測(cè)量周期為T(mén)=64×tchannel=64×20.5 s≈1 s,實(shí)時(shí)模塊的設(shè)計(jì)必須滿(mǎn)足上述要求才能很好地滿(mǎn)足系統(tǒng)的實(shí)時(shí)性。

2 系統(tǒng)設(shè)計(jì)

  根據(jù)上述對(duì)實(shí)時(shí)模塊實(shí)時(shí)性的需求分析,將整個(gè)系統(tǒng)的體系結(jié)構(gòu)分為3個(gè)模塊: 第1個(gè)模塊是LCD顯示模塊,第2個(gè)模塊是采集和通信模塊,第3個(gè)模塊是監(jiān)測(cè)點(diǎn)模塊。如圖2所示,LCD顯示模塊用于顯示采集數(shù)據(jù)和以按鍵方式發(fā)送命令。通信模塊中LCD通過(guò)按鍵操作的方式通過(guò)MODBUS_RTU通信協(xié)議與各個(gè)監(jiān)測(cè)點(diǎn)之間的通信連接,通信采用RS232/RS485無(wú)源轉(zhuǎn)接器連接。該實(shí)時(shí)模塊通過(guò)RS232/RS485對(duì)各個(gè)監(jiān)測(cè)點(diǎn)的數(shù)據(jù)進(jìn)行采集,并將采集到的數(shù)據(jù)送入各個(gè)監(jiān)測(cè)點(diǎn)的數(shù)據(jù)緩沖區(qū)(數(shù)據(jù)緩沖區(qū)包括保持寄存器、控制寄存器和狀態(tài)寄存器)。系統(tǒng)的數(shù)據(jù)鏈路層采用MODBUS_RTU通信協(xié)議。

按此在新窗口瀏覽圖片
圖2 模塊結(jié)構(gòu)

3 軟件設(shè)計(jì)

  通過(guò)對(duì)各嵌入式操作系統(tǒng)的特點(diǎn)、性能進(jìn)行可行性分析及比較,本模塊采用了μC/OS-II作為該模塊需要移植的操作系統(tǒng)。

3.1 任務(wù)劃分

  μC/OS-II是一種占先式多任務(wù)內(nèi)核,其實(shí)現(xiàn)的任務(wù)調(diào)度是基于優(yōu)先級(jí)的,即優(yōu)先級(jí)最高的任務(wù)一旦準(zhǔn)備就緒,就取得CPU的所有權(quán)開(kāi)始投入運(yùn)行。目前,μC/OS-II管理多達(dá)64個(gè)任務(wù),其中8個(gè)保留給系統(tǒng),應(yīng)用程序最多有56個(gè)任務(wù),能滿(mǎn)足一般嵌入式系統(tǒng)的需要。在μC/OS-II中,每個(gè)任務(wù)的優(yōu)先級(jí)要求不一樣且是唯一的,所以任務(wù)調(diào)度工作非常簡(jiǎn)單,即查找準(zhǔn)備就緒的最高優(yōu)先級(jí)任務(wù),然后進(jìn)行上下文切換。μC/OS-II下每個(gè)任務(wù)有休眠、就緒、運(yùn)行和中斷等狀態(tài)。

  分析μC/OS-II的源碼會(huì)發(fā)現(xiàn),它把任務(wù)的優(yōu)先級(jí)作為任務(wù)的標(biāo)識(shí)符來(lái)使用。只有進(jìn)入就緒態(tài)的最高優(yōu)先級(jí)的任務(wù)才能得到CPU的使用權(quán)。任務(wù)劃分是開(kāi)發(fā)實(shí)時(shí)系統(tǒng)軟件的重要一步。要基于簡(jiǎn)化任務(wù)間的通信這一目的進(jìn)行任務(wù)劃分,使各任務(wù)程序?qū)崿F(xiàn)的功能模塊化。在此模塊中,將處理采集和通信任務(wù)都設(shè)置了較高的任務(wù)優(yōu)先級(jí),通信任務(wù)為T(mén)ask40_ComputerCom,采集任務(wù)劃分為T(mén)MapStaticData和TMapDynamicData。為使系統(tǒng)能夠及時(shí)更新管理模塊中的靜態(tài)數(shù)據(jù),將對(duì)功能模塊靜態(tài)數(shù)據(jù)進(jìn)行更新的任務(wù)的優(yōu)先級(jí)設(shè)置成兩者中的最高。在模塊中的其他任務(wù)可根據(jù)具體情況進(jìn)行設(shè)置。表2詳述此模塊中創(chuàng)建的各任務(wù)的任務(wù)說(shuō)明及優(yōu)先級(jí)劃分。
3.2 任務(wù)調(diào)度策略
  TMapDynamicData任務(wù)輪詢(xún)所有在線(xiàn)測(cè)點(diǎn)的實(shí)時(shí)數(shù)據(jù);同時(shí),該實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)模塊在RAM中為每個(gè)功能模塊建立一個(gè)數(shù)據(jù)映射區(qū),并在映射區(qū)中保存各功能模塊的表號(hào)、變量參數(shù)、報(bào)警狀態(tài)、工作狀態(tài)等實(shí)時(shí)信息。在映射區(qū)中的數(shù)據(jù)可分為動(dòng)態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)。動(dòng)態(tài)數(shù)據(jù)是各個(gè)功能模塊的實(shí)時(shí)測(cè)點(diǎn)參數(shù)和狀態(tài)數(shù)據(jù)。當(dāng)用戶(hù)使用觸摸屏按鍵方式完成對(duì)某一測(cè)點(diǎn)的動(dòng)態(tài)數(shù)據(jù)映射區(qū)進(jìn)行操作時(shí),應(yīng)用系統(tǒng)將立即喚醒任務(wù)TMapDynamicData,來(lái)更新在映射區(qū)中對(duì)應(yīng)于此測(cè)點(diǎn)的動(dòng)態(tài)數(shù)據(jù),并且在觸摸屏上會(huì)顯示出各個(gè)測(cè)點(diǎn)的動(dòng)態(tài)數(shù)據(jù)信息。靜態(tài)數(shù)據(jù)是反映各個(gè)測(cè)點(diǎn)相關(guān)的配置信息,不會(huì)時(shí)刻變化,但卻反映了測(cè)點(diǎn)的數(shù)據(jù)參數(shù)的特性。一旦測(cè)點(diǎn)的這些數(shù)據(jù)信息被修改了,映射區(qū)中對(duì)應(yīng)數(shù)據(jù)就必須更新。為了降低整個(gè)系統(tǒng)的通信開(kāi)銷(xiāo),在實(shí)際應(yīng)用中,沒(méi)有頻繁地更新映射區(qū)中的靜態(tài)數(shù)據(jù)。當(dāng)用戶(hù)觸摸屏按鍵方式完成對(duì)某一測(cè)點(diǎn)的靜態(tài)數(shù)據(jù)進(jìn)行操作后,應(yīng)用系統(tǒng)立即喚醒任務(wù)TMapStaticData,來(lái)更新在映射區(qū)中對(duì)應(yīng)于此測(cè)點(diǎn)靜態(tài)數(shù)據(jù)。
  此實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)模塊任務(wù)調(diào)度策略實(shí)現(xiàn)了多個(gè)不同優(yōu)先級(jí)的任務(wù)與TMapDynamicData任務(wù)間的通信。比如,LCD的主界面顯示任務(wù)Tmain_Board,詳細(xì)顯示界面任務(wù)Tcheck_Board以及巡檢界面任務(wù)Tcheck_system都與TMapDynamicData進(jìn)行任務(wù)間的通信。模塊必須優(yōu)先處理LCD通過(guò)TComputerCom任務(wù)修改某一測(cè)點(diǎn)的靜態(tài)數(shù)據(jù),同步更新各個(gè)監(jiān)測(cè)點(diǎn)的靜態(tài)數(shù)據(jù)的情況。此任務(wù)通信過(guò)程不僅包含觸發(fā)事件的通知,還要考慮任務(wù)間相應(yīng)數(shù)據(jù)的傳遞。因此必須通過(guò)消息郵箱、消息隊(duì)列或者事件標(biāo)志組方式來(lái)實(shí)現(xiàn)此數(shù)據(jù)傳遞的情況。經(jīng)進(jìn)一步分析得出,由于負(fù)責(zé)映射靜態(tài)數(shù)據(jù)的TMapStaticData任務(wù)優(yōu)先級(jí)高,模塊設(shè)計(jì)中采用了消息郵箱方式來(lái)處理其他任務(wù)與此任務(wù)間的通信過(guò)程。模塊設(shè)計(jì)任務(wù)邏輯關(guān)系如圖3所示。
表2 部分任務(wù)劃分與優(yōu)先級(jí)分配


圖3 模塊設(shè)計(jì)任務(wù)邏輯關(guān)系
  筆者認(rèn)為,在開(kāi)發(fā)基于多任務(wù)的嵌入式項(xiàng)目時(shí),為使整個(gè)模塊的設(shè)計(jì)具有結(jié)構(gòu)化、模塊化、標(biāo)準(zhǔn)化的特點(diǎn),也便于將來(lái)模塊實(shí)現(xiàn)的維護(hù)與升級(jí),應(yīng)該盡量簡(jiǎn)化各個(gè)任務(wù)間的邏輯關(guān)系,體現(xiàn)各個(gè)任務(wù)功能的獨(dú)立性和完整性。每個(gè)任務(wù)實(shí)現(xiàn)一個(gè)或若干個(gè)功能,但必須成為一個(gè)單獨(dú)的模塊。任務(wù)間的調(diào)度策略主要通過(guò)延時(shí)以及信號(hào)量、消息郵箱、消息隊(duì)列來(lái)完成。
3.3 程序?qū)崿F(xiàn)
  基于μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)處理并發(fā)任務(wù),該實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)模塊軟件設(shè)計(jì)部分偽代碼如下:
void Tstart(void * pdata) {
  while(1) {
    創(chuàng)建TMapStaticData 通信任務(wù);
    創(chuàng)建TMapDynamicData 通信任務(wù);
    創(chuàng)建LCD的TMain_Board主界面顯示任務(wù);
    創(chuàng)建LCD的Tcheck_Board測(cè)點(diǎn)數(shù)據(jù)詳細(xì)顯示界面任務(wù);
    創(chuàng)建LCD的Tcheck_system測(cè)點(diǎn)數(shù)據(jù)顯示巡檢任務(wù);
  };
}
結(jié)語(yǔ)
  基于μC/OS-II的旋轉(zhuǎn)機(jī)械監(jiān)視實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)模塊利用了μC/OS-II能夠穩(wěn)定、安全處理并發(fā)多任務(wù)這一特點(diǎn),并按所述調(diào)度策略協(xié)調(diào)多任務(wù)運(yùn)行,提高了模塊程序的運(yùn)行效率。該模塊一直穩(wěn)定運(yùn)行,體現(xiàn)出較高的實(shí)時(shí)性和可靠性,取得了較好的實(shí)際效果。

LCD顯示屏相關(guān)文章:lcd顯示屏原理


lcd相關(guān)文章:lcd原理

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉