国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Linux的溫濕度采集系統(tǒng)及QT人機(jī)界面的實(shí)現(xiàn)

2019-09-24 06:03范麗
電腦知識(shí)與技術(shù) 2019年21期
關(guān)鍵詞:驅(qū)動(dòng)程序

范麗

摘要:針對(duì)ARM9平臺(tái)設(shè)計(jì)了SHT10溫濕度傳感器硬件電路,針對(duì)Linux內(nèi)核編寫了AD及溫濕度驅(qū)動(dòng)程序;利用Qt/Embedded軟件設(shè)計(jì)了QT人機(jī)界面,用戶可通過人機(jī)界面及Linux系統(tǒng)終端的溫濕度測(cè)試程序?qū)崟r(shí)監(jiān)測(cè)溫濕度信息。最終程序可以很好地運(yùn)行在開發(fā)板上,驗(yàn)證了軟硬件的有效性和可靠性。

關(guān)鍵詞:ARM9;Linux;驅(qū)動(dòng)程序;QT人機(jī)界面

中圖分類號(hào):TP368? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2019)21-0232-02

開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

Abstract: According to the ARM9 platform, a hardware circuit of SHT10 temperature and humidity sensor was designed, AD and temperature and humidity drivers were written for Linux kernel. Then designed QT man-machine interface with Qt/Embedded, users can monitor temperature and humidity information through the man-machine interface and the temperature and humidity testing program of Linux system terminal in real-time. The final program can run well on the development board, which verifies the effectiveness and reliability of software and hardware.

Key words: ARM9; Linux; Driver; QT man-machine interface

傳統(tǒng)溫濕度采集系統(tǒng)采用以單片機(jī)為核心的設(shè)計(jì)模式[1],有運(yùn)算能力和精度有限、人機(jī)交互復(fù)雜等缺點(diǎn),并且由于缺少底層操作系統(tǒng),在需求改變時(shí),需要對(duì)系統(tǒng)進(jìn)行較大的改動(dòng)[2],對(duì)程序設(shè)計(jì)者要求較高。嵌入式系統(tǒng)近年來得到了迅速發(fā)展,被研發(fā)人員廣泛應(yīng)用于各個(gè)領(lǐng)域。Qt是專門為嵌入式系統(tǒng)設(shè)計(jì)的圖形用戶界面,并且提供了完整的C++程序工具包,使得嵌入式開發(fā)變得更加高效。

基于ARM9硬件平臺(tái)及嵌入式Linux2.6.30.4內(nèi)核編寫了驅(qū)動(dòng)程序,利用Qt/Embedded軟件設(shè)計(jì)了交互友好的人機(jī)界面。

1 系統(tǒng)硬件組成及總體結(jié)構(gòu)

1.1 系統(tǒng)總體結(jié)構(gòu)

該系統(tǒng)由核心處理器、數(shù)據(jù)采集模塊、顯示模塊、電源模塊等組成,其總體結(jié)構(gòu)如圖1所示。

本文采用ARM9的S3C2440微處理器作為嵌入式系統(tǒng)的核心處理器,它是三星(Samsung)公司ARM9系列中的主流產(chǎn)品,具有高性能、低功耗等優(yōu)點(diǎn),應(yīng)用非常廣泛。選擇Linux為ARM9平臺(tái)操作系統(tǒng),其源代碼具有開放、廣泛的后續(xù)支持等優(yōu)點(diǎn)[3]。人機(jī)界面的設(shè)計(jì)是基于Qt/Embedded軟件開發(fā)平臺(tái)。

系統(tǒng)工作時(shí),SHT10溫濕度傳感器采集環(huán)境溫濕度,并將檢測(cè)到的信號(hào)通過ARM的GPIO模塊傳回到主控制器ARM9,主控制器對(duì)數(shù)據(jù)進(jìn)行處理,并且通過控制器的人機(jī)界面實(shí)時(shí)顯示數(shù)據(jù)。

1.2 溫濕度采集模塊設(shè)計(jì)

本系統(tǒng)選用的溫濕度傳感器為SHT10,SHT10是Sensirion公司生產(chǎn)的一種數(shù)字式傳感器,濕度精度達(dá)±4.5%RH,溫度在25℃時(shí)達(dá)±0.5℃。

SHT10的VDD、GND為電源引腳,SCK和DATA引腳為兩線串行接口,主要用于控制器和傳感器之間的數(shù)據(jù)通信。SHT10的供電電壓建議為3.3V。在電源引腳(VDD,GND)之間須加一個(gè)電容,在(VDD,DATA)之間須加一個(gè)上拉電阻Rp,以提高數(shù)據(jù)讀取的可靠性。其中SCK接ARM9 GPIO口的TOUT0,DATA接TOUT1,GND接ARM的GND,VDD接3.3V。其與控制器的硬件連接圖如圖2所示。

2 系統(tǒng)開發(fā)環(huán)境

2.1 Linux開發(fā)環(huán)境的建立

在Linux系統(tǒng)中,需要交叉編譯環(huán)境為ARM9開發(fā)板編譯內(nèi)核、QT界面等其他應(yīng)用程序。TQ2440提供的是EABI_4.3.3EmbedSky_20100610.tar.bzr。

為了驗(yàn)證交叉編譯器是否生效,需要在Linux終端輸入如下命令:#arm-linux-gcc-v[4]。如果生效將會(huì)顯示arm-linux-gcc的相關(guān)信息和版本。

一個(gè)完善的嵌入式系統(tǒng)通常包括:系統(tǒng)引導(dǎo)程序、Linux操作系統(tǒng)內(nèi)核和文件系統(tǒng)。Linux操作系統(tǒng)的移植主要是針對(duì)以上內(nèi)容,需要有四個(gè)步驟:燒寫uboot、Linux內(nèi)核、文件系統(tǒng)和開機(jī)LOGO到開發(fā)板。在完成uboot、內(nèi)核、文件系統(tǒng)和開機(jī)LOGO鏡像的燒寫后,在一鍵式菜單下使用命令8,即可啟動(dòng)S3C2440的Linux操作系統(tǒng)。

2.2 QT開發(fā)環(huán)境的建立

Qt/Embedded實(shí)際上就是一個(gè)C++工具開發(fā)包,其是專門為嵌入式設(shè)備的開發(fā)而訂做的。建立QT開發(fā)環(huán)境的步驟為:

1解壓共享目錄中的Qte_20100601.tar.bz2的源碼到EmbedSky/Qte目錄下;

2編譯PC版本的Qtopia-2.2.0,在Linux的終端執(zhí)行命令:./x86-qtopia-2.2.0-kongqueror_build;

3編譯ARM版本的Qtopia-2.2.0,在Linux的終端執(zhí)行命令:./arm-qtopia-2.2.0-kongqueror_build;

4制作Qtopia-2.2.0的文件系統(tǒng)。

3 系統(tǒng)軟件設(shè)計(jì)

系統(tǒng)軟件設(shè)計(jì)主要是驅(qū)動(dòng)程序和應(yīng)用程序的設(shè)計(jì)。

3.1驅(qū)動(dòng)程序的設(shè)計(jì)

操作系統(tǒng)不能直接對(duì)硬件進(jìn)行操作和控制,需要用設(shè)備驅(qū)動(dòng)作為操作系統(tǒng)和硬件之間的粘合劑,負(fù)責(zé)上下兩邊的溝通。本文所需的驅(qū)動(dòng)有溫濕度傳感器SHT10驅(qū)動(dòng)以及AD驅(qū)動(dòng)。

驅(qū)動(dòng)設(shè)計(jì)的具體步驟如下:

1在“l(fā)inux-2.6.30.4\drivers\char”內(nèi)核源碼目錄下新建一個(gè)名為EmbedSky_gpio.c的文件,用來編寫本文所要用到的溫濕度驅(qū)動(dòng)程序sht10.c。

2在內(nèi)核源碼中添加對(duì)SHT10溫濕度傳感器驅(qū)動(dòng)和AD驅(qū)動(dòng)的支持:修改同目錄下的Kongfig文件,然后再修改同目錄下的Makefile文件。

3配置菜單:在Linux終端輸入命令make menuconfig,配置“gpio Driver”為“*”(編譯進(jìn)內(nèi)核),然后保存配置。

4make zImage:編譯出內(nèi)核鏡像zImage.bin燒寫到開發(fā)板中。

同樣的步驟,編寫AD驅(qū)動(dòng)程序EmbedSky_adc.c,然后重新編譯內(nèi)核,將內(nèi)核鏡像燒寫到開發(fā)板中,即可在開發(fā)板dev目錄下看到對(duì)應(yīng)的設(shè)備名稱,如圖3所示。

3.2 QT應(yīng)用程序的設(shè)計(jì)

Qt人機(jī)界面的設(shè)計(jì)步驟如下:

1在PC機(jī)Linux下的“opt/EmbedSky/Qte/x86_qtopia/pro”目錄下新建一個(gè)名為“renjijiemian”的目錄。用命令“qt2/bin/designer &”在后臺(tái)啟動(dòng)Qt designer設(shè)計(jì)器,設(shè)計(jì)好相關(guān)功能的按鈕及顯示數(shù)據(jù)的窗口。

2添加main.cpp文件、產(chǎn)生*.pro文件、生成Makefile文件

3制作桌面圖標(biāo)和桌面啟動(dòng)器

使用photoshop軟件制作桌面圖標(biāo)文件,文件格式為*.png、大小為16*16。創(chuàng)建一個(gè)桌面啟動(dòng)器(*.desktop)文件。

4仿真并移植

在PC的Linux的終端輸入make命令,進(jìn)行編譯仿真,在實(shí)際測(cè)試過程中,開發(fā)板人機(jī)界面如圖4所示。

同時(shí)運(yùn)行人機(jī)界面和Linux系統(tǒng)終端的溫濕度測(cè)試程序,人機(jī)界面能實(shí)時(shí)顯示溫濕度信息。同時(shí),Linux系統(tǒng)終端運(yùn)行的測(cè)試程序也能夠?qū)崟r(shí)地顯示溫濕度變化,并且與開發(fā)板界面顯示的數(shù)據(jù)基本一致,如圖5所示。

4 結(jié)束語(yǔ)

本文在主控制模塊的S3C2440微處理器上移植了嵌入式Linux操作系統(tǒng),在PC的Linux操作系統(tǒng)上移植了QT/E開發(fā)環(huán)境,采用QT Designer設(shè)計(jì)了人機(jī)畫面,利用C++編程語(yǔ)言完善了人機(jī)界面。在ARM的LCD觸摸屏上實(shí)現(xiàn)了實(shí)時(shí)顯示傳感器

數(shù)值功能,本系統(tǒng)電路簡(jiǎn)單,使用方便,并且在此基礎(chǔ)上可以擴(kuò)展其他用于測(cè)量的傳感器,只要為他們?cè)O(shè)計(jì)對(duì)應(yīng)的硬件接入電路,就可以使用本文通用的AD驅(qū)動(dòng),提高效率。

參考文獻(xiàn):

[1] 宋閩,朱乾坤,鄭建廷,等.基于嵌入式Linux的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)[J].微計(jì)算機(jī)信息,2009,25(16):110-111+121.

[2] 劉偉民,韓斌,李征.基于linux的數(shù)據(jù)采集及在QT界面的顯示[J].微計(jì)算機(jī)信息,2008(22):97-99.

[3] 劉偉華,劉仁學(xué).基于S3C2440與Linux的ARM9嵌入式系統(tǒng)的構(gòu)建[J].冶金自動(dòng)化,2008(S2):409-411.

[4] 武杰.基于ARM9的嵌入式Linux移植[J].自動(dòng)化技術(shù)與應(yīng)用,2014(03):47-49.

【通聯(lián)編輯:朱寶貴】

猜你喜歡
驅(qū)動(dòng)程序
阻止Windows Update更新驅(qū)動(dòng)程序
計(jì)算機(jī)硬件設(shè)備驅(qū)動(dòng)程序分析
基于MPC8280的CPU單元與內(nèi)部總線驅(qū)動(dòng)程序設(shè)計(jì)
基于WDM的 USB鍵盤驅(qū)動(dòng)程序開發(fā)*