??首先需要了解以太網(wǎng)的一些接口協(xié)議標(biāo)準(zhǔn),常見(jiàn)的MII、GMII、RGMII時(shí)序,便于后續(xù)開(kāi)發(fā)。
????【必讀】從MII到RGMII,一文了解以太網(wǎng)PHY芯片不同傳輸接口信號(hào)時(shí)序!
??介紹一款比較老的以太網(wǎng)PHY芯片88E1518,具有RGMII接口,分析該芯片的原理圖和內(nèi)部寄存器的配置方式,以及MDIO的時(shí)序。
????揭秘88E1518以太網(wǎng)芯片:比RTL8211更麻煩,配置多一步”
??PC端通過(guò)串口調(diào)試助手對(duì)88E1518內(nèi)部寄存器進(jìn)行配置,涉及到uart收發(fā)數(shù)據(jù)模塊和MDIO讀寫(xiě)時(shí)序,用戶可以根據(jù)定義的串口格式,通過(guò)串口助手向88E1518中寄存器寫(xiě)入數(shù)據(jù)或者讀出數(shù)據(jù)。
????“FPGA+MDIO總線+UART串口=高效讀寫(xiě)PHY芯片寄存器!“(含源代碼)
??上面幾篇文章是對(duì)PHY芯片和協(xié)議的相關(guān)講解,下面文章開(kāi)始對(duì)PHY芯片的數(shù)據(jù)傳輸接口和講解、實(shí)現(xiàn)以太網(wǎng)協(xié)議。
??首先需要把88E1518的RGMII雙沿采樣數(shù)據(jù)的接口協(xié)議轉(zhuǎn)換為單沿傳輸數(shù)據(jù)的GMII接口協(xié)議,會(huì)使用到BUFIO、BUFG、IDDR、ODDR、IDELAYE等原語(yǔ)知識(shí)。
????基于FPGA的GMII與RGMII接口相互轉(zhuǎn)換(包含源工程文件)
??下文講解以太網(wǎng)幀格式和ARP協(xié)議,ARP協(xié)議是源主機(jī)知道目的主機(jī)IP,不知道目的主機(jī)物理地址時(shí)發(fā)起的協(xié)議,具體知識(shí)可以查看下文。
????以太網(wǎng)幀格式及ARP協(xié)議簡(jiǎn)介
??上文講解了ARP以及以太網(wǎng)幀格式,下文通過(guò)FPGA實(shí)現(xiàn)ARP協(xié)議,包括CRC校驗(yàn),以太網(wǎng)發(fā)送和以太網(wǎng)接收等模塊。最后通過(guò)仿真和上板測(cè)試,用戶需要掌握PC端清除ARP綁定和發(fā)起ARP請(qǐng)求的指令,并且需要簡(jiǎn)單掌握wireshark的使用。
????【實(shí)戰(zhàn)干貨】FPGA實(shí)現(xiàn)ARP協(xié)議,細(xì)節(jié)全解析?。ò垂こ涛募?/p>
??下文講解IP協(xié)議和ICMP協(xié)議的相關(guān)知識(shí),ICMP主要用于檢測(cè)以太網(wǎng)鏈路的暢通,回顯應(yīng)答發(fā)送的數(shù)據(jù)與回顯請(qǐng)求數(shù)據(jù)段的數(shù)據(jù)必須保持一致。
????IP協(xié)議及ICMP協(xié)議簡(jiǎn)介
??通過(guò)FPGA實(shí)現(xiàn)ICMP協(xié)議,用于外設(shè)測(cè)試以太網(wǎng)鏈路的暢通,該設(shè)計(jì)會(huì)包含arp協(xié)議,用戶就不需要手動(dòng)綁定IP和物理地址,會(huì)更加方便。
??PC在發(fā)送回顯請(qǐng)求之前,會(huì)發(fā)送arp請(qǐng)求獲取目的主機(jī)的物理地址,可以通過(guò)wireshark抓取對(duì)應(yīng)報(bào)文。
????基于FPGA實(shí)現(xiàn)ICMP協(xié)議(包含源工程文件)
??ARP協(xié)議用于獲取目的主機(jī)的物理地址,ICMP用于測(cè)試以太網(wǎng)鏈路的連接狀態(tài),而UDP用于傳輸數(shù)據(jù)。
??下文簡(jiǎn)要講解UDP協(xié)議,然后通過(guò)FPGA實(shí)現(xiàn)該協(xié)議,注意本文只是用于熟悉UDP協(xié)議的一些知識(shí),對(duì)數(shù)據(jù)做了簡(jiǎn)要回環(huán),可能會(huì)存在一些bug。
??對(duì)于這個(gè)bug我并沒(méi)有修復(fù),原因在于這個(gè)設(shè)計(jì)中ARP、ICMP、UDP分別通過(guò)不同模塊實(shí)現(xiàn),這樣的設(shè)計(jì)便于調(diào)試或者屏蔽某種協(xié)議,但是會(huì)消耗更多資源,因此后面會(huì)對(duì)這三個(gè)模塊進(jìn)行整合,合并為一個(gè)模塊,解決上述問(wèn)題。
????基于FPGA的UDP實(shí)現(xiàn)(包含源工程文件)
??下文就是整合ARP、ICMP、UDP協(xié)議的結(jié)果,相比前文的工程會(huì)節(jié)省很多資源,并且加入了幀間隔等信息,修復(fù)了發(fā)現(xiàn)的bug。上板實(shí)測(cè)最大發(fā)送速率可以達(dá)到980Mbps。后續(xù)文章使用的以太網(wǎng)UDP模塊均是該模塊。
????基于FPGA的實(shí)用UDP設(shè)計(jì)(包含源工程文件)
??下文是以太網(wǎng)模塊存在問(wèn)題的優(yōu)化,對(duì)應(yīng)工程也已經(jīng)上傳到百度網(wǎng)盤(pán)的以太網(wǎng)UDP版本1。
????以太網(wǎng)模塊問(wèn)題及優(yōu)化
??上位機(jī)通過(guò)UDP協(xié)議向FPGA傳輸圖像數(shù)據(jù),F(xiàn)PGA使用上述設(shè)計(jì)的模塊接收上位機(jī)的數(shù)據(jù),并且將數(shù)據(jù)傳輸給DDR3存儲(chǔ),最后在HDMI顯示器上進(jìn)行顯示。下面兩篇文章的效果都一樣,區(qū)別在于mig IP的用戶接口不同。
????基于FPGA的以太網(wǎng)傳輸圖片通過(guò)HDMI顯示(含源碼)
????將Xilinx DDR3 MIG IP核的AXI_FULL接口封裝成FIFO接口(含源碼)
??這篇文章是對(duì)前一篇文章中出現(xiàn)的一個(gè)bug總結(jié),通過(guò)實(shí)際現(xiàn)象推測(cè)可能出現(xiàn)的原因,然后利用ILA和wireshark抓取關(guān)鍵信號(hào)去判斷猜想是否正確,最后找到根本原因,解決問(wèn)題。
????以太網(wǎng)傳輸圖片工程出現(xiàn)的問(wèn)題總結(jié)(含源碼)
??上一篇文章主要用于UDP接收數(shù)據(jù)報(bào)文,下文主要用于測(cè)試UDP發(fā)送數(shù)據(jù)報(bào)文,OV7725攝像頭采集數(shù)據(jù),通過(guò)FIFO暫存,然后直接通過(guò)以太網(wǎng)發(fā)送模塊將數(shù)據(jù)發(fā)送給PC端,PC端通過(guò)上位機(jī)顯示攝像頭的圖像信息。
????基于FPGA的OV7725網(wǎng)絡(luò)攝像頭(含源碼)
??設(shè)計(jì)其實(shí)有時(shí)候挺煩的,自己的設(shè)計(jì)出現(xiàn)問(wèn)題,就只能自己通過(guò)ILA這些工具去定位問(wèn)題,原因在于短時(shí)間其他人也不知道你的代碼是如何寫(xiě)的,更不知道這個(gè)代碼中的關(guān)鍵信號(hào),無(wú)法幫你定位問(wèn)題。
??因此在設(shè)計(jì)的時(shí)候我通常會(huì)將所有模塊實(shí)現(xiàn)一遍,即便不能替換他人模塊,也需要知道他的設(shè)計(jì)思路,關(guān)鍵信號(hào)是哪些,出現(xiàn)問(wèn)題后如何定位等等。能不能找到更加簡(jiǎn)便的實(shí)現(xiàn)方式,優(yōu)化一些設(shè)計(jì),便于后續(xù)替代等等。
??只有當(dāng)你自己能夠設(shè)計(jì)出功能相同甚至功能更優(yōu)的電路的時(shí)候,才是真正掌握了知識(shí),不是把別人代碼拿過(guò)來(lái)用就行了。
??下圖用于封面?。。?!
??如果對(duì)文章內(nèi)容理解有疑惑或者對(duì)代碼不理解,可以在評(píng)論區(qū)或者后臺(tái)留言,看到后均會(huì)回復(fù)!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-851122.html
??如果本文對(duì)您有幫助,還請(qǐng)多多點(diǎn)贊??、評(píng)論??和收藏?!您的支持是我更新的最大動(dòng)力!將持續(xù)更新工程!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-851122.html
到了這里,關(guān)于基于FPGA的以太網(wǎng)相關(guān)文章導(dǎo)航的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!