當(dāng)前位置:首頁 > 模擬 > 模擬
[導(dǎo)讀]摘要:介紹了一種基于uClinux的實(shí)時(shí)網(wǎng)絡(luò)監(jiān)控服務(wù)器開發(fā)方法,該服務(wù)器能對實(shí)時(shí)對遠(yuǎn)程網(wǎng)絡(luò)終端、監(jiān)控?cái)z像頭等進(jìn)行控制管理和數(shù)據(jù)訪問。將其應(yīng)用到大型網(wǎng)絡(luò)監(jiān)控系統(tǒng)中,用戶可訪問由多臺服務(wù)器組成的分布式網(wǎng)絡(luò)監(jiān)控服務(wù)

摘要:介紹了一種基于uClinux的實(shí)時(shí)網(wǎng)絡(luò)監(jiān)控服務(wù)器開發(fā)方法,該服務(wù)器能對實(shí)時(shí)對遠(yuǎn)程網(wǎng)絡(luò)終端、監(jiān)控?cái)z像頭等進(jìn)行控制管理和數(shù)據(jù)訪問。將其應(yīng)用到大型網(wǎng)絡(luò)監(jiān)控系統(tǒng)中,用戶可訪問由多臺服務(wù)器組成的分布式網(wǎng)絡(luò)監(jiān)控服務(wù)器集群,實(shí)時(shí)讀取數(shù)據(jù)然后將其存寫到大容量存儲設(shè)備中,增加并發(fā)式連接的用戶數(shù)量,提高遠(yuǎn)程實(shí)時(shí)網(wǎng)絡(luò)監(jiān)控系統(tǒng)穩(wěn)定性和可靠性。

關(guān)鍵詞:uClinux;實(shí)時(shí);網(wǎng)絡(luò)監(jiān)控;分布式;并發(fā)

網(wǎng)絡(luò)監(jiān)控服務(wù)器在網(wǎng)絡(luò)監(jiān)控系統(tǒng)中負(fù)責(zé)數(shù)據(jù)的采集、壓縮及發(fā)送,是系統(tǒng)中不可或缺的后臺設(shè)備。常用的工作模式是將監(jiān)控服務(wù)器作為獨(dú)立設(shè)備,直接與終端用戶交互,用戶通過播放器直接從監(jiān)控服務(wù)器獲取數(shù)據(jù)及修改配置參數(shù),每個(gè)服務(wù)器所能承的用戶數(shù)較少,不能滿足多用戶并發(fā)控制服務(wù)。而在大型網(wǎng)絡(luò)監(jiān)控系統(tǒng)應(yīng)用中,多個(gè)監(jiān)控服務(wù)器簡單疊加而成的服務(wù)器組,并將它們組成分布式網(wǎng)絡(luò)服務(wù)器集群,增加可以同時(shí)服務(wù)的用戶數(shù),提高遠(yuǎn)程實(shí)時(shí)網(wǎng)絡(luò)監(jiān)控系統(tǒng)穩(wěn)定性和可靠性,并對用戶的訪問權(quán)限進(jìn)行管理與控制。本用戶可以通過分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng)管理被監(jiān)控對象。獲取權(quán)限訪問網(wǎng)絡(luò)監(jiān)控服務(wù)器讀取數(shù)據(jù),并將其存寫到大容量存儲設(shè)設(shè)備或系統(tǒng)中。

1 總體設(shè)計(jì)

網(wǎng)絡(luò)監(jiān)控服務(wù)器采用Motorola ColdFire5272作為核心微處理器,它具有66 MHz的時(shí)鐘速度,內(nèi)部集成了2個(gè)串口控制器和一個(gè)以太網(wǎng)控制器??焖僖蕴W(wǎng)媒體存取控制(MA C),支持100Mbps MII,10Mbps MII和10Mbps7線實(shí)際接口符合USB1.1標(biāo)準(zhǔn),可操作內(nèi)外收發(fā)器的設(shè)備控制器(devicecontroller)。時(shí)分多工(TDM)控制器,可使產(chǎn)品以物理級水平與外部編碼、ISDN收發(fā)器以及其它使用GCI(General Circuit Interface)或IDLI(Inter Chip Digital Link)串行接口協(xié)議的外圍設(shè)備連接。多信道HDLC軟件模塊QSPI模塊,提供帶有序列傳輸性能的串行外圍接口用于控制應(yīng)用的脈沖寬度調(diào)制(PWM) 單元。同時(shí)還提供許多嵌入式應(yīng)用產(chǎn)品所共有的外圍產(chǎn)品,如SDRAM控制器、DMA、計(jì)時(shí)器、UART、芯片選擇、通用I/0、片上存儲以及 ColdFire除錯(cuò)模塊,所有這些都采取高效節(jié)省的方式,減少系統(tǒng)成本、加速系統(tǒng)設(shè)計(jì)。Linux是一個(gè)免費(fèi)開源、微內(nèi)核的操作系統(tǒng),支持?jǐn)?shù)十種MPU 及其硬件平臺,對TCP/IP協(xié)議支持最完備,可提供穩(wěn)定可靠的數(shù)據(jù)處理與網(wǎng)絡(luò)通信服務(wù)。uCLinux是一種優(yōu)秀的嵌入式Linux版本,它專門針對微控制領(lǐng)域而設(shè)計(jì),廣泛應(yīng)用于服務(wù)器領(lǐng)域。本項(xiàng)目設(shè)計(jì)的多媒體服務(wù)器在嵌入式Linux操作系統(tǒng)上開發(fā)與運(yùn)行,設(shè)計(jì)出來的程序代碼具有良好的可復(fù)用性。與其他操作系統(tǒng)平臺上的同類設(shè)備相比,在以后二次開發(fā)及成本價(jià)格上都極具競爭力。多媒體服務(wù)器的功能模塊結(jié)構(gòu),如圖1所示。

2 功能實(shí)現(xiàn)

網(wǎng)絡(luò)監(jiān)控服務(wù)器根據(jù)用戶的配置以Pull和Push兩種方式發(fā)布數(shù)據(jù)。用戶在數(shù)據(jù)發(fā)送過程中修改參數(shù),需要和配置服務(wù)通信來獲取參數(shù)修改的標(biāo)志。網(wǎng)絡(luò)監(jiān)控服務(wù)器與客戶端每次建立多個(gè)會(huì)話連接。為了增加程序的可讀性、可移植性,根據(jù)數(shù)據(jù)的流向?qū)⒄麄€(gè)軟件分為3層,分別是驅(qū)動(dòng)層、數(shù)據(jù)封裝層和網(wǎng)絡(luò)發(fā)送層。

2. 1 驅(qū)動(dòng)層

驅(qū)動(dòng)層負(fù)責(zé)管理壓縮電路,配置壓縮參數(shù),啟停壓縮,包括用戶層和底層硬件的通信。驅(qū)動(dòng)層的數(shù)據(jù)管理使用循環(huán)隊(duì)列,重復(fù)使用相同的空間,隊(duì)列的長度是可以改變的,初始讀寫指針都指在0位置,當(dāng)隊(duì)列長度改變時(shí),放棄所有未用數(shù)據(jù),指針重新指向0。當(dāng)讀指針遇上寫指針時(shí),說明隊(duì)列空,此時(shí),掛起讀進(jìn)程,直到有數(shù)據(jù)時(shí)再在中斷的低半層喚醒它。內(nèi)核數(shù)據(jù)和用戶數(shù)據(jù)之間的傳送通過mmap系統(tǒng)調(diào)用,由用戶層申請內(nèi)存空間映射到內(nèi)核中。驅(qū)動(dòng)層主要有4個(gè)重要的子模塊:初始模塊,命令處理模塊,中斷響應(yīng)模塊,數(shù)據(jù)傳輸模塊。

1)初始模塊注冊字符設(shè)備;映射IME6400地址空間,設(shè)置相應(yīng)的片選寄存器的數(shù)值,時(shí)序;注冊中斷響應(yīng)函數(shù);初始化數(shù)據(jù)結(jié)構(gòu)。

2)命令處理模塊置位IME6400設(shè)備,在程序第一次使用設(shè)備的時(shí)候使用,或者需要更新firmware的時(shí)候先置位一下。實(shí)現(xiàn)以下主要命令:

3)中斷響應(yīng)模塊從IME6400的FIFO寄存器中讀取1024字節(jié)的流數(shù)據(jù)。依次填入循環(huán)緩沖隊(duì)列,移動(dòng)寫指針;管理緩沖隊(duì)列,如果有足夠的數(shù)據(jù),喚醒讀進(jìn)程。

4)數(shù)據(jù)傳輸模塊如果有足夠的數(shù)據(jù)則讀取數(shù)據(jù),移動(dòng)讀指針。否則讀進(jìn)程掛起,等待喚醒。

為了增加驅(qū)動(dòng)程序的可用性,在底層驅(qū)動(dòng)的基礎(chǔ)上增加一個(gè)用戶驅(qū)動(dòng)層,把對驅(qū)動(dòng)程序的調(diào)用封裝成一個(gè)個(gè)獨(dú)立的函數(shù),這樣可以增加程序的可讀性和獨(dú)立性。用戶層驅(qū)動(dòng)還有一個(gè)重要的功能就是管理用戶數(shù)據(jù)緩存區(qū),從內(nèi)存出來的數(shù)據(jù)經(jīng)過處理按幀為單位形成一個(gè)數(shù)據(jù)幀隊(duì)列,每個(gè)通道一個(gè)隊(duì)列。數(shù)據(jù)幀隊(duì)列的長度是可配置,數(shù)據(jù)發(fā)送太慢的時(shí)候,應(yīng)該有相應(yīng)的刪除多余幀的方法。包括刪除一個(gè)序列的p幀、刪除最早的I幀和相應(yīng)的p幀序列、只保留音頻幀。所采用的方法由網(wǎng)絡(luò)發(fā)送情況決定,當(dāng)網(wǎng)絡(luò)狀況差的時(shí)候,只發(fā)送音頻數(shù)據(jù)。

2.2 數(shù)據(jù)封裝層

數(shù)據(jù)封裝層負(fù)責(zé)將從驅(qū)動(dòng)層采集到的數(shù)據(jù)進(jìn)行格式封裝,管理等待數(shù)據(jù)隊(duì)列,填充數(shù)據(jù)包頭,根據(jù)網(wǎng)絡(luò)情況丟棄部分?jǐn)?shù)據(jù)。實(shí)現(xiàn)的方法有單線程和多線程兩種。

1)單線程的方法

單線程實(shí)現(xiàn)比較簡單。主體的過程是一樣的,可以把數(shù)據(jù)采集和分析封裝都放在一個(gè)循環(huán)中,每一次循環(huán)都做一次數(shù)據(jù)采集、封裝和發(fā)送,這樣任何一個(gè)層都應(yīng)該是不阻塞的。但是這種方式的缺點(diǎn)是,任何一步都不能阻塞,實(shí)際上封裝發(fā)送都是需要一定時(shí)間的,這樣采集數(shù)據(jù)就不會(huì)很及時(shí),效率不夠高。程序模塊劃不清晰,一個(gè)小改動(dòng)都會(huì)導(dǎo)致其他部分的較大修改,不利于模塊化設(shè)計(jì)、修改和移植。

2)多線程的方法

在主程序中建立兩個(gè)線程:User Driver Thread和DataPactct Thread。UserDriverThread運(yùn)行在用戶驅(qū)動(dòng)層,負(fù)責(zé)收集數(shù)據(jù),管理等待隊(duì)列。DataPactctThread運(yùn)行在數(shù)據(jù)封裝層,從等待隊(duì)列中取出的數(shù)據(jù)經(jīng)過解析以后封裝后發(fā)送出去。這2個(gè)相鄰上下層線程之間相互通信過程,如圖2所示。在線程DataPactctThread中,數(shù)據(jù)分析器對象主要處理兩個(gè)對象,一個(gè)是屬于用戶驅(qū)動(dòng)層的數(shù)據(jù)隊(duì)列,另外一個(gè)是發(fā)送層的發(fā)送器對象。實(shí)際上封裝層的任務(wù)就是把隊(duì)列中的數(shù)據(jù)去出來,分析以后填充包頭信息,交給下一層的發(fā)送層,數(shù)據(jù)根據(jù)不同對象分開發(fā)送,在發(fā)送層中采用不同的發(fā)送策略。

2.3 數(shù)據(jù)發(fā)送層

網(wǎng)絡(luò)數(shù)據(jù)發(fā)送層根據(jù)用戶的設(shè)置將封裝層的數(shù)據(jù)包發(fā)送到中心服務(wù)器,其發(fā)送過程,如圖3所示。在這層解決3個(gè)問題:用戶隊(duì)列管理、非阻塞發(fā)送、鏈路狀態(tài)監(jiān)測。

1)用戶隊(duì)列管理對于PULL方式,需要有對用戶等待隊(duì)列的管理。這種方式相對簡單,只需根據(jù)配置將數(shù)據(jù)發(fā)送到中心服務(wù)器或者發(fā)給本地瀏覽的用戶。在PULL發(fā)布方式時(shí),同時(shí)支持多個(gè)用戶的在線瀏覽,這樣必須對用戶隊(duì)列進(jìn)行管理,在播放器中有一個(gè)KEEP ALIVE機(jī)制,當(dāng)5秒鐘沒有受到播放器的保持?jǐn)?shù)據(jù)包,就認(rèn)為用戶已經(jīng)離開,為了實(shí)現(xiàn)這樣一個(gè)機(jī)制,在等待隊(duì)列中的每一個(gè)用戶設(shè)置一個(gè)Count屬性,當(dāng)達(dá)到一定數(shù)值的時(shí)候,將用戶刪除。

2)非阻塞發(fā)送在單線程中任何一個(gè)操作阻塞都會(huì)對其他操作造成問題,特別是在網(wǎng)絡(luò)發(fā)送時(shí),無論是使用TCP還是UDP都要使用非阻塞的操作。特別是使用TCP傳送的時(shí)

候,除了設(shè)置套接字的非延遲屬性之外,還要實(shí)現(xiàn)非阻塞連接。

3)鏈路狀態(tài)監(jiān)測為了適應(yīng)比較惡劣的網(wǎng)絡(luò)狀況,在用戶驅(qū)動(dòng)層應(yīng)該實(shí)現(xiàn)一定的丟包策略,發(fā)送層必須把統(tǒng)計(jì)的網(wǎng)絡(luò)狀況傳遞給用戶驅(qū)動(dòng)層。網(wǎng)絡(luò)鏈路出現(xiàn)輕度阻塞時(shí),要丟棄最近的P幀序列,網(wǎng)絡(luò)狀況正常的時(shí)候再恢復(fù);嚴(yán)重阻塞時(shí)只發(fā)送音頻幀。

3 系統(tǒng)應(yīng)用構(gòu)建

將網(wǎng)絡(luò)監(jiān)控服務(wù)器部署在分布式網(wǎng)絡(luò)監(jiān)控應(yīng)用系統(tǒng)中,如圖4所示,用戶通過分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng)實(shí)時(shí)訪問被監(jiān)測對象,對數(shù)據(jù)進(jìn)行分發(fā)和控制管理,獲取實(shí)時(shí)數(shù)據(jù),并存寫進(jìn)存儲服務(wù)器。經(jīng)實(shí)驗(yàn)測試,在此多用戶分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng)應(yīng)用測試環(huán)境中,該服務(wù)器能實(shí)現(xiàn)7×24小時(shí)穩(wěn)定可靠運(yùn)行,相比以往使用非實(shí)時(shí)非并發(fā)的網(wǎng)絡(luò)監(jiān)控服務(wù)器,提高了網(wǎng)絡(luò)監(jiān)控系統(tǒng)整體性能。

4 結(jié)束語

將本設(shè)計(jì)網(wǎng)絡(luò)監(jiān)控服務(wù)器應(yīng)用于分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng),網(wǎng)絡(luò)攝像頭通過該系統(tǒng)監(jiān)控被管對象,對數(shù)據(jù)進(jìn)行分發(fā)和控制管理,還可將這些數(shù)據(jù)寫入存儲服務(wù)器,供用戶以后調(diào)取。將設(shè)備部署于擁有用龐大分支機(jī)構(gòu)的機(jī)關(guān)事業(yè)單位及大中型企業(yè)的網(wǎng)絡(luò)監(jiān)控系統(tǒng)中運(yùn)行測試,在多用戶網(wǎng)絡(luò)監(jiān)控系統(tǒng)中,該設(shè)備在分布式實(shí)時(shí)網(wǎng)絡(luò)監(jiān)控系統(tǒng)中運(yùn)行穩(wěn)定可靠,提高了網(wǎng)絡(luò)監(jiān)控系統(tǒng)整體性能。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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