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

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計應(yīng)用 > 基于AM-209M芯片的視頻16畫面分割器

          基于AM-209M芯片的視頻16畫面分割器

          作者: 時間:2006-01-10 來源:網(wǎng)絡(luò) 收藏
          摘要:介紹了的16器的系統(tǒng)組成。給出了通過AT89C55單片機(jī)對16路輸入進(jìn)行實時監(jiān)控的各部分設(shè)計方案,同時給出了硬件組成和軟件實現(xiàn)程序。

          關(guān)鍵詞: 16器 AT89C55

          目前,在電視臺、銀行、商場、倉庫等場所常常需要對多路信號進(jìn)行實時監(jiān)測、處理。而畫面器正好可將多路視頻信號合成顯示在一個畫面上,是視頻監(jiān)測系統(tǒng)的核心部分。

          本文介紹的的視頻多畫面分割器具有以下特點(diǎn):

          可同時監(jiān)測16路視頻信號;

          具有多畫面和畫中畫、畫外畫顯示功能;

          具有畫面盲檢測功能;

          具有時間、位圖及字幕顯示功能;

          可以通過按鍵現(xiàn)場控制,也可以通過遠(yuǎn)程RS-485接口來進(jìn)行控制;

          可以隨時更新和保存系統(tǒng)配置,可改變系統(tǒng)功能和技術(shù)參數(shù);

          系統(tǒng)穩(wěn)定可靠,實時處理,對掉電、死機(jī)等異?,F(xiàn)象具有復(fù)位功能。

          整個系統(tǒng)包括硬件和軟件兩部分,其中硬件包括編碼、數(shù)字視頻處理、解碼和單片機(jī)控制等。

          1 系統(tǒng)組成

          16畫面分割器由16路視頻解碼、多畫面處理、視頻編碼以及AT89C55系統(tǒng)控制、人機(jī)接口等部分組成。圖1所示是一個16畫面分割器的組成框圖。圖中,視頻輸入1~16是系統(tǒng)的復(fù)合視頻輸入信號(CVBS)或分離視頻S-VIDEO信號,這些信號通過視頻解碼器SAA7113(A/D)可轉(zhuǎn)換成標(biāo)準(zhǔn)的CCIR656 YUV 4:2:2格式數(shù)據(jù)。視頻多畫面處理器AM-209M主要用來對視頻解碼器SAA7113的輸出信號進(jìn)行混合處理,并將處理后的信號送入視頻編碼器SAA7121(D/A),以將其還原成視頻模擬信號CVBS送顯示器輸出。

          2 視頻信號處理

          2.1 視頻編碼

          SAA7113數(shù)字視頻解碼器用來把復(fù)合視頻輸入信號CVBS或分離視頻信號S-VIDEO解碼成標(biāo)準(zhǔn)ITU 656 YUV 4:2:2格式的8位數(shù)據(jù),SAA7113支持NTSC、PAL制式,可自動監(jiān)測50Hz、60Hz場頻信號,并可在PAL制式和NTSC制式下自動轉(zhuǎn)換。內(nèi)部有亮度、色調(diào)、色飽和度控制電路,并提供有I2C總線接口,本系統(tǒng)通過I2C總線配置SAA7113。

          系統(tǒng)由16片SAA7113組成16路視頻輸入通道。并將AT89C55單片機(jī)的P1[0:7]分別連接到16片SAA7113的SDA引腳,每個IO線連接兩個SAA7113(SAA7113芯片有兩個I2C總器件地址,當(dāng)26腳懸空時,地址為0x48;當(dāng)26腳通過一個3.3kΩ電阻上拉到3.3V時,器件地址為0x4A)。解碼數(shù)據(jù)輸出端VPO[7:0]接在視頻畫面分割芯片AM-209M的Camera_n_vdin [7:0]數(shù)據(jù)線上,n∈(1,2...,8),同時將通道1~8解調(diào)數(shù)據(jù)輸出接在主片(master)上,通道9~16解碼數(shù)據(jù)輸出接在從片(slave)上。

          2.2 多畫面處理芯片AM-209M

          AM-209M是一種帶有記錄、運(yùn)動檢測和回放等功能的多畫面實時處理芯片,其主要特點(diǎn)如下:

          支持CCIR 656YUV 4:2:2編解碼數(shù)據(jù)格式;

          支持多畫面、畫中畫、畫外畫處理模式;

          字符、位圖可編程顯示;

          支持NTSC、PAL、SECAM視頻信號;

          單芯片可進(jìn)行9通道畫面實時顯示(30楨/秒),兩芯片可連接16通道畫面并實現(xiàn)實時顯示(30楨/秒);

          兩個獨(dú)立數(shù)據(jù)輸出通道:監(jiān)視和記錄道;

          有畫面物體移動檢測功能;

          外部字體可通過嵌入式字體RAM(64字符)進(jìn)行編程;

          監(jiān)視輸入盲檢測功能;

          通道信息的存取和控制通過8位并行數(shù)據(jù)接口來實現(xiàn)。

          AT89C55單片機(jī)通過并口向AM-209M發(fā)送控制命令,以改變當(dāng)前的輸出狀態(tài)。AM-209M芯片有2個16Mbit SDRAM芯片接口,一個用做顯示數(shù)據(jù)緩存,一個用做記錄緩存。同時芯片內(nèi)部還有SDRAM讀寫操作控制邏輯,因而無需外部控制。有兩個編碼芯片接口,每個芯片接口都包含8個數(shù)據(jù)線和1位clock信號線,輸出則是多個視頻輸入混合處理后的CCIR 656格式數(shù)據(jù)。其內(nèi)部結(jié)構(gòu)框圖如圖2所示。

          b.兩片AM-209M的主從式結(jié)構(gòu)

          當(dāng)用AM-209M實現(xiàn)16畫面分割器時,可用兩芯片組成16個輸入通道以構(gòu)成主從式結(jié)構(gòu),主片的slave管腳接地,從片的slave管腳接VCC,主片的記錄通道信號線rec_vdout[7:0]連接到從片監(jiān)視信號線mon_vdout[7:0],主片1的監(jiān)視輸出通道m(xù)on_vdout[7:0]作為視頻畫面分割器的監(jiān)視輸出,從片的記錄輸出通道rec_vdout[7:0]作為分割器的記錄輸出。主從芯片的運(yùn)動檢測信號motion_intr可以共同連接到AT89C55單片機(jī)的P3.2腳以作為外部中斷INT0輸入。場同步中斷信號mpout則可共同連接到P3.3以作為外部中斷INT1輸入。其它信號線的連接方法見圖3所示。兩片AM-208M最多可組成16個畫面。速度為30幀/秒,基本能滿足實時播放要求。

          2.3 視頻編碼

          SAA7121是視頻編碼芯片,主要功能是把標(biāo)準(zhǔn)YCbCr(CCIR 656)或者M(jìn)PEG格式數(shù)據(jù)編碼成復(fù)合視頻輸入信號(CVBS)或分離視頻信號S-VIDEO。SAA7121支持NTSC-M、PAL B/G和子標(biāo)準(zhǔn),并具有Y、C和CVBS三個信號的數(shù)模轉(zhuǎn)換器?;揪幋a函數(shù)由副載波生成、彩色調(diào)制和同步信號內(nèi)插組成。SAA7121提供有I2C總線接口,可按主動方式或從動方式工作。本系統(tǒng)通道I2C接口來對SAA7121進(jìn)行配置。

          3 單片機(jī)控制電路

          基于單片機(jī)的控制電路如圖4所示。該電路主要完成以下功能:與PC機(jī)串行通信 以完成命令和數(shù)據(jù)傳輸;通過8位并行接口讀寫AM-209M;通過I2C總線讀寫SAA7113和SAA7121;保存、更新系統(tǒng)配置數(shù)據(jù);通過鍵控功能及鍵盤命令切換系統(tǒng)的當(dāng)前狀態(tài)。

          本系統(tǒng)所選用的AT89C55是Atmel公司的8位CMOS單片機(jī),該芯片與MCS-51系列單片機(jī)兼容,并帶20K字節(jié)的片內(nèi)Flash程序存儲器和256字節(jié)的內(nèi)部數(shù)據(jù)存儲器及三個16位定時器。

          系統(tǒng)接口電路主要由MAX488(RS-485收發(fā)器)構(gòu)成。因此RS-485標(biāo)準(zhǔn)不僅與RS-232兼容,而且適合遠(yuǎn)距離數(shù)據(jù)傳輸。

          系統(tǒng)鍵盤有8個按鍵,通過串行移位74LS164芯片與AT89C55單片機(jī)相連。P2.4是按鍵LED指示信號,P2.5是74LS164串行移位時鐘信號,P2.6是鍵盤輸出信號,P2.7是鍵盤輸入判斷信號。系統(tǒng)初始化時,P2.4為1,LED處于熄滅狀態(tài),P2.5、P2.6都為0,QA-QH為0狀態(tài),此時P2.7的輸入狀態(tài)為1。系統(tǒng)鍵控原理圖如圖5所示。

          圖5

          4 軟件設(shè)計

          根據(jù)單片機(jī)控制功能的要求,該系統(tǒng)軟件由主程序和串口中斷子程序兩部分組成,主程序流程圖如圖6所示。該軟件的編程重點(diǎn)是:視頻編解碼及畫面分割處理初始化;鍵控及菜單顯示程序;PC命令的判斷和執(zhí)行;更新系統(tǒng)配置及對數(shù)據(jù)的保存等。

          4.1 訪問AM-209M

          單片機(jī)AT89C55和AM-209M芯片的信號連接關(guān)系是:單片機(jī)的P0.0~P0.7和AM-209M的8位并行數(shù)據(jù)接口mdata[0:7]相連;P2.0和AM-209M片選信號相連;P2.1則連到寫使能信號線wren;P2.2連至地址使能信號線adem;P2.3和讀使能信號線rden相連;INT1和場同步中斷信號mpout相連。圖4給出了這些信號線的連接方法,下面給出的是對AM-209M的字節(jié)寫程序(并口控制的C程序):

          #define AM209_NOP(); _nop_();_nop_();

          #define MDATA_BUS P0 //AM-209M數(shù)據(jù)總線

          sbit MCSB_AM209=P2^0; //AM-209M片選

          sbit WREN_AM209=P2^1; //寫使能

          sbit ADEN_AM209=P2^2; //地址鎖存使能

          sbit RDEN_AM209=P2^3; //讀使能

          void Byte_wr_am209(unsigned char am209_addr,unsigned char am209_data)

          {

          EA=0;

          MDATA_BUS=0xff;

          ADEN_AM209=0;

          WREN_AM209=1;

          AM209_NOP();

          MCSB_AM209=0; //AM209M芯片使能

          MDATA_BUS=am209 addr; //發(fā)送地址

          AM209_NOP();

          ADEN_AM209=1;

          AM209_NOP();

          ADEN_AM209=0;

          AM209_NOP();

          MDTA_BUS=am209 data; //寫入數(shù)據(jù)

          AM209_NOP();

          WREN_AM209=0;

          AM209_NOP();

          WREN_AM209=1;

          AM209_NOP();

          MCSB_AM209=1;

          AM209_NOP();

          EA=1;

          }

          4.2 與PC的串行通信

          PC機(jī)與單片機(jī)通信的數(shù)據(jù)格式有視頻畫面命令格式和時間調(diào)整命令格式兩種。視頻畫面命令格式為:楨頭+命令字+命令地址+校驗和;時間調(diào)整命令數(shù)據(jù)格式為:楨頭+命令字+秒+分+時+日+星期+月+年+校驗和。所有數(shù)據(jù)均為十六進(jìn)制,其中時間顯示為24小時制,采用兩字節(jié)BCD碼。SUM為SUM字節(jié)之前所有字節(jié)的累加和,為單字節(jié),不計溢出。

          在單片機(jī)串口中斷子程序中,可根據(jù)接收到的命令長度來判斷是否接收到一個完整的命令格式。接收到一個完整命令格式則設(shè)置串口接收標(biāo)志為1。并根據(jù)這個標(biāo)志位進(jìn)入主程序中的PC命令處理程序,同時由接收到的命令號來識別PC發(fā)送的各種命令。如:視頻畫面命令格式中命令字如果是0X16,則在監(jiān)視器上顯示輸出16畫面。此外,依據(jù)接收到的校驗和可以判斷接收PC數(shù)據(jù)的正確性,防止對分割器的誤操作。該系統(tǒng)的波特率為9600bps,單片機(jī)的定時器2設(shè)定在自動重裝方式2。

          4.3 鍵控程序

          有鍵按下時,P2.7變?yōu)?。P2.6發(fā)送串行數(shù)據(jù)0XFE到74LS164,若此時P2.7輸入仍為0,則表示SW1鍵已按下(見圖5);否則0XFE左移1位(即0xFD),若P2.7輸入仍為0,則表示SW2鍵已按下;依此類推…,否則0XFE左移7位(即0X7F),若此時P2.7輸入為0,則表示SW8鍵按下。左讀取鍵值并釋放按鍵后,系統(tǒng)會點(diǎn)亮LED以指示鍵按下。例如,當(dāng)SW1按下再釋放后,P2.6發(fā)送數(shù)據(jù)0XFE,此時P2.4置為0,將點(diǎn)亮D501以指示SW1按下。鍵盤掃描子程序如下:

          //鍵盤掃描子程序,鍵值保存在key_value中

          sbit led_on=P2^4; //LED點(diǎn)亮使能,低有效

          sbit key_clk=P2^5; //串行移位時鐘

          sbit shift_data=P2^6; //移位數(shù)據(jù)輸入

          sbit scan_data=P2^7; //鍵掃描數(shù)據(jù)輸入

          void Key_read_service()

          {

          uchar temp,temp1,temp2;

          uchar i,j;

          Key_flag=0; //鍵標(biāo)志清零

          scandata=1;

          led_on=1; //關(guān)閉LED

          for(i=0;i8;i++) //74LS164并行輸出置為0

          {

          shift_data=0;

          _nop_();

          key_clk=0;

          _nop_();

          key_clk=1;

          }

          if(scandata= =0)

          { //有鍵按下

          temp=0xfe;

          for(j=0;j8;j++) //發(fā)送8個數(shù)據(jù)字節(jié)

          {

          temp1=temp;

          temp2=~temp;

          for=(i=0;i8;i++)//串行移位1個字節(jié)

          {

          if(temp1 0x80==0x80)

          shift_data=1;

          else

          shift_data=0;

          _nop_();

          key_clk=0;

          _nop_();

          key_clk=1;

          }

          delay_10ms();//延時10ms去抖

          if(scandata==0)//再次判斷是否按鍵?

          { //鍵有效

          key_value=temp2;//存儲值

          key_flag=1;//置鍵有效標(biāo)志位

          break;

          }

          temp2=temp21;//不是當(dāng)前鍵按下

          temp=~temp2; 按下,左移一位判斷下一個鍵

          }

          }

          }



          關(guān)鍵詞: 畫面 分割 視頻 芯片 AM-209M 基于

          評論


          相關(guān)推薦

          技術(shù)專區(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); })();