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

?

基于S3C2440的食品生產(chǎn)線溫濕度實(shí)時(shí)檢測(cè)系統(tǒng)設(shè)計(jì)

2013-09-19 08:53:58亮,張平,唐清,于
關(guān)鍵詞:參數(shù)設(shè)置驅(qū)動(dòng)程序內(nèi)核

崔 洪 亮,張 繼 平,唐 懋 清,于 忠 得

(1.大連工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 大連 116034;2.大化集團(tuán)有限公司 儀控部,遼寧 大連 116031)

0 引 言

在食品生產(chǎn)過(guò)程中,和面、發(fā)酵、攪拌是其生產(chǎn)的重要的環(huán)節(jié),而時(shí)間、溫度和濕度的監(jiān)測(cè)又是這些環(huán)節(jié)的重要因素,它直接影響產(chǎn)品質(zhì)量和經(jīng)濟(jì)效益。為此生產(chǎn)過(guò)程中的溫濕度檢測(cè)系統(tǒng)就顯得十分關(guān)鍵。傳統(tǒng)的溫濕度實(shí)時(shí)檢測(cè)系統(tǒng),是以8位的單片機(jī)為核心,通過(guò)按鍵操作、數(shù)碼管顯示,不能存儲(chǔ)大量數(shù)據(jù),而是通過(guò)PC機(jī)加智能儀表來(lái)存儲(chǔ)數(shù)據(jù)[1]。隨著嵌入式技術(shù)的發(fā)展,食品行業(yè)的溫濕度實(shí)時(shí)檢測(cè)系統(tǒng)有待改善。本設(shè)計(jì)以ARM9微處理器為硬件核心,以Linux操作系統(tǒng)為軟件核心,不僅實(shí)現(xiàn)了原有的功能,同時(shí)實(shí)現(xiàn)了人性化的人機(jī)交互,將數(shù)據(jù)的顯示與記錄融于一機(jī),節(jié)約了生產(chǎn)成本;以太網(wǎng)的引入,實(shí)現(xiàn)了數(shù)據(jù)的遠(yuǎn)程瀏覽。本研究為食品生產(chǎn)過(guò)程的標(biāo)準(zhǔn)化、規(guī)范化、人性化提供了技術(shù)條件[2]。

1 硬件系統(tǒng)設(shè)計(jì)

以ARM920T為核心的S3C2440A處理器,其外部提供了豐富的接口功能、總線和GPIO。其具備了單片機(jī)所不具備的運(yùn)行速度快、可以驅(qū)動(dòng)大容量存儲(chǔ)設(shè)備、可驅(qū)動(dòng)大型LCD和觸摸屏,以及網(wǎng)絡(luò)功能等優(yōu)點(diǎn)。使得系統(tǒng)具備PC機(jī)風(fēng)格、大量數(shù)據(jù)儲(chǔ)存和以太網(wǎng)接入的功能。充分利用這些外部資源再配以溫濕度檢測(cè)電路,就可以滿足系統(tǒng)的設(shè)計(jì)要求[3]。硬件系統(tǒng)框圖如圖1所示。

圖1 硬件系統(tǒng)框圖Fig.1 Hardware of temperature and humidity detection system

(1)溫度、濕度、時(shí)間監(jiān)測(cè)接口。該電路的功能是實(shí)現(xiàn)將溫度、濕度傳感器的信號(hào),經(jīng)過(guò)處理轉(zhuǎn)變?yōu)锳/D轉(zhuǎn)換電路需要的電壓信號(hào),再進(jìn)行A/D轉(zhuǎn)換為處理器能處理的數(shù)字信號(hào)[4]。時(shí)間監(jiān)測(cè)是通過(guò)攪拌機(jī)的開(kāi)啟和關(guān)閉,實(shí)時(shí)測(cè)試攪拌機(jī)的開(kāi)關(guān)時(shí)間。

(2)USB接口。用于連接U盤、移動(dòng)硬盤等大容量存儲(chǔ)設(shè)備,方便數(shù)據(jù)和配置文件導(dǎo)入系統(tǒng)以及導(dǎo)出系統(tǒng)歷史數(shù)據(jù)。

(3)網(wǎng)卡接口。用于連接以太網(wǎng),可以通過(guò)以太網(wǎng)遠(yuǎn)程瀏覽實(shí)時(shí)數(shù)據(jù)、歷史數(shù)據(jù),通過(guò)分析數(shù)據(jù)進(jìn)行以太網(wǎng)遠(yuǎn)程控制。

(4)64MB SDRAM。用于設(shè)置程序堆棧和存放各種變量。

(5)UART。用于與PC機(jī)通訊連接,將歷史數(shù)據(jù)上傳至PC機(jī)。

(6)LCD(帶觸摸屏)。用于顯示實(shí)時(shí)曲線、歷史數(shù)據(jù),通過(guò)觸摸屏設(shè)置系統(tǒng)參數(shù)等。

(7)256MB NAND FLASH。用于存儲(chǔ)代碼和歷史數(shù)據(jù)。

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

軟件部分的設(shè)計(jì)主要包括:U-Boot的移植、Linux內(nèi)核的移植、Linux根文件系統(tǒng)的構(gòu)建、設(shè)備驅(qū)動(dòng)的開(kāi)發(fā)和基于QT的應(yīng)用程序的開(kāi)發(fā)。與以單片機(jī)為核心的系統(tǒng)相比,引入了Linux操作系統(tǒng)使軟件設(shè)計(jì)變得更加簡(jiǎn)單,系統(tǒng)升級(jí)也變得更加方便。

2.1 U-Boot的移植

U-Boot是系統(tǒng)上電后運(yùn)行的第一段代碼,用于初始化硬件設(shè)備,準(zhǔn)備好軟件環(huán)境,最后調(diào)用操作系統(tǒng)內(nèi)核。針對(duì)于本系統(tǒng)的硬件平臺(tái),采用1.3.4版本的 U-Boot,閱讀 Makefile文件、修改Makefile文件和平臺(tái)相關(guān)文件,執(zhí)行“make smdk2410_config”、“make all”命 令,生 成U-Boot.bin文件,通過(guò) HJTAG下載寫到NOR FLASH中。

2.2 Linux內(nèi)核的移植和驅(qū)動(dòng)程序的設(shè)計(jì)

本系統(tǒng)采用Linux2.6.31版本的內(nèi)核,其中涵蓋了大部分外圍設(shè)備的驅(qū)動(dòng)代碼,根據(jù)需要進(jìn)行簡(jiǎn)單修改即可,溫度、濕度、時(shí)間監(jiān)測(cè)電路的驅(qū)動(dòng)需要自行編寫。以下對(duì)部分驅(qū)動(dòng)作簡(jiǎn)要介紹。

2.2.1 NAND FLASH驅(qū)動(dòng)的配置

首先修改分區(qū)表,修改內(nèi)核目錄中的文件arch/arm/plat-s3c24xx/common-smdk.c,使其與256MB的NAND FLASH匹配。接下來(lái)修改NAND的讀寫匹配時(shí)間,修改結(jié)構(gòu)static struct s3c2410_platform_nand smdk_nand_info中的tacls=10,twrph0=25,twrph1=10。最后修改driver/mtd/nand/Kconfig文件[5]。

配置內(nèi)核時(shí),一定要選上S3C2410NAND Hardware ECC這個(gè)選項(xiàng),然后再配置內(nèi)核支持yaffs2文件系統(tǒng)。這樣就構(gòu)成了一個(gè)完整的操作系統(tǒng)。

2.2.2 LCD驅(qū)動(dòng)的移植

內(nèi)核中有很完善的LCD驅(qū)動(dòng),只要根據(jù)所選用的LCD進(jìn)行簡(jiǎn)單的修改。內(nèi)核源碼中drivers/video/s3c2410fb.c是LCD驅(qū)動(dòng)的源碼。首先設(shè)置LCD的時(shí)鐘頻率,修改函數(shù)static void s3c2410fb_activate_var(struct fb_info*info)中的struct s3c2410fb_mach_info*mach_info=fbi->platform_data;struct s3c2410fb_display*default_display = mach_info->displays+mach_info-> default_display;S3C2410_LCDCO N1_CLKVAL(default_display- >setclkval);在 arch/arm/mach-s3c24 10/include/mach/fb.h中加入:unsigned setclkval;然后查看LCD手冊(cè),修改arch/arm/mach-s3c2440.c中LCD參數(shù)。配置內(nèi)核支持LCD,完成對(duì)LCD驅(qū)動(dòng)的支持。

2.2.3 溫濕度采集接口驅(qū)動(dòng)設(shè)計(jì)

系統(tǒng)需要采集4個(gè)攪拌機(jī)的溫度和發(fā)酵室的溫度、濕度6個(gè)參數(shù),然后將數(shù)據(jù)存儲(chǔ)為.txt文件,系統(tǒng)根據(jù)這6組數(shù)據(jù)繪制實(shí)時(shí)曲線和數(shù)據(jù)列表。根據(jù)實(shí)際需要每1min采集一組數(shù)據(jù)。

在內(nèi)核中沒(méi)有溫濕度采集電路的驅(qū)動(dòng)代碼,需要自己編寫,驅(qū)動(dòng)程序只需打開(kāi)一個(gè)參數(shù)采集的通道,采集完成后打開(kāi)下一個(gè)通道即可。將驅(qū)動(dòng)程序的源碼加入到drivers/char目錄下,并修改這個(gè)目錄下的Makefile和Kconfig文件,加入這個(gè)驅(qū)動(dòng)程序,配置內(nèi)核??蓪⑦@個(gè)驅(qū)動(dòng)程序動(dòng)態(tài)加載到內(nèi)核,便于修改,減小內(nèi)核的大小。

2.3 根文件系統(tǒng)的制作

Linux內(nèi)核啟動(dòng)后會(huì)掛載根文件系統(tǒng)用來(lái)存取和管理的內(nèi)核文件。根文件系統(tǒng)的制作分為4個(gè)步驟:

(1)準(zhǔn)備制作。遵循FHS標(biāo)準(zhǔn)(Filesystem Hierarchy Standard)創(chuàng)建根文件系統(tǒng)目錄,可以參照Linux操作系統(tǒng)制作相應(yīng)的目錄。

(2)編譯busybox。解壓busybox-1.15.2的源碼包,修改Makefile,執(zhí)行make menuconfig配置busybox,配置完成后,執(zhí)行 make、make install,然后將生成內(nèi)容復(fù)制到第一步建立的相應(yīng)的目錄下。

(3)制作文件系統(tǒng)。完善相應(yīng)目錄下的內(nèi)容,主要包括etc下的inittab、init.d/rcS、fatab文件,以及dev和lib目錄下的內(nèi)容。

(4)完善文件系統(tǒng)。主要是向文件系統(tǒng)中加入應(yīng)用程序。

2.4 基于QT的應(yīng)用程序開(kāi)發(fā)

作者基于Trolltech的Qt/Embedded來(lái)開(kāi)發(fā)圖形用戶界面系統(tǒng),使用“一次編寫,隨處編譯”的方式為開(kāi)發(fā)跨平臺(tái)的圖形用戶界面應(yīng)用程序提供了一個(gè)完整的C++應(yīng)用程序開(kāi)發(fā)框架。

開(kāi)機(jī)后直接進(jìn)入動(dòng)態(tài)曲線顯示界面,如圖2所示。圖2顯示內(nèi)容有:

(1)菜單欄。它包括:參數(shù)設(shè)置、數(shù)據(jù)導(dǎo)出、列表、幫助。

(2)系統(tǒng)時(shí)間顯示。顯示當(dāng)前系統(tǒng)時(shí)間。

(3)溫濕度變化曲線。以動(dòng)態(tài)曲線形式顯示當(dāng)前時(shí)間以前采集的10組數(shù)據(jù)。

2.4.1 菜單欄的建立

可以通過(guò)觸摸屏點(diǎn)擊相應(yīng)菜單,對(duì)系統(tǒng)進(jìn)行操作。參數(shù)設(shè)置是對(duì)所采集的6個(gè)參數(shù)進(jìn)行設(shè)置,包括:報(bào)警上下限,傳感器的類型,參數(shù)設(shè)置界面如圖3所示。數(shù)據(jù)導(dǎo)出菜單通過(guò)USB接口將歷史數(shù)據(jù)存入移動(dòng)存貯設(shè)備;列表菜單是將數(shù)據(jù)以列表的方式顯示;幫助菜單顯示如何操作系統(tǒng)。

圖2 動(dòng)態(tài)曲線顯示界面Fig.2 The display interface for dynamic curve

圖3 參數(shù)設(shè)置對(duì)話框Fig.3 Setting dialog

以上菜單利用QT的信號(hào)(SIGNAL)和槽(SLOT)機(jī)制來(lái)實(shí)現(xiàn)其功能。例如:connect(settingAction,SIGNAL(triggered()),this,SLOT(setting())),通過(guò)對(duì)settingAction對(duì)象的點(diǎn)擊(triggered())發(fā)出信號(hào),就會(huì)自動(dòng)在this對(duì)象上調(diào)用setting()這個(gè)槽,從而彈出參數(shù)設(shè)置對(duì)話框。

2.4.2 系統(tǒng)時(shí)間的建立

通過(guò)QT的QLabel控件來(lái)顯示系統(tǒng)時(shí)間,并把其與timeout()信號(hào)連接就完成了系統(tǒng)時(shí)間的建立。

label= new QLabel(this);

QTimer*timer=new QTimer(this);

connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));

2.4.3 溫濕度變化曲線的建立

溫濕度變化曲線的建立利用了QT的雙緩沖技術(shù),它包括把一個(gè)窗口部件渲染到一個(gè)脫屏像素映射(off-screen pixmap)中以及把這個(gè)像素映射復(fù)制到顯示器上[6],QT的雙緩沖技術(shù)的利用,可以使實(shí)時(shí)曲線的顯示更加流暢。利用1min的時(shí)間中斷來(lái)采集數(shù)據(jù)更新曲線,其中斷程序流程圖如圖4所示。

圖4 中斷程序流程圖Fig.4 Interruption flow chart

由圖4可見(jiàn),進(jìn)入中斷服務(wù)程序后,采集一組數(shù)據(jù)。如果數(shù)據(jù)無(wú)效進(jìn)行無(wú)效處理,如果數(shù)據(jù)有效進(jìn)行存儲(chǔ),存儲(chǔ)到.txt文件和列表文件。存儲(chǔ)完成后,利用void Plotter::refreshPixmap()函數(shù)繪制最新的100組數(shù)據(jù),并映射到屏幕上[7]。

3 結(jié) 論

通過(guò)以上的工作,完成了食品生產(chǎn)線溫濕度實(shí)時(shí)檢測(cè)系統(tǒng)的硬件平臺(tái)和軟件開(kāi)發(fā)環(huán)境的關(guān)鍵技術(shù)的研究工作。經(jīng)過(guò)模擬實(shí)驗(yàn),系統(tǒng)滿足了實(shí)際生產(chǎn)線的需要。本課題的研究將ARM處理器和Linux操作系統(tǒng)引入到溫濕度檢測(cè)系統(tǒng)的設(shè)計(jì)中來(lái),提高了系統(tǒng)運(yùn)行速度和實(shí)時(shí)性,使系統(tǒng)擁有了良好的人機(jī)界面和以太網(wǎng)接口,方便遠(yuǎn)程參數(shù)的設(shè)置和數(shù)據(jù)的查看。Linux系統(tǒng)和Qt/Embedded的使用,使軟件的開(kāi)發(fā)更容易。該系統(tǒng)通過(guò)改進(jìn)也可以實(shí)現(xiàn)其他工業(yè)參數(shù)數(shù)據(jù)的采集,實(shí)現(xiàn)更強(qiáng)大的工業(yè)控制系統(tǒng)。

[1]張沛然,成廣友.食品生產(chǎn)線溫濕度實(shí)時(shí)檢測(cè)系統(tǒng)[J].電子技術(shù),1995(5):213-214.

[2]于忠得,林敏,申華.嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:國(guó)防工業(yè)出版社,2009:1-14.

[3]韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2008:76-114.

[4]黃賢斌,鄭筱霞,曲波,等.傳感器實(shí)際應(yīng)用電路設(shè)計(jì)[M].成都:電子科技大學(xué)出版社,2003:128-134.

[5]馮國(guó)進(jìn).嵌入式Linux驅(qū)動(dòng)程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2008:57-66.

[6]BLANCHETTE J,SUMMERFIELD M.C++ GUI Qt 4編程[M].閆鋒欣,曾泉人,張志強(qiáng),譯.北京:電子工業(yè)出版社,2008:92-107.

[7]于忠得.單片機(jī)原理與工程設(shè)計(jì)實(shí)例[M].北京:清華大學(xué)出版社,2011:264-288.

猜你喜歡
參數(shù)設(shè)置驅(qū)動(dòng)程序內(nèi)核
萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
Linux內(nèi)核mmap保護(hù)機(jī)制研究
蟻群算法求解TSP中的參數(shù)設(shè)置
動(dòng)車環(huán)境下U900異頻切換參數(shù)設(shè)置探討
基于MATLAB仿真的井下變壓器參數(shù)設(shè)置研究
有備無(wú)患,軟件參數(shù)設(shè)置也能備份
驅(qū)動(dòng)程序更新與推薦
驅(qū)動(dòng)程序更新與推薦
班玛县| 乌拉特前旗| 鄢陵县| 汾阳市| 资阳市| 喀什市| 德阳市| 南平市| 岱山县| 永嘉县| 大埔区| 炎陵县| 柏乡县| 邹城市| 将乐县| 九龙坡区| 朝阳区| 佛冈县| 和田县| 辽阳县| 沂南县| 萨嘎县| 平罗县| 积石山| 阳高县| 芒康县| 龙岩市| 和龙市| 包头市| 周至县| 安陆市| 吉林省| 灵川县| 房产| 宁明县| 临沭县| 同德县| 泰顺县| 北海市| 祁门县| 抚顺县|