<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于RS-485總線(xiàn)的計(jì)算機(jī)視頻監(jiān)控系統(tǒng)設(shè)計(jì)

          基于RS-485總線(xiàn)的計(jì)算機(jī)視頻監(jiān)控系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2011-09-23 來(lái)源:網(wǎng)絡(luò) 收藏
            縱觀(guān)視頻監(jiān)控技術(shù)的發(fā)展歷史,它主要經(jīng)歷了三代:第一代,傳統(tǒng)模擬視頻監(jiān)控系統(tǒng);第二代,基于硬盤(pán)錄像機(jī)的視頻監(jiān)視系統(tǒng);第三代,基于信源壓縮的數(shù)字視頻監(jiān)控系統(tǒng)。目前,第一代系統(tǒng)已經(jīng)占主導(dǎo)地位,第二代系統(tǒng)剛切入市場(chǎng),而第三代系統(tǒng)還處在剛剛起步的階段。本文介紹的視頻監(jiān)控系統(tǒng)使用便攜式圖像壓縮終端,在攝象機(jī)的視頻輸出端對(duì)圖像信號(hào)進(jìn)行采集、變換和編碼,用一對(duì)雙絞線(xiàn)按標(biāo)準(zhǔn)將壓縮后的圖像數(shù)傳送給上位機(jī)。這樣只要使用一根電纜就能構(gòu)成一個(gè)64~128點(diǎn)的局域網(wǎng),不但布線(xiàn)簡(jiǎn)單,而且傳輸速率高達(dá)1Mbps,遠(yuǎn)遠(yuǎn)超過(guò)電話(huà)網(wǎng)的傳輸速率。

            采用平衡發(fā)送和差分接收方式實(shí)現(xiàn)通信:發(fā)送端將串行口的TTL電平信號(hào)轉(zhuǎn)換成差分信號(hào)A,B兩路輸出,經(jīng)過(guò)線(xiàn)纜傳輸之后在接收端將差分信號(hào)還原成TTL電平信號(hào)。由于傳輸線(xiàn)通常使用雙絞線(xiàn),又是差分傳輸,所以又極強(qiáng)的抗共模干擾的能力,總線(xiàn)收發(fā)器靈敏度很高,可以檢測(cè)到低至200mV電壓。故傳輸信號(hào)在千米之外都是可以恢復(fù)。最大的通信距離約為1219M,最大傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達(dá)到最大的通信距離,如果需傳輸更長(zhǎng)的距離,需要加485中繼器。RS-485采用半雙工工作方式,支持多點(diǎn)數(shù)據(jù)通信。RS-485總線(xiàn)網(wǎng)絡(luò)拓?fù)湟话悴捎媒K端匹配的總線(xiàn)型結(jié)構(gòu)。即采用一條總線(xiàn)將各個(gè)節(jié)點(diǎn)串接起來(lái),不支持環(huán)形或星型網(wǎng)絡(luò)。如果需要使用星型結(jié)構(gòu),就必須使用485中繼器或者485集線(xiàn)器才可以。RS-485總線(xiàn)總線(xiàn)一般最大支持32個(gè)節(jié)點(diǎn),如果使用特制的485芯片,可以達(dá)到128個(gè)或者256個(gè)節(jié)點(diǎn),最大的可以支持到400個(gè)節(jié)點(diǎn)。

            1 視頻監(jiān)控系統(tǒng)的組成

            本監(jiān)控系統(tǒng)的一臺(tái)主機(jī)和多臺(tái)從機(jī)組成,如圖1所示。主機(jī)為工控機(jī),內(nèi)含高速RS-485通信卡,主要完成監(jiān)控系統(tǒng)的控制、管理和圖像數(shù)據(jù)的后期處理等任務(wù)。從機(jī)為便攜式圖像壓縮終端,該終端以TI公司的TMS320VC5402數(shù)字信號(hào)處理器為核心,擴(kuò)展一些外圍器件組成一個(gè)獨(dú)立的視頻圖像壓縮和傳輸設(shè)備,主要完成視頻圖像的實(shí)時(shí)采集、變換編碼和傳輸控制。主機(jī)與從機(jī)之間通過(guò)RS-485總線(xiàn)進(jìn)行通信。主要啟動(dòng)并控制網(wǎng)上每一次通信,每個(gè)從機(jī)有一個(gè)唯一的地址,只有被尋址的從機(jī)響應(yīng)主機(jī)的命令并向主機(jī)發(fā)回信息幀。當(dāng)從機(jī)數(shù)量超過(guò)64個(gè)或與主機(jī)距離超過(guò)120m時(shí),應(yīng)在網(wǎng)絡(luò)上加裝中繼器以保證通信速率達(dá)到1Mbps。

            2 便攜式圖像壓縮終端簡(jiǎn)介

            壓縮終端是本系統(tǒng)的關(guān)鍵部件,組成框圖如圖2所示。它以TMS320VC5402 DSP為處理器,擴(kuò)展了視頻器、行場(chǎng)分離電路、幀緩沖器、程序存儲(chǔ)器、串行通信接口芯片和RS-485總線(xiàn)接口芯片。

            2.1 TMS320VC5402 DSP簡(jiǎn)介

            TMS320VC5402 DSP(以下簡(jiǎn)稱(chēng)C5402)是TI公司生產(chǎn)的新一代定點(diǎn)DSP芯片,C5402是C5000系列中性?xún)r(jià)比較高的一顆芯片。獨(dú)特的6總線(xiàn)哈佛結(jié)構(gòu),使其能夠6條流水線(xiàn)同時(shí)工作,工作頻率達(dá)到100MHz。VC5402除了使用VC54x系列中常用的通用I/O口(GeneralPurposeI/O,簡(jiǎn)稱(chēng)GPIO)外,還為用戶(hù)提供了多個(gè)可選的GPIO:HPI-8和McBSP。

            C5402主要特點(diǎn)有 :

           ?。?)操作速率達(dá)1 0 0MIPS ;

           ?。?)具有先進(jìn)的多總線(xiàn)結(jié)構(gòu) (1條程序總線(xiàn)、3條數(shù)據(jù)總線(xiàn)和 4條地址總線(xiàn) ) ;

           ?。?) 40位算術(shù)邏輯運(yùn)算單元 (ALU) ,包括 1個(gè) 40位桶形移位寄存器和 2個(gè)獨(dú)立的 40位累加器 ;

           ?。?)17位 17位并行乘法器與 40位專(zhuān)用加法器相連,用于非流水式單周期乘法 /累加 (MAC)運(yùn)算 ;

            (5)雙地址生成器 ,包括 8個(gè)輔助寄存器和 2個(gè)輔助寄存器算術(shù)運(yùn)算單元 (ARAU) ;

           ?。?)數(shù)據(jù) /程序?qū)ぶ房臻g 1M 1 6bit,內(nèi)存 4K 1 6bitROM和 1 6K 1 6bit雙存取RAM ;

           ?。?)內(nèi)置可編程等待狀態(tài)發(fā)生器、鎖相環(huán) (PLL)時(shí)鐘發(fā)生器、2個(gè)多通道緩沖串行口、1個(gè) 8位并行與外部處理器通信的HPI口、2個(gè) 1 6位定時(shí)器以及 6通道DMA控制器 ;

           ?。?)低功耗 ,工作電源 3 . 3V和1 .8V(內(nèi)核 ) 。

            2.2 視頻采集電路

            視頻圖像信號(hào)采集由視頻緩沖器、高速A/D轉(zhuǎn)換器和行、場(chǎng)同步分離電路組成。A/D轉(zhuǎn)換器采用TI公司的TLV5510芯片,TLV5510為8bit、10Msps的高速并行A/D轉(zhuǎn)換器,本電路中將TLV5510作為C5402的一個(gè)擴(kuò)展的并行輸入口,C5402的R/W信號(hào)作為轉(zhuǎn)換時(shí)鐘信號(hào),讀該端口時(shí)啟動(dòng)A/D轉(zhuǎn)換。行、場(chǎng)同步分離電路輸出行同步信號(hào)、垂直同步信號(hào)和奇、偶場(chǎng)信號(hào)作為C5402的外部中斷輸入信號(hào)。C5402采用中斷響應(yīng)方式采集一幀圖像的奇場(chǎng)數(shù)據(jù)和偶場(chǎng)數(shù)據(jù)。

            2.3 存儲(chǔ)器配置

            480KB的幀緩沖器用來(lái)存放原始圖像數(shù)據(jù)和壓縮后的圖像數(shù)據(jù),32KB的FlashROM用來(lái)存放應(yīng)用程序,二者都映射到C5402的外部數(shù)據(jù)空間。由于C5402的數(shù)據(jù)空間僅為64KW,因此采用內(nèi)存頁(yè)擴(kuò)展技術(shù),將外部數(shù)據(jù)空間擴(kuò)展為16頁(yè),每頁(yè)32KB。使用C5402的一個(gè)擴(kuò)展輸出口作為擴(kuò)展內(nèi)存的頁(yè)選擇信號(hào),分別選擇0~16頁(yè),并且將C5402的A15腳與擴(kuò)展靜態(tài)RAM的使能端相連,當(dāng)A15=0時(shí)選擇片內(nèi)RAM,當(dāng)A15=1時(shí)選擇片外RAM。因此本系統(tǒng)的數(shù)據(jù)存儲(chǔ)器配置如下:

            

            系統(tǒng)硬件復(fù)位時(shí),頁(yè)選擇信號(hào)被自動(dòng)清零,F(xiàn)lashROM映射到數(shù)據(jù)空間,C5402將FlashROM中的應(yīng)用程序加載到片內(nèi)DARAM中。

            2.4 數(shù)據(jù)傳輸電路

            數(shù)據(jù)傳輸使用了TI公司的異步串行收發(fā)器TL16C550和MAXIM公司的MAX3485E。TL16C550含16bit的FIFO,通信速率達(dá)1Mbps。MAX3485E是半雙工RS-485總線(xiàn)接口芯片,傳輸速率達(dá)12Mbps,傳輸距離達(dá)4000英尺。

            2.5 軟件實(shí)現(xiàn)

            C54x DSP集成開(kāi)發(fā)工具支持C語(yǔ)言和匯編語(yǔ)言編程,為了提高代碼執(zhí)行效率,滿(mǎn)足圖像實(shí)時(shí)壓縮和傳輸?shù)男枰?,采用匯編語(yǔ)言編程。主程序可分成以下幾個(gè)部分:

           ?。?)初始化C5402,接受上位機(jī)的命令幀,做好采集圖像的準(zhǔn)備工作;

           ?。?)開(kāi)放奇場(chǎng)中斷(INT1),關(guān)閉偶場(chǎng)中斷(INT2)和行中斷(INT3);

           ?。?)當(dāng)奇場(chǎng)同步信號(hào)到來(lái)時(shí),C5402進(jìn)入奇場(chǎng)中斷服務(wù)子程序,開(kāi)放行中斷做好采集奇場(chǎng)數(shù)據(jù)的準(zhǔn)備。當(dāng)行同步信號(hào)以來(lái)時(shí),C5402進(jìn)入行中斷服務(wù)子程序,連續(xù)采集一行圖像數(shù)據(jù)。當(dāng)各行圖像數(shù)據(jù)采集完畢后,關(guān)閉行中斷;

           ?。?)當(dāng)偶場(chǎng)同步信號(hào)到來(lái)時(shí),C5402進(jìn)入偶場(chǎng)中斷服務(wù)子程序,開(kāi)放行中斷做好采集偶場(chǎng)數(shù)據(jù)的準(zhǔn)備。當(dāng)行同步信號(hào)到來(lái)時(shí),C5402進(jìn)入行中斷服務(wù)子程序,連續(xù)采集一行圖像數(shù)據(jù)。當(dāng)各行圖像數(shù)據(jù)采集完畢后,關(guān)閉行中斷和奇、偶場(chǎng)中斷;

            (5)將圖像數(shù)據(jù)分成一系列的8×8塊,先對(duì)第一個(gè)數(shù)據(jù)塊進(jìn)行DCT變換、量化、Huffman編碼,然后開(kāi)放串行口中斷(INT0),將壓縮后的圖像數(shù)據(jù)發(fā)送給上位機(jī)。重復(fù)執(zhí)行這個(gè)編碼和傳輸過(guò)程,直到全部圖像數(shù)據(jù)處理結(jié)束。最后關(guān)閉串行發(fā)送中斷,開(kāi)始下一幀圖像的處理。

            3 通信軟件設(shè)計(jì)

            本系統(tǒng)為主從式監(jiān)控系統(tǒng),由主機(jī)啟動(dòng)并控制網(wǎng)上的每一次通信。主機(jī)先向從機(jī)下達(dá)采集圖像的命令,然后接收從機(jī)傳來(lái)的壓縮圖像數(shù)據(jù)。從機(jī)接受主機(jī)的命令,按命令要求調(diào)整攝象機(jī)的焦距和鏡頭方向、修改圖像大小和采樣速率,最后進(jìn)行圖像采集、壓縮和傳輸。要完成這些功能就必須定義嚴(yán)格的網(wǎng)絡(luò)通信協(xié)議。

            3.1 網(wǎng)絡(luò)通信協(xié)議

            本網(wǎng)絡(luò)為專(zhuān)用系統(tǒng),要求通信速率達(dá)到1Mbps,故采用電路交換方式。網(wǎng)上傳輸?shù)男畔H為兩種形式之一:命令幀或信息幀。

            主機(jī)發(fā)往從機(jī)的命令幀由八個(gè)字節(jié)組成,如表1所示。地址為要訪(fǎng)問(wèn)的從機(jī)地址、有效地址為0~255;焦距為攝象機(jī)的焦距編碼;方向?yàn)閿z象機(jī)鏡頭的方向編碼;大小為圖像的大小編碼;速度為圖像采樣率編碼;控制為現(xiàn)場(chǎng)控制設(shè)備或報(bào)警器控制命令編碼;校驗(yàn)-命令幀結(jié)束和校驗(yàn)標(biāo)志。

            表1 命令幀格式

          地址焦距方向大小速率控制校驗(yàn)

            從機(jī)發(fā)往主機(jī)垢信息幀如表2所示。地址為從機(jī)地址;狀態(tài)-攝象機(jī)焦距和鏡頭方向調(diào)整機(jī)構(gòu)及其它控制設(shè)備的狀態(tài)編碼;數(shù)據(jù)為圖像壓縮碼流;校驗(yàn)為信息幀校驗(yàn)和結(jié)束標(biāo)志。地址、狀態(tài)、校驗(yàn)均為一個(gè)字節(jié),數(shù)據(jù)長(zhǎng)度可變。

            表2 信息幀格式

          地址狀態(tài)數(shù)據(jù)校驗(yàn)

            3.2 從機(jī)通信程序設(shè)計(jì)

            從機(jī)通信流程如圖3所示。壓縮終端上電復(fù)位后打開(kāi)串行口中斷,RS-485接口芯片處于接收狀態(tài)。一旦接到主機(jī)的命令幀,壓縮終端便按命令幀的要求調(diào)整焦距、鏡頭方向和其他控制設(shè)備的狀態(tài),然后進(jìn)行圖像的采集和壓縮編碼,同時(shí)檢測(cè)總線(xiàn)的狀態(tài)。若總線(xiàn)上沒(méi)有講者則將壓縮碼流發(fā)往主機(jī),總線(xiàn)被占用直到一幀信息幀全部發(fā)送完畢。為了提高圖像的處理效率,壓縮和傳輸并行進(jìn)行。

            3.3 主機(jī)通信程序設(shè)計(jì)

            主機(jī)通信流程控制如圖4所示。正常情況下,主機(jī)對(duì)全部或部分現(xiàn)場(chǎng)進(jìn)行輪流監(jiān)控,各壓縮終端送來(lái)的壓縮數(shù)據(jù)被分別保存起來(lái),同時(shí)經(jīng)解壓縮后顯示在計(jì)算機(jī)屏幕上。一旦發(fā)生異常情況,主機(jī)自動(dòng)對(duì)異常現(xiàn)場(chǎng)進(jìn)行單獨(dú)監(jiān)控。主機(jī)在向壓縮終端發(fā)命令幀之間檢測(cè)總線(xiàn)的狀態(tài),若總線(xiàn)上沒(méi)有講者則將命令幀發(fā)往壓縮終端,然后將RS-485接口置于接收狀態(tài),等待壓縮終端發(fā)送信息幀。為了保證命令幀的可靠性,命令幀被連續(xù)發(fā)送三次。

            本系統(tǒng)使用TMS320VC5402 DSP和RS-485總線(xiàn)實(shí)現(xiàn)了靜止圖像的實(shí)時(shí)壓縮和高速傳輸。采用標(biāo)準(zhǔn)JPEG壓縮算法,每秒鐘可壓縮并傳輸5幀512×512×8的灰度圖像,性?xún)r(jià)比極高,適用于無(wú)人倉(cāng)庫(kù)、超級(jí)市場(chǎng)、交通道口、井下工程、列車(chē)車(chē)箱等的監(jiān)控管理。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();