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

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于千兆網(wǎng)接口攝像機設計

          基于千兆網(wǎng)接口攝像機設計

          作者: 時間:2009-12-24 來源:網(wǎng)絡 收藏
          3.2圖像數(shù)據(jù)的封包

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

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

          case(param_num)
          ‘d0:w_dd=‘hFFFF;//目的MAC地址(廣播地址),寫三次
          ‘d3:w_dd=‘h1111;//源MAC地址,均為0x1111,寫三次
          ‘d6:w_dd=‘h0008;//協(xié)議號
          ‘d7:w_dd=‘h0045;//固定數(shù)據(jù)VIP4,
          ‘d8:w_dd=‘h1E04;//IP包總長度1026+28,并且高低8位交換
          ‘d9:w_dd=‘h0;//ID號,始終為0
          ‘d10:w_dd=‘h0;//fragmentoffset始終為0;
          ‘d11:w_dd=‘h1140;//生存期和協(xié)議號,固定
          ‘d12:w_dd=‘h0;//IP校驗和,由MAC芯片自動生成
          ‘d13:w_dd=‘hA8C0;//源IP,固定為192.168.1.204
          ‘d14:w_dd=‘hCC01;
          ‘d15:w_dd=‘hFFFF;//目的IP,任意
          ‘d16:w_dd=‘hFFFF;
          ‘d17:w_dd=‘h7017;//源端口,固定為6000
          ‘d18:w_dd=‘h7017;//目的端口,固定為6000
          ‘d19:w_dd=‘h0A04;//UDP數(shù)據(jù)長度
          ‘d20:w_dd=‘h0;////校驗和由AX88180自動生成
          ‘d21:w_dd=row_num;//圖像行信息從0開開始
          default:w_dd=w_dd;
          endcase

          3.3應用程序設計

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

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

          BOOLInitWpcap(){
          pcap_if_t*alldevs;
          pcap_if_t*d;
          charerrbuf[PCAP_ERRBUF_SIZE];
          if(pcap_findalldevs(alldevs,errbuf)==-1){
          AfxMessageBox(“Errorinpcap_findalldevs”);
          returnFALSE;}
          //枚舉網(wǎng)卡然后添加到用戶選擇的ComboBox中,代碼省略
          char*filter=port6000;//只接收端口6000的數(shù)據(jù)
          bpf_u_int32NetMask=0xFFFFFF;
          structbpf_programfcode;
          if(pcap_compile(m_pcap,fcode,filter,1,NetMask)0){
          AfxMessageBox(nErrorcompilingfilter:wrongsyntax);
          pcap_close(m_pcap);returnFALSE;}
          if(pcap_setfilter(m_pcap,fcode)0){
          AfxMessageBox(nErrorsettingthefiltern);
          pcap_close(m_pcap);returnFALSE;}
          pcap_freealldevs(alldevs);//釋放alldev資源
          returnTRUE;}

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

          UINTRecvProc(LPVOIDlpParammeter)
          {pcap_loop(m_pcap,0,packet_handler,NULL);return0;}
          packet_handler是處理收到數(shù)據(jù)包的回調(diào)函數(shù),當從port6000收到數(shù)據(jù)后它會被調(diào)用,直到線程終止。

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

          voidpacket_handler(u_char*param,conststructpcap_pkthdr*header,constu_char*pkt_data){
          constu_char*real_data=pkt_data+42;
          introw=real_data[0]+(real_data[1]8);}//這里就沒有處理包頭,直接處理數(shù)據(jù)。

          4總結(jié)

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


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();