基于Linux系統(tǒng)的嵌入式工控量熱儀設(shè)計與實現(xiàn)
另外,在這里還簡單介紹下系統(tǒng)的文件系統(tǒng)。本系統(tǒng)使用的文件系統(tǒng)是busybox,busybox它具備了linux中一些昀基本的指令,同時它昀主要的一個特點就是占用空間小,是 embedded文件系統(tǒng)中昀理想的選擇。
2.2.2圖形庫 qte的配置和移植
Qte是荷蘭 Trolletch公司的圖形化界面開發(fā)工具 Qt的嵌入式版本,它通過Qt API與Linux I/O直接交互,擁有較高的運行效率,而且整體采用面向?qū)ο缶幊?,擁有良好地體系架構(gòu)和編程模式,它采用 framebuffer作為底層的圖形接口,并使用 c++進行封裝,具有良好的移植性,同時,我們可以把用 Qt的Designer開發(fā)出來的GUI應(yīng)用程序,通過交叉編譯后可直接移植到Qte嵌入式平臺。
本系統(tǒng)使用的是Qt-embedded-3.3.2作為系統(tǒng)的基礎(chǔ)圖形庫,在進行圖形庫編譯之前,為了能使移植后的圖形庫支持觸摸屏,則需對圖形庫源碼進行如下修改:①在源文件包的 /src/embedded下的qmouselinuxtp_qws.h中添加兩行代碼 #define QT_QWS_IPAQ和#define QT_QWS_IPAQ_RAW;②對 qmouselinuxtp_qws.cpp做如下的修改,即把源文件中打開的觸摸屏設(shè)備節(jié)點要改成自己所用觸摸屏設(shè)備節(jié)點,如本系統(tǒng)中改成為:/dev/touchscreen/0raw。通過如上的修改后就可以對圖形庫進行配置了,即如下: ./configure -embedded arm -qt-mouse-linuxtp -qt-kbd-usb,配置、編譯成功后,將 /lib下的庫文件移植到目標板上的 /lib目錄下,這樣就完成了圖形庫Qte及觸摸屏支持的配置和移植。
3 Qte平臺上用戶應(yīng)用程序模塊的實現(xiàn)
3.1 本系統(tǒng)應(yīng)用程序模塊分析
本系統(tǒng)的用戶應(yīng)用程序用qt跨平臺語言編寫,通過交叉編譯后移植到目標板上,而應(yīng)用程序主要包括如圖3所示的幾個模塊:實驗顯示模塊、 usb通信模塊、儀器實驗控制模塊、數(shù)據(jù)庫模塊,另外還有數(shù)據(jù)打印模塊等。本文引用地址:http://www.ex-cimer.com/article/152018.htm
⑴實驗顯示模塊它包括系統(tǒng)的主界面、實驗數(shù)據(jù)輸入和結(jié)果顯示界面。其中主界面通過菜單控件按鈕來調(diào)用其它的模塊,試驗數(shù)據(jù)輸入界面是在儀器試驗當中輸入時間和試驗樣品的質(zhì)量數(shù)等,而結(jié)果顯示界面是把由 usb通信設(shè)備返送回來的下位機試驗所得結(jié)果及下位機的狀態(tài)顯示出來。
⑵儀器試驗控制模塊。儀器試驗?zāi)K是本系統(tǒng)昀重要的程序模塊,系統(tǒng)要完成的各項功能都是在此模塊中來設(shè)計和實現(xiàn)的,在本嵌入式工控量熱儀中,它具體要完成的任務(wù)是以下一些:往下位機發(fā)送命令,控制下位機試驗的開始和停止;采集下位機試驗溫度;控制下位機內(nèi)、外桶水位平衡;同時,當試驗結(jié)束后,控制 usb通信設(shè)備把下位機的試驗結(jié)果采集回來等。
⑶usb通信模塊。 usb通信模塊在前面也已經(jīng)簡單的介紹過它主要的功能是負責把從上位機接受來的輸入數(shù)據(jù)和控制命令發(fā)送到下位機,同時又把下位機的試驗結(jié)果返送回上位機。因此為了能使數(shù)據(jù)的準確傳輸,在應(yīng)用程序中定義了兩個用以接受和傳輸數(shù)據(jù)的結(jié)構(gòu)體 struct DOWN_DATA、UP_DATA,每個結(jié)構(gòu)體是 64字節(jié)。而在程序中對 usb68013通信設(shè)備的操作是利用Linux下的設(shè)備文件的 I/O操作,打開 usb68013通信設(shè)備是: open( /dev/usb/skel0, O_RDWR | O_NOCTTY | O_NDELAY ),其中 skel0是usb68013設(shè)備在系統(tǒng)中的設(shè)備節(jié)點。成功打開通信設(shè)備后就可以進行上、下位機的數(shù)據(jù)通信了,即往設(shè)備上發(fā)送數(shù)據(jù)和從設(shè)備上讀取數(shù)據(jù),這分別為: write(m_hDev,(UCHAR*)writeBuffer,64)、 read(m_hDev,(UCHAR*)readBuffer,64),這樣就成功的實現(xiàn)系統(tǒng)中數(shù)據(jù)的通信。
⑷數(shù)據(jù)庫模塊。本工控量熱儀由于是用來測量某種樣品的發(fā)熱量的,那么,通常要對此樣品進行多次的試驗,再來取平均值,因此,利用數(shù)據(jù)庫對試驗結(jié)果的保存是非常必要的。在本系統(tǒng)中使用的是sqlite-3.3.6這一零配置的數(shù)據(jù)庫,這種數(shù)據(jù)庫它主要的特點就是體積小、封裝了一些基本的數(shù)據(jù)庫API接口函數(shù)、操作簡單、易于移植,是嵌入式系統(tǒng)中昀理想的數(shù)據(jù)庫。
3.2 系統(tǒng)實現(xiàn)及測試
通過上面的討論,本系統(tǒng)的各模塊都已經(jīng)成功的設(shè)計出并得以實現(xiàn)。由于系統(tǒng)基于 QTE設(shè)計出圖形用戶界面,則提供良好的人機交互,使系統(tǒng)更易于操作和管理。經(jīng)過試驗測試,本系統(tǒng)上位機各模塊能夠很好的達到設(shè)計的目標,整個上位機系統(tǒng)控制下位機試驗,并把結(jié)果正確顯示出。如圖4所示為系統(tǒng)圖形用戶界面的試驗控制模塊。
4 結(jié)論
本文根據(jù)需要對嵌入式工控量熱儀的上位機軟、硬件平臺設(shè)計和構(gòu)建進行了深入的討論,并得出了方案的詳細實現(xiàn)過程,昀終還給出了系統(tǒng)試驗測試框圖,從而驗證了嵌入式工控量熱儀的可行性、實用性。本系統(tǒng)的創(chuàng)新點有以下幾點:①系統(tǒng)上位機利用arm嵌入式平臺來代替原來的pc機,這樣使成本降低了,昀重要就是嵌入式平臺相比于 pc機體積更小,這樣設(shè)備就越便攜、實用;②系統(tǒng)使用QT跨平臺語言來編寫系統(tǒng)的應(yīng)用程序,這樣程序具有良好的移植性,同時,系統(tǒng)設(shè)計開發(fā)出用戶界面,并用觸摸屏代替?zhèn)鹘y(tǒng)的鼠標和鍵盤,具有友好的人機交互。
評論