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

?

半導(dǎo)體培養(yǎng)箱的ARM嵌入式控制系統(tǒng)研制

2011-07-02 10:48:24許麗佳張開恒張珂銘尹新建
電子技術(shù)應(yīng)用 2011年5期
關(guān)鍵詞:驅(qū)動(dòng)程序培養(yǎng)箱內(nèi)核

鮑 琦,許麗佳,張開恒,張珂銘,尹新建,孫 磊

(四川農(nóng)業(yè)大學(xué) 信息與工程技術(shù)學(xué)院,四川 雅安 625014)

生物培養(yǎng)箱作為一種廣泛應(yīng)用于生物、農(nóng)林等學(xué)科的實(shí)驗(yàn)設(shè)備,其傳統(tǒng)的加熱制冷方式具有噪音大、溫控調(diào)節(jié)精度不高且污染環(huán)境等缺點(diǎn)。對此本文設(shè)計(jì)了一款利用半導(dǎo)體材料作為溫控元件的生物培養(yǎng)箱。在此設(shè)計(jì)中,一方面采用新型半導(dǎo)體熱電轉(zhuǎn)換技術(shù),通過半導(dǎo)體材料的三種形式將熱能和電能進(jìn)行直接轉(zhuǎn)換,以實(shí)現(xiàn)溫度調(diào)節(jié),并輔以濕度、光照的調(diào)節(jié);另一方面采用ARM9處理器作為硬件平臺,移植開源的Linux操作系統(tǒng),并研發(fā)了模糊PID控制系統(tǒng)。不僅減小了噪音,還降低了產(chǎn)品的成本,且具有控制速度快、精度高及性能穩(wěn)定等特點(diǎn),為培養(yǎng)箱的設(shè)計(jì)提供了一種新的思路。

1 半導(dǎo)體培養(yǎng)箱的硬件設(shè)計(jì)

該培養(yǎng)箱的硬件部分由信號采集模塊、核心處理模塊和控制模塊組成,其中信號采集模塊又分溫度、濕度采集。溫度采集是采用單總線數(shù)字溫度傳感器DS18B20,微處理器依據(jù)其器件寄存器內(nèi)置序列號對所匹配的傳感器進(jìn)行讀取,以此實(shí)現(xiàn)多點(diǎn)分布式應(yīng)用;濕度采集是采用濕度傳感器SHT11,微處理器采用二線串行數(shù)字接口和溫濕度傳感器芯片SHT11通信以完成濕度信號采集。核心處理模塊采用基于ARM920T架構(gòu)的S3C2440AL處理器為CPU的核心板,負(fù)責(zé)完成數(shù)據(jù)的運(yùn)算與擴(kuò)展外圍通信接口、USB接口、擴(kuò)展接口、多媒體接口等硬件資源,且該核心板還具有支持觸屏控制等功能??刂颇K以繼電器電路為主體,核心處理模塊輸出的控制信號,經(jīng)繼電器電路接執(zhí)行元件,實(shí)現(xiàn)對熱電半導(dǎo)體、超聲波加濕、T4燈等工作狀態(tài)控制。本培養(yǎng)箱的硬件結(jié)構(gòu)如圖1所示。

1.1 信號采集模塊

信號采集模塊的功能采用上述DS18B20芯片和SHT11芯片來分別采集培養(yǎng)箱內(nèi)的溫度和濕度。DS18B20由美國DALLAS公司生產(chǎn),具有微型化、低功耗、抗干擾能力強(qiáng)、器件唯一編碼、支持分布式尋址等功能,適用于各類溫度測控系統(tǒng)。其內(nèi)部有控制電路、64 bit光刻ROM和溫度轉(zhuǎn)換器等。收發(fā)提供9~12 bit可編程設(shè)備溫度讀數(shù)。電壓范圍為3.0 V~5.5 V,測量溫度范圍為-55℃~125℃,-10℃~85℃范圍內(nèi)精度為±0.5℃。通過軟件修正可達(dá)±0.062 5℃。本設(shè)計(jì)采取由數(shù)據(jù)線寄生電源供電,在培養(yǎng)箱內(nèi)設(shè)置有2個(gè)DS18B20以進(jìn)行多點(diǎn)檢測,并通過計(jì)算此2點(diǎn)的溫度平均值作為箱內(nèi)的溫度檢測值[8]。

圖1 培養(yǎng)箱的硬件結(jié)構(gòu)

SHT11是瑞士Sensirion公司生產(chǎn)的具有I2C總線接口的單片全校準(zhǔn)數(shù)字式相對濕度和溫度傳感器。該傳感器將溫濕度傳感器、信號放大器、A/D轉(zhuǎn)換、I2C總線接口集成于一片芯片上(CMOSensTM技術(shù)),具有數(shù)字式輸出、免調(diào)試、免標(biāo)定、免外圍電路及全互換的特點(diǎn)。其二線串行接口SCK支持CRC傳輸校驗(yàn),傳輸可靠性高且測量精度可編程在線調(diào)節(jié)。該芯片集成電容性聚合體濕度敏感元件,將濕度轉(zhuǎn)換成電信號,并將此信號經(jīng)放大后輸入一個(gè)14位的A/D轉(zhuǎn)換器,最后經(jīng)I2C總線數(shù)字接口輸出數(shù)字信號。

1.2 核心處理模塊

核心處理模塊采用Samsung公司的S3C2440AL處理器,其擁有ARM920T核,能運(yùn)行32 bit RISC指令集指令及16bit的精簡Thumb指令代碼,具有16 KB數(shù)據(jù)CACHE與指令 CACHE,具有 MMU(Memory Management Unit)功能。該處理器主頻可達(dá)400 MHz,并支持SPI、IIC等多種總線擴(kuò)展方式[1],能夠滿足培養(yǎng)箱控制系統(tǒng)的要求。根據(jù)培養(yǎng)箱硬件設(shè)計(jì)的實(shí)際要求,此系統(tǒng)由兩片32 MB的SDRAM和一片64 MB的NAND Flash組成了最小系統(tǒng),并將啟動(dòng)代碼存放在NAND Flash的起始段中。系統(tǒng)擴(kuò)展外圍接口,其中:處理器的標(biāo)準(zhǔn)串行通信接口UART0外接MAX232芯片與宿主機(jī)相連,作為調(diào)試串口;處理器的兩路通用串行總線USB(Universal Serial Bus),一路USB HOST用于U盤接口,一路 USB Slave實(shí)現(xiàn)數(shù)據(jù)的傳輸;LCD接口接?xùn)|華 3.5英寸LCD觸屏;GPIO(通用輸入/輸出口)支持與硬件的數(shù)據(jù)交互、控制硬件工作和讀取硬件的工作狀態(tài)信號等功能,根據(jù)設(shè)計(jì)需要,擴(kuò)展GPIO定義如表1所示。

1.3 控制模塊

控制模塊的功能是對溫度進(jìn)行準(zhǔn)確控制,使用的溫控元件為熱電半導(dǎo)體。半導(dǎo)體制冷原理建立在三個(gè)效應(yīng)基礎(chǔ)上:塞貝克效應(yīng) 、帕爾帖效應(yīng)和湯姆遜效應(yīng),構(gòu)成了熱電設(shè)備的理論基礎(chǔ)。其原理是當(dāng)一塊N型半導(dǎo)體材料和一塊P型半導(dǎo)體材料聯(lián)結(jié)成電偶對時(shí),若此電偶對接通直流電流后,其內(nèi)部就會產(chǎn)生能量的轉(zhuǎn)移:電流由N型元件流向P型元件的接頭吸收熱量,成為冷端。由P型元件流向N型元件的接頭釋放熱量,成為熱端。利用此原理實(shí)現(xiàn)制冷或加熱,具有無污染、無噪聲、體積小及質(zhì)量輕等特點(diǎn)[9]。圖2是半導(dǎo)體制冷的工作原理圖。

表1 GPIO功能定義

圖2 半導(dǎo)體制冷原理圖

2 半導(dǎo)體培養(yǎng)箱的軟件設(shè)計(jì)

培養(yǎng)箱的軟件平臺選用開源嵌入式Linux操作系統(tǒng),其內(nèi)核穩(wěn)定、功能強(qiáng)大,可裁剪并對底層硬件有豐富的函數(shù)支持。本培養(yǎng)箱的軟件設(shè)計(jì)首先完成Bootloader下載、Kernel內(nèi)核的配置、裁剪、編譯與移植并制作YAFFS根文件系統(tǒng),然后開發(fā)對溫、濕度傳感器及熱電半導(dǎo)體等底層硬件的驅(qū)動(dòng)程序,以及基于Qt/Embededded的應(yīng)用程序設(shè)計(jì),實(shí)現(xiàn)了GUI人機(jī)交互接口和培養(yǎng)箱軟件工作算法,并采用以模糊自適應(yīng)PID算法為核心的控制算法。培養(yǎng)箱軟件設(shè)計(jì)的整體框架如圖3所示。

2.1 嵌入式Linux軟件平臺的搭建

本培養(yǎng)箱的嵌入式Linux軟件平臺是在PC機(jī)上的Federa 12操作系統(tǒng)下建立,具體內(nèi)容如下:(1)建立交叉編譯環(huán)境。為了能在宿主機(jī)的平臺上編譯出可在目標(biāo)機(jī)體系結(jié)構(gòu)平臺上運(yùn)行的程序,需要建立交叉編譯環(huán)境,包括可用于目標(biāo)平臺ARM的編譯器arm-gcc、相關(guān)的鏈接和運(yùn)行庫-Glibc以及二進(jìn)制文件處理工具-Binutils等,這些GNU軟件都是在i386平臺上使用。本設(shè)計(jì)以EABI_4.3.3為交叉編譯工具,修改PATH參數(shù)完成配置。(2)制作Bootloader。Bootloader是嵌入式 Linux系統(tǒng)的引導(dǎo)加載程序,是系統(tǒng)上電后運(yùn)行的第一段代碼。它可以初始化必要的硬件設(shè)備,創(chuàng)建內(nèi)核需要的基本信息,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),便于引導(dǎo)和加載操作系統(tǒng)。本設(shè)計(jì)采用支持Nand Flash啟動(dòng)和USB下載內(nèi)核鏡像文件系統(tǒng)的u-boot。(3)Linux內(nèi)核的配置、裁剪和編譯。Linux內(nèi)核配置系統(tǒng)由Makefile、配置文件(config.in)以及配置工具三部分構(gòu)成,其中 Makefile定義內(nèi)核的編譯規(guī)則,配置文件給用戶提供的選擇功能,配置工具包括配置命令解釋器和配置用具界面。本設(shè)計(jì)使用Linux-2.6.30.4內(nèi)核版本,針對交叉編譯要求,定義 Makefile的 CROSS_COMPILE=arm-linux-,并根據(jù)實(shí)際需要完成內(nèi)核配置,最后制作內(nèi)核鏡像文件[4]。(4)制作根文件系統(tǒng)。文件系統(tǒng)負(fù)責(zé)管理系統(tǒng)的數(shù)據(jù)與文件。YAFFS是專門為NAND閃存設(shè)計(jì)的嵌入式文件系統(tǒng),適用于大容量的存儲設(shè)備。而且此系統(tǒng)提供了損耗平衡和掉電保護(hù)等功能,可以方便地集成到系統(tǒng)中去,具有速度快、占用內(nèi)存少的特點(diǎn),因此選用Busybox-1.13.0制作的YAFFS作根文件系統(tǒng)。

圖3 培養(yǎng)箱軟件設(shè)計(jì)的整體框架圖

2.2 系統(tǒng)內(nèi)核層的驅(qū)動(dòng)程序設(shè)計(jì)

系統(tǒng)內(nèi)核層的程序主要為外接硬件設(shè)備的驅(qū)動(dòng)程序,是內(nèi)核與設(shè)備之間的交互層。Linux支持三類設(shè)備:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)接口。在Linux操作系統(tǒng)中,每個(gè)硬件設(shè)備的應(yīng)用程序可以利用open()、release()、read()及 write()等函數(shù)對硬件設(shè)備進(jìn)行操作[6]。內(nèi)核層的驅(qū)動(dòng)程序主要指DS18B20、SHT11、熱電半導(dǎo)體與超聲波加濕等硬件設(shè)備的驅(qū)動(dòng)程序,它們分別定義在三個(gè)源文件中,其中ctrb.c中包含熱電半導(dǎo)體、超聲波加濕、T4燈及風(fēng)扇等設(shè)備的驅(qū)動(dòng)程序,18b20.c與sht.c分別為DS18B20與SHT11傳感器的驅(qū)動(dòng)程序。上述設(shè)備均屬字符型的驅(qū)動(dòng)設(shè)備,在系統(tǒng)啟動(dòng)后利用insmod指令將其動(dòng)態(tài)加載到內(nèi)核中。驅(qū)動(dòng)程序包括初始化模塊、卸載模塊、讀模塊和寫模塊。其中初始化模塊主要包括初始化內(nèi)部數(shù)據(jù)結(jié)構(gòu)、硬件以及使用設(shè)備前應(yīng)該完成的工作;讀寫模塊主要負(fù)責(zé)對DS18B20與SHT11的讀寫。在Linux2.6內(nèi)核中CPU使用虛擬地址訪問外部設(shè)備,ctrb_ioctl()函數(shù)實(shí)現(xiàn)用戶程序通過訪問設(shè)備文件的方式對設(shè)備的間接操作。由于驅(qū)動(dòng)程序?qū)儆趦?nèi)核層,程序最后要將數(shù)據(jù)從內(nèi)核態(tài)拷貝到用戶態(tài),供應(yīng)用程序使用。圖4為初始化模塊驅(qū)動(dòng)程序工作流程圖。

圖4 驅(qū)動(dòng)程序的初始化流程圖

2.3 系統(tǒng)應(yīng)用層的程序設(shè)計(jì)

應(yīng)用層的程序設(shè)計(jì)主要是在Qt/Embedded平臺上完成的,負(fù)責(zé)設(shè)計(jì)觸摸屏的應(yīng)用程序GUI,另外通過調(diào)用驅(qū)動(dòng)程序以實(shí)現(xiàn)硬件平臺的工作算法。Qt/Embedded是由Trolltech公司開發(fā)的面向嵌入式的Qt版本。它通過Qt API與Linux I/O以及Framebuffer直接交互,擁有較高的運(yùn)行效率,其類庫采用C++封裝且完全面向?qū)ο笠詫?shí)現(xiàn)真正組件編程。其開發(fā)套件使用C++語言編程,具有功能強(qiáng)大、使用簡單、控件資源豐富且可移植性好等特點(diǎn)[7]。

本系統(tǒng)主程序的觸發(fā)來自兩方面。其一是按照系統(tǒng)時(shí)鐘,依據(jù)時(shí)序觸發(fā)各事件并完成相應(yīng)的處理;另一方面由用戶界面操作觸發(fā)。根據(jù)設(shè)計(jì)要求,系統(tǒng)主程序采用雙線程工作方式,分別定義Ctrb_n與SensorT繼承QThread實(shí)現(xiàn)雙線程。 QThread代表在程序中一個(gè)單獨(dú)的線程控制[4],在多任務(wù)操作系統(tǒng)中,它和同一進(jìn)程中的其他線程共享數(shù)據(jù),但運(yùn)行起來就像一個(gè)單獨(dú)的程序一樣。QThread不是在 main()中開始,而是在 run()中開始運(yùn)行的。

在工作算法中添加模糊PID自適應(yīng)控制,使控制器能夠在線自動(dòng)調(diào)整比例系數(shù)Kp、積分系數(shù)Ki和微分系數(shù)Kd,以期獲得最佳的溫度控制。在PID控制器中,比例系數(shù)Kp值的選取決定于系統(tǒng)的響應(yīng)速度,積分控制Ki用于消除系統(tǒng)的穩(wěn)態(tài)誤差,微分系數(shù)Kd在于改變系統(tǒng)的動(dòng)態(tài)特性。調(diào)節(jié)初期選取較大的Kp值以提高響應(yīng)速度,較小的Ki值以防止積分飽和,Kd=0以保證系統(tǒng)的穩(wěn)定性;在調(diào)節(jié)中期,隨著誤差的減小Kp也逐漸變小,Ki值加大以盡量消除余差,Kd值取較小值以調(diào)節(jié)系統(tǒng)的動(dòng)態(tài)特性;在調(diào)節(jié)過程后期,Kp值調(diào)到較小值以保證系統(tǒng)的平穩(wěn)性,Ki值取適中以消除余差,Kd值取小值以控制過程的制動(dòng)作用[5]。主程序的工作流程如圖5所示。

圖5 主程序工作流程圖

3 結(jié)果分析

在室溫為33℃時(shí),設(shè)定目標(biāo)溫度為 48℃,分別采用普通PID算法與模糊自適應(yīng)PID算法測得實(shí)驗(yàn)數(shù)據(jù),并利用MATLAB對所測實(shí)驗(yàn)數(shù)據(jù)進(jìn)行比較分析,得到圖6所示的溫度變化曲線。

從圖6可知采用普通PID控制時(shí),具有調(diào)節(jié)速度慢、超調(diào)量大以及精度不高等特點(diǎn);而ARM實(shí)現(xiàn)的模糊PID控制,其調(diào)節(jié)時(shí)間相對于普通PID控制而言減小了5 min,超調(diào)量變小,平穩(wěn)性更好,且控制相對誤差達(dá)到±1.1%。熱電半導(dǎo)體的應(yīng)用,相對于傳統(tǒng)的加熱制冷設(shè)備,在減小噪音和環(huán)境污染等方面有很大的改進(jìn),從而提高了控制質(zhì)量,降低了能耗。

圖6 兩類算法的控制效果比較圖

本文實(shí)現(xiàn)了一種基于ARM9與嵌入式Linux操作系統(tǒng)并采用新型熱電半導(dǎo)體為溫控元件的控制方案,經(jīng)反復(fù)實(shí)驗(yàn)調(diào)試該培養(yǎng)箱已達(dá)到相對誤差±1.1%的控制要求,所設(shè)計(jì)的控制方案具有溫度調(diào)節(jié)響應(yīng)快、超調(diào)量小、性能穩(wěn)定等特點(diǎn)。該方案具有低功耗、無污染及觸屏控制等優(yōu)點(diǎn),具有良好的市場潛力。

[1]張曉林.嵌入式系統(tǒng)應(yīng)用[M].北京:高等教育出版社,2008.

[2]崔光照,陳富強(qiáng).基于ARM9的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)節(jié)點(diǎn)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2008,34(11):115-118.

[3]艾紅,王洪濤.基于ARM的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)[J].電子技術(shù)應(yīng)用,2008,34(9):66-69.

[4]周慧玲,王智威,張鳳英,等.基于 ARM7和ZigBee技術(shù)的物流機(jī)械設(shè)備測振系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].測控技術(shù),2010,29(2):33-35.

[5]諸靜.模糊控制原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.

[6]毛德超,胡希明.Linux內(nèi)核源碼情景分析[M].杭州:浙江大學(xué)出版社,2001,9.

[7]SLOSS A N,SYMES D,WRIGHT C.ARM嵌入式系統(tǒng)開發(fā)—軟件設(shè)計(jì)與優(yōu)化[M].沈建華,譯.北京:北京航空航天大學(xué)出版社,2005.

[8]宋戈,鶴松.51單片機(jī)應(yīng)用開發(fā)范例大全[M].北京:人民郵電出版社,2010.

[9]劉輝.半導(dǎo)體多級制冷器的設(shè)計(jì)與性能優(yōu)化[D].上海:同濟(jì)大學(xué),2008.

猜你喜歡
驅(qū)動(dòng)程序培養(yǎng)箱內(nèi)核
萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
嬰兒培養(yǎng)箱的質(zhì)控辦法及設(shè)計(jì)改良探討
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
微生物培養(yǎng)箱的選購與管理
食品工程(2020年3期)2020-01-05 14:38:16
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
Linux內(nèi)核mmap保護(hù)機(jī)制研究
基于模糊PID參數(shù)自整定的細(xì)胞培養(yǎng)箱溫度控制算法
不同消毒方法對培養(yǎng)箱恒溫罩的消毒效果的比較
驅(qū)動(dòng)程序更新與推薦
驅(qū)動(dòng)程序更新與推薦
汉寿县| 河南省| 岱山县| 土默特左旗| 囊谦县| 西城区| 隆化县| 焉耆| 桐庐县| 铜鼓县| 宜昌市| 延吉市| 丹阳市| 台北县| 平塘县| 介休市| 宾阳县| 陵水| 弥渡县| 巴彦淖尔市| 稻城县| 合水县| 象山县| 德安县| 德化县| 苏尼特左旗| 太仆寺旗| 密山市| 时尚| 沁源县| 临泽县| 渭源县| 正宁县| 上犹县| 禄劝| 双流县| 新宁县| 波密县| 高雄县| 舒兰市| 呼伦贝尔市|