當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]針對(duì)家庭網(wǎng)關(guān)的最重要功能:遠(yuǎn)程監(jiān)控功能,本文設(shè)計(jì)了一個(gè)基于ARM平臺(tái)的嵌入式家庭網(wǎng)關(guān)服務(wù)器平臺(tái)。平臺(tái)中集成了boa服務(wù)器和家庭網(wǎng)絡(luò)服務(wù)器及視頻服務(wù)器于一體,通過(guò)通用網(wǎng)關(guān)接口程序CGI,實(shí)現(xiàn)了遠(yuǎn)程用戶和家庭內(nèi)部網(wǎng)絡(luò)的動(dòng)態(tài)交互。本文中研究的數(shù)據(jù)信息主要是攝像頭視頻信息,采用了將視頻信息通過(guò)ActiveX控件解碼,發(fā)送的方式在HTTP瀏覽器上直接播放的方式來(lái)實(shí)現(xiàn)遠(yuǎn)程傳輸(本文不論述信息家電的遠(yuǎn)程控制部分)。

引言

隨著科學(xué)技術(shù)的不斷進(jìn)步和發(fā)展,人們對(duì)生活質(zhì)量也提出了更高的要求。家庭網(wǎng)絡(luò)作為一個(gè)新生體越來(lái)越快走進(jìn)人們的生活,它將家庭單元作為一個(gè)節(jié)點(diǎn)加入了網(wǎng)絡(luò)的大家庭,其中連接家庭內(nèi)部與Internet的橋梁的家庭網(wǎng)關(guān)起了舉足輕重的作用。嵌入式網(wǎng)關(guān)的主要功能如下:

遠(yuǎn)程控制:客戶通過(guò)Internet連接的任意一臺(tái)PC機(jī)的瀏覽器,都可以訪問(wèn)家庭網(wǎng)絡(luò)的服務(wù)器。家庭網(wǎng)絡(luò)中的設(shè)備狀態(tài)將以HTML文件的方式顯示在客戶端的瀏覽器中??蛻敉ㄟ^(guò)對(duì)HTML頁(yè)面上相應(yīng)設(shè)備的點(diǎn)擊以實(shí)現(xiàn)對(duì)家庭網(wǎng)絡(luò)中設(shè)備的遠(yuǎn)程控制,操作的結(jié)果同樣以HTML頁(yè)面的方式刷新客戶端的瀏覽器。

遠(yuǎn)程監(jiān)視:客戶通過(guò)PC機(jī)的瀏覽器,都可以訪問(wèn)家庭網(wǎng)絡(luò)的服務(wù)器,在HTML頁(yè)面上通過(guò)點(diǎn)擊控件按鈕來(lái)實(shí)現(xiàn)視頻工具的自動(dòng)下載,和所要求視頻文件的自動(dòng)播放,從而可以顯示多個(gè)攝像頭中的視頻信息。

遠(yuǎn)程維護(hù):當(dāng)HomeNetServer的后臺(tái)數(shù)據(jù)庫(kù)需要維護(hù),或者家庭網(wǎng)絡(luò)中設(shè)備的HTML描述文件有了更新,甚至系統(tǒng)的網(wǎng)絡(luò)管理系統(tǒng)需要升級(jí)為新版本時(shí),管理員都可以通過(guò)Internet遠(yuǎn)程對(duì)家庭網(wǎng)絡(luò)中的服務(wù)器做維護(hù)和更新。

本文采用的系統(tǒng)總體設(shè)計(jì)框圖如圖1所是?;谶@些基本要求和嵌入式系統(tǒng)自身資源有限的特點(diǎn),系統(tǒng)處理器選擇了三星的S3C4510芯片,并對(duì)其進(jìn)行外圍電路擴(kuò)展如圖2所示。

圖1系統(tǒng)總體設(shè)計(jì)框圖

圖2處理芯片的外圍擴(kuò)展電路方框圖

其中,F(xiàn)lash/ROM用于存儲(chǔ)家庭網(wǎng)關(guān)中的嵌入式操作系統(tǒng)、HTTP服務(wù)器、CGI網(wǎng)關(guān)程序、家庭網(wǎng)絡(luò)服務(wù)器以及各種服務(wù)所需的文件系統(tǒng)。整個(gè)家庭網(wǎng)關(guān)軟件平臺(tái)存儲(chǔ)在Flash中,系統(tǒng)啟動(dòng)時(shí),將從Flash中運(yùn)行引導(dǎo)程序,解壓操作系統(tǒng)并將其移入SDRAM中。
Ethernet:S3C4510內(nèi)部集成了網(wǎng)絡(luò)控制接口,并提供專用于網(wǎng)絡(luò)通信的DMA通道。通過(guò)Ethernet模塊,S3C4510實(shí)現(xiàn)與Internet的連接。Ethernet模塊完成芯片與網(wǎng)絡(luò)的隔離和數(shù)據(jù)的收發(fā)。

系統(tǒng):S3C4510所需的其他外圍電路,包括:電源電路、外部時(shí)鐘(50MHz)電路、開(kāi)關(guān)及復(fù)位電路和JTAG調(diào)試接口電路等。

嵌入式操作系統(tǒng)選擇的是mCLinux操作系統(tǒng),mCLinux是專門(mén)針對(duì)沒(méi)有MMU的處理器而設(shè)計(jì)的,系統(tǒng)多采用Romfs文件系統(tǒng),Romfs是一種相對(duì)簡(jiǎn)單、占用空間較少的文件系統(tǒng)。而在mCLINUX下,主要有三個(gè)WEB服務(wù)器:httpd、thttpd和boa。httpd是最簡(jiǎn)單的WEB服務(wù)器,功能簡(jiǎn)單,不支持認(rèn)證和CGI,thttpd和boa均支持認(rèn)證和CGI,功能豐富,其中boa1是一個(gè)單任務(wù)的http服務(wù)器,源代碼開(kāi)放,性能較高,占用系統(tǒng)資源較少,boa服務(wù)器在收到請(qǐng)求時(shí),不啟動(dòng)多個(gè)服務(wù)進(jìn)程處理多個(gè)請(qǐng)求,在一個(gè)進(jìn)程內(nèi)處理所有服務(wù)請(qǐng)求。對(duì)于CGI程序,將生成新的進(jìn)程來(lái)處理,考慮到嵌入式系統(tǒng)自身資源有限,和家庭網(wǎng)關(guān)的進(jìn)程數(shù)量有限,系統(tǒng)選擇了在mCLinux系統(tǒng)中的boa服務(wù)器。

由于目前的mCLinux還不支持ASP、PHP等動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),所以在mCLinux下通過(guò)CGI2技術(shù)連接WEB頁(yè)和本地程序,提供動(dòng)態(tài)和交互的特性。

配置boa服務(wù)器

CGI程序不是放在服務(wù)器上就能順利運(yùn)行,如果要想使其在服務(wù)器上順利的運(yùn)行并準(zhǔn)確的處理用戶的請(qǐng)求,則須對(duì)所使用的服務(wù)器進(jìn)行必要的設(shè)置。

boa的配置文件boa。conf:在boa。conf中對(duì)boa進(jìn)行了配置,這些配置多使用默認(rèn)值,本系統(tǒng)中將DocumentRoot指定的WEB服務(wù)器的根修改為/boas。
在對(duì)內(nèi)核進(jìn)行配置時(shí),選擇boa程序和cgi。

將cgi_generic文件夾下的cgi。c和makefile覆蓋到程序包中的/usr/cgi_generic/。將boa文件夾下的hash。c覆蓋到程序包中的/usr/boa/src。將rc文件覆蓋到程序包中的/vendor/Miectek/4510。

本系統(tǒng)中的mCLinux系統(tǒng)中的文件使用的是ROMFS和運(yùn)行于RAM的EXT2。為了可通過(guò)FTP等工具更新網(wǎng)頁(yè),Src文件在/boas下創(chuàng)建文件夾cgi_bin,然后將index。html,boa。conf和mine。type復(fù)制到/boas下,將CGI程序復(fù)制到/boas/cgi_bin下。至此建立了boa運(yùn)行的基本環(huán)境,使用“>boa-C/boas/&”命令就可以運(yùn)行boa。

家庭網(wǎng)關(guān)設(shè)計(jì)

在嵌入式網(wǎng)關(guān)的設(shè)計(jì)中,網(wǎng)關(guān)程序與家庭網(wǎng)絡(luò)的HTTP服務(wù)器和家庭網(wǎng)絡(luò)內(nèi)部服務(wù)器位于同一物理設(shè)備(基于S3C4510的硬件平臺(tái))之上,負(fù)責(zé)連接HTTP服務(wù)器與后臺(tái)數(shù)據(jù)庫(kù),完成HTTP服務(wù)器與HomeNetServer之間的信息交互。

圖3家庭網(wǎng)關(guān)軟件結(jié)構(gòu)框圖

家庭網(wǎng)關(guān)的軟件結(jié)構(gòu)如圖3所示。根據(jù)功能描述,網(wǎng)關(guān)應(yīng)能提供遠(yuǎn)程監(jiān)視、遠(yuǎn)程控制、遠(yuǎn)程維護(hù)功能。網(wǎng)關(guān)內(nèi)部工作流程如下:

*若客戶發(fā)送的HTTP請(qǐng)求,經(jīng)過(guò)HTTP服務(wù)器接收和解析后,得知要求的是設(shè)備狀態(tài)信息時(shí),HTTP服務(wù)器從存儲(chǔ)設(shè)備狀態(tài)信息的靜態(tài)文件中取出設(shè)備狀態(tài),并封裝為HTTP響應(yīng)消息發(fā)送回客戶端。

*若客戶發(fā)送的HTTP請(qǐng)求,經(jīng)過(guò)接收和解析后,得知請(qǐng)求的消息是對(duì)設(shè)備的設(shè)置(操作),則通CGI函數(shù)將消息內(nèi)容轉(zhuǎn)換為家庭網(wǎng)絡(luò)協(xié)議傳遞給家庭網(wǎng)絡(luò)服務(wù)器,由家庭網(wǎng)絡(luò)服務(wù)器對(duì)家庭內(nèi)部設(shè)備的管理和控制,并將處理結(jié)果以消息形式傳遞給CGI函數(shù),并封裝為HTTP響應(yīng)消息的形式,發(fā)送回客戶端。

*若客戶發(fā)送的HTTP請(qǐng)求,經(jīng)過(guò)接收和解析后,得知請(qǐng)求的頁(yè)面是提供實(shí)時(shí)視頻服務(wù)時(shí),HTTP服務(wù)器將調(diào)用CGI函數(shù)向視頻數(shù)據(jù)處理模塊發(fā)送消息,通過(guò)視頻數(shù)據(jù)處理模塊來(lái)控制視頻壓縮卡完成視頻數(shù)據(jù)的采集、壓縮和發(fā)送等功能。

*若客戶發(fā)送的HTTP請(qǐng)求,經(jīng)過(guò)接收和解析后,得知請(qǐng)求的消息包含對(duì)云臺(tái)設(shè)備及鏡頭的控制命令時(shí),HTTP服務(wù)器通過(guò)CGI函數(shù)向云鏡解碼器直接發(fā)送控制指令以實(shí)現(xiàn)對(duì)云臺(tái)和鏡頭的控制。

實(shí)時(shí)視頻傳輸設(shè)計(jì)

基于HTTP的boa服務(wù)器負(fù)責(zé)接收和響應(yīng)客戶端的HTTP請(qǐng)求,當(dāng)請(qǐng)求的是視頻信息時(shí),此請(qǐng)求通過(guò)CGI函數(shù)向視頻數(shù)據(jù)處理模塊發(fā)送消息,從而向視頻設(shè)備發(fā)送事件以允許實(shí)時(shí)視頻發(fā)送任務(wù)進(jìn)入運(yùn)行隊(duì)列。

視頻數(shù)據(jù)處理模塊主要包括視頻圖像的實(shí)時(shí)捕捉(借助MPEG-4視頻壓縮卡完成)、動(dòng)態(tài)存儲(chǔ)和實(shí)時(shí)播放,實(shí)時(shí)播放可以和實(shí)時(shí)捕捉存儲(chǔ)同時(shí)進(jìn)行。
初始化視頻壓縮卡:
M878Object*pObject=NULL;
For(inti=0;i
{pObject=newM878Object(i,m_strDisk+m_strVideoDir);
If(!pObjectGetDataFormFile())
pObject->InitData();
m_obArray。Add(pObject);
}

數(shù)據(jù)采集:

for(i=0;i
{
OpenDev(i);//打開(kāi)指定卡號(hào)的設(shè)備,分配相應(yīng)系統(tǒng)資源
pObject=(M878Object*)m_obArray[i];
OutMpegBuff(i,OnMpeg4Write);//采集視頻數(shù)據(jù)流
RegisterViSaveExceptionProc(i,(ViSaveErrCallBack)ViErrCallBack);
pObject->SetParamToDevice();//設(shè)定參數(shù)
}

停止設(shè)備:
當(dāng)不再使用設(shè)備時(shí),調(diào)用ViUnInit()關(guān)閉視頻壓縮采集卡并卸載系統(tǒng)資源。
數(shù)據(jù)發(fā)送模塊:
OutMpegBuff(i,OnMpeg4Write);
VoidCALLBACKOnMpge4Write(DWORDdwCard,BYTE*pbuff,DWORDdwSize,
BOOLisKeyFrom)
{
if(dwCard>=g_dwDevice)
return;
g_VStrmInfo[dwCard]+=dwSize/26;
MTAWriteVideo((BYTE)dwCard,pbuff,(LONG)dwSize,isKeyFrm)
}

發(fā)送模塊負(fù)責(zé)向地址表中的地址發(fā)送經(jīng)過(guò)編碼處理的實(shí)時(shí)視頻數(shù)據(jù),并修改地址表中的信息。地址表用來(lái)保存請(qǐng)求實(shí)時(shí)視頻服務(wù)的用戶的IP地址,視頻發(fā)送任務(wù)根據(jù)地址表中的地址來(lái)發(fā)送視頻包。

數(shù)據(jù)接收模塊主要完成視頻數(shù)據(jù)的接收、解碼和顯示工作。用戶通過(guò)瀏覽器實(shí)現(xiàn)對(duì)遠(yuǎn)程設(shè)備的監(jiān)控,服務(wù)器返回的信息通過(guò)瀏覽器顯示。瀏覽器可以使用微軟公司的InternetExploer或Netscape公司的NetscapeNavigator等。對(duì)于普通的文本及HTML文件支持的GIF、JPEG等格式的圖片,普通瀏覽器都可以顯示。但對(duì)于實(shí)時(shí)視頻數(shù)據(jù),由于與HTTP鏈接不同,不是使用流套接字而是使用數(shù)據(jù)報(bào)套接字接收,然后還需解碼和顯示,這些工作瀏覽器都無(wú)法完成。為使用戶能通過(guò)瀏覽器觀看視頻,本系統(tǒng)采用在WEB頁(yè)面中嵌入ActiveX控件,由ActiveX控件完成視頻數(shù)據(jù)的接收、解碼和顯示工作。而ActiveXInternet技術(shù)的一個(gè)重要方面是安全的下載和安裝ActiveX控件和需要的支持文件。MicrosoftInternetExplore通過(guò)在HTML文檔中使用InternetComponentDownload方法自動(dòng)下載并安裝ActiveX控件完成客戶端控件的嵌入和注冊(cè)。

在WEB服務(wù)器的HTML文件中嵌入ActiveX屬性,針對(duì)客戶端使用最多的IE瀏覽器,HTML代碼可使用MFCControl控件。

控件編寫(xiě)完成后,需要在客戶端注冊(cè),關(guān)于控件的信息記錄在注冊(cè)表中??蛻舳藦姆?wù)器端接收到嵌有控件的HTML頁(yè)面后,將根據(jù)OBJECT標(biāo)簽中的信息通過(guò)注冊(cè)表使用對(duì)應(yīng)的空間完成接收,解碼和顯示。

遠(yuǎn)程控制設(shè)計(jì)

在遠(yuǎn)程控制部分設(shè)計(jì)中,根據(jù)性能最優(yōu)化和實(shí)時(shí)性考慮,將控制部分分為兩部分:云臺(tái)控制部分,主要是通過(guò)串口進(jìn)行通信;信息家電遠(yuǎn)程控制,通過(guò)內(nèi)部家庭網(wǎng)絡(luò)協(xié)議對(duì)相應(yīng)設(shè)備進(jìn)行控制,控制信號(hào)的物理載體是家庭網(wǎng)絡(luò)內(nèi)部總線。由于篇幅有限,以下只介紹圖4所示云臺(tái)控制模塊。

圖4云臺(tái)控制系統(tǒng)硬件連接框圖

該模塊是個(gè)相對(duì)獨(dú)立的模塊,負(fù)責(zé)控制云臺(tái)的上下左右旋轉(zhuǎn)以及鏡頭的焦距和光圈的調(diào)整。當(dāng)服務(wù)器接受到的請(qǐng)求中含有對(duì)云臺(tái)設(shè)備以及鏡頭的控制命令時(shí),將通過(guò)CGI函數(shù)向云臺(tái)解碼器發(fā)送控制指令以實(shí)現(xiàn)對(duì)云臺(tái)和鏡頭的控制。在室內(nèi),采用CDA2000解碼器直接通過(guò)RS-232串行口與嵌入式網(wǎng)關(guān)通信,云臺(tái)控制電壓~24V、~220V可選,鏡頭控制電壓可在5V-12V之間無(wú)級(jí)調(diào)節(jié)。

在云鏡控制模塊中,解碼器起著核心的作用,設(shè)計(jì)云鏡控制模塊主要解決的問(wèn)題是將各項(xiàng)操作如上下旋轉(zhuǎn),鏡頭調(diào)焦等操作進(jìn)行編碼,但本系統(tǒng)采用的解碼器封裝了底層硬件程序的編寫(xiě),因此所做的工作是利用解碼器開(kāi)發(fā)商提供的協(xié)議,通過(guò)RS232串行口向解碼器發(fā)送指令。

Linux對(duì)串口的操作是通過(guò)設(shè)備文件進(jìn)行訪問(wèn)的,只需打開(kāi)相應(yīng)的串口文件,然后通過(guò)調(diào)用設(shè)備相關(guān)函數(shù)來(lái)打開(kāi)串口(open()),設(shè)置串口參數(shù)(tcgetattr(),cfsetispeed(),cfsetospeed()),設(shè)置輸入輸出模式(options。c_Iflag和options。c_Oflag),恢復(fù)串口屬性,關(guān)閉串口(close())等即可。

結(jié)語(yǔ)

本系統(tǒng)的特點(diǎn)是基于嵌入式微處理器有限的系統(tǒng)資源之上,為客戶提供視頻服務(wù)。本系統(tǒng)采用的是“boa服務(wù)器+CGI+家庭網(wǎng)絡(luò)服務(wù)器”的模式來(lái)實(shí)現(xiàn)對(duì)信息家電的控制。以及采用了“boa服務(wù)器+CGI+視頻接收和控制模塊(視頻服務(wù)器)”的模式實(shí)現(xiàn)對(duì)視頻數(shù)據(jù)的捕獲、采集、發(fā)送等操作,并通過(guò)串行口通信方式對(duì)云臺(tái)和鏡頭進(jìn)行直接的控制,視頻的接收問(wèn)題一直以來(lái)是研究的重點(diǎn),本系統(tǒng)采用在WEB頁(yè)面中嵌入ActiveX控件的方式,由ActiveX控件完成視頻數(shù)據(jù)的接收、解碼和顯示工作。這樣做的好處是,不需對(duì)客戶端做任何設(shè)置,就可以完成控件的自動(dòng)下載和視頻文件的實(shí)時(shí)播放。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉