楊 威,高文華,羅洪達,張震震
(太原科技大學 電子信息工程學院,山西 太原 030024)
隨著供應鏈管理的不斷發展,倉儲管理已成為供應鏈管理中的重要環節。倉儲總是出現在供應鏈各環節的結合部,例如采購和生產之間,生產的初加工和精加工之間,生產和銷售之間,批發和零售之間,不同運輸方式轉換之間[1]。因而,如何優化倉庫的日常管理成為一個重要的研究課題。
傳統的倉庫管理,一般依賴于以紙張文件為基礎的非自動化系統來記錄、追蹤進出的貨物,完全由人工實施倉庫內部的管理,因而管理效率低下。目前大多數企業的倉庫數據資料管理已經開始采用計算機系統,但仍然采用先紙張記錄,再手工輸入計算機的方式進行采集和統計整理,造成了大量的人力資源浪費,而且由于人為的因素,數據錄入速度慢、準確率低。隨著倉庫智能化的不斷發展,倉庫管理的物資種類、數量都在不斷增加。出入庫頻率劇增,倉庫管理作業也變得十分復雜和多樣化,傳統的人工倉庫作業模式和數據采集方式難以滿足快速、準確的要求,嚴重影響了倉庫的管理質量。
文中的設計融合了物聯網技術、嵌入式技術和3G技術,分析了各自的基本特點和所要實現的基本功能。然后,在此基礎上提出了基于ARM的倉儲管理系統的整體設計方案,實現了倉儲管理和控制的智能化,進而提高了倉儲管理的效率,降低了人工及維護成本。
根據全面感知、可靠傳遞和智能處理的功能需求,可將倉儲管理系統劃分為信息采集單元(以下簡稱為M0)、前端數據處理中心(以下簡稱為A8)和遠程PC服務器3個部分,其整體結構如圖1所示。其中,信息采集單元以Cortex-M0為控制芯片,采集溫度、濕度和光照強度等信息,并通過ZigBee無線傳輸[2]至前端數據中心;前端數據處理中心以S5PC100開發板為控制模塊,該模塊以ARM Cortex-A8控制芯片為核心,基于嵌入式Linux操作系統,利用線程接收信息采集單元發送的數據,控制倉庫內部數據的安全,當實時環境異常時,通過GPRS向管理員發送短信息進行報警;遠程PC服務器通過網絡與A8建立連接,實時更新本地數據庫,并且可以查看各節點倉庫食品信息和總的食品信息。
1.2.1 U-Boot移植
U-Boot的功能是把內核放到DR AM (Dynamic Random Access Memory,動態隨機存取存儲器)中運行。網上下載的U-Boot對開發平臺只具有通用性代碼,不支持和識別特定開發平臺上的一些硬件和功能。因此,需要添加對這些硬件的識別、初始化及其相應功能的實現。

圖1 系統整體結構圖Fig.1 Structure diagram of the warehouse management system
U-Boot的移植過程可以分為2個階段,其中,第一階段主要完成基本的硬件設備初始化,準備RAM(Random Access Memory,隨機存儲器)空間加載第二階段代碼,復制第二階段代碼到RAM中,設置堆棧指針SP,跳轉到第二階段代碼的C入口點;第二階段主要完成使用匯編語言跳轉到main()入口函數,初始化本階段將要使用的硬件設備,檢測系統的內存映射,加載內核映像文件和根文件系統映像文件,設置內核啟動參數和調用內核。
1.2.2 Linux內核移植
Linux內核是一種源碼開放的操作系統,采用模塊化的設計。在此只保留了必需的功能模塊,刪除了冗余的功能模塊,并對內核重新編譯,從而使系統運行所需的硬件資源顯著減少[3]。本設計中內核的移植主要包括:網卡驅動的添加,NAND FLASH驅動的添加,添加對YAFFS2文件系統的支持,添加USB設備驅動,添加LCD設備驅動,添加SD卡設備驅動。
1.2.3 根文件系統制作
如果沒有根文件系統,其他的文件系統就不能進行加載。根文件系統包括Linux啟動時所必須的目錄和關鍵性文件,以及使其他文件系統得以掛載的必要文件。制作根文件系統主要包括:添加內核菜單選項,建立目錄結構,添加命令程序,拷貝C庫,編寫系統啟動文件,配置主機的NFS。
本系統是在A8、M0及PC等設備的基礎上,基于互聯網、物聯網、傳感器等技術并結合物聯網新型概念[4]設計的,使用戶能夠對倉庫內部情況進行實時的掌握和控制。本系統主要由前端數據中心、遠程監控終端和服務器端組成。
首先,數據接收模塊接收M0通過ZigBee傳輸上來的實時環境參數(如:溫度、濕度、光感數據等),并通過接收端的ZigBee經USB轉串口操作把采集到的環境參數發送給A8,由M0的接收請求線程從串口讀取消息,并交給數據處理模塊。數據處理模塊解碼接收到的信息后,激活數據庫線程以保存數據,激活內存數據刷新線程以更新實時環境信息,并對環境參數進行判斷處理,決定是否進行報警。另外,在構建的嵌入式WEB服務器上,用戶可以通過網絡利用PC機對倉庫信息進行監控;通過WEB頁面上的控制按鈕,監控設備可以識別出用戶指令并進行相應的動作。系統各模塊進程間關系如圖2所示。

圖2 系統各模塊進程間關系圖Fig.2 Diagram of the process with its module in the warehouse management system
本系統通過A8間接地獲取M0的數據,用戶圖形界面QT[5-6]主要包括登錄界面、實時顯示界面、設置界面和控制界面,其整體設計流程如圖3所示。

圖3 Linux下的QT整體設計流程圖Fig.3 QT design flowchart under the Linux platform
其中,登錄界面提供直接登錄模式(即超級用戶模式),登錄后跳轉至實時顯示界面;顯示界面包括實時顯示當前M0所處環境的各種信息,含有溫度、濕度、光照以及門禁狀態等,通過不同的控制按鈕可以分別跳轉至控制界面和設置界面,按下退出按鈕將退出系統;設置界面包括對溫度上下限的設置,報警電話號碼的設置等,通過軟鍵盤圖標可以調出軟鍵盤,進行相關數據的輸入,提交按鈕將會把設置好的參數發送到服務器;控制界面主要實現對A8上LED燈和蜂鳴器等的控制,以及控制M0上風扇的停轉,LED燈的亮滅,數碼管的亮滅,蜂鳴器的響停等,通過返回鍵可以返回到顯示界面,具體界面如圖4所示。

圖4 設備控制主界面Fig.4 Interface of the device control
該服務器主要用于將攝像頭采集的視頻或者圖片顯示到網頁和 LCD(Liquid Crystal Display,液晶顯示器)上,這里采用MJPG-streamer作為視頻流服務器[7]。MJPG-streamer采用的是V4L2(Video 4 Linux 2)接口,可以通過文件或者是HTTP的方式訪問Linux UVC兼容攝像頭。視頻流服務器將攝像頭捕獲的圖像存入global buffer緩沖區,當客戶端有訪問請求時,服務器便將global buffer緩沖區中的圖像數據連續地發送給客戶端。該程序中的server_pthread函數使用多線程技術,為每一個連接請求的客戶端創建一個線程。該線程獨立地與客戶端進行通信,發送圖像數據。
此外,MJPG-steamer還用來從網絡攝像頭采集圖像,并將它們以流的形式通過基于IP的網絡傳輸到瀏覽器的網頁上。由于MJPG-steamer可以通過利用網絡攝像機的硬件壓縮功能來降低服務器CPU的開銷,而無需為視頻幀壓縮浪費大量的資源,因而它為嵌入式設備和一些常規服務器提供了一個輕量級且較少CPU消耗的方案。MJPG-steamer功能強大,但為了符合本項目的需要,仍需對其進行修改,添加我們想要實現的功能。在本設計中,需要向MJPG-steamer視頻流服務器中添加LCD輸出插件,其代碼如下:


本設計的倉儲管理系統充分利用了ARM Cortex-A8的硬件功能和處理速度,成功地移植了以Cortex-A8為硬件核心的Linux嵌入式系統,并完成了基于Linux QT的控制程序開發,解決了多項技術難點。經實驗表明,系統的控制效果令人滿意,驗證了該系統的先進性、穩定性和實用性,具有廣泛的推廣和應用價值。
[1]戴定一.倉儲管理與WMS[J].物流技術與應用,2005,10(2):59-61.
DAI Ding-yi.Warehouse management and WMS[J].Logistics and Material Handling,2005,10(2):59-61.
[2]顧瑞紅,張宏科.基于ZigBee的無線網絡技術及其應用[J].電子技術應用,2005,31(6):1-3.
GU Rui-hong,ZHANG Hong-ke.Wireless network technology and its application based on the ZigBee[J].Application of Electronic Technique,2005,31(6):1-3.
[3]Stevens W R,Rago S A.Advanced programming in the UNIX Environment[M].尤晉元,張亞英,戚正偉,譯.北京:人民郵電出版社,2006.
[4]朱仲英.傳感網與物聯網的進展與趨勢[J].微型電腦應用,2010,26(1):1-3.
ZHU Zhong-ying.The progress and trend of internet of things with sensor network[J].Microcomputer Applications,2010,26(1):1-3.
[5]丁林松,黃麗琴.Qt4圖形設計與嵌入式開發[M].北京:人民郵電出版社,2009.
[6]許耀錦,祁丹丹.基于Qt的AUV監控系統設計與開發[J].現代電子技術,2011(22):75-76,79.
XU Yao-jin,QI Dan-dan.Design and development of AUV monitoring system based on Qt[J].Modern Electronics Technique,2011(22):75-76,79.
[7]李崗,糜元根.一種支持B/S模式的網絡攝像機的實現[J].計算機工程與科學,2012,34(3):108-112.
LI Gang,MI Yuan-gen.Realization of a web camera supporting the B/S pattern[J].Computer Engineering and Science,2012,34(3):108-112.