硬件加速 | ZYNQ-7000 PS端(ARM)網絡編程(TCP協議)

前注:ARM端的TCP協議編程步驟和UDP協議編程步驟完全相同,只是在ARM端的C代碼實現不同,在本次TCP協議實現過程中我們主要利用了官方提供的Demo,然後根據自己的需要加以改寫,具體過程如下。

1、開始前的準備工作

  • 關閉電腦防火牆
  • 連接開發板電源
  • 開發板與PC之間串口連接,JTAG下載線連接
  • PC機與開發板間網線連接,並保證能ping通

2、Vivado端配置

  1. 創建工程,具體步驟不詳細介紹,網上都有教程,器件型號按照實際用的板子的型號選,我這裏用的是米聯Miz7035的板子
  2. 工程創建完畢後,在Vivado主頁左邊有個(創建塊設計)create block design,點擊創建,然後添加ZYNQ7 Processing System IP核,然後對IP核進行配置,主要需要配置的幾個地方爲:
  • 配置時鐘,由於本工程只用到了PS資源,只需要給PS配置時鐘,所以可以不用給PL提供時鐘。
  • 配置串口,勾選UART1用於打印相關調試信息。
  • 配置網口,勾選ENET0,用於PC和開發板的UDP通信。
  • 配置DDR內存,按照具體板子的DDR型號進行配置,由於目前我們的工程在PS端還是在“裸奔”,所以內存一定要配置正確,不然後續Debug會出現問題。
  • 配置完成後就是檢查規範性,生成輸出文件,創建頂層文件,導出硬件,這個具體步驟我在前面講過,有不知道如何操作的可以翻翻之前的博文進行操作。
    最後生成的PS結構如下圖所示:

在這裏插入圖片描述

  1. 最後導出硬件,啓動SDK。

3、SDK端編程

SDK端主要進行UDP協議的一個實現,語言採用c語言。主要步驟如下:

  1. 創建SDK工程,file->new->application project,可以選擇一個模板,也可以選擇一個空工程,我們選擇lwIP TCP echo server模板,然後在此基礎上進行改寫。
  2. Debug調試。

4、調試結果

整個的調試流程爲FPGA接收到PC端發送過來的一個數據後,FPGA將該數據回傳。整個流程初始化完畢後串口打印的信息如下圖所示:

在這裏插入圖片描述

利用網絡調試助手模擬PC機給FPGA發送數據和接收數據,FPGA的地址爲192.168.1.10,端口爲7,調試結果如下圖所示:
在這裏插入圖片描述

5、資源獲取鏈接

完整的實現TCO協議的src文件我上傳了百度網盤,鏈接如下,有需要的請自取。

  鏈接:https://pan.baidu.com/s/1Hcw7apaZhxNT9wwQ-45O6w 提取碼:xjd6 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章