謝潔杰,賴松林,賴云鋒
(福州大學(xué) 物理與信息工程學(xué)院 微納器件與太陽能電池研究所,福建 福州350108)
近年來,電商強有力的發(fā)展勢頭讓快遞物流飛速發(fā)展,然而作為快遞服務(wù)“最后一公里”的派送環(huán)節(jié),常常在快遞業(yè)務(wù)旺季期間存在配送脫節(jié)、貨件積壓等問題[1-2],因此,快遞投遞箱就被引用進來。目前國內(nèi)市場上的智能快遞投遞箱尚處于發(fā)展階段,投遞快件時需手動輸入快遞信息以發(fā)送短信,存件效率不高,且容易導(dǎo)致信息誤填,增加包裹丟失的風(fēng)險。對此,本文提出了一種基于S3C6410的智能快遞投遞箱系統(tǒng),該系統(tǒng)主要由投遞箱終端和系統(tǒng)服務(wù)器兩大部分構(gòu)成,可實現(xiàn)對快件單號的掃描錄入、短信自動發(fā)送、取件密碼驗證和對取件過程的視頻記錄。
本文設(shè)計了一個可適用于城市小區(qū)的智能快遞投遞箱系統(tǒng)。如圖1所示,該系統(tǒng)中以一臺PC機作為該小區(qū)中投遞箱終端的系統(tǒng)服務(wù)器,PC服務(wù)器可通過Internet網(wǎng)絡(luò)從快遞公司云端服務(wù)器下載和保存該小區(qū)的所有快遞包裹數(shù)據(jù),采用以太網(wǎng)與投遞箱終端通信,處理來自終端的功能請求,并通過UART串口方式驅(qū)動GSM模塊發(fā)送中文短信,實現(xiàn)包裹的自取通知功能。
圖1 智能快遞投遞箱系統(tǒng)框架圖
投遞箱終端采用S3C6410嵌入式系統(tǒng),運行Linux操作系統(tǒng),使用Qt4編程,并提供UI交互界面。在快遞員投遞快件過程中,首先通過條碼掃描器錄入快遞單號并將快件存放在指定編號寄存柜中,之后通過以太網(wǎng)將快遞信息上傳服務(wù)器以進行GSM短信通知和數(shù)據(jù)同步;在客戶取件過程中,通過終端輸入設(shè)備對取件密碼進行驗證,利用USB攝像頭對取件過程進行視頻采集編碼,并上傳服務(wù)器存儲。
投遞箱終端設(shè)計框架如圖2所示,嵌入式主控制器通過UART串口連接寄存柜模塊和快遞條碼掃描模塊,并采用USB總線方式連接視頻采集設(shè)備。
圖2 投遞箱終端硬件框架圖
主控制器以S3C6410嵌入式處理器為核心,結(jié)合外部 ROM/RAM、網(wǎng)卡控制芯片DM9000、鍵盤和電阻觸摸屏N43LCD等,構(gòu)成嵌入式Linux操作系統(tǒng)所需要的硬件基礎(chǔ)。在嵌入式Linux平臺下的主控制器軟件設(shè)計中,主控制器與寄存柜模塊和條碼掃描模塊的通信主要是通過串口API函數(shù)向外圍模塊發(fā)送指令和接收數(shù)據(jù),以實現(xiàn)快遞單號的條碼掃描和指定寄存柜的開關(guān)操作等。視頻采集的實現(xiàn)主要利用Linux中的V4L2編程架構(gòu),視頻編碼采用H.264編碼方案,主要是應(yīng)用S3C6410內(nèi)核中的MFC硬件編碼器[3]。主控制與服務(wù)器的網(wǎng)絡(luò)通信采用Socket套接字編程。
寄存柜模塊對外提供UART接口,接收來自終端主控制的命令數(shù)據(jù)以打開指定編號的單元柜,并對箱體門柜進行開關(guān)狀態(tài)檢測。模塊設(shè)計框架圖如圖3所示。
圖3 寄存柜模塊框架圖
箱體控制電路基于STC89C52單片機設(shè)計,其中驅(qū)動電路由74LS138譯碼器和三極管反向放大電路構(gòu)成,能根據(jù)單片機I/O口輸出電平變化而控制箱體單元柜中電磁鎖的開關(guān),檢測電路通過對箱體單元柜中的干簧管檢測器的輸出電平判斷出箱體門柜的開關(guān)狀態(tài),并將檢測結(jié)果輸入單片機I/O口。
投遞箱終端在用戶取件過程中,需要對開箱過程進行視頻采集傳輸,并在服務(wù)器上以所取快件的快遞單號作為文件名保存視頻數(shù)據(jù)。視頻數(shù)據(jù)采集主要利用V4L2視頻捕獲編程驅(qū)動中的API函數(shù),USB攝像頭在主控制器的嵌入式Linux操作系統(tǒng)中映射為一個設(shè)備文件,在視頻采集過程中,先打開攝像頭設(shè)備文件并完成設(shè)備初始化,之后通過ioctl()函數(shù)發(fā)送視頻采集命令,開始視頻幀的采集。在獲取視頻幀數(shù)據(jù)之后,采用S3C6410內(nèi)部的MFC硬件編解碼器對其進行H.264編碼并傳輸。編碼主要過程由SsbSipH264EncodeExe()函數(shù)來執(zhí)行,對編碼后的NAL包采用RTP協(xié)議傳輸。
RTP是一種構(gòu)建在UDP之上的實時傳輸協(xié)議。向服務(wù)器發(fā)送RTP視頻包時,由于UDP傳輸是面向無連接的且服務(wù)器視頻數(shù)據(jù)的接收方式為一對多接收,所以為了使服務(wù)器能對來自不同終端的視頻數(shù)據(jù)進行區(qū)分,在軟件設(shè)計中,終端傳輸視頻數(shù)據(jù)前先使用TCP可靠連接與服務(wù)器約定RTP傳輸同步信源標識符,并填入每個待發(fā)送的RTP包頭中,以區(qū)別于其他終端的RTP視頻包數(shù)據(jù)。其傳輸流程圖如圖4所示。
圖4 視頻傳輸流程圖
系統(tǒng)服務(wù)器作為一個小區(qū)多臺投遞箱終端的數(shù)據(jù)處理中心,在同一時刻可與多個終端建立連接并處理來自終端的業(yè)務(wù)請求,如包裹信息查詢、短信發(fā)送、視頻傳輸?shù)取F滠浖O(shè)計在Windows平臺下進行,數(shù)據(jù)庫采用SQLite3以存放快件信息,可定期通過Internet網(wǎng)絡(luò)與快遞公司云端服務(wù)器同步該小區(qū)的所有快遞數(shù)據(jù)。
本設(shè)計中服務(wù)器軟件采用線程池方式設(shè)計,如圖5所示。服務(wù)器中“客戶端數(shù)據(jù)接入/發(fā)送線程”是服務(wù)器與客戶端之間交互數(shù)據(jù)的主要通道,采用TCP傳輸協(xié)議?!翱蛻舳藬?shù)據(jù)接入線程”主要采用 select()函數(shù)進行設(shè)計,實現(xiàn)對多個客戶端的連接和數(shù)據(jù)接入。
圖5 系統(tǒng)服務(wù)器線程池設(shè)計架構(gòu)圖
“工作線程”為任務(wù)處理中心,首先,從“待接收任務(wù)隊列”中獲取任務(wù)數(shù)據(jù)包,通過解析后執(zhí)行相應(yīng)的操作,包括數(shù)據(jù)庫的查詢和更改、RTP視頻傳輸控制、GSM短信發(fā)送控制等。最后,“工作線程”將處理后的數(shù)據(jù)包寫入“待發(fā)送任務(wù)隊列”,以應(yīng)答客戶端的請求。
服務(wù)器采用GTM900C作為GSM短信發(fā)送模塊,在“GSM短信發(fā)送線程”的設(shè)計中,首先從 “待發(fā)送隊列中”獲取待取件的電話號碼、寄存柜號、動態(tài)密碼等信息,以產(chǎn)生相應(yīng)的PDU碼,再通過向GSM模塊發(fā)送AT指令就可以完成中文短信的發(fā)送[4]。
當多個投遞箱終端同時向服務(wù)器發(fā)送視頻數(shù)據(jù)時,服務(wù)器需要識別來自不同終端的RTP包,并存儲在以用戶所取快件的快遞單號為文件名的FLV格式視頻文件中。對RTP包的接收過程如圖6所示。
圖6 視頻接收流程圖
在服務(wù)器接收到RTP包后,首先通過解析RTP包中的同步信源標識符可以獲取其所對應(yīng)取件過程的快遞單號,之后將RTP解包后所得的NAL包存儲在相應(yīng)的文件中,視頻文件采用FLV封裝格式。
本文針對一個小區(qū)不同數(shù)量投遞箱終端連接系統(tǒng)服務(wù)器的情況,測試系統(tǒng)的業(yè)務(wù)處理準確性和視頻傳輸效率。采用了兩套智能投遞箱實物模擬設(shè)備和電腦軟件虛擬設(shè)備作為一個小區(qū)的N個投遞箱終端,以兩臺PC機分別作為該小區(qū)的系統(tǒng)服務(wù)器和快遞公司云端服務(wù)器,系統(tǒng)服務(wù)器定期向云端服務(wù)器下載和更新數(shù)據(jù)。其測試數(shù)據(jù)如表1所示。
表1 不同終端連接下測試結(jié)果
測試結(jié)果表明,在終端數(shù)量小于400左右的情況下,采用TCP可靠方式連接的業(yè)務(wù)處理結(jié)果正確無誤,服務(wù)器視頻接收正常,能滿足一個城市小區(qū)對智能快遞投遞系統(tǒng)的要求。
[1]倪明,孫潛.快遞業(yè)運營模式研究[J].北京交通大學(xué)學(xué)報,2013(1):49-54.
[2]張慶英,劉燕,王錕.基于快遞業(yè)務(wù)的應(yīng)急系統(tǒng)研究[J].武漢理工大學(xué)學(xué)報(交通科學(xué)與工程版),2011,35(4):825-828.
[3]劉陽陽,申鉉京,王一棋.基于ARM的智能監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2011,29(2):158-163.
[4]孫增雷,黃俊年,孫敏.基于GSM的遠程報警系統(tǒng)的研制[J].武漢理工大學(xué)學(xué)報,2008,30(6):122-124,134.