范鵬,王益祥
(南京理工大學 機械工程學院,江蘇 南京 210094)
倉庫是存放物品高度集中的場所,其安全、通風、濕度、溫度、光照度的變化都可能對貨件產生影響。傳統的倉庫中,對這類數據監測都是通過人工對各個點進行巡回視察,這種方式,勞動效率低下,人力資源嚴重浪費,同時還可能由于人為判斷失誤,造成巨大損失,很不安全。介紹了一種基于以太網的倉庫監控系統的終端,借助于溫濕度傳感器、光照傳感器,它能夠采集現場實時的環境數據,并能傳送信號給外接調節設備來控制數據處于相應的合格范圍。為方便實時監控,在終端主控板linux系統上移植了boa服務器和mjpg-streamer,為遠程web訪問提供了視頻支持。
圖1為數字化倉庫監控系統的架構圖,系統采用B/S架構,監控終端作為系統的核心,可以發出指令控制現場執行設備,同時通過以太網提供人機訪問界面,以便遠程管理者通過瀏覽器進行訪問。

圖1 系統架構簡圖
系統中,監控終端作為整個系統的核心,起著“心臟”的作用。監控終端采用的微處理器是三星公司的高性能微處理器s5pc100,采用的操作系統是Linux系統。
監控終端主要分為三部分:1) 為主控模塊,其在整個終端中起到調度和管理的作用;2) 傳感器,用作采集數據;3) 攝像頭,用作獲取現場視頻流。
如圖2所示,整個監控終端采用擴展板與核心板結構設計,核心板以三星的s5pc100處理器為核心,擴展256M內存和128M Nandflash。擴展板則包括多種傳感器和相應的電路,攝像頭通過USB接入監控終端。終端通過以太網和pc進行交互,同時通過串口控制調節設備。

圖2 硬件框架圖
主控芯片采用基于ARM A8核的s5pc100,其采用64位內部總線架構,含有強大的硬件加速器。芯片集成了200多個IO引出腳、24bitLCD接口、TVout接口、camera輸入接口、串口、SD卡接口、SPI、100M網口、USB Host接口、音頻輸入輸出接口、I2C接口等硬件資源。
S5PC100主頻833MHz,最高可達1GHz,本系統終端模塊核心板上外接256M的Nandflash和SDRAM,可適用于對性能和處理能力有更高要求的嵌入式系統應用場合。
2.3.1 溫濕度傳感器的電路設計
溫濕度檢測采用DHT11數字溫濕度傳感器,如圖3所示,DHT11共有4個引腳,1號引腳為電源引腳,2號引腳是數據引腳,采用單總線的方式,串行發送數據。3號引腳為空腳,通常懸空,4號引腳接地。

圖3 DHT11工作原理圖
ARM發出開始信號,DHT11在主機開始信號后發送響應信號,2號腳送出40bit的數據,并觸發一次信號采集。其中40bit的數據格式為8bit濕度整數數據+8bit濕度小數數據+8bit溫度整數數據+8bit溫度小數數據+8bit校驗和當ARM發送數據采集信號后,DHT11被觸發由低功耗轉為高速運行,接收到主機結束信號時,DHT11拉高數據線電平,送出數據,數據發送完畢后,釋放總線。
2.3.2 光照傳感器的電路設計
光照傳感器采用的是BH1750,較好地解決了傳統測光系統的弊端,它內置16位模數轉換器,能夠直接輸出一個數字信號,不需要做復雜的計算。BH1750是具有優良光譜靈敏度特性,在3.3v的工作電壓下可對亮度進行1勒克斯的高精度測定。如圖4所示,ARM通過I2C與BH1750進行通信,接收BH1750輸出的照明度的值。

圖4 BH1750 工作原理圖
2.3.3USB攝像頭的電路設計
視頻監控攝像頭采用中微星的ZC301P,USB接口,采用的是中微星301+鎂光芯片,130萬像素。采用的是高品質CMOS傳感器,超CCD的感光效果。電路中,USB hub 采用的是Fe1.1S,其具有高性能,低功耗和高性價比的特點,支持熱插拔功能,其可最大支持4個USB Port,電路中,在USB CH0處插入USB攝像頭,在USB驅動的支持下,攝像頭即可實時使用。如圖5所示。

圖5 USB接口原理圖
軟件設計分為系統軟件和應用軟件兩部分,如圖6所示,通電后,首先執行運行uboot,啟動系統內核,掛載文件系統,加載驅動,然后運行boa服務器,加載視頻流。至此系統軟件加載完成。最后運行應用層軟件,監控各采集點數據信息。

圖6 系統的軟件流程圖
操作系統采用的是Linux,Linux內核是Linux系統的核心,它負責協調管理各項工作,給硬件提供支持,是應用層和硬件層之間的橋梁和紐帶。Linux內核的選擇,一定程度上決定了系統的性能。綜合考慮,選用Linux 2.6.35的內核。
由圖6可知,系統通電后,主控制器執行內部ROM中的代碼,從Nandflash中搬移uboot至內存中,然后執行內存中的uboot代碼。
uboot代碼執行過程中,將內核zImage復制進內存中執行,接下掛載根文件系統。在系統初始化后創建系統的第一個進程init進程,此時內核啟動結束,運行init時,分別做了以下幾件事:
1) 將編寫好的I2C模塊驅動,DHT11模塊驅動動態加載進內核中;
2) 配置boa服務器;
3) 加載mjpg視頻流;
4) 運行負責倉庫監控的主程序。
系統啟動后,監控終端輪詢傳感器數據,并傳送給boa服務器,同時分析數據值,判斷是否需要啟動相應調節設備,此類工作需要應用層軟件完成。
在應用層,采用多進程控制,主程序運行后,通過fork系統調用創建4個子進程,四個子進程中,通過exec函數族,跳轉執行humi進程(檢測濕度),tem進程(檢測溫度),light進程(檢測光照),boa進程(實現服務器功能,實現web瀏覽及監控)。
PC機通過遠程登錄可訪問boa服務器,boa服務器的網頁采用cgi腳本和共享內存的方法和各進程進行通信。
共享內存是最快的IPC形式。兩個不同進程A,B共享內存的意思是,同一塊物理內存被映射到進程A,B各自的進程地址空間。進程A可以即時看到B對共享內存中數據的更新,反之亦然。如圖7所示。

圖7 共享內存示意圖
最終網頁主要分為3個模塊,如圖8所示,左邊區域為功能設置區,通過單選按鈕的選擇可選定是否打開空調系統、溫度控制系統、燈光調節系統、視頻監控系統。
中間區域為視頻實時監控窗口。右邊界面則為現場數據實時顯示,其中分別包括三個采集點的相關環境數據。

圖8 網頁效果圖
現代社會豐富的物資種類和特性要求使得人們對物資倉庫的要求越來越高,如何保證物資倉庫的監控系統穩定運行具有重要意義。在監控系統中,監控終端起著指揮,協調的核心作用,可以說,監控終端的性能決定了整個系統最終能否穩定有效的運行。
本數字化監控終端尚處于實驗室實驗階段,基本功能已經實現,由于水平有限,還有許多亟待解決的問題,尚需調試和改進,相信未來嵌入式物資倉庫管理系統還會有更廣闊的發展。
[1] 于毅,張璐,劉偉,等.一種嵌入式倉庫智能監控報警終端設計 [J].遙測遙控 2012(12): 66-70.
[2] 譚偉平.物資倉庫嵌入式遠程監控系統研究[D].武漢:武漢理工大學,2010.
[3] 劉佳.基于PLC+ARM的倉庫環境監控系統設計[J]無線互聯科技 2012(4): 57-58.
[4] 吳忻生,袁鵬.數字化倉庫遠程監控系統的設計與實現[J]華南理工大學學報 2003(9):31-34.