現在大多數的發電廠、煤炭礦廠以及各大小級別實驗室中所使用的工控量熱儀都是這樣的一個框架:完成儀器試驗測試控制的下位機控制模塊;提供人機交互,傳輸和接收命令、數據的上位機模塊;以及兩模塊間的連接通信設備。在此系統中下位機通常使用的是單片機來完成對試驗儀器的控制,并負責從通信設備 usb68013接收到數據,提取相應的試驗控制命令來控制儀器試驗。這里主要討論的是系統上位機的構建和實現,對下位機不做進一步的討論了。那么對于系統的上位機通常的做法就是使用 pc機,當然,通用 pc機有著豐富的資源,不管是它的 cup時鐘頻率、內存資源、以及對系統各種軟硬件管理的能力等,都有著其它替代品不可比擬的優勢。但是,使用 pc作為設備的上位機,一個昀大的缺點就是它體積大、不便攜等,同時,隨著儀器生產商為了能降低生產成本,因此,在能完成儀器整體功能的同時,極力的去尋找使儀器體積小、便攜、近似 pc機功能的上位機系統。因此,基于 arm嵌入式系統應用于這樣的儀器上就是個非常好的方案。
2 系統設計方案
嵌入式工控量熱儀必須要在追求儀器設備體積小、便攜的基礎上,力求實現原來量熱儀設備相應的功能,因此,得到下面幾點設計方案:
①使用主頻盡可能高的微處理芯片,同時具有很好的內存管理功能;
②對于片上資源和各種外設的接口的擴展。考慮到數據存儲、內核、文件系統、圖形庫及應用程序在系統中所占資源,選用合適的 Flash閃存和 SDRAM;同時,與外圍儀器的連接通信擴展出一個 USB Host接口、一個網口 RJ45、一個標準串口等;
③為了實現人機交互和儀器的便攜,系統中設計出觸摸屏式高級用戶交互圖形操作界面;
2.1系統硬件框架圖
如上圖,系統上位機中使用的微處理芯片是三星公司的 arm920T S3C2410A;Flash存儲器采用 Samsung公司的 K9F1208U0M Nand Flash存儲器,存儲容量為 64MB,這種非易失性存儲器是高數據存儲密度的理想解決方案,它能擦寫一百多萬次,具有很長的使用壽命; SDRAM存儲器采用 HY57V561620CT,在此使用兩塊,每塊大小為 32MB;為了實現人機交
互,以及從系統便攜等方面考慮,系統使用了觸摸屏,當然還擴展出串口、網口等,以上就是整個系統上位機的硬件框架。上位機和下位機間的通信設備使用的是 EZ-USB68013,它負責從上位機接受數據和命令,并把下位機實驗數據以及各種狀態返回到上位機,而它在 linux下驅動編寫和移植留到下面再討論。
2.2系統上位機軟件組成
針對上面所討論的系統硬件構成,以及系統所要完成的功能,下面對系統上位機的軟件組成進行討論。如下是系統上位機的軟件組成:
2.2.1嵌入式操作系統設計與移植
在整個系統的設計與實現中內核的配置和移植是非常重要的,本系統使用的是韓國 mizi公司免費提供的嵌入式 linux操作系統,本操作系統體積小、方便剪裁,同時它又包含了現有使用的大部分外圍設備的驅動,因此,使用此操作系統可以降低開發成本、加快系統的開發。Arm-linux嵌入式操作系統的移植主要包括如下幾步:①建立交叉編譯環境。交叉編譯環境的建立是進行 arm嵌入式項目開發的基礎,它的搭建主要需要三個軟件包:binutils、 gcc、glibc。其中 binutils主要用于生成一些輔助工具,如 objdump、as、ld等;gcc是用來生成交叉編譯器 arm-linux-gcc;glibc主要提供用戶程序所使用的一些基本的函數庫。當然,交叉環境的搭建是比較復雜的,很多步驟都涉及到硬件平臺的選擇,因此,本系統使用的是成都博睿公司所提供的交叉編譯器,而對交叉環境的具體搭建這里就不作進一步的討論了。
②修改配置文件,配置內核。修改配置文件使系統啟動時自動掛載 devfs文件系統,配置內核使內核支持 yaffs文件系統。③根據系統需求添加相應的外圍設備的驅動。本系統中使用了 EZ-usb68013來實現上、下位機的數據通信,那么就必須要在上位機中添加該通信設備的驅動。如下是在嵌入式 linux操作系統中 EZ-usb68013設備驅動添加的步驟:首先,通過修改內核中/driver/usb下的 usb-skelon.c文件,在 usb-skelon.c中添加 EZ-usb68013設備的 PID和 VID,并修改該目錄下的 config.in和 Makefile文件,各添加一行內容,分別為:“dep_tristate ' USB 68013 driver support' CONFIG_USB_68013 $CONFIG_USB”和 “obj-$(CONFIG_USB_68013)+= usb68013.o”,這樣就把 EZ-USB68013設備驅動編譯進 Linux內核(當昀后系統啟動后,在/dev/usb下出現 EZ-usb68013的設備節點 skel0);然后,選中內核對應的配置選項,編譯后生成內核的移植鏡像文件。
另外,在這里還簡單介紹下系統的文件系統。本系統使用的文件系統是busybox,busybox它具備了linux中一些昀基本的指令,同時它昀主要的一個特點就是占用空間小,是 embedded文件系統中昀理想的選擇。
2.2.2圖形庫 qte的配置和移植
Qte是荷蘭 Trolletch公司的圖形化界面開發工具 Qt的嵌入式版本,它通過Qt API與Linux I/O直接交互,擁有較高的運行效率,而且整體采用面向對象編程,擁有良好地體系架構和編程模式,它采用 framebuffer作為底層的圖形接口,并使用 c++進行封裝,具有良好的移植性,同時,我們可以把用 Qt的Designer開發出來的GUI應用程序,通過交叉編譯后可直接移植到Qte嵌入式平臺。
本系統使用的是Qt-embedded-3.3.2作為系統的基礎圖形庫,在進行圖形庫編譯之前,為了能使移植后的圖形庫支持觸摸屏,則需對圖形庫源碼進行如下修改:①在源文件包的 /src/embedded下的qmouselinuxtp_qws.h中添加兩行代碼 #define QT_QWS_IPAQ和#define QT_QWS_IPAQ_RAW;②對 qmouselinuxtp_qws.cpp做如下的修改,即把源文件中打開的觸摸屏設備節點要改成自己所用觸摸屏設備節點,如本系統中改成為:/dev/touchscreen/0raw。通過如上的修改后就可以對圖形庫進行配置了,即如下: ./configure -embedded arm -qt-mouse-linuxtp -qt-kbd-usb,配置、編譯成功后,將 /lib下的庫文件移植到目標板上的 /lib目錄下,這樣就完成了圖形庫Qte及觸摸屏支持的配置和移植。
3 Qte平臺上用戶應用程序模塊的實現
3.1 本系統應用程序模塊分析
本系統的用戶應用程序用qt跨平臺語言編寫,通過交叉編譯后移植到目標板上,而應用程序主要包括如圖3所示的幾個模塊:實驗顯示模塊、 usb通信模塊、儀器實驗控制模塊、數據庫模塊,另外還有數據打印模塊等。
⑴實驗顯示模塊它包括系統的主界面、實驗數據輸入和結果顯示界面。其中主界面通過菜單控件按鈕來調用其它的模塊,試驗數據輸入界面是在儀器試驗當中輸入時間和試驗樣品的質量數等,而結果顯示界面是把由 usb通信設備返送回來的下位機試驗所得結果及下位機的狀態顯示出來。
⑵儀器試驗控制模塊。儀器試驗模塊是本系統昀重要的程序模塊,系統要完成的各項功能都是在此模塊中來設計和實現的,在本嵌入式工控量熱儀中,它具體要完成的任務是以下一些:往下位機發送命令,控制下位機試驗的開始和停止;采集下位機試驗溫度;控制下位機內、外桶水位平衡;同時,當試驗結束后,控制 usb通信設備把下位機的試驗結果采集回來等。
⑶usb通信模塊。 usb通信模塊在前面也已經簡單的介紹過它主要的功能是負責把從上位機接受來的輸入數據和控制命令發送到下位機,同時又把下位機的試驗結果返送回上位機。因此為了能使數據的準確傳輸,在應用程序中定義了兩個用以接受和傳輸數據的結構體 struct DOWN_DATA、UP_DATA,每個結構體是 64字節。而在程序中對 usb68013通信設備的操作是利用Linux下的設備文件的 I/O操作,打開 usb68013通信設備是: open( "/dev/usb/skel0", O_RDWR | O_NOCTTY | O_NDELAY ),其中 skel0是usb68013設備在系統中的設備節點。成功打開通信設備后就可以進行上、下位機的數據通信了,即往設備上發送數據和從設備上讀取數據,這分別為: write(m_hDev,(UCHAR*)writeBuffer,64)、 read(m_hDev,(UCHAR*)readBuffer,64),這樣就成功的實現系統中數據的通信。
⑷數據庫模塊。本工控量熱儀由于是用來測量某種樣品的發熱量的,那么,通常要對此樣品進行多次的試驗,再來取平均值,因此,利用數據庫對試驗結果的保存是非常必要的。在本系統中使用的是sqlite-3.3.6這一零配置的數據庫,這種數據庫它主要的特點就是體積小、封裝了一些基本的數據庫API接口函數、操作簡單、易于移植,是嵌入式系統中昀理想的數據庫。
3.2 系統實現及測試
通過上面的討論,本系統的各模塊都已經成功的設計出并得以實現。由于系統基于 QTE設計出圖形用戶界面,則提供良好的人機交互,使系統更易于操作和管理。經過試驗測試,本系統上位機各模塊能夠很好的達到設計的目標,整個上位機系統控制下位機試驗,并把結果正確顯示出。如圖4所示為系統圖形用戶界面的試驗控制模塊。
4 結論
本文根據需要對嵌入式工控量熱儀的上位機軟、硬件平臺設計和構建進行了深入的討論,并得出了方案的詳細實現過程,昀終還給出了系統試驗測試框圖,從而驗證了嵌入式工控量熱儀的可行性、實用性。本系統的創新點有以下幾點:①系統上位機利用arm嵌入式平臺來代替原來的pc機,這樣使成本降低了,昀重要就是嵌入式平臺相比于 pc機體積更小,這樣設備就越便攜、實用;②系統使用QT跨平臺語言來編寫系統的應用程序,這樣程序具有良好的移植性,同時,系統設計開發出用戶界面,并用觸摸屏代替傳統的鼠標和鍵盤,具有友好的人機交互。
評論
查看更多