www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于FPGA的IPV6數字包的分離與封裝的實現

筆者在參加國家“863”重大專題項目“高速密碼芯片及驗證平臺系統(tǒng)”的過程中,遇到了將IPV6數據包的包頭和數據部分拆開,然后在數據部分送密碼芯片進行加/解密處理,最后再將處理后的數據部分與包頭重新封裝為數據包的課題。以往對IP包進行拆裝多利用軟件實現,但本項目涉及到配合高速密碼芯片(處理速度在2Gbit/s以上)工作的問題,顯然利用軟件實現IP包的拆裝在速度上達不到要求。為此,筆者運用FPGA(型號為Xilinx公司的XC2VP20-FF86CGB0345)來實現IPV6數據包的拆裝。該FPGA內部邏輯框圖如圖1所示。

  其工作流程為:2.5GHz的標準IPV6數據包串行差分信號通過ROCKETIO高速通道后轉換為16位125MHz并行信號,再經信號轉換模塊進一步轉換為66位62.5MHz并行信號后進入FIFO1緩存,然后對其輸出數據進行判斷,若是報頭則送入FIFO3緩存,若是數據部分則送入FIFO2緩存,最后將FIFO2數據送往密碼芯片進行處理;經密碼芯片處理的數據首先放入FIFO4進行緩存,然后控制FIFO3和FIFO4將一個數據包的頭和數據寫入FIFO5中,重新封裝成一個完整的數據包;重新封裝的IPV6數據包經過信號轉換模塊變?yōu)?6位125MHz的并行信號,并通過ROCKETIO高速通道轉換為2.5GHz高速串行差分信號送出。

  可以看出,經過以上流程,實現了一個數據包的拆分和重新封裝。
1 IPV6數據包的拆分

 

  用FPGAP實現IPV6數據包的拆分,主要是通過控制幾個FIFO的數據輸入輸出來實現的。FPGA內部的拆分單元電路的物理連接如圖2所示,其中FIFO的作用是緩存IPV6數據包,FIFO2的作用是緩存IPV6數據包的數據部分,FIFO3的作用是緩存IPV6數據包的包頭。

  圖中的三個FIFO都是由Xilinx公司的開發(fā)工具ISE6.1自帶的Core IP生成的。其中FIFO1和FIFO3是同步FIFO,工作時鐘為頻率62.5MHz,輸入輸出數據寬度都是66bit;FIFO2是異步FIFO,輸入時鐘頻率為62.5MHz,輸出時鐘頻率為50MHz(密碼芯片的工作時鐘頻率為50MHz),輸入輸出數據寬度都是64bit。

  FIFO1的輸入數據為IPV6數據包??梢钥闯?,該數據是以并行的66bit信號傳輸的,即每一時鐘周期并行傳送66bit數據,其中每個周期的高兩位(即65位和64位)為數據包的頭尾標志,這是IPV6路由器內部根據實際處理需要加上的,“10”表示一個完整數據包的第一周期,“11”表示數據包的中間內容,“01”表示一個完整數據包的最后一個周期。因為IPV6數據包的包頭是固定長度的,為40字節(jié)(等于5×64bit),故數據的前五個周期為IPV6數據包的包頭,包頭后面跟的就是數據包的數據部分。[!--empirenews.page--]下面討論IPV6數據包的包頭和數據部分的拆分過程。

 

  首先判斷FIFO1輸入端數據的頭尾標志DATA(65~64)與FIFO1的滿標志FULL1,如果DATA(65~64)=“10”且FULL1=“0”,即判斷到一個完整數據包的開始且FIFO1未滿,則使FIFO1的寫使能WR_EN1有效,寫入數據;如果DATA(65~64)=“01”,好判斷到一個完整數據包結束時,則使WR_EN1無效,這樣一個完整的數據包就緩存到了FIFO1時。

  當判斷到FIFO1的空標示EMPTY1=“0”,即FIFO1非空間,令FIFO1的讀使能信號RD_EN1有效,將FIFO1中的數據讀出,直到EMPTY1=“1”,即FIFO1空為止。對讀出的數據設定一計數器COUNTER1進行計數,當DONT1不為0即FIFO1輸出端有信號時開始計數。當05時,令WR_EN3無效,WR_EN2有效,將IPV6數據包的數據部分送FIFO2緩存,準備送密碼芯片處理,直到頭尾標志DOUT1(65~64)=“01”時,將COUNTER1清零,在判斷到COUNTER1為0后,將WR_EN2置為無效。注意:FIFO1的輸出端口是66位,FIFO2的輸入端口是64位的,故在FIFO1向FIFO2寫數據的過程中,應將FIFO1的輸出端口信號DOUT(63~0)傳送給FIFO2的輸入端口DIN2(63~-)。當判斷到FIFO2非空間,將其讀使能信號RD_EN2置為有效,即可向密碼芯片送出數據。

2 IPV6數據包的重新封裝

 

  用FPGA實現IPV6數據包的重新封裝,同時是通過控制幾個FIFO的數據輸入輸出來實現的,FPGA同部的重新封裝單元電路的物理連接如圖3所示,其FIFO4的作用是緩存密碼芯片送出的加解密處理后的數據;FIFO5的作用是緩存重新封裝后的IPV6數據;FIFO3與拆分單元共用,作用是緩用IPV6數據包頭。

  圖中的FIFO4和FIFO5也都是由Xilinx公司的開發(fā)工具ISE6.1自帶的Core IP生成的,其中FIFO4是異步FIFO,輸入時鐘為50MHz,輸出時鐘為62.5MHz,輸入輸出數據寬度都是66bit;FIFO5是同步FIFO,工作時鐘為62.5MHz,輸入輸出數據寬度都是66bit。

  密碼芯片對數據進行加/解密處理完畢之后,在送出處理數據前,首先向外部系統(tǒng)發(fā)送一64bit長的連接指令,指明處理數據所用的加解密算法和數據長度。例如,在對數據進行2DES加密處理的情況下,接收指令格式(16位制)如圖4所示,其中高56位為指令編碼,低8位為將要輸出的處理數據的長度。

  因此,在接收處理數據時,首先判斷是否有接收指令,如果有接收搦令,則其接收指令中的數據長度放寄存器中進行寄存,并設定計數器COUNTER2開始計數。當0

  這時,包頭已經緩存到FIFO3中了,處理后的數據已經按格式要求緩存到FIFO4中了,最后要做的就是控制FIFO3和FIFO4,把一個完整的IPV6數據包寫入FIFO5中。具體做法是:設定計數器COUNTER3,當FIFO3和FIFO4都非空時,COUNTER3開始計數。當COUNTER3>0時,將FIFO5的寫使能信號WR_EN5置為有效;當COUNTER3=0時,WR_EN5置為無效。當0l=6時,令RD_EN3無效,RD_EN4有效,將FIFO4的輸出數據DOUT4(65~0)寫入FIFO5的輸入端DIN5(65~0),直到DOUT4(65~64)=“01”時,將COUNTER3清零,RD_EN4置為無效。這樣,一個完整的IPV6數據包就重封裝在FIFO5中了,當判斷到FIFO5非空間,就可以令RD_EN5有效,向外輸出處理后的完整的IPV6數據包了。

  從上述討論可以看出,本課題在FPGA中采用了五個FIFO,并設定了三個計數器控制這五個FIFO的輸入輸出來實現對IPV6數據包的拆分和重新封裝??偟膩砜?,整個FPGA設計思路巧妙,電路結構簡單,達到了預期的處理速度。圖5是整個測試系統(tǒng)在對1024字節(jié)的IPV6數據包進行拆包、送密碼芯片加密。重裝封裝處理后測試儀控制軟件界面上顯示的收包數據統(tǒng)計。從該圖可以看出,整個系統(tǒng)對IPV6數據包的處理速度達到了2.372Gbit/s,而這樣的處理速度用軟件是不可能達到的。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉