一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

關于UDP/IP協(xié)議棧的系統(tǒng)設計及注意事項

lhl545545 ? 來源:維庫電子市場網(wǎng) ? 作者:維庫電子市場網(wǎng) ? 2020-10-07 10:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA豐富的邏輯資源、充沛的I/O引腳以及較低的功耗,被廣泛應用于嵌入式系統(tǒng)和高速數(shù)據(jù)通信領域。現(xiàn)如今,各大FPGA生產(chǎn)廠商為方便用戶的設計和使用,提供了較多的、可利用的IP核資源,極大地減少了產(chǎn)品的開發(fā)周期和開發(fā)難度,從而使用戶得以更專注地構(gòu)思各種各樣創(chuàng)意且實用的功能,而不是把大量時間浪費在產(chǎn)品的調(diào)試和驗證中。

千兆以太網(wǎng)技術在工程上的應用是當前的研究熱點之一。相比于其他RS-232或RS-485等串口通信,千兆以太網(wǎng)更加普及和通用,可以直接與Internet上的其他終端相連;相比于百兆網(wǎng)絡,千兆以太網(wǎng)傳輸速度更快、傳輸距離更遠,再結(jié)合UDP/IP協(xié)議棧,可以更方便地與上位機進行通信。

本文結(jié)合FPGA和千兆以太網(wǎng)靈活與快速的優(yōu)勢,設計了一個多通道并支持不同格式的數(shù)據(jù)采集系統(tǒng)。為了更好地為上位機軟件所支持,搭建了一個簡單的UDP/IP數(shù)據(jù)通道來完成數(shù)據(jù)到上位機的高速傳輸。同時,為了克服UDP這類不可靠的、面向無連接的協(xié)議帶來的數(shù)據(jù)錯誤和缺失問題,使用一塊DDR2SDRAM芯片來緩存各通道數(shù)據(jù),在應用層制定了與上位機交互及丟包處理的通信協(xié)議,從而保證了采集數(shù)據(jù)到達上位機的可靠性。

1 系統(tǒng)總體結(jié)構(gòu)

系統(tǒng)的設計目標是為了讓不同通道、不同格式的數(shù)據(jù)都能通過同一個網(wǎng)絡通道被快速無誤地傳遞給上位機,由于設備與上位機運行狀態(tài)的不同,采集數(shù)據(jù)速率的變化,甚至網(wǎng)線質(zhì)量,使傳輸過程中的錯誤和丟包情況在所難免,所以需要有適當?shù)臋C制和存儲器緩存來保證傳輸?shù)目煽啃浴?/p>

關于UDP/IP協(xié)議棧的系統(tǒng)設計及注意事項

圖1所示即為本系統(tǒng)的總體結(jié)構(gòu),除了使用一塊DDR2 SDRAM芯片之外,網(wǎng)絡模型中物理層的功能由一塊PHY芯片來完成。目前一般PHY芯片均能兼容10Mbit·s-1、100Mbit·s-1、1 000 Mbit·s-13種速率的以太網(wǎng)傳輸,并向上層提供多種接口,如MII、GMII、RGMII和TBI接口等,對于上位機一側(cè)則直接是普通的RJ45網(wǎng)口插槽。物理層接收數(shù)據(jù)鏈路層的并行數(shù)據(jù),并將其轉(zhuǎn)換為原始的比特流;同時也將原始比特流轉(zhuǎn)化成并行數(shù)據(jù),提交給數(shù)據(jù)鏈路層。

2 FPGA模塊功能

FPGA模塊通過響應上位機的指令,完成數(shù)據(jù)采集、打包、傳輸、丟包重傳等工作。所有工作的基礎是MAC子層、網(wǎng)絡層、傳輸層等OSI參考模型各層協(xié)議的可靠實現(xiàn),每一層都按照標準接口向上一層提供特定服務,而把如何實現(xiàn)這些服務的細節(jié)對上一層加以屏蔽。

關于UDP/IP協(xié)議棧的系統(tǒng)設計及注意事項

圖2顯示了系統(tǒng)FPGA模塊的具體結(jié)構(gòu),以及各個子模塊之間的關系。為縮短設計周期,提高設計質(zhì)量,在模塊中分別調(diào)用了Altera公司現(xiàn)有的以太網(wǎng)控制器IP核和DDR2控制器IP核資源。

2.1 DDR2讀寫控制

若不考慮網(wǎng)絡中丟包的情況,數(shù)據(jù)一邊采集,一邊打包向上位機發(fā)送,是不需要外部存儲器來緩存的。但是在實際測試中發(fā)現(xiàn),目前普通配置的PC機無法承受千兆以太網(wǎng)的快速傳輸能力,丟包很常見,尤其是增加到多個通道時,設備向上位機的輸出能力加大,丟包率也立即隨之升高。所以,使用一片DDR2 SDRAM緩存各通道的數(shù)據(jù)是必要的。

設計中直接調(diào)用Altera公司提供的DDR2 SDRAM控制器,并選用一塊它可以驅(qū)動的芯片來提高工作效率。芯片可使用的緩存空間是要重點關注的。每個通道都要分配固定的緩存區(qū)域,所以要將有限的內(nèi)存空間作合理的劃分。如果是圖像數(shù)據(jù),單個通道至少要有緩存兩幀以上的空間。DDR2讀寫控制模塊直接調(diào)用DDR2 SDRAM控制器IP核,但由于該IP核提供給用戶端的接口使用不方便,需要按照其文檔上介紹的時序來進行突發(fā)式讀寫。

本模塊的功能主要是協(xié)調(diào)各通道采集數(shù)據(jù)的寫入和讀出。如圖3所示,寫操作時,各通道的數(shù)據(jù)首先用FPGA資源進行緩存,然后寫入控制狀態(tài)機通過輪詢的方式依次檢查各個通道已經(jīng)緩存的數(shù)據(jù)量,如果足夠突發(fā)寫,則將其寫入SDRAM芯片的相應通道塊中,然后再檢查下一通道;讀操作時,讀出控制狀態(tài)機也依次檢查各個通道寫入SDRAM芯片的數(shù)據(jù)量,如果足夠突發(fā)讀,則將其讀出,通過網(wǎng)絡發(fā)送出去。

關于UDP/IP協(xié)議棧的系統(tǒng)設計及注意事項

基于以上控制方式,設計對各通道的數(shù)據(jù)格式是不作限制,如圖1中所示,可以是PAL、Camera Link、VGA等各種格式的圖像或組合,只是在采集之前向上位機各個通道的數(shù)據(jù)信息。但需要說明的是,這些數(shù)據(jù)的帶寬總和理論上不應超過千兆以太網(wǎng)的傳輸速率,這是采用輪詢方式得以成功的前提。其實,如今普通PC機的處理能力遠遠不能達到這個限制,當速度到達100 Mbit·s-1時,上位機丟包就已經(jīng)很嚴重。如果是將采集的數(shù)據(jù)在上位機上顯示,多可能只有70~80 Mbit·s-1;如果還要將數(shù)據(jù)寫入硬盤,那數(shù)據(jù)率則會更低,除了配備一塊上好的硬盤之外,還需要在上位機軟件的優(yōu)化上多作努力。

2.2 以太網(wǎng)發(fā)送接收控制

本模塊的功能就是MAC子層、網(wǎng)絡層、傳輸層各層協(xié)議的具體實現(xiàn),這些子模塊作為數(shù)據(jù)傳輸?shù)耐ǖ?,需要具有一定的緩存和查錯能力,同時為了能擴展其他協(xié)議,還必須保持相互之間的獨立性。如圖4所示,硬件設備接收數(shù)據(jù)的過程就是以太網(wǎng)幀經(jīng)過每一層,去除各層的首部并核對校驗,獲得純粹的用戶數(shù)據(jù);發(fā)送數(shù)據(jù)的過程就是用戶數(shù)據(jù)每經(jīng)過一層,添加相應的首部和校驗,直到組成一個完整的以太網(wǎng)幀。

1)MAC子層的功能。設計中直接調(diào)用Altera公司提供的三速以太網(wǎng)控制器IP核實現(xiàn)MAC子層的功能,該IP核提供了統(tǒng)一的寄存器接口,用戶可以通過它來配置以太網(wǎng)幀長、源MAC地址、目的MAC地址和PHY地址等重要信息。如圖4所示,發(fā)送數(shù)據(jù)時,MAC模塊向數(shù)據(jù)幀添加以太網(wǎng)首部,并利用CRC算法添加32位的校驗碼;接收數(shù)據(jù)時,MAC模塊同樣要進行CRC校驗,對于不正確的數(shù)據(jù)幀要予以丟棄,用戶也可以通過配置寄存器決定是否將校驗位一并送至上一層。

(2)UDP/IP協(xié)議棧的實現(xiàn)。相對于TCP協(xié)議的三次握手,UDP和IP協(xié)議面向無連接的性質(zhì)使其在硬件上可以快速實現(xiàn),至于連接的建立完全可以在應用層實現(xiàn)。

如圖4所示,UDP和IP協(xié)議的功能在硬件上的實現(xiàn)有較多相同之處:對于上層發(fā)送的數(shù)據(jù)均需要添加相應的首部和校驗和;對于下層接收的數(shù)據(jù),檢驗校驗和,并去除首部,然后才能送到上一層;由于首部中有該數(shù)據(jù)包的長度區(qū)域,所以無論是發(fā)送和接收,都需要將數(shù)據(jù)包全部緩存,才能確定其長度大小,相當于一種“存儲-轉(zhuǎn)發(fā)”的機制。

當然,UDP協(xié)議與IP協(xié)議在實現(xiàn)時也有不同的地方,主要體現(xiàn)在校驗和的計算方法上。UDP協(xié)議的校驗和是將首部和數(shù)據(jù)一起校驗,而且這個首部不僅是8 Byte的UDP首部,還包括12Byte的偽首部。在UDP層計算校驗和還用到了IP層的地址,但這違背了網(wǎng)絡分層模型的理念。IP協(xié)議的校驗和只計算IP數(shù)據(jù)包的頭部,一般情況下只有固定的20 Byte。

2.3 應用層協(xié)議處理

不同通道采集的數(shù)據(jù)按照規(guī)定的數(shù)據(jù)包長度進行打包,然后再發(fā)送到上面的以太網(wǎng)控制模塊,需要專門的模塊進行組織和調(diào)度,并添加對應通道的標簽。同時,網(wǎng)絡中也不只是設備到上位機方向的采集數(shù)據(jù)包,也有反方向的用于控制的命令包:首先要考慮的問題是設備從何時開始采集數(shù)據(jù),何時停止采集,這都是要上位機發(fā)送命令來控制的;其次,對于丟失包的統(tǒng)計與處理,這一部分工作稍微有些困難,但無論是設備和上位機都可以完成,顯然交給上位機處理比較適宜,然后上位機向設備發(fā)送帶丟失包序號的短數(shù)據(jù)包,設備優(yōu)先從DDR2緩存中找到該丟失的數(shù)據(jù)包,發(fā)往上位機。

系統(tǒng)中完成這些功能的模塊相當于一個位于UDP/IP層之上的應用層協(xié)議,而這個協(xié)議的內(nèi)容是由系統(tǒng)設計者所規(guī)定的,但必須為FPGA開發(fā)人員和上位機軟件程序開發(fā)人員所共享,這樣在不同機器上的對應層就有了一個可以互相通信的對等體(Peer)。這樣制定應用層協(xié)議,不但增加了系統(tǒng)相關功能的保密性,還可以由開發(fā)人員自行裁剪應用層功能,靈活地協(xié)調(diào)軟硬件應該負責的細節(jié),敲定簡潔的實現(xiàn)方案。

3 上位機軟件的功能

由于本系統(tǒng)的硬件部分實現(xiàn)了UDP/IP協(xié)議棧的內(nèi)容,上位機軟件在開發(fā)時有了較多可利用的系統(tǒng)調(diào)用,主要是Socket(套接字)原語的使用。相對于硬件開發(fā)來說,軟件開發(fā)方便實現(xiàn)一些復雜的功能和計算,所以在系統(tǒng)構(gòu)想之初就刻意將一些較難實現(xiàn)的部分交由上位機軟件來處理,主要是圖像幀間隔的識別和重傳包的統(tǒng)計。

關于數(shù)據(jù)包重傳,硬件設備在傳送各個通道的圖像時,只選取一個合適的點開始采集圖像,而不負責在數(shù)據(jù)包中添加圖像幀的開始和結(jié)束等信息,因為這樣不僅偏離了多通道圖像和數(shù)據(jù)兼容的初衷,而且給FPGA程序的實現(xiàn)增加了困難,尤其是采集的數(shù)據(jù)要進出DDR2 SDRAM緩存,如果在這些純數(shù)據(jù)中添加額外的標志數(shù)據(jù),可能會打亂整個緩存區(qū)的布局。所以上位機只能根據(jù)接收的數(shù)據(jù)量來判斷各個圖像幀之間的間隔,然后無論顯示或存儲,都以幀為單位進行。

4 系統(tǒng)設計注意事項

4.1 ARP包的響應與抑制

上位機在向設備發(fā)送UDP數(shù)據(jù)包之前,可能會先發(fā)送一個ARP包,請求設備的MAC地址。所以在FPGA程序中要能響應該數(shù)據(jù)包,并發(fā)送ARP回復,否則設備與上位機將不能通信。得到設備的MAC地址后,上位機會暫時將其保存,建立一個ARP表項;一段時間后,ARP表老化,會再次向設備發(fā)送ARP請求。

為了能正確響應ARP請求和回復,必須要清楚ARP數(shù)據(jù)包的格式。如圖5所示,如果以太網(wǎng)幀“幀類型”區(qū)域的值為0x0806,則表示該幀后面的數(shù)據(jù)填充為一個ARP包。至于是ARP請求還是ARP回復,需要根據(jù)ARP首部的操作碼來辨別:操作碼為0x0001,則是ARP請求包;操作碼為0x0002,則是ARP回復包。ARP請求包填入一個廣播幀并發(fā)向網(wǎng)絡中的所有主機,所以其以太網(wǎng)目的地址為廣播幀地址0xffffffffffff,并且由于它的目標是請求目的主機的MAC地址,故圖中“接收方MAC地址”區(qū)域沒有確切值,可為任意6 Byte的填充;ARP回復包已經(jīng)得到了所需的MAC地址,但是要注意,此時的發(fā)送方和接收方已經(jīng)對調(diào),相應區(qū)域的填寫也應適當改變。

關于UDP/IP協(xié)議棧的系統(tǒng)設計及注意事項

以太網(wǎng)協(xié)議規(guī)定的短幀長為64Byte,這就要求其數(shù)據(jù)填充至少為46 Byte,如圖4所示,而圖5中的ARP字段共有28 Byte,所以無論是ARP請求還是回復,均應有18 Byte的填充數(shù)據(jù)。有些PC機會發(fā)送其他設備的ARP請求,即使此時只有一根直連線將設備與上位機相連。這時設備是不能響應該請求的,應當在MAC層和IP層之間就將這樣的請求屏蔽,防止干擾正常的數(shù)據(jù)包傳輸。

關于UDP/IP協(xié)議棧的系統(tǒng)設計及注意事項

4.2 Jumbo幀的利弊

以太網(wǎng)標準規(guī)定的幀長度為1 518 Byte,這包括IP層和UDP層添加的首部,一般發(fā)送的數(shù)據(jù)包也都應該限制在這一范圍內(nèi)。但千兆以太網(wǎng)有一種廠商標準的超長幀格式,目前還沒有獲得IEEE標準委員會的認可,它規(guī)定的幀格式與普通以太網(wǎng)幀相同,只是其數(shù)據(jù)填充區(qū)域可以突破原有限制,整個幀長度為9 000~64 000 Byte不等,即Jumbo巨型幀。

在本系統(tǒng)中采用Jumbo幀的好處:(1)可以適當提高網(wǎng)絡帶寬的利用率。這主要靠節(jié)省各層首部的添加得到。(2)減少操作系統(tǒng)因頻繁響應網(wǎng)絡設備的中斷而帶來的CPU資源的過多占用。這可以說是采用Jumbo幀的主要原因,因為要處理千兆以太網(wǎng)較高的數(shù)據(jù)率,無論上位機軟件如何優(yōu)化,CPU的占用仍然很高,這時如果能減少其他地方的CPU開銷,將大幅增加軟件的處理能力。

但Jumbo幀在使用時也有一些不利的地方。首先,目前很多PC機的網(wǎng)絡適配器不支持Jumbo幀的傳輸,雖然Altera的以太網(wǎng)控制器IP核支持,但這不足以使兩個設備進行通信;其次,Jumbo幀會長時間占用網(wǎng)絡通道,這會影響那些對數(shù)據(jù)延遲敏感的設備和應用;第三,Jumbo幀的丟包意味著嚴重的災難,一幀相當于十多個正常幀,這會將處理能力弱的PC機迅速引入重傳的陷阱,丟包越來越多,直到網(wǎng)絡帶寬被全部占用,導致上位機軟件崩潰。所以在考慮支持Jumbo幀之前,應先充分權衡這些優(yōu)勢與不足。

5 結(jié)束語

系統(tǒng)硬件設備與上位機軟件配合工作,可以較好地完成雙路彩色PAL制數(shù)據(jù)流的采集任務。通過實際測試與分析,采用Jumbo幀進行傳輸,有效地減少了軟件運行過程中的系統(tǒng)中斷數(shù),從而限度地降低了CPU的占用。利用搭建起來的千兆以太網(wǎng)運行環(huán)境,可以擴展類似的高速數(shù)據(jù)傳輸應用。
責任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1645

    文章

    22050

    瀏覽量

    618546
  • 芯片
    +關注

    關注

    460

    文章

    52520

    瀏覽量

    440998
  • 控制器
    +關注

    關注

    114

    文章

    17113

    瀏覽量

    184322
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    掃描電鏡的日常維護有哪些注意事項?

    掃描電鏡日常維護的注意事項。
    的頭像 發(fā)表于 03-24 11:38 ?492次閱讀
    掃描電鏡的日常維護有哪些<b class='flag-5'>注意事項</b>?

    依托raksmart服務器在多種系統(tǒng)上本地部署deepseek注意事項

    在RAKsmart服務器上本地部署DeepSeek時,需根據(jù)不同的操作系統(tǒng)和環(huán)境做好全面適配。以下是關鍵注意事項及分步指南,主機推薦小編為您整理發(fā)布依托raksmart服務器在多種系統(tǒng)上本地部署deepseek
    的頭像 發(fā)表于 03-19 11:25 ?375次閱讀

    最佳實踐指南:Air780EPM的LuatOS二次開發(fā)——OneWire協(xié)議調(diào)試的注意事項

    和 Air780EPM 搭配來舉例說明; 二、關于 DS18B20 溫度傳感器 在 DS18B20 溫度傳感器的實際應用中,需特別注意其單總線(1-Wire)協(xié)議特性及硬件設計。 以下是分硬件和軟件的詳細
    的頭像 發(fā)表于 03-17 16:57 ?330次閱讀
    最佳實踐指南:Air780EPM的LuatOS二次開發(fā)——OneWire<b class='flag-5'>協(xié)議</b>調(diào)試的<b class='flag-5'>注意事項</b>

    驅(qū)動板設計注意事項

    設計驅(qū)動板時我們需要考慮電路原理與元器件選擇、PCB設計、熱管理、電磁兼容性(EMC)、其他注意事項。以下是關于相關內(nèi)容的詳細介紹,讓我們一起來簡單的了解一下吧!
    的頭像 發(fā)表于 02-12 13:48 ?591次閱讀

    智多晶DDR Controller使用注意事項

    最后一期我們主要介紹智多晶DDR Controller使用時的注意事項
    的頭像 發(fā)表于 01-24 11:14 ?759次閱讀
    智多晶DDR Controller使用<b class='flag-5'>注意事項</b>

    ALINX發(fā)布100G以太網(wǎng)UDP/IP協(xié)議IP

    ALINX近日宣布,基于AMD 100G以太網(wǎng)MAC IP,成功開發(fā)出全新的100G以太網(wǎng)UDP/IP協(xié)議
    的頭像 發(fā)表于 01-07 11:25 ?760次閱讀

    多層板埋孔設計注意事項

    多層板埋孔設計注意事項
    的頭像 發(fā)表于 12-20 16:06 ?797次閱讀

    芯驛電子 ALINX 推出全新 IP 核產(chǎn)品線,覆蓋 TCP/UDP/NVMe AXI IP

    10GBe/40GBe UDP 協(xié)議 IP 核、10GbE TCP/IP 協(xié)議
    的頭像 發(fā)表于 10-30 17:39 ?901次閱讀
     芯驛電子 ALINX 推出全新 <b class='flag-5'>IP</b> 核產(chǎn)品線,覆蓋 TCP/<b class='flag-5'>UDP</b>/NVMe AXI <b class='flag-5'>IP</b> 核

    如何為住宅配置靜態(tài)IP:步驟與注意事項

    為住宅配置靜態(tài)IP地址,通常涉及以下步驟和注意事項。
    的頭像 發(fā)表于 10-24 08:02 ?1015次閱讀

    MSP430系統(tǒng)級ESD注意事項

    電子發(fā)燒友網(wǎng)站提供《MSP430系統(tǒng)級ESD注意事項.pdf》資料免費下載
    發(fā)表于 09-21 09:20 ?1次下載
    MSP430<b class='flag-5'>系統(tǒng)</b>級ESD<b class='flag-5'>注意事項</b>

    繞線電感定制的注意事項

    電子發(fā)燒友網(wǎng)站提供《繞線電感定制的注意事項.docx》資料免費下載
    發(fā)表于 09-20 11:24 ?4次下載

    關于降壓轉(zhuǎn)換器中啟動電阻器的設計注意事項

    電子發(fā)燒友網(wǎng)站提供《關于降壓轉(zhuǎn)換器中啟動電阻器的設計注意事項.pdf》資料免費下載
    發(fā)表于 09-06 11:29 ?0次下載
    <b class='flag-5'>關于</b>降壓轉(zhuǎn)換器中啟動電阻器的設計<b class='flag-5'>注意事項</b>

    共模電感定制的注意事項

    電子發(fā)燒友網(wǎng)站提供《共模電感定制的注意事項.docx》資料免費下載
    發(fā)表于 09-04 11:47 ?0次下載

    LiFePO4設計注意事項

    電子發(fā)燒友網(wǎng)站提供《LiFePO4設計注意事項.pdf》資料免費下載
    發(fā)表于 09-03 09:24 ?0次下載
    LiFePO4設計<b class='flag-5'>注意事項</b>

    光纖收發(fā)器的使用方法和注意事項

    光纖收發(fā)器作為光纖通信系統(tǒng)中的關鍵設備,其正確的使用方法和注意事項對于確保網(wǎng)絡傳輸?shù)姆€(wěn)定性和可靠性至關重要。光纖收發(fā)器作為光纖通信系統(tǒng)中的關鍵設備,其正確的使用方法和注意事項對于確保網(wǎng)
    的頭像 發(fā)表于 08-26 15:20 ?2297次閱讀