劉讓周 徐琥
長(zhǎng)沙智能駕駛研究院有限公司 湖南省長(zhǎng)沙市 410036
隨著視頻處理技術(shù)的發(fā)展和對(duì)汽車智能化水平要求的提高,車載視頻監(jiān)控系統(tǒng)已被廣泛使用于長(zhǎng)途客車、危化品車、公交車以及執(zhí)法車等。為了達(dá)到長(zhǎng)時(shí)間視頻存儲(chǔ)的要求,硬盤是車載視頻記錄系統(tǒng)中的重要部件,由于機(jī)械硬盤具有性價(jià)比高、容量大、數(shù)據(jù)易恢復(fù)等優(yōu)點(diǎn)而被廣泛使用。
車載環(huán)境中,除溫度、電磁等環(huán)境適應(yīng)性條件外,振動(dòng)是一個(gè)必須面對(duì)的因素,硬盤的減振技術(shù)顯得尤為重要。目前硬盤對(duì)于振動(dòng)的保護(hù)主要從兩個(gè)方面入手:一種是采用通過(guò)物理方式進(jìn)行隔振設(shè)計(jì)或者主動(dòng)抑制振動(dòng),隔振設(shè)計(jì)較為常用,通常采用橡膠材料或者鋼絲繩來(lái)制作減振裝置;另一種是廠家在硬盤內(nèi)部設(shè)計(jì)了主動(dòng)保護(hù)功能,當(dāng)硬盤發(fā)生強(qiáng)烈撞擊時(shí)使磁頭暫停操作以保護(hù)硬盤,這種方式對(duì)于一般的振動(dòng)保護(hù)作用有限。
本文在系統(tǒng)采用了橡膠材料設(shè)計(jì)的減振裝置基礎(chǔ)上,借鑒硬盤主動(dòng)保護(hù)的思路,設(shè)計(jì)了系統(tǒng)級(jí)的振動(dòng)保護(hù)策略。系統(tǒng)采用eMMC 作為暫存區(qū),視頻數(shù)據(jù)首先存儲(chǔ)到該暫存區(qū),并實(shí)時(shí)對(duì)系統(tǒng)的振動(dòng)情況進(jìn)行檢測(cè),當(dāng)振動(dòng)幅度較小時(shí),快速將暫存區(qū)的數(shù)據(jù)存入硬盤中,而檢測(cè)到較大的振動(dòng)時(shí)停止寫入硬盤,并將磁頭置于停泊區(qū),由于暫存區(qū)空間較大,能夠保證振動(dòng)時(shí)間持續(xù)較長(zhǎng)時(shí)不會(huì)丟失數(shù)據(jù)。測(cè)試結(jié)果表明,該策略在車載環(huán)境中對(duì)硬盤的保護(hù)效果明顯。
機(jī)械硬盤內(nèi)部結(jié)構(gòu)示意圖如圖 1 所示,硬盤工作時(shí),盤面在主軸電機(jī)的驅(qū)動(dòng)下高速旋轉(zhuǎn),磁頭則由轉(zhuǎn)臂帶動(dòng)尋找到需要的磁道進(jìn)行讀寫,磁頭和盤面間只有幾微米的間隙,為了保護(hù)盤面,當(dāng)硬盤停止工作時(shí),轉(zhuǎn)臂帶動(dòng)磁頭離開盤面,回歸到停泊區(qū)。
圖1 機(jī)械硬盤結(jié)構(gòu)示意圖
汽車在行駛過(guò)程中會(huì)因?yàn)槁窙r不同而使硬盤處在不同的振動(dòng)工況下,由于磁頭和盤面間距很小,在較強(qiáng)的振動(dòng)環(huán)境中,特別是顛簸路面時(shí),極有可能發(fā)生磁頭和盤面接觸,從而損壞硬盤。因此,本文采用的方法是當(dāng)振動(dòng)幅度超過(guò)給定閾值時(shí),停止硬盤的讀寫,主動(dòng)發(fā)送命令將磁頭歸位到停泊區(qū),待振動(dòng)幅值較小且趨于平穩(wěn)時(shí),重新開始數(shù)據(jù)的讀寫。
系統(tǒng)的振動(dòng)保護(hù)策略原理示意圖如圖2所示。車載視頻記錄系統(tǒng)要求對(duì)視頻進(jìn)行連續(xù)記錄,在硬盤前增加了一個(gè)暫存區(qū),以保證視頻不丟失。
圖2 振動(dòng)保護(hù)策略原理示意圖
前端的4 路視頻輸入到系統(tǒng)中,使用H.264 方式對(duì)視頻進(jìn)行編碼,并存入暫存區(qū)。該暫存區(qū)是eMMC 中的一個(gè)邏輯分區(qū),已編碼的視頻流以固定文件大小存入該暫存區(qū)中,eMMC 為非易失存儲(chǔ)器,掉電或者硬盤意外損壞時(shí)可以保證最新的視頻存儲(chǔ)在該區(qū)域。暫存區(qū)的輸出端可以根據(jù)振動(dòng)情況的決策是否寫入硬盤。振動(dòng)檢測(cè)模塊實(shí)時(shí)檢測(cè)系統(tǒng)的振動(dòng)幅度,當(dāng)振動(dòng)幅度高于設(shè)定的閾值時(shí),關(guān)閉硬盤的寫入操作,并向硬盤發(fā)送STANDBY IMMEDIATE 命令使硬盤進(jìn)入待機(jī)模式,此時(shí)硬盤的磁頭歸位到停泊區(qū);當(dāng)振動(dòng)幅度較長(zhǎng)時(shí)間小于設(shè)定的閾值且暫存區(qū)的數(shù)據(jù)達(dá)到一定量時(shí),開啟硬盤的寫入操作,將暫存區(qū)的數(shù)據(jù)轉(zhuǎn)移到硬盤中。
由于壓縮后的視頻數(shù)據(jù)較小,而硬盤的寫入速度很高,可以在很短的時(shí)間內(nèi)將暫存區(qū)的數(shù)據(jù)轉(zhuǎn)移進(jìn)硬盤,之后讓硬盤進(jìn)入待機(jī)模式,使磁頭大部分時(shí)間處在停泊區(qū)內(nèi),大大減少因振動(dòng)可能和盤面接觸導(dǎo)致?lián)p壞的風(fēng)險(xiǎn)。
振動(dòng)可以通過(guò)加速度傳感器獲取,很多半導(dǎo)體廠商都有MEMS 加速度傳感器產(chǎn)品,常用的三軸加速度傳感器原理圖示意圖如圖3 所示。
圖3 加速度傳感器
三軸加速度傳感器能夠檢測(cè),,三個(gè)方向的加速度,對(duì)于單方向的振動(dòng),可以由三個(gè)方向的向量和求得。本文所述的車載視頻記錄系統(tǒng)中,對(duì)于振動(dòng)的方向并不敏感,而只需要關(guān)注振動(dòng)的幅度,即模長(zhǎng):
其中a,b,c,分別為加速度傳感器三個(gè)方向上的幅值,g則是合成的振動(dòng)幅值。為了得到較平穩(wěn)的振動(dòng)值,系統(tǒng)采用滑窗濾波,選取長(zhǎng)度為L(zhǎng) 的窗長(zhǎng),即可得到一段時(shí)間的振動(dòng)值:
本文采用NXP 的FXLS8974CF,它是一個(gè)量程可供用戶選擇的MEMS 三軸加速度傳感器,最大可達(dá)16g,本文所述系統(tǒng)中應(yīng)用時(shí),選擇4g 為最大量程,其硬件原理圖如圖4 所示。
圖4 振動(dòng)采集原理圖
加速度傳感器通過(guò)使用I2C 接口與處理器連接,MOT_DET 為運(yùn)動(dòng)檢測(cè)輸出,用于異常撞擊的快速檢測(cè),連接到處理器的GPIO。數(shù)據(jù)以100Hz 的速率由處理器主動(dòng)查詢,并進(jìn)行滑窗濾波等后處理。
暫存區(qū)是實(shí)現(xiàn)本文的振動(dòng)保護(hù)策略中重要的一個(gè)環(huán)節(jié),對(duì)于暫存區(qū)的選擇,主要考慮兩個(gè)方面因素:
(1)使用非易失存儲(chǔ)器,由于暫存區(qū)存儲(chǔ)的是最新的視頻數(shù)據(jù),一般車輛發(fā)生意外等情況都是斷電前幾分鐘數(shù)據(jù)最有價(jià)值,所以暫存區(qū)的數(shù)據(jù)不能因?yàn)閿嚯姸鴣G失,本文采用的辦法是直接在eMMC 中分配一個(gè)分區(qū)作為暫存區(qū)。
(2)空間大小的選擇,為了在較長(zhǎng)時(shí)間的振動(dòng)環(huán)境中不需要開啟硬盤,而視頻數(shù)據(jù)不丟失,需要暫存區(qū)有較大的空間。
對(duì)于分辨率為1080p 的視頻,考慮到壓縮的效果,一般使用的平均為2Mbps 的碼流。本文所述車載視頻記錄系統(tǒng)有四路視頻輸入,則壓縮后為每秒1M 字節(jié),意味著每小時(shí)視頻需要的存儲(chǔ)量為3600M 字節(jié),約為3.5GB。機(jī)械硬盤的寫入速度可達(dá)90MB/s,考慮系統(tǒng)的綜合性能,按照60MB/s 來(lái)計(jì)算,只需要一分鐘即可將暫存區(qū)的數(shù)據(jù)寫入硬盤,可見硬盤的讀寫時(shí)間大為縮短,同時(shí)意味著因?yàn)檎駝?dòng)損壞的風(fēng)險(xiǎn)大為降低。
本文所述系統(tǒng)中使用了一片8GB 的eMMC 芯片,將其中的4GB 用來(lái)存放系統(tǒng)文件,剩余的4GB 則作為視頻暫存區(qū)使用,可進(jìn)行至少一個(gè)小時(shí)的視頻存儲(chǔ)。
前端視頻經(jīng)壓縮后以視頻流的形式進(jìn)來(lái),將按照固定大小的文件進(jìn)行連續(xù)存儲(chǔ),暫存區(qū)是一個(gè)邏輯分區(qū),暫存視頻文件,待合適的時(shí)機(jī)寫入到硬盤中。暫存區(qū)內(nèi)的文件用一個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)管理,其結(jié)構(gòu)如圖5 所示。
圖5 暫存區(qū)管理示意圖
該數(shù)據(jù)結(jié)構(gòu)的核心是一個(gè)鏈表,每一個(gè)鏈表結(jié)點(diǎn)中存放暫存區(qū)中對(duì)應(yīng)的文件名。每個(gè)文件按照固定大小存儲(chǔ),當(dāng)一個(gè)文件寫滿后,開辟一個(gè)新的結(jié)點(diǎn)并加到鏈表的尾部,同時(shí)開始一個(gè)新的文件寫入。
文件名按照時(shí)間順序命名,方便后續(xù)的查找,同時(shí)鏈表的順序即視頻文件順序,當(dāng)滿足硬盤寫入條件時(shí),從鏈表的前端結(jié)點(diǎn)開始,按照順序?qū)⑽募懭胗脖P,避免對(duì)文件再次排序。已經(jīng)寫入硬盤的文件從暫存區(qū)刪除,并刪除對(duì)應(yīng)結(jié)點(diǎn),鏈表的結(jié)點(diǎn)數(shù)對(duì)應(yīng)暫存區(qū)的數(shù)據(jù)量,用于寫入硬盤的決策條件。
由前文可知,硬盤讀寫操作是振動(dòng)環(huán)境下?lián)p壞風(fēng)險(xiǎn)最高的,因此盡量避免讀寫操作,一旦開始讀寫,應(yīng)盡可能多地將數(shù)據(jù)寫入硬盤中。開啟讀寫操作的判定依據(jù)主要是以下幾個(gè)方面:
(1)振動(dòng)工況,考慮當(dāng)振動(dòng)的平均幅值小于安全閾值時(shí),可以根據(jù)暫存區(qū)的數(shù)據(jù)量來(lái)決定開啟讀寫操作。
(2)暫存區(qū)數(shù)據(jù)量,數(shù)據(jù)量積累越多再寫入硬盤意味著可以一次性寫入更多數(shù)據(jù),但是數(shù)據(jù)丟失風(fēng)險(xiǎn)更大,本文選擇在數(shù)據(jù)量達(dá)到暫存區(qū)50%時(shí)開啟寫入操作。
本文所述系統(tǒng)設(shè)計(jì)完后,參照國(guó)家標(biāo)準(zhǔn)GB/T 28046.3-2011 進(jìn)行了機(jī)械振動(dòng)測(cè)試,并對(duì)使用本文所述的振動(dòng)保護(hù)策略前后進(jìn)行了對(duì)比。
使用相同的12 臺(tái)樣機(jī),分為兩組,其中一組使用了本文所述的振動(dòng)保護(hù)策略,另一組則未使用,將它們置于同一測(cè)試臺(tái)進(jìn)行了8小時(shí)的連續(xù)振動(dòng)和隨機(jī)振動(dòng)試驗(yàn)。試驗(yàn)完成后,未使用本文所述振動(dòng)保護(hù)策略的樣機(jī)中有1 臺(tái)硬盤損壞,無(wú)法讀寫,另1 臺(tái)讀寫速度下降到正常時(shí)候的40%,其它4 臺(tái)功能正常;使用了本文所述的振動(dòng)保護(hù)策略的6 臺(tái)樣機(jī)功能均正常。可見該策略對(duì)硬盤的保護(hù)效果明顯。
本文通過(guò)對(duì)車載視頻記錄系統(tǒng)中硬盤在車載振動(dòng)條件下硬盤的損壞風(fēng)險(xiǎn)及保護(hù)機(jī)理進(jìn)行分析,提出增加暫存區(qū)的振動(dòng)保護(hù)策略,并詳細(xì)闡述了該策略的實(shí)現(xiàn)方法,最后對(duì)樣機(jī)進(jìn)行了分組振動(dòng)對(duì)比測(cè)試。測(cè)試結(jié)果表明,該振動(dòng)保護(hù)策略能夠?qū)τ脖P進(jìn)行有效保護(hù)。