一種基于MMS的低成本汽車安防系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1.引言
隨著人民生活水平的不斷提高,個(gè)人擁有汽車變得越來(lái)越普遍。但是,隨之而來(lái)的車輛頻繁被盜問題漸受關(guān)注。傳統(tǒng)的汽車安防系統(tǒng)以全球衛(wèi)星定位系統(tǒng)(以下簡(jiǎn)稱GPS)為核心,這種技術(shù)最大的優(yōu)勢(shì)是可以定位被盜車輛所處的位置,可以遠(yuǎn)程控制車輛,但是無(wú)法獲取圖像聲音信息不能了解車輛所處的環(huán)境,無(wú)法有效追捕犯罪嫌疑人。還有一些系統(tǒng)使用 GPRS實(shí)時(shí)傳輸圖像數(shù)據(jù),這種方案受網(wǎng)絡(luò)帶寬的限制嚴(yán)重,圖像質(zhì)量差,對(duì)處理器運(yùn)算能力要求高,系統(tǒng)使用費(fèi)用高。
500)this.style.width=500;" border="0" />
針對(duì)上述問題,我們提出并設(shè)計(jì)了一種基于多媒體信息服務(wù)(Multimedia Message Service,以下簡(jiǎn)稱MMS)——也就是人們常說(shuō)的“彩信”汽車安防系統(tǒng)。該系統(tǒng)利用了中國(guó)移動(dòng)的 MMS業(yè)務(wù)、短消息業(yè)務(wù),無(wú)線網(wǎng)絡(luò)覆蓋面大,使用費(fèi)用低廉,操控方法簡(jiǎn)單。圖1所示為基于 MMS的汽車安防系統(tǒng)的應(yīng)用框圖,用戶在遠(yuǎn)程通過短信控制本系統(tǒng),系統(tǒng)通過在車輛內(nèi)適當(dāng)部位安裝的攝像頭、麥克風(fēng)獲得高質(zhì)量的圖像語(yǔ)音信息,制作成 MMS,通過我們專門針對(duì)低成本嵌入式系統(tǒng)研發(fā)的MMS發(fā)送程序?qū)?MMS發(fā)送到用戶的終端,從而使用戶能更清晰地掌握車輛內(nèi)外的狀況。
2.系統(tǒng)結(jié)構(gòu)
我們使用了如圖2所示的硬件框架,本系統(tǒng)以S3C44B0處理器為核心:輔以2M NOR Flash存儲(chǔ)引導(dǎo)程序、內(nèi)核、ROM文件系統(tǒng);16M NAND Flash承載YAFF文件系統(tǒng),以彌補(bǔ) NOR Flash空間不足無(wú)法容納 PPPD、系統(tǒng)應(yīng)用程序、無(wú)法保存系統(tǒng)配置信息的缺陷; 16M SDRAM運(yùn)行代碼、動(dòng)態(tài)數(shù)據(jù)交換、RAM文件系統(tǒng);UART0連接CWT2000 GPRS模塊,用于收發(fā)與用戶交互的短信,發(fā)送MMS到用戶指定的終端; UART1連接C328 JPEG攝像頭可以直接獲取JPEG格式的高分辨率圖像數(shù)據(jù)。
500)this.style.width=500;" border="0" />
本系統(tǒng)的軟件基于uCLinux操作系統(tǒng)內(nèi)核版本 2.4.32,圖3展示的是本系統(tǒng)的軟件結(jié)構(gòu)框圖。圖3中,內(nèi)核空間的 MTD、UART驅(qū)動(dòng)、TCP/IP、PPP等在編譯內(nèi)核時(shí)必須選擇支持, PPPD/Chat撥號(hào)程序用于通過 GPRS模塊登陸互連網(wǎng)。上述軟件結(jié)構(gòu)框圖中部分模塊在 uCLinux分發(fā)版中包含,因此本系統(tǒng)需要實(shí)現(xiàn) JPEG采集、MMS制作、MMS發(fā)送、短信收發(fā)以及系統(tǒng)控制流程模塊。接下來(lái)的章節(jié)將介紹各模塊的實(shí)現(xiàn)技術(shù)。
500)this.style.width=500;" border="0" />
3.軟件設(shè)計(jì)
本節(jié)將重點(diǎn)介紹圖3中的系統(tǒng)控制流程、 JPEG采集、 MMS制作以及 MMS發(fā)送模塊。由于短信收發(fā)模塊過于簡(jiǎn)單,且在許多資料中都有詳細(xì)介紹,本文不再贅述。
3.1 系統(tǒng)控制流程系統(tǒng)控制流程模塊負(fù)責(zé)對(duì)其它模塊進(jìn)行調(diào)用,對(duì)所有資源進(jìn)行協(xié)調(diào),實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的工作流程,滿足良好的交互性、穩(wěn)定性。
首先,系統(tǒng)需要初始化,如獲取用戶終端(手機(jī))號(hào)碼, MMS發(fā)送過程所需的MMS網(wǎng)關(guān)、端口、MMS中心地址,這些信息都保存在系統(tǒng)配置文件中,另外還需要初始化一些相關(guān)的數(shù)據(jù)結(jié)構(gòu)。初始化之后系統(tǒng)進(jìn)入到一個(gè)超級(jí)循環(huán)當(dāng)中,隨時(shí)準(zhǔn)備接收來(lái)自用戶終端的命令短信息。目前,命令短信息有兩個(gè),其中最重要的是“Get”命令,用以獲取 MMS信息;還有一個(gè)“Set”命令用以設(shè)置用戶終端號(hào)碼,該命令由于流程圖的尺寸問題在圖 4中省略了。收到“Get”命令之后,系統(tǒng)依次調(diào)用JPEG采集模塊、 MMS制作模塊、GPRS撥號(hào)、MMS發(fā)送模塊。這些模塊的調(diào)用,除了MMS制作模塊,都遵循一個(gè)基本原則,我們稱之為三次嘗試原則。如果某模塊調(diào)用不成功,將重復(fù)三次,三次都失敗,將發(fā)送錯(cuò)誤報(bào)告短信到用戶終端。比較特殊的是GPRS撥號(hào),在3次撥號(hào)失敗后將對(duì)GPRS模塊進(jìn)行復(fù)位,再嘗試撥號(hào)。該原則符合無(wú)線通訊自身的特殊性,可以有效提高程序的效率和穩(wěn)定性。另外有一點(diǎn)需要注意,在 GPRS狀態(tài)下是無(wú)法發(fā)送短信的,因此,撥號(hào)登陸成功之后需要斷開 GPRS連接才能發(fā)送短信。這也是為什么無(wú)論 MMS發(fā)送是否成功,都必須先斷開 GPRS,再發(fā)送報(bào)錯(cuò)或成功報(bào)告短信的原因。
3.2 JPEG圖像采集
JPEG圖像采集模塊通過串口控制 C328 JPEG攝像頭直接獲取 JPEG圖像,這種選擇大大降低了處理器的負(fù)擔(dān)。關(guān)于該攝像頭的硬件信息見參考文獻(xiàn) [1]。該軟件模塊大部分為順序過程,后面的過程都建立在前一個(gè)過程正確執(zhí)行的基礎(chǔ)上??傮w上可以分為三個(gè)步驟:初始化 S3C44B0串口、初始化攝像頭、獲取圖像,詳細(xì)過程如下:
1.初始化 S3C44B0串口,包括: O_RDWR | O_NOCTTY | O_NDELAY方式打開 UART1也就是“/dev/ttS1”[2],設(shè)置波特率 57600,8位數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn),讀寫超時(shí)設(shè)置為 1秒,初始化 jpeg_picture結(jié)構(gòu)體:
struct jpeg_picture
{
int fd; //串口的文件描述符
unsigned char resolution; // 圖像分辨率代碼
long jpeglength; //圖像長(zhǎng)度24位表示
unsigned char *pjpeg; // 圖像存儲(chǔ)地址
};
1 JPEG攝像頭,包括:發(fā)送 SYNC命令與攝像頭建立連接,,發(fā)送 Initial命令設(shè)置輸出 JPEG格式圖像、分辨率 640X480,發(fā)送 Set Package Size命令設(shè)置數(shù)據(jù)包的大小為 512字節(jié)。
2 獲取圖像,包括:發(fā)送 Snapshot命令捕獲圖像快照并壓縮,發(fā)送 Get Picture命令獲取 Snapshot類型圖像,接收 Data命令確認(rèn)數(shù)據(jù)類型為 Snapshot以及圖像數(shù)據(jù)大小,并為圖像分配對(duì)應(yīng)空間,之后開始接收數(shù)據(jù)包,每收到一個(gè)數(shù)據(jù)包后發(fā)送帶有數(shù)據(jù)包 ID的 ACK命令給攝像頭,直到最后一個(gè)數(shù)據(jù)包 ID為 F0F0,數(shù)據(jù)接收過程結(jié)束。
通訊協(xié)議采用一種如圖 4的應(yīng)答方式, ACK代表上一個(gè)命令或操作成功,NACK則說(shuō)明失敗,確保了通訊穩(wěn)定。 C328定義的命令是統(tǒng)一的 6個(gè)字節(jié)長(zhǎng)度,起始為固定的 0xAA,然后是命令字節(jié),后 4個(gè)字節(jié)是與命令相關(guān)的參數(shù)字節(jié)。
500)this.style.width=500;" border="0" />
3.3 MMS制作
MMS 可以包含靜態(tài)圖像、語(yǔ)音、動(dòng)態(tài)圖像等多種多媒體信息 [3 4]。圖 5左側(cè)為一個(gè)通用 MMS結(jié)構(gòu),由 MMS信息頭、 MMS信息體構(gòu)成。 MMS信息頭包含如何從發(fā)送終端將數(shù)據(jù)發(fā)往接收終端的信息[5]。MMS信息體是 MMS的實(shí)質(zhì)內(nèi)容,可以由多個(gè)部分多種類型媒體。本系統(tǒng)中目前僅有 JPEG的圖像數(shù)據(jù),不需要支持所有格式的多媒體信息,因此可以實(shí)現(xiàn)針對(duì)多幅 JPEG圖像的簡(jiǎn)化版 MMS制作模塊。我們使用了最簡(jiǎn)化的 MMS信息頭,包括:消息類型、事務(wù) ID、版本號(hào)、From、To等,詳情見表 1。
500)this.style.width=500;" border="0" />
MMS 編碼必須遵循無(wú)線會(huì)話協(xié)議( Wireless Session Protocol,以下簡(jiǎn)稱 WSP)。WSP使用一種與 HTTP/1.1相同的語(yǔ)法描述數(shù)據(jù)的組織結(jié)構(gòu),具體可參考 RFC[2068]。HTTP/1.1使用 ASCII字符編碼來(lái)傳輸數(shù)據(jù),而 WSP為降低傳輸帶寬,將 HTTP/1.1中的一些著名域?qū)?yīng)的字符串定義為一個(gè)字節(jié),并在對(duì)這些緊湊格式編碼時(shí)加上 0x80,使著名域的編碼大于 127(擴(kuò)展 ASCII字符),從而將它們與普通 ASCII字符區(qū)別開。因此 MMS信息頭的基本編碼格式為:“域編碼”+“內(nèi)容”,詳情請(qǐng)參考表 1。編碼順序如下:消息類型、事務(wù) ID、版本號(hào)必須依次排在最前面,而 MMS信息體內(nèi)容類型則應(yīng)該排在 MMS信息頭的最后。
500)this.style.width=500;" border="0" />
①用字符串表示一個(gè)隨機(jī)數(shù)。②國(guó)內(nèi)格式為:長(zhǎng)度 +“+86”+“11位手機(jī)號(hào)” +“/TYPE=PLMN.”
緊跟在 MMS信息頭之后的就是 MMS信息體,圖 5中所示這部分有:成員數(shù)量、成員(圖像、文本、聲音等)。成員數(shù)量是一個(gè)變長(zhǎng)整形數(shù)。 MMS信息體的成員由:成員信息頭、成員數(shù)據(jù)構(gòu)成。我們的系統(tǒng)中僅有 JPEG圖像,所以成員信息頭可以編碼為: 0x01,YYYY(JPEG圖像大小,變長(zhǎng)整數(shù)),0x9E。最后將 JPEG圖像附在成員信息頭之后即可完成 MMS制作。注意,由于圖像的存儲(chǔ)空間為動(dòng)態(tài)分配,之后要將所占內(nèi)存釋放。
3.4 MMS發(fā)送
最后,系統(tǒng)使用了項(xiàng)目組針對(duì)嵌入式系統(tǒng)開發(fā)的 MMS發(fā)送簡(jiǎn)化過程來(lái)發(fā)送彩信。該簡(jiǎn)化過程分為三個(gè)步驟:建立連接、發(fā)送數(shù)據(jù)、斷開連接[6],如圖 6所示為發(fā)送數(shù)據(jù)簡(jiǎn)化過程的時(shí)序圖。建立連接和斷開連接的時(shí)序圖與此類似,不在這里給出。在該簡(jiǎn)化過程的實(shí)現(xiàn)中,使用了一種直接構(gòu)造 PDU進(jìn)行發(fā)送的實(shí)現(xiàn)方法。協(xié)議數(shù)據(jù)單元( Protocol Data Unit,以下簡(jiǎn)稱 PDU)為 MMS發(fā)送時(shí)各層所要增加的數(shù)據(jù)頭,而這些數(shù)據(jù)頭很多部分都固定。因此,通過直接發(fā)送 PDU的方法,可以避免構(gòu)造完整無(wú)線應(yīng)用協(xié)議棧( WAP),擺脫對(duì)多線程的依賴,以及無(wú)關(guān)操作所需的存儲(chǔ)消耗,實(shí)現(xiàn)單線程、高效、高速、穩(wěn)定的 MMS發(fā)送。
500)this.style.width=500;" border="0" />
MMS發(fā)送的網(wǎng)絡(luò)協(xié)議棧關(guān)系的簡(jiǎn)化過程僅僅需要嵌入式系統(tǒng)提供 UDP支持,能連接到 GPRS網(wǎng)絡(luò),即可發(fā)送 MMS到終端。
4.結(jié)論與展望
本系統(tǒng)目前已經(jīng)通過了長(zhǎng)沙、深圳、北京、上海等地的測(cè)試。項(xiàng)目充分利用了GPRS網(wǎng)絡(luò)覆蓋廣泛,通訊質(zhì)量穩(wěn)定的特點(diǎn),提出了一個(gè)簡(jiǎn)單方便的、穩(wěn)定的、易于擴(kuò)展的基于 MMS的安防系統(tǒng)框架,為提取犯罪嫌疑人的犯罪證據(jù)提供了一種新手段。該框架有較廣泛的應(yīng)用范圍,可以為相關(guān)行業(yè)提供參考。
本文作者創(chuàng)新點(diǎn):結(jié)合了短消息操作簡(jiǎn)單、彩信直觀的特點(diǎn),在低成本 ARM7平臺(tái)實(shí)現(xiàn)了基于彩信的安防系統(tǒng);在系統(tǒng)中使用一種直接 PDU構(gòu)造方法實(shí)現(xiàn)了一個(gè)簡(jiǎn)化版的彩信發(fā)送過程,該過程實(shí)現(xiàn)簡(jiǎn)單,適合嵌入式系統(tǒng)。