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

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 千兆網(wǎng)接口攝像機(jī)設(shè)計(jì)

          千兆網(wǎng)接口攝像機(jī)設(shè)計(jì)

          作者: 時間:2017-06-08 來源:網(wǎng)絡(luò) 收藏

          1 引 言

          本文引用地址:http://www.ex-cimer.com/article/201706/351307.htm

          隨著監(jiān)控系統(tǒng)在商用民用的日漸普及,監(jiān)控被廣泛應(yīng)用在各個領(lǐng)域,為社會治安保駕護(hù)航。視頻監(jiān)控廣泛應(yīng)用于居民住宅、樓盤別墅、商場店鋪、財務(wù)室。每個不同的應(yīng)用領(lǐng)域,需要有不同類型的監(jiān)控。傳統(tǒng)的監(jiān)控攝像機(jī)圖像分辨率低,難以滿足一些有特殊要求的應(yīng)用場合。利用網(wǎng)絡(luò)來實(shí)現(xiàn)對高分辨率高幀率視頻圖像傳輸是視頻監(jiān)控系統(tǒng)的一種重要思想。但百兆網(wǎng)傳輸帶寬不足、數(shù)據(jù)傳輸速度太慢嚴(yán)重制約了其在監(jiān)控領(lǐng)域的應(yīng)用。針對這一問題,本文提出了基于千兆以太網(wǎng)傳輸視頻圖像并充分利用了并行處理和SDRAM高速緩存的優(yōu)勢,提高了視頻圖像的傳輸速度。

          2 硬件總體設(shè)計(jì)

          硬件總體框架如上圖,主控制器選用altera公司高性價比芯片EP2C20F256C6N。系統(tǒng)工作頻率為100M。圖像傳感器的數(shù)據(jù)首先在FIFO里緩沖后暫存于SDRAM,在網(wǎng)絡(luò)空閑時將暫存的圖像數(shù)據(jù)經(jīng)FIFO2緩沖后送MAC芯片,再發(fā)送到網(wǎng)絡(luò)上。


          CMOS芯片選用Micron Technology的MT9P031,在500萬像素的滿分辨率下最高可輸出14幀的圖像數(shù)據(jù)。 SDRAM選用W982516BH-75,容量為32Mbytes,g與內(nèi)部FIFO結(jié)合可設(shè)計(jì)為32Mbytes的大容量循環(huán)緩存,在圖像分辨率為300萬像素時可緩存10幀以上圖像數(shù)據(jù)。接口MAC芯片選用AX88180,物理層芯片選用88E1111,再通過網(wǎng)絡(luò)變壓器及RJ45用六類網(wǎng)線與計(jì)算機(jī)卡相連。

          3 接口設(shè)計(jì)

          AX88180是亞信公司推出的一款高性能低成本的Non-PCI千兆以太網(wǎng)控制器,適用于多種需要高速接入網(wǎng)絡(luò)的嵌入式系統(tǒng),如消費(fèi)電子和家庭網(wǎng)絡(luò)等。AX88180內(nèi)置10/100/1000 Mb/s以太網(wǎng)媒體存取控制器(MAC),符合IEEE 802.3/IEEE 802.3u/IEEE 802.3ab協(xié)議,可與一般16/32位微控制器連接,其操作與SRAM相同。AX88180內(nèi)置10/100/1000 Mb/s以太網(wǎng)媒體存取控制器(MAC),與PHY之間采用RGMII接口;內(nèi)置主機(jī)接口控制器,可以與16/32位主機(jī)方便連接尋址方式與SRAM相同;內(nèi)置40 KB SRAM網(wǎng)絡(luò)封包緩存器,其中32 KB用于從PHY接收數(shù)據(jù)包,KB用于主機(jī)發(fā)送數(shù)據(jù)包到PHY,可以用高效方式進(jìn)行封包的存儲、檢索與修改;內(nèi)置256字節(jié)的配置寄存器,用于主機(jī)控制和參數(shù)設(shè)置;內(nèi)置EEP-ROM接口;內(nèi)置IP/TCP/UDP 校驗(yàn)和大大減小微控制器的運(yùn)算負(fù)載,改善傳輸反應(yīng)時間。圖2為AX88180及PHY芯片88E1111的連接圖。



          3.1 千兆網(wǎng)接口初始化

          對千兆網(wǎng)接口的初始非常重要,如果初始化不正確,系統(tǒng)將無法正常工作。對接口的初始化主要包括對AX88180和88E1111的初始化。

          代碼用verilog語言完成。具體代碼可參考亞信公司的驅(qū)動程序代碼,應(yīng)注意初始化時需要加入一些固定的延時以確定芯片正常工作。

          3.2 圖像數(shù)據(jù)的封包

          當(dāng)圖像的分辨率為2048×1536時,一個UDP數(shù)據(jù)包包含1024字節(jié)的圖像數(shù)據(jù)和兩個bytes圖像行編號。當(dāng)計(jì)算機(jī)收到數(shù)據(jù)包時,根據(jù)圖像行編號信息放入對應(yīng)的內(nèi)存中,可以很方便的組合成一副完整的圖像。并且,采用行編號的形式,還可防止某一兩個數(shù)據(jù)包丟失后導(dǎo)致整副圖像都無法顯示的問題。以下這FPGA寫入AX88180的UDP包頭代碼。

          case(param_num)

          ‘d0: w_dd ‘d3: w_dd ‘d6: w_dd ‘d7: w_dd ‘d8: w_dd ‘d9: w_dd ‘d10:w_dd ‘d11:w_dd ‘d12:w_dd ‘d13:w_dd ‘d14:w_dd ‘d15:w_dd ‘d16:w_dd ‘d17:w_dd ‘d18:w_dd ‘d19:w_dd ‘d20:w_dd ‘d21:w_dd default:w_dd endcase

          3.3 應(yīng)用程序設(shè)計(jì)

          由于大量數(shù)據(jù)在網(wǎng)絡(luò)上傳輸,用SOCKET的方式來獲圖像數(shù)據(jù)包已經(jīng)比較困難,丟包率會比較高。采用Winpcap來捕獲網(wǎng)絡(luò)上的數(shù)據(jù)包,可有效的減少丟包率。用Winpcap編寫程序需要安裝開發(fā)包及驅(qū)動程序。

          第一步,指定要通信的網(wǎng)卡設(shè)備并打開。

          BOOL InitWpcap(){

          pcap_if_t* alldevs;

          pcap_if_t* d;

          char errbuf[PCAP_ERRBUF_SIZE];

          if(pcap_findalldevs(alldevs, errbuf) == -1){

          AfxMessageBox(“Error in pcap_findalldevs”);

          return FALSE; }

          // 枚舉網(wǎng)卡然后添加到用戶選擇的ComboBox中,代碼省略

          char *filter = port 6000;//只接收端口6000的數(shù)據(jù)

          bpf_u_int32 NetMask = 0xFFFFFF;

          struct bpf_program fcode;

          if(pcap_compile(m_pcap, fcode, filter, 1, NetMask) AfxMessageBox(nError compiling filter: wrong syntax);

          pcap_close(m_pcap); return FALSE; }

          if(pcap_setfilter(m_pcap, fcode)AfxMessageBox(nError setting the filtern);

          pcap_close(m_pcap); return FALSE; }

          pcap_freealldevs(alldevs); // 釋放alldev資源

          return TRUE;}

          第二步:開啟一個線程接收數(shù)據(jù)。

          UINT RecvProc(LPVOID lpParammeter)

          { pcap_loop(m_pcap, 0, packet_handler, NULL); return 0;}

          packet_handler是處理收到數(shù)據(jù)包的回調(diào)函數(shù), 當(dāng)從port6000收到數(shù)據(jù)后它會被調(diào)用,直到線程終止。

          第三步:處理收到的數(shù)據(jù)

          void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data){

          const u_char *real_data = pkt_data+42;

          int row=real_data[0]+(real_data4 總結(jié)

          兆網(wǎng)接口攝像機(jī),網(wǎng)絡(luò)傳輸有效數(shù)據(jù)帶寬達(dá)400Mb/s以上,較好的解決了百兆網(wǎng)傳輸帶寬不足、數(shù)據(jù)傳輸速度慢的問題。傳輸300萬像素不進(jìn)行壓縮的原始圖像,幀率可達(dá)18幀/秒,視頻流暢清晰。計(jì)算機(jī)采用Winpcap捕獲圖像數(shù)據(jù),丟包率小于0.02%。




          關(guān)鍵詞: 千兆網(wǎng) 攝像機(jī) FPGA

          評論


          相關(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); })();