丁鶴洋, 李太君, 徐 瑛
(海南大學(xué) 信息科學(xué)技術(shù)學(xué)院, 海南 ???570228)
近年來(lái)計(jì)算機(jī)、電子通信等行業(yè)步入了快速發(fā)展的時(shí)代,嵌入式系統(tǒng)作為多個(gè)行業(yè)結(jié)合的產(chǎn)物以其專(zhuān)用性強(qiáng),可靠性強(qiáng)等特點(diǎn)得到了廣泛的應(yīng)用[1]。第三代移動(dòng)通信技術(shù)也在中國(guó)鋪天蓋地而來(lái),與傳統(tǒng)的通信技術(shù)相比較 3G網(wǎng)絡(luò)通信質(zhì)量更可靠,同時(shí)具有高速的傳輸速率,因而 3G網(wǎng)絡(luò)將會(huì)更廣泛為大眾所接受從而應(yīng)用到更廣闊的領(lǐng)域中去。這里在Linux操作系統(tǒng)下,利用嵌入式開(kāi)發(fā)板S3C2440搭建了系統(tǒng)的硬件環(huán)境[2],完成了 CDMA2000 1x EV-DO無(wú)線網(wǎng)絡(luò)撥號(hào)上網(wǎng),并最終通過(guò)電信3G網(wǎng)絡(luò)成功實(shí)現(xiàn)了視頻圖像的傳輸。所構(gòu)建的無(wú)線視頻監(jiān)控系統(tǒng)可廣泛應(yīng)用于工業(yè)生產(chǎn)、安防、航空航天等各個(gè)方面。
系統(tǒng)通過(guò)AT指令完成CDMA2000 1x EV-DO網(wǎng)絡(luò)的撥號(hào)上網(wǎng),服務(wù)器端視頻采集模塊利用攝像頭進(jìn)行視頻圖像采集并通過(guò)Socket編程實(shí)現(xiàn)網(wǎng)絡(luò)發(fā)送,客戶端利用 C#編寫(xiě)的應(yīng)用程序來(lái)完成與 ARM板的連接并成功接收到前端監(jiān)控圖像。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
嵌入式處理器是嵌入式開(kāi)發(fā)板的心臟,現(xiàn)在市面上處理器種類(lèi)繁多,相比較而言 ARM 性價(jià)比較高,本系統(tǒng)服務(wù)器端選用了三星公司推出的 RISC微處理器 S3C2440,該處理器采用的是內(nèi)核ARM920T,013um的 CMOS標(biāo)準(zhǔn)宏單元及存儲(chǔ)單元。它實(shí)現(xiàn)了MMU、BUS、AMBA以及HARVARD這一高速緩沖體系結(jié)構(gòu)。硬件框如圖2所示。
在無(wú)線發(fā)送模塊中該系統(tǒng)選用了中興公司所生產(chǎn)的3G通信模塊MC8630,該模塊下行通信速度可達(dá)到3.1 Mb/s,上行通信速度1.8 Mb/s,可廣泛應(yīng)用于高速數(shù)據(jù)交換、安防、智能監(jiān)控、醫(yī)療監(jiān)護(hù)等各個(gè)方面。MC8630基本連接方式如圖3所示。
在服務(wù)器端利用Video for Linux接口函數(shù)完成視頻圖像幀的采集,等待客戶端請(qǐng)求嘗試建立連接,連接成功后將采集到的圖像利用 3G網(wǎng)絡(luò)發(fā)送到客戶端。涉及到的具體步驟如下:首先開(kāi)辟地址空間定義數(shù)組用于采集圖像幀的存儲(chǔ),選用內(nèi)存映射(Mmap)方式捕獲視頻圖像,完成硬件設(shè)備初始化。接下來(lái)創(chuàng)建并綁定套接字(Socket)開(kāi)始監(jiān)聽(tīng)客戶端的連接請(qǐng)求。當(dāng)監(jiān)聽(tīng)到客戶端有連接請(qǐng)求時(shí)通過(guò)Client_fd = accept(sockfd,(struct sockaddr *)&client_sockaddr,&sin_size)建立TCP連接,調(diào)用V4L接口函數(shù)利用前端攝像頭進(jìn)行圖像采集暫時(shí)存儲(chǔ)在對(duì)應(yīng)的數(shù)組中并通過(guò)Sendbytes=sendto(client_fd,buf,size_number,0,(struct sockaddr *)&client_sockaddr,sin_size)命令將圖像傳給客戶端,結(jié)束采集后關(guān)閉視頻設(shè)備。
客戶端 PC機(jī)的應(yīng)用程序主要是用 C#語(yǔ)言編寫(xiě),客戶端需要完成的是與服務(wù)器端建立TCP連接并通過(guò)向下位機(jī)發(fā)送圖像數(shù)據(jù)請(qǐng)求完成前端監(jiān)控圖像的傳輸[3-4],完成圖像顯示進(jìn)行實(shí)時(shí)監(jiān)控??蛻舳诉\(yùn)行流程如圖4所示。
圖4 客戶端運(yùn)行流程
創(chuàng)建新的Socket并與服務(wù)器端TCP連接的實(shí)現(xiàn):
IPAddress ipAddress = IPAddress.Parse("server_ip"); //指定服務(wù)器端的IP
IPEndPoint zd_ip = new IPEndPoint(ipAddress,port); //指定服務(wù)器端的Port
TcpClient client = new TcpClient(); //創(chuàng)建 TCP連接
Client.Connect(zd_ip);
NetworkStream stream = client.GetStream(); //完成創(chuàng)建
利用 AT指令[5]對(duì) MC8630進(jìn)行設(shè)置,完成與3G網(wǎng)絡(luò)的連接,服務(wù)器端對(duì)采集到的圖像數(shù)據(jù)分組打包由MC8630傳送出去。EV-DO數(shù)據(jù)傳輸過(guò)程如圖5所示。
各部分程序調(diào)試正確后,將服務(wù)器端地址設(shè)為嵌入式開(kāi)發(fā)板無(wú)線撥號(hào)上網(wǎng)成功后所分配的地址[6‐7],服務(wù)器端接好攝像頭,客戶端運(yùn)行應(yīng)用程序開(kāi)始視頻圖像采集發(fā)送程序,經(jīng)測(cè)試攝像頭成功采 集視頻圖像并發(fā)送成功,客戶端亦能成功獲得服務(wù)器端傳送的圖像。
基于嵌入式 Linux的遠(yuǎn)程視頻監(jiān)控系統(tǒng)是為適應(yīng)當(dāng)前嵌入式技術(shù)發(fā)展和實(shí)際市場(chǎng)需求而進(jìn)行設(shè)計(jì)的,伴隨著全國(guó)3G網(wǎng)絡(luò)的覆蓋,基于3G網(wǎng)絡(luò)的無(wú)線視頻監(jiān)控必將以其方便快捷等優(yōu)勢(shì)成為視頻監(jiān)控領(lǐng)域的發(fā)展趨勢(shì),這里在ARM+Linux開(kāi)發(fā)平臺(tái)下構(gòu)建了該無(wú)線視頻監(jiān)控系統(tǒng),經(jīng)過(guò)大量實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的準(zhǔn)確性和穩(wěn)定性,該系統(tǒng)可廣泛應(yīng)用于視頻監(jiān)控、自動(dòng)控制、人工智能等各個(gè)領(lǐng)域,具有廣闊應(yīng)用前景[8]。
[1] 戴麗,張維勇,劉征宇,等.嵌入式無(wú)線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].合肥工業(yè)大學(xué)學(xué)報(bào),2008,31(01):4-9.
[2] 廖穎.基于ARM9的遠(yuǎn)程網(wǎng)絡(luò)圖像監(jiān)控研究與設(shè)計(jì)[D].四川:西南交通大學(xué),2009.
[3] 孫桂斌.基于TCP/IP協(xié)議多客戶連接的服務(wù)器端程序?qū)崿F(xiàn)[J].網(wǎng)絡(luò)與通信,2009,29(07):83-87.
[4] 劉易,李太君.3G移動(dòng)終端流媒體播放技術(shù)的研究[J].通信技術(shù),2011,44(03):123-128.
[5] 王俊.3G移動(dòng)通信系統(tǒng)網(wǎng)關(guān)技術(shù)應(yīng)用研究[J].通信技術(shù),2011,44(03):120-122.
[6] 呂振華.cdma2000 1x網(wǎng)絡(luò)和EV-DO網(wǎng)絡(luò)互操作相關(guān)問(wèn)題分析[J].電信科學(xué),2009,30(08):27-30.
[7] 李猛.基于 CDMA2000_1X的無(wú)線視頻監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[D].陜西:西安科技大學(xué),2008.
[8] 鄧漫齡.ARM嵌入式Linux系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2009.