桑赫,林巖,張烽
(北京航空航天大學 自動化科學與電氣工程學院,北京100191)
桑赫(碩士)、張烽(博士),研究方向為控制理論與控制工程;林巖(教授),研究方向為自適應控制、魯棒控制理論及應用。
引 言
隨著人們安全意識的日益提高,監(jiān)控設(shè)備的需求量也逐步增加,越來越多的場合需要使用嵌入式監(jiān)控設(shè)備來進行數(shù)據(jù)記錄和安全保障。采用嵌入式監(jiān)控設(shè)備,可以代替肉眼,實現(xiàn)全面、安全、穩(wěn)定的監(jiān)控[2]。便攜嵌入式監(jiān)控設(shè)備屬于嵌入式監(jiān)控設(shè)備中特殊的一類,設(shè)備體積小、重量輕,具有隨身攜帶、工作快速、安全穩(wěn)定、長時間續(xù)航等特點。該設(shè)備多用于記錄執(zhí)法過程、突發(fā)交通事件等,以便得到及時、可靠的現(xiàn)場證據(jù),既避免了傳統(tǒng)監(jiān)控設(shè)備難以隨身攜帶、具有監(jiān)控死角的問題,又避免了由于缺乏足夠的現(xiàn)場證據(jù)而出現(xiàn)誤判的情況。基于便攜嵌入式設(shè)備的特點,為其配備高效的通信技術(shù)可以增強設(shè)備的實際應用價值。因此,基于TMS320DM365的便攜監(jiān)控系統(tǒng)解決方案具有一定實際意義。
嵌入式設(shè)備具有基本的硬件體系,大致包括以下3類組成部件[3]:
①核心部件:微處理器、時鐘電路。
②主要部件:存儲器件、測試通道器件、人機接口部件、通信接口部件。
③基礎(chǔ)部件:電源供電電路、電路監(jiān)控電路、復位電路、電磁兼容與干擾抑制EMC/EMI電路等。
便攜嵌入式監(jiān)控設(shè)備選擇硬件時,要考慮到處理核心的運算能力是否滿足高清音頻與視頻的采集、處理需求;存儲設(shè)備是否有足夠空間容納數(shù)據(jù)量較大的高清音頻、視頻數(shù)據(jù);通信設(shè)備能否實現(xiàn)數(shù)字信號的高速、穩(wěn)定、安全傳輸。滿足上述功能的同時,因為便攜嵌入式監(jiān)控設(shè)備的特殊性,要盡量選擇功耗較低的硬件設(shè)備,并且在滿足基本需求后,應對其他設(shè)備進行裁剪,例如顯示/打印設(shè)備、鍵盤輸入設(shè)備等。
德州儀器公司的 TMS320DM365(以下簡稱DM365)具有較快的運算速度,在編碼時可以使用協(xié)處理器進行加速,且支持大容量存儲介質(zhì)等特點,在功能上足以滿足監(jiān)控設(shè)備的需求。同時,其外圍電路設(shè)計簡單,可以很大程度上縮小設(shè)備尺寸;處理核心為ARM 內(nèi)核[4],功耗相對較低;內(nèi)存使用低功耗和小體積的mDDR 作為內(nèi)存模塊;選用Micro SD 卡作為存儲設(shè)備,用其代替NAND Flash來存儲系統(tǒng)及應用程序;通信使用USB接口和WiFi模塊;視頻采集使用APTINA 公司的AR0330模塊。硬件設(shè)計框圖如圖1所示。
圖1 系統(tǒng)硬件設(shè)計框圖
Linux系統(tǒng)是一種基于硬件設(shè)備的類Unix操作系統(tǒng),包含硬件驅(qū)動、電源管理、文件系統(tǒng)以及線程管理等模塊,提供基本的系統(tǒng)調(diào)用[5]。Linux提供符合POSIX標準的C/C++運行庫,基于DM365硬件設(shè)備,需要使用UBL和Uboot來引導啟動Linux系統(tǒng),應用軟件基于此系統(tǒng)設(shè)計。系統(tǒng)結(jié)構(gòu)圖如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)圖
便攜監(jiān)控系統(tǒng)應用軟件建立在基本Linux系統(tǒng)上,包括主線程以及4個主要子線程,分別用于視頻處理、音頻處理、通信管理以及設(shè)備管理。軟件運行的流程圖如圖3所示。
圖3 軟件流程圖
音頻使用DM365處理器自帶的音頻采集方式,編碼采用AAC壓縮方式,使用了全新的算法進行編碼,具有更高的性價比。利用AAC 格式,可使聲音質(zhì)量沒有明顯降低的前提下,體積更?。?]。在軟件實現(xiàn)過程中,使用TI公司結(jié)合Linux系統(tǒng)設(shè)計的API函數(shù);使用DRV_audioOpen()與DRV_audioRead()函數(shù)實現(xiàn)音頻硬件的初始化與讀入數(shù)據(jù);使用ALG_audEncRun()函數(shù)進行音頻的AAC編碼[7],并編寫程序,實現(xiàn)編碼后的數(shù)據(jù)存儲。在上述過程中,需要對API函數(shù)進行參數(shù)配置。處理流程如圖4所示。
圖4 音頻處理流程圖
視頻的采集是通過I2C 接口的圖像傳感器AR0330 讀入視頻流信息,經(jīng)過片載ISP進行自動白平衡,每次讀入1 幀圖像,然后進行圖像編碼并保存。視頻編碼采用JPEG 方式,封裝為.jpg 圖 片 文 件 進 行存儲。使用DRV_captureStart()函數(shù)實現(xiàn)攝像頭的初始化操作;調(diào)用ALG_aewbRun()函數(shù)進行自動曝光與自動白平衡;使用DRV_ipipeGetRszBuf()函數(shù)讀入1幀圖像;將數(shù)據(jù)傳入SnapshotFrameDataEx()函數(shù),進行JPEG 編碼[8]。程序會啟動存儲線程將編碼后的文件保存在存儲設(shè)備中,然后啟動上傳線程,將圖像上傳至客戶端。視頻處理序列圖如圖5所示。
圖5 視頻處理序列圖
本方案使用基于WiFi技術(shù)的無線傳輸方式作為基礎(chǔ)媒介,利用軟件實現(xiàn)基于TCP/IP協(xié)議的Socket傳輸策略,在保證傳輸速度的同時,也保證了數(shù)據(jù)傳輸?shù)姆€(wěn)定性和安全性[9]。實現(xiàn)無線網(wǎng)絡(luò)接入點(AP)的架設(shè),使其他設(shè)備(諸如計算機、手機、平板電腦等)可以通過WPA2加密方式連接到便攜監(jiān)控設(shè)備,在保證足夠安全性的同時實現(xiàn)數(shù)據(jù)的交換。
在實現(xiàn)AP 的架設(shè)后,通過軟件實現(xiàn)Socket服務器,保證傳輸功能的完整實現(xiàn)。建立連接以后,使用單獨的線程完成監(jiān)控設(shè)備與客戶端設(shè)備的數(shù)據(jù)通信。在該線程中,實現(xiàn)實時監(jiān)控數(shù)據(jù)的上傳與接收客戶端發(fā)來的控制指令并執(zhí)行的功能。通信線程序列圖如圖6所示。
在監(jiān)控系統(tǒng)運行過程中,微處理器、存儲設(shè)備以及其他必要電路必須保持時刻供電狀態(tài),其他設(shè)備則可以依據(jù)使用情況進行電源通斷的管理。因此,為了更好地控制功耗,需要在軟件上對視頻采集設(shè)備和通信設(shè)備進行電源管理。
對于視頻采集設(shè)備而言,在便攜監(jiān)控設(shè)備運行過程中使用每秒拍照3次的運行方式,既可以保證監(jiān)控的連續(xù)性,又可以控制視頻采集設(shè)備以及圖像編碼器的功耗。在需要進行拍照時,啟動視頻采集設(shè)備和圖像編碼加速器,進行圖像采集與編碼。當3次拍照結(jié)束后,暫停視頻采集設(shè)備,并關(guān)閉圖像編碼加速器的電源。本設(shè)計的圖像采集速度為30fps,因此以上過程可以使得系統(tǒng)90%的時間處于低功耗狀態(tài),從而在很大程度上降低了系統(tǒng)的平均功耗。
對于通信設(shè)備而言,使用WiFi模塊進行數(shù)據(jù)通信。在系統(tǒng)不需要對外發(fā)送數(shù)據(jù)時,通過軟件使WiFi設(shè)備的驅(qū)動處于卸載狀態(tài),此時WiFi設(shè)備的功耗很低。當需要進行數(shù)據(jù)通信時,加載WiFi設(shè)備的驅(qū)動以實現(xiàn)數(shù)據(jù)傳輸。傳輸完畢后,可關(guān)閉WiFi功能,卸載驅(qū)動,使WiFi設(shè)備恢復到低功耗狀態(tài)。
本文使用基于Android系統(tǒng)的手機軟件作為客戶端軟件,其與便攜監(jiān)控系統(tǒng)進行通信,實現(xiàn)監(jiān)控畫面的實時顯示與存儲,并對其進行控制。因此需要對Socket通信、圖片顯示與存儲、本地文件寫入與讀取以及界面繪制、線程操作等進行設(shè)計。實現(xiàn)的具體功能有:①通過IP地址與端口號連接便攜監(jiān)控設(shè)備上的服務器;②接收并實時顯示監(jiān)控畫面,可選擇本地存儲收到的圖片;③對服務器的AP 參數(shù)、系統(tǒng)時間進行配置,并保存配置信息;④控制監(jiān)控系統(tǒng)對監(jiān)控畫面的存儲,查詢可用空間,格式化監(jiān)控系統(tǒng)的存儲區(qū)域。
圖6 通信線程序列圖
客戶端軟件與便攜監(jiān)控設(shè)備上的服務器通過Socket進行通信,并實現(xiàn)上述功能,因此需要建立簡單的通信協(xié)議[10]。對于不同操作定義不同命令控制字,命令控制字占用4個字節(jié)。服務器接收到命令控制字后,對其合法性進行判斷,并根據(jù)預設(shè)的對應功能進行執(zhí)行??蛻舳送ㄟ^接收并判斷服務器端返回的命令控制字來進行下一步操作。
結(jié) 語
設(shè)計并實現(xiàn)了便攜監(jiān)控系統(tǒng)的硬件設(shè)備,并對軟件方案進行了測試。實驗結(jié)果表明,本文提出的基于DM365的便攜監(jiān)控系統(tǒng)解決方案可以有效減小硬件體積,并降低功耗。通過與其他便攜設(shè)備的交互,提高了設(shè)備的靈活性與可用性。
[1]高玉龍,白旭,吳瑋.達芬奇技術(shù)開發(fā)基礎(chǔ)、原理與實例[M].北京:電子工業(yè)出版社,2012.
[2]青島東合信息技術(shù)有限公司.無線通信開發(fā)技術(shù)及實踐[M].西安:西安電子科技大學出版社,2014.
[3]怯肇乾.嵌入式系統(tǒng)硬件體系設(shè)計[M].北京:北京航空航天大學出版社,2007.
[4]Wayne Wolf.High-Performance Embedded Computing[M].San Francisco:Morgan Kaufmann Publishers,2007.
[5]中井悅司.Linux系統(tǒng)架構(gòu)和應用技巧[M].李睿,馬世龍,譯.北京:人民郵電出版社,2014.
[6]Karlheinz Brandenburg.MP3and AAC explained[C]//In AES 17th international Conference on High Quality Audio Coding,1999.
[7]Texas Instruments.TMS320DM36x DMSoC Voice Codec User's Guide[EB/OL].[2015-02].http://wenku.baidu.com/link?url=tShHKTB8WhMmv 3d53o38 OXidH0x DjdUvig-26bUj-0Eeebs TpAZfEDCoL GNozpFj5Ln HxTA7VUbljPuKdJKjF7BR0yc51KVtzNW9wMLyvNu.
[8]Texas Instruments.TMS320DM36x DMSoC Video Processing Front End User's Guide[EB/OL].[2015-02].http://www.docin.com/p-864047333.html.
[9]Douglas E Comer,David L Stevens.Internetworking with TCP/IP Vol.3,Client-Server Programming and Applications[M].北京:人民郵電出版社,2002.
[10]丸山修孝.通信協(xié)議技術(shù)[M].王慶,譯.北京:科學出版社,2004.