新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 半導體培養箱的ARM嵌入式控制系統研制

        半導體培養箱的ARM嵌入式控制系統研制

        作者: 時間:2011-08-10 來源:網絡 收藏

        生物作為一種廣泛應用于生物、農林等學科的實驗設備,其傳統的加熱制冷方式具有噪音大、溫控調節精度不高且污染環境等缺點。對此本文設計了一款利用材料作為溫控元件的生物。在此設計中,一方面采用新型熱電轉換技術,通過材料的三種形式將熱能和電能進行直接轉換,以實現溫度調節,并輔以濕度、光照的調節;另一方面采用9處理器作為硬件平臺,移植開源的Linux操作系統,并研發了模糊PID。不僅減小了噪音,還降低了產品的成本,且具有控制速度快、精度高及性能穩定等特點,為的設計提供了一種新的思路。
        1 半導體培養箱的硬件設計
        該培養箱的硬件部分由信號采集模塊、核心處理模塊和控制模塊組成,其中信號采集模塊又分溫度、濕度采集。溫度采集是采用單總線數字溫度傳感器DS18B20,微處理器依據其器件寄存器內置序列號對所匹配的傳感器進行讀取,以此實現多點分布式應用;濕度采集是采用濕度傳感器SHT11,微處理器采用二線串行數字接口和溫濕度傳感器芯片SHT11通信以完成濕度信號采集。核心處理模塊采用基于920T 架構的S3C2440AL處理器為CPU的核心板,負責完成數據的運算與擴展外圍通信接口、USB接口、擴展接口、多媒體接口等硬件資源,且該核心板還具有支持觸屏控制等功能。控制模塊以繼電器電路為主體,核心處理模塊輸出的控制信號,經繼電器電路接執行元件,實現對熱電半導體、超聲波加濕、T4燈等工作狀態控制。本培養箱的硬件結構如圖1所示。

        本文引用地址:http://www.104case.com/article/150375.htm

        1.1信號采集模塊
        信號采集模塊的功能采用上述DS18B20芯片和SHT11芯片來分別采集培養箱內的溫度和濕度。DS18B20由美國DALLAS公司生產,具有微型化、低功耗、抗干擾能力強、器件唯一編碼、支持分布式尋址等功能,適用于各類溫度測控系統。其內部有控制電路、64 bit光刻ROM和溫度轉換器等。收發提供9~12 bit可編程設備溫度讀數。電壓范圍為3.0 V~5.5 V,測量溫度范圍為-55℃~125℃,-10℃~85℃范圍內精度為±0.5℃。通過軟件修正可達±0.062 5℃。本設計采取由數據線寄生電源供電,在培養箱內設置有2個DS18B20以進行多點檢測,并通過計算此2點的溫度平均值作為箱內的溫度檢測值[8]。
        SHT11是瑞士Sensirion公司生產的具有I2C總線接口的單片全校準數字式相對濕度和溫度傳感器。該傳感器將溫濕度傳感器、信號放大器、A/D轉換、I2C總線接口集成于一片芯片上(CMOSensTM技術),具有數字式輸出、免調試、免標定、免外圍電路及全互換的特點。其二線串行接口SCK支持CRC傳輸校驗,傳輸可靠性高且測量精度可編程在線調節。該芯片集成電容性聚合體濕度敏感元件,將濕度轉換成電信號,并將此信號經放大后輸入一個14位的A/D轉換器,最后經I2C總線數字接口輸出數字信號。
        1.2 核心處理模塊
        核心處理模塊采用Samsung公司的S3C2440AL處理器,其擁有920T核,能運行32 bit RISC指令集指令及16 bit的精簡Thumb指令代碼,具有16 KB數據CACHE與指令CACHE,具有MMU(Memory Management Unit)功能。該處理器主頻可達400 MHz,并支持SPI、IIC等多種總線擴展方式[1],能夠滿足培養箱的要求。根據培養箱硬件設計的實際要求,此系統由兩片32 MB的SDRAM和一片64 MB的NAND Flash組成了最小系統,并將啟動代碼存放在NAND Flash的起始段中。系統擴展外圍接口,其中:處理器的標準串行通信接口UART0外接MAX232芯片與宿主機相連,作為調試串口;處理器的兩路通用串行總線USB(Universal Serial Bus),一路USB HOST用于U盤接口,一路USB Slave實現數據的傳輸;LCD接口接東華3.5英寸LCD觸屏; GPIO(通用輸入/輸出口)支持與硬件的數據交互、控制硬件工作和讀取硬件的工作狀態信號等功能,根據設計需要,擴展GPIO定義如表1所示。

        1.3 控制模塊
        控制模塊的功能是對溫度進行準確控制,使用的溫控元件為熱電半導體。半導體制冷原理建立在三個效應基礎上:塞貝克效應 、帕爾帖效應和湯姆遜效應,構成了熱電設備的理論基礎。其原理是當一塊N型半導體材料和一塊P型半導體材料聯結成電偶對時,若此電偶對接通直流電流后,其內部就會產生能量的轉移:電流由N型元件流向P型元件的接頭吸收熱量,成為冷端。由P型元件流向N型元件的接頭釋放熱量,成為熱端。利用此原理實現制冷或加熱,具有無污染、無噪聲、體積小及質量輕等特點[9]。圖2是半導體制冷的工作原理圖。

        2 半導體培養箱的軟件設計
        培養箱的軟件平臺選用開源Linux操作系統,其內核穩定、功能強大,可裁剪并對底層硬件有豐富的函數支持。本培養箱的軟件設計首先完成Bootloader下載、Kernel內核的配置、裁剪、編譯與移植并制作YAFFS根文件系統,然后開發對溫、濕度傳感器及熱電半導體等底層硬件的驅動程序,以及基于Qt/Embededded的應用程序設計,實現了GUI人機交互接口和培養箱軟件工作算法,并采用以模糊自適應PID算法為核心的控制算法。培養箱軟件設計的整體框架如圖3所示。

        2.1Linux軟件平臺的搭建
        本培養箱的Linux軟件平臺是在PC機上的Federa 12操作系統下建立,具體內容如下:(1)建立交叉編譯環境。為了能在宿主機的平臺上編譯出可在目標機體系結構平臺上運行的程序,需要建立交叉編譯環境,包括可用于目標平臺ARM的編譯器arm-gcc、相關的鏈接和運行庫-Glibc以及二進制文件處理工具-Binutils等,這些GNU軟件都是在i386平臺上使用。本設計以EABI _4.3.3為交叉編譯工具,修改PATH參數完成配置。(2)制作Bootloader。Bootloader是嵌入式Linux系統的引導加載程序,是系統上電后運行的第一段代碼。它可以初始化必要的硬件設備,創建內核需要的基本信息,從而將系統的軟硬件環境帶到一個合適的狀態,便于引導和加載操作系統。本設計采用支持Nand Flash啟動和USB下載內核鏡像文件系統的u-boot。(3)Linux內核的配置、裁剪和編譯。Linux內核配置系統由Makefile、配置文件(config.in)以及配置工具三部分構成,其中Makefile定義內核的編譯規則,配置文件給用戶提供的選擇功能,配置工具包括配置命令解釋器和配置用具界面。本設計使用Linux-2.6.30.4內核版本,針對交叉編譯要求,定義Makefile的CROSS_COMPILE=arm-linux-,并根據實際需要完成內核配置,最后制作內核鏡像文件[4]。(4)制作根文件系統。文件系統負責管理系統的數據與文件。YAFFS是專門為NAND閃存設計的嵌入式文件系統,適用于大容量的存儲設備。而且此系統提供了損耗平衡和掉電保護等功能,可以方便地集成到系統中去,具有速度快、占用內存少的特點,因此選用Busybox- 1.13.0制作的YAFFS作根文件系統。
        2.2 系統內核層的驅動程序設計
        系統內核層的程序主要為外接硬件設備的驅動程序,是內核與設備之間的交互層。Linux支持三類設備:字符設備、塊設備和網絡接口。在Linux操作系統中,每個硬件設備的應用程序可以利用open( )、release( )、read( )及write( )等函數對硬件設備進行操作[6]。內核層的驅動程序主要指DS18B20、SHT11、熱電半導體與超聲波加濕等硬件設備的驅動程序,它們分別定義在三個源文件中,其中ctrb.c中包含熱電半導體、超聲波加濕、T4燈及風扇等設備的驅動程序,18b20.c與sht.c分別為DS18B20與SHT11傳感器的驅動程序。上述設備均屬字符型的驅動設備, 在系統啟動后利用insmod指令將其動態加載到內核中。驅動程序包括初始化模塊、卸載模塊、讀模塊和寫模塊。其中初始化模塊主要包括初始化內部數據結構、硬件以及使用設備前應該完成的工作;讀寫模塊主要負責對DS18B20與SHT11的讀寫。在Linux2.6內核中CPU使用虛擬地址訪問外部設備, ctrb_ioctl()函數實現用戶程序通過訪問設備文件的方式對設備的間接操作。由于驅動程序屬于內核層,程序最后要將數據從內核態拷貝到用戶態,供應用程序使用。圖4為初始化模塊驅動程序工作流程圖。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        pid控制器相關文章:pid控制器原理


        半導體制冷相關文章:半導體制冷原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南溪县| 葫芦岛市| 新干县| 泸西县| 怀安县| 安西县| 尉氏县| 布尔津县| 鄂州市| 绿春县| 廊坊市| 达州市| 塔城市| 石林| 黄骅市| 延庆县| 西城区| 河曲县| 静乐县| 阜平县| 吉木萨尔县| 章丘市| 合肥市| 柳林县| 彰化市| 纳雍县| 桂东县| 乌审旗| 西充县| 集贤县| 楚雄市| 岱山县| 田林县| 门头沟区| 綦江县| 牡丹江市| 香港 | 大名县| 保定市| 上饶市| 沙坪坝区|