楊 威,高文華,羅洪達(dá),張震震
(太原科技大學(xué) 電子信息工程學(xué)院,山西 太原 030024)
隨著供應(yīng)鏈管理的不斷發(fā)展,倉(cāng)儲(chǔ)管理已成為供應(yīng)鏈管理中的重要環(huán)節(jié)。倉(cāng)儲(chǔ)總是出現(xiàn)在供應(yīng)鏈各環(huán)節(jié)的結(jié)合部,例如采購(gòu)和生產(chǎn)之間,生產(chǎn)的初加工和精加工之間,生產(chǎn)和銷售之間,批發(fā)和零售之間,不同運(yùn)輸方式轉(zhuǎn)換之間[1]。因而,如何優(yōu)化倉(cāng)庫(kù)的日常管理成為一個(gè)重要的研究課題。
傳統(tǒng)的倉(cāng)庫(kù)管理,一般依賴于以紙張文件為基礎(chǔ)的非自動(dòng)化系統(tǒng)來記錄、追蹤進(jìn)出的貨物,完全由人工實(shí)施倉(cāng)庫(kù)內(nèi)部的管理,因而管理效率低下。目前大多數(shù)企業(yè)的倉(cāng)庫(kù)數(shù)據(jù)資料管理已經(jīng)開始采用計(jì)算機(jī)系統(tǒng),但仍然采用先紙張記錄,再手工輸入計(jì)算機(jī)的方式進(jìn)行采集和統(tǒng)計(jì)整理,造成了大量的人力資源浪費(fèi),而且由于人為的因素,數(shù)據(jù)錄入速度慢、準(zhǔn)確率低。隨著倉(cāng)庫(kù)智能化的不斷發(fā)展,倉(cāng)庫(kù)管理的物資種類、數(shù)量都在不斷增加。出入庫(kù)頻率劇增,倉(cāng)庫(kù)管理作業(yè)也變得十分復(fù)雜和多樣化,傳統(tǒng)的人工倉(cāng)庫(kù)作業(yè)模式和數(shù)據(jù)采集方式難以滿足快速、準(zhǔn)確的要求,嚴(yán)重影響了倉(cāng)庫(kù)的管理質(zhì)量。
文中的設(shè)計(jì)融合了物聯(lián)網(wǎng)技術(shù)、嵌入式技術(shù)和3G技術(shù),分析了各自的基本特點(diǎn)和所要實(shí)現(xiàn)的基本功能。然后,在此基礎(chǔ)上提出了基于ARM的倉(cāng)儲(chǔ)管理系統(tǒng)的整體設(shè)計(jì)方案,實(shí)現(xiàn)了倉(cāng)儲(chǔ)管理和控制的智能化,進(jìn)而提高了倉(cāng)儲(chǔ)管理的效率,降低了人工及維護(hù)成本。
根據(jù)全面感知、可靠傳遞和智能處理的功能需求,可將倉(cāng)儲(chǔ)管理系統(tǒng)劃分為信息采集單元(以下簡(jiǎn)稱為M0)、前端數(shù)據(jù)處理中心(以下簡(jiǎn)稱為A8)和遠(yuǎn)程PC服務(wù)器3個(gè)部分,其整體結(jié)構(gòu)如圖1所示。其中,信息采集單元以Cortex-M0為控制芯片,采集溫度、濕度和光照強(qiáng)度等信息,并通過ZigBee無線傳輸[2]至前端數(shù)據(jù)中心;前端數(shù)據(jù)處理中心以S5PC100開發(fā)板為控制模塊,該模塊以ARM Cortex-A8控制芯片為核心,基于嵌入式Linux操作系統(tǒng),利用線程接收信息采集單元發(fā)送的數(shù)據(jù),控制倉(cāng)庫(kù)內(nèi)部數(shù)據(jù)的安全,當(dāng)實(shí)時(shí)環(huán)境異常時(shí),通過GPRS向管理員發(fā)送短信息進(jìn)行報(bào)警;遠(yuǎn)程PC服務(wù)器通過網(wǎng)絡(luò)與A8建立連接,實(shí)時(shí)更新本地?cái)?shù)據(jù)庫(kù),并且可以查看各節(jié)點(diǎn)倉(cāng)庫(kù)食品信息和總的食品信息。
1.2.1 U-Boot移植
U-Boot的功能是把內(nèi)核放到DR AM (Dynamic Random Access Memory,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)中運(yùn)行。網(wǎng)上下載的U-Boot對(duì)開發(fā)平臺(tái)只具有通用性代碼,不支持和識(shí)別特定開發(fā)平臺(tái)上的一些硬件和功能。因此,需要添加對(duì)這些硬件的識(shí)別、初始化及其相應(yīng)功能的實(shí)現(xiàn)。
圖1 系統(tǒng)整體結(jié)構(gòu)圖Fig.1 Structure diagram of the warehouse management system
U-Boot的移植過程可以分為2個(gè)階段,其中,第一階段主要完成基本的硬件設(shè)備初始化,準(zhǔn)備RAM(Random Access Memory,隨機(jī)存儲(chǔ)器)空間加載第二階段代碼,復(fù)制第二階段代碼到RAM中,設(shè)置堆棧指針SP,跳轉(zhuǎn)到第二階段代碼的C入口點(diǎn);第二階段主要完成使用匯編語(yǔ)言跳轉(zhuǎn)到main()入口函數(shù),初始化本階段將要使用的硬件設(shè)備,檢測(cè)系統(tǒng)的內(nèi)存映射,加載內(nèi)核映像文件和根文件系統(tǒng)映像文件,設(shè)置內(nèi)核啟動(dòng)參數(shù)和調(diào)用內(nèi)核。
1.2.2 Linux內(nèi)核移植
Linux內(nèi)核是一種源碼開放的操作系統(tǒng),采用模塊化的設(shè)計(jì)。在此只保留了必需的功能模塊,刪除了冗余的功能模塊,并對(duì)內(nèi)核重新編譯,從而使系統(tǒng)運(yùn)行所需的硬件資源顯著減少[3]。本設(shè)計(jì)中內(nèi)核的移植主要包括:網(wǎng)卡驅(qū)動(dòng)的添加,NAND FLASH驅(qū)動(dòng)的添加,添加對(duì)YAFFS2文件系統(tǒng)的支持,添加USB設(shè)備驅(qū)動(dòng),添加LCD設(shè)備驅(qū)動(dòng),添加SD卡設(shè)備驅(qū)動(dòng)。
1.2.3 根文件系統(tǒng)制作
如果沒有根文件系統(tǒng),其他的文件系統(tǒng)就不能進(jìn)行加載。根文件系統(tǒng)包括Linux啟動(dòng)時(shí)所必須的目錄和關(guān)鍵性文件,以及使其他文件系統(tǒng)得以掛載的必要文件。制作根文件系統(tǒng)主要包括:添加內(nèi)核菜單選項(xiàng),建立目錄結(jié)構(gòu),添加命令程序,拷貝C庫(kù),編寫系統(tǒng)啟動(dòng)文件,配置主機(jī)的NFS。
本系統(tǒng)是在A8、M0及PC等設(shè)備的基礎(chǔ)上,基于互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、傳感器等技術(shù)并結(jié)合物聯(lián)網(wǎng)新型概念[4]設(shè)計(jì)的,使用戶能夠?qū)}(cāng)庫(kù)內(nèi)部情況進(jìn)行實(shí)時(shí)的掌握和控制。本系統(tǒng)主要由前端數(shù)據(jù)中心、遠(yuǎn)程監(jiān)控終端和服務(wù)器端組成。
首先,數(shù)據(jù)接收模塊接收M0通過ZigBee傳輸上來的實(shí)時(shí)環(huán)境參數(shù)(如:溫度、濕度、光感數(shù)據(jù)等),并通過接收端的ZigBee經(jīng)USB轉(zhuǎn)串口操作把采集到的環(huán)境參數(shù)發(fā)送給A8,由M0的接收請(qǐng)求線程從串口讀取消息,并交給數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊解碼接收到的信息后,激活數(shù)據(jù)庫(kù)線程以保存數(shù)據(jù),激活內(nèi)存數(shù)據(jù)刷新線程以更新實(shí)時(shí)環(huán)境信息,并對(duì)環(huán)境參數(shù)進(jìn)行判斷處理,決定是否進(jìn)行報(bào)警。另外,在構(gòu)建的嵌入式WEB服務(wù)器上,用戶可以通過網(wǎng)絡(luò)利用PC機(jī)對(duì)倉(cāng)庫(kù)信息進(jìn)行監(jiān)控;通過WEB頁(yè)面上的控制按鈕,監(jiān)控設(shè)備可以識(shí)別出用戶指令并進(jìn)行相應(yīng)的動(dòng)作。系統(tǒng)各模塊進(jìn)程間關(guān)系如圖2所示。
圖2 系統(tǒng)各模塊進(jìn)程間關(guān)系圖Fig.2 Diagram of the process with its module in the warehouse management system
本系統(tǒng)通過A8間接地獲取M0的數(shù)據(jù),用戶圖形界面QT[5-6]主要包括登錄界面、實(shí)時(shí)顯示界面、設(shè)置界面和控制界面,其整體設(shè)計(jì)流程如圖3所示。
圖3 Linux下的QT整體設(shè)計(jì)流程圖Fig.3 QT design flowchart under the Linux platform
其中,登錄界面提供直接登錄模式(即超級(jí)用戶模式),登錄后跳轉(zhuǎn)至實(shí)時(shí)顯示界面;顯示界面包括實(shí)時(shí)顯示當(dāng)前M0所處環(huán)境的各種信息,含有溫度、濕度、光照以及門禁狀態(tài)等,通過不同的控制按鈕可以分別跳轉(zhuǎn)至控制界面和設(shè)置界面,按下退出按鈕將退出系統(tǒng);設(shè)置界面包括對(duì)溫度上下限的設(shè)置,報(bào)警電話號(hào)碼的設(shè)置等,通過軟鍵盤圖標(biāo)可以調(diào)出軟鍵盤,進(jìn)行相關(guān)數(shù)據(jù)的輸入,提交按鈕將會(huì)把設(shè)置好的參數(shù)發(fā)送到服務(wù)器;控制界面主要實(shí)現(xiàn)對(duì)A8上LED燈和蜂鳴器等的控制,以及控制M0上風(fēng)扇的停轉(zhuǎn),LED燈的亮滅,數(shù)碼管的亮滅,蜂鳴器的響停等,通過返回鍵可以返回到顯示界面,具體界面如圖4所示。
圖4 設(shè)備控制主界面Fig.4 Interface of the device control
該服務(wù)器主要用于將攝像頭采集的視頻或者圖片顯示到網(wǎng)頁(yè)和 LCD(Liquid Crystal Display,液晶顯示器)上,這里采用MJPG-streamer作為視頻流服務(wù)器[7]。MJPG-streamer采用的是V4L2(Video 4 Linux 2)接口,可以通過文件或者是HTTP的方式訪問Linux UVC兼容攝像頭。視頻流服務(wù)器將攝像頭捕獲的圖像存入global buffer緩沖區(qū),當(dāng)客戶端有訪問請(qǐng)求時(shí),服務(wù)器便將global buffer緩沖區(qū)中的圖像數(shù)據(jù)連續(xù)地發(fā)送給客戶端。該程序中的server_pthread函數(shù)使用多線程技術(shù),為每一個(gè)連接請(qǐng)求的客戶端創(chuàng)建一個(gè)線程。該線程獨(dú)立地與客戶端進(jìn)行通信,發(fā)送圖像數(shù)據(jù)。
此外,MJPG-steamer還用來從網(wǎng)絡(luò)攝像頭采集圖像,并將它們以流的形式通過基于IP的網(wǎng)絡(luò)傳輸?shù)綖g覽器的網(wǎng)頁(yè)上。由于MJPG-steamer可以通過利用網(wǎng)絡(luò)攝像機(jī)的硬件壓縮功能來降低服務(wù)器CPU的開銷,而無需為視頻幀壓縮浪費(fèi)大量的資源,因而它為嵌入式設(shè)備和一些常規(guī)服務(wù)器提供了一個(gè)輕量級(jí)且較少CPU消耗的方案。MJPG-steamer功能強(qiáng)大,但為了符合本項(xiàng)目的需要,仍需對(duì)其進(jìn)行修改,添加我們想要實(shí)現(xiàn)的功能。在本設(shè)計(jì)中,需要向MJPG-steamer視頻流服務(wù)器中添加LCD輸出插件,其代碼如下:
本設(shè)計(jì)的倉(cāng)儲(chǔ)管理系統(tǒng)充分利用了ARM Cortex-A8的硬件功能和處理速度,成功地移植了以Cortex-A8為硬件核心的Linux嵌入式系統(tǒng),并完成了基于Linux QT的控制程序開發(fā),解決了多項(xiàng)技術(shù)難點(diǎn)。經(jīng)實(shí)驗(yàn)表明,系統(tǒng)的控制效果令人滿意,驗(yàn)證了該系統(tǒng)的先進(jìn)性、穩(wěn)定性和實(shí)用性,具有廣泛的推廣和應(yīng)用價(jià)值。
[1]戴定一.倉(cāng)儲(chǔ)管理與WMS[J].物流技術(shù)與應(yīng)用,2005,10(2):59-61.
DAI Ding-yi.Warehouse management and WMS[J].Logistics and Material Handling,2005,10(2):59-61.
[2]顧瑞紅,張宏科.基于ZigBee的無線網(wǎng)絡(luò)技術(shù)及其應(yīng)用[J].電子技術(shù)應(yīng)用,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]朱仲英.傳感網(wǎng)與物聯(lián)網(wǎng)的進(jìn)展與趨勢(shì)[J].微型電腦應(yīng)用,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圖形設(shè)計(jì)與嵌入式開發(fā)[M].北京:人民郵電出版社,2009.
[6]許耀錦,祁丹丹.基于Qt的AUV監(jiān)控系統(tǒng)設(shè)計(jì)與開發(fā)[J].現(xiàn)代電子技術(shù),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模式的網(wǎng)絡(luò)攝像機(jī)的實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),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.