《電子技術應用》
您所在的位置:首頁 > 通信与网络 > 设计应用 > 基于S3C6410的智能快递投递箱系统设计
基于S3C6410的智能快递投递箱系统设计
2015年微型机与应用第7期
谢洁杰,赖松林,赖云锋
(福州大学 物理与信息工程学院 微纳器件与太阳能电池研究所,福建 福州350108)
摘要: 针对目前快递行业投递环节中存在的一些问题,提出了一种基于S3C6410的智能快递投递箱系统。投递箱终端以S3C6410嵌入式处理器为核心,通过UART和USB总线驱动条码扫描模块、寄存柜模块和视频采集模块,实现自助投件和取件功能。PC系统服务器采用线程池设计,以实现高并发通信,满足大容量的数据交互要求。最后,经过测试,该系统在实际环境中运行稳定,可满足城市小区快递投递的需要。
Abstract:
Key words :

  摘  要: 針對目前快遞行業(yè)投遞環(huán)節(jié)中存在的一些問題,提出了一種基于S3C6410的智能快遞投遞箱系統(tǒng)。投遞箱終端以S3C6410嵌入式處理器為核心,通過UART和USB總線驅動條碼掃描模塊、寄存柜模塊和視頻采集模塊,實現自助投件和取件功能。PC系統(tǒng)服務器采用線程池設計,以實現高并發(fā)通信,滿足大容量的數據交互要求。最后,經過測試,該系統(tǒng)在實際環(huán)境中運行穩(wěn)定,可滿足城市小區(qū)快遞投遞的需要。

  關鍵詞: 投遞箱;視頻采集與傳輸;線程池

0 引言

  近年來,電商強有力的發(fā)展勢頭讓快遞物流飛速發(fā)展,然而作為快遞服務“最后一公里”的派送環(huán)節(jié),常常在快遞業(yè)務旺季期間存在配送脫節(jié)、貨件積壓等問題[1-2],因此,快遞投遞箱就被引用進來。目前國內市場上的智能快遞投遞箱尚處于發(fā)展階段,投遞快件時需手動輸入快遞信息以發(fā)送短信,存件效率不高,且容易導致信息誤填,增加包裹丟失的風險。對此,本文提出了一種基于S3C6410的智能快遞投遞箱系統(tǒng),該系統(tǒng)主要由投遞箱終端和系統(tǒng)服務器兩大部分構成,可實現對快件單號的掃描錄入、短信自動發(fā)送、取件密碼驗證和對取件過程的視頻記錄。

1 總體設計方案

001.jpg

  本文設計了一個可適用于城市小區(qū)的智能快遞投遞箱系統(tǒng)。如圖1所示,該系統(tǒng)中以一臺PC機作為該小區(qū)中投遞箱終端的系統(tǒng)服務器,PC服務器可通過Internet網絡從快遞公司云端服務器下載和保存該小區(qū)的所有快遞包裹數據,采用以太網與投遞箱終端通信,處理來自終端的功能請求,并通過UART串口方式驅動GSM模塊發(fā)送中文短信,實現包裹的自取通知功能。

  投遞箱終端采用S3C6410嵌入式系統(tǒng),運行Linux操作系統(tǒng),使用Qt4編程,并提供UI交互界面。在快遞員投遞快件過程中,首先通過條碼掃描器錄入快遞單號并將快件存放在指定編號寄存柜中,之后通過以太網將快遞信息上傳服務器以進行GSM短信通知和數據同步;在客戶取件過程中,通過終端輸入設備對取件密碼進行驗證,利用USB攝像頭對取件過程進行視頻采集編碼,并上傳服務器存儲。

2 投遞箱終端設計

002.jpg

  投遞箱終端設計框架如圖2所示,嵌入式主控制器通過UART串口連接寄存柜模塊和快遞條碼掃描模塊,并采用USB總線方式連接視頻采集設備。

  主控制器以S3C6410嵌入式處理器為核心,結合外部ROM/RAM、網卡控制芯片DM9000、鍵盤和電阻觸摸屏N43LCD等,構成嵌入式Linux操作系統(tǒng)所需要的硬件基礎。在嵌入式Linux平臺下的主控制器軟件設計中,主控制器與寄存柜模塊和條碼掃描模塊的通信主要是通過串口API函數向外圍模塊發(fā)送指令和接收數據,以實現快遞單號的條碼掃描和指定寄存柜的開關操作等。視頻采集的實現主要利用Linux中的V4L2編程架構,視頻編碼采用H.264編碼方案,主要是應用S3C6410內核中的MFC硬件編碼器[3]。主控制與服務器的網絡通信采用Socket套接字編程。

  2.1 寄存柜模塊設計

  寄存柜模塊對外提供UART接口,接收來自終端主控制的命令數據以打開指定編號的單元柜,并對箱體門柜進行開關狀態(tài)檢測。模塊設計框架圖如圖3所示。

003.jpg

  箱體控制電路基于STC89C52單片機設計,其中驅動電路由74LS138譯碼器和三極管反向放大電路構成,能根據單片機I/O口輸出電平變化而控制箱體單元柜中電磁鎖的開關,檢測電路通過對箱體單元柜中的干簧管檢測器的輸出電平判斷出箱體門柜的開關狀態(tài),并將檢測結果輸入單片機I/O口。

  2.2 視頻采集與實時傳輸

  投遞箱終端在用戶取件過程中,需要對開箱過程進行視頻采集傳輸,并在服務器上以所取快件的快遞單號作為文件名保存視頻數據。視頻數據采集主要利用V4L2視頻捕獲編程驅動中的API函數,USB攝像頭在主控制器的嵌入式Linux操作系統(tǒng)中映射為一個設備文件,在視頻采集過程中,先打開攝像頭設備文件并完成設備初始化,之后通過ioctl()函數發(fā)送視頻采集命令,開始視頻幀的采集。在獲取視頻幀數據之后,采用S3C6410內部的MFC硬件編解碼器對其進行H.264編碼并傳輸。編碼主要過程由SsbSipH264EncodeExe()函數來執(zhí)行,對編碼后的NAL包采用RTP協議傳輸。

  RTP是一種構建在UDP之上的實時傳輸協議。向服務器發(fā)送RTP視頻包時,由于UDP傳輸是面向無連接的且服務器視頻數據的接收方式為一對多接收,所以為了使服務器能對來自不同終端的視頻數據進行區(qū)分,在軟件設計中,終端傳輸視頻數據前先使用TCP可靠連接與服務器約定RTP傳輸同步信源標識符,并填入每個待發(fā)送的RTP包頭中,以區(qū)別于其他終端的RTP視頻包數據。其傳輸流程圖如圖4所示。

004.jpg

3 系統(tǒng)服務器軟件設計

  系統(tǒng)服務器作為一個小區(qū)多臺投遞箱終端的數據處理中心,在同一時刻可與多個終端建立連接并處理來自終端的業(yè)務請求,如包裹信息查詢、短信發(fā)送、視頻傳輸等。其軟件設計在Windows平臺下進行,數據庫采用SQLite3以存放快件信息,可定期通過Internet網絡與快遞公司云端服務器同步該小區(qū)的所有快遞數據。

  3.1 線程池設計

005.jpg


  本設計中服務器軟件采用線程池方式設計,如圖5所示。服務器中“客戶端數據接入/發(fā)送線程”是服務器與客戶端之間交互數據的主要通道,采用TCP傳輸協議?!翱蛻舳藬祿尤刖€程”主要采用select()函數進行設計,實現對多個客戶端的連接和數據接入。

  “工作線程”為任務處理中心,首先,從“待接收任務隊列”中獲取任務數據包,通過解析后執(zhí)行相應的操作,包括數據庫的查詢和更改、RTP視頻傳輸控制、GSM短信發(fā)送控制等。最后,“工作線程”將處理后的數據包寫入“待發(fā)送任務隊列”,以應答客戶端的請求。

  服務器采用GTM900C作為GSM短信發(fā)送模塊,在“GSM短信發(fā)送線程”的設計中,首先從“待發(fā)送隊列中”獲取待取件的電話號碼、寄存柜號、動態(tài)密碼等信息,以產生相應的PDU碼,再通過向GSM模塊發(fā)送AT指令就可以完成中文短信的發(fā)送[4]。

  3.2 視頻數據接收與存儲

  當多個投遞箱終端同時向服務器發(fā)送視頻數據時,服務器需要識別來自不同終端的RTP包,并存儲在以用戶所取快件的快遞單號為文件名的FLV格式視頻文件中。對RTP包的接收過程如圖6所示。

006.jpg

  在服務器接收到RTP包后,首先通過解析RTP包中的同步信源標識符可以獲取其所對應取件過程的快遞單號,之后將RTP解包后所得的NAL包存儲在相應的文件中,視頻文件采用FLV封裝格式。

4 系統(tǒng)測試及結論

  本文針對一個小區(qū)不同數量投遞箱終端連接系統(tǒng)服務器的情況,測試系統(tǒng)的業(yè)務處理準確性和視頻傳輸效率。采用了兩套智能投遞箱實物模擬設備和電腦軟件虛擬設備作為一個小區(qū)的N個投遞箱終端,以兩臺PC機分別作為該小區(qū)的系統(tǒng)服務器和快遞公司云端服務器,系統(tǒng)服務器定期向云端服務器下載和更新數據。其測試數據如表1所示。

007.jpg

  測試結果表明,在終端數量小于400左右的情況下,采用TCP可靠方式連接的業(yè)務處理結果正確無誤,服務器視頻接收正常,能滿足一個城市小區(qū)對智能快遞投遞系統(tǒng)的要求。

參考文獻

  [1] 倪明,孫潛.快遞業(yè)運營模式研究[J].北京交通大學學報,2013(1):49-54.

  [2] 張慶英,劉燕,王錕.基于快遞業(yè)務的應急系統(tǒng)研究[J].武漢理工大學學報(交通科學與工程版),2011,35(4):825-828.

  [3] 劉陽陽,申鉉京,王一棋.基于ARM的智能監(jiān)控系統(tǒng)的設計與實現[J].吉林大學學報(信息科學版),2011,29(2):158-163.

  [4] 孫增雷,黃俊年,孫敏.基于GSM的遠程報警系統(tǒng)的研制[J].武漢理工大學學報,2008,30(6):122-124,134.


此內容為AET網站原創(chuàng),未經授權禁止轉載。

相關內容