基於UDP協議的網路攝像頭的設計與實現

2021-06-21 01:33:16 字數 1579 閱讀 4911

硬體平台:diy_de2

軟體平台:quartus ii 9.0 + nios ii 9.0 + visual studio 2008

圖1 系統整體框圖

採用博文「de2_tv例程的幾點說明」中分析的例程。

該部分為了盡快驗證網路攝像頭的可行性,採用了有失真壓縮的方式,即隔一行採集一行,隔一列採集一列,並使用rgb555格式,最終的解析度降低到320*240。

(3)匯流排切換

(4)網路傳輸

採用的是udp協議,在博文「diy_de2之dm9000a網絡卡除錯系列例程(二)——dm9000a測試、自收發、實現udp」中有提及,在nios ii端完成,執行記憶體為sdram。

(5)pc顯示

頂層檔案採用原理圖的形式,如圖2所示。

圖2 頂層檔案

另外,下面是幾個需要注意的問題:

(1)鎖相環

(2)nios ii處理器

採用nios ii/f最高效能的處理器,並關掉二級快取功能,初始化向量設為cfi,異常向量設為sdram0。

(3)nios ii端的兩個pio

(4)時序約束是採用的timequest工具。

nios ii部分主要實現兩個功能:讀取快取在sram中的影象資料和通過udp協議傳輸。而這兩個功能的實現均是在中斷服務函式中實現。一些關鍵**如下:

//讀快取中的資料

for(j = 0;j < 76800;j++)

//再次將其置高,往sram裡面寫資料

iowr(pio_1_base,0,1

);

//第一包資料全為0,作為一幀影象開始訊號

for(i = 0;i < 1;i++)

transmitpacket(snd,

1510); //

send repetitively 1468 bytes of data.

}

//接下來的105包資料為有效的影象資料

for(i = 1;i < 106;i++)

transmitpacket(snd,

1510); //

send repetitively 1468 bytes of data.

}

注:網路傳輸部分無論傳送還是接收,都是先傳輸低位,再傳輸高位。

注意:系統初始化的ip部分,應正確填寫de2和pc的ip,並使其在同一網段中。

圖3 c#介面

vga顯示結果和pc端顯示結果分別如圖所示。

圖4 vga顯示效果

圖5 c#端顯示效果

基於UDP協議的網路攝像頭的關鍵問題解決及除錯過程

該篇博文主要對 基於udp協議的網路攝像頭的設計與實現 除錯過程遇到的問題進行說明,並闡述其解決過程。硬體平台 diy de2 軟體平台 quartus ii 9.0 nios ii 9.0 visual studio 2008 圖1 初始 上圖是初步搭建完成的網路攝像頭 的 1 有一半的色彩未完全...

基於TCP協議的網路攝像頭的設計與實現

基於tcp協議的網路攝像頭的設計與實現 基於tcp協議的網路攝像頭的設計大部分和博文 基於udp協議的網路攝像頭的設計與實現 相同,本篇博文採用的tcp協議棧為nichestack協議棧 同理,可使用lwip協議棧實現 協議分析及上位機設計可參考博文 基於nichestack協議棧的網路例程分析及客...

基於TCP協議的網路攝像頭的設計與實現

基於tcp協議的網路攝像頭的設計大部分和博文 基於udp協議的網路攝像頭的設計與實現 相同,本篇博文採用的tcp協議棧為nichestack協議棧 同理,可使用lwip協議棧實現 協議分析及上位機設計可參考博文 基於nichestack協議棧的網路例程分析及客戶端程式設計 二 實驗平台 硬體平台 d...