ผู้เขียน
เดล แฮทช์
** การสื่อสารผ่าน UDP
วัตถุประสงค์ของโครงการนี้คือเพื่อสาธิตการถ่ายโอนข้อมูลผ่าน UDP โดยใช้ Zedboard สามารถใช้กับ MicroZed และบอร์ดที่ใช้ Zynq อื่นๆ โดยมีการแก้ไขเล็กน้อย
** สร้างระบบ Zynq โดยใช้ Vivado
ใช้ภาพด้านล่างเป็นแนวทางในการสร้างระบบ Zynq โมดูล AXI Interconnect, การรีเซ็ตโปรเซสเซอร์ และ GPIO เป็นทางเลือก แต่ฉันต้องการใส่ไว้สำหรับคำสั่ง/การควบคุม/การดีบักในภายหลัง
คุณสามารถใช้ค่าเริ่มต้นของระบบ การกำหนดที่อยู่อัตโนมัติต่อพ่วง และค่าเริ่มต้นของการกำหนดค่าระบบได้ทั้งหมด โดยไม่จำเป็นต้องปรับแต่งอะไรเลย
หลังจากที่คุณสร้างระบบและส่งออกฮาร์ดแวร์ (รวมถึงไฟล์บิต) ให้เปิด SDK
** SDK และซอฟต์แวร์
หลังจากที่ SDK เปิดขึ้น คลิก File -> New -> Application Project
ตั้งชื่อโครงการ จากนั้นคลิกถัดไป
เลือก "lwIP Echo Server" จากรายการเทมเพลตที่มีอยู่ และเสร็จสิ้น
ณ จุดนี้ คุณสามารถคอมไพล์ โหลด และรัน Echo Server บน Zedboard ได้ ฉันใช้ PuTTY เพื่อดูว่ามันทำงาน
เปิด PuTTY พิมพ์ที่อยู่ IP ของ Zedboard ที่กำหนดไว้ในไฟล์ main.c ตั้งค่าพอร์ตเป็น 7 และเลือก "Telnet" เป็นประเภทการเชื่อมต่อ ในหน้าต่างที่เปิดขึ้น คุณสามารถพิมพ์ตัวอักษรและดูข้อความที่สะท้อนกลับมาที่ PuTTY
** การเปลี่ยน Echo Server ให้ใช้ UDP
เซิร์ฟเวอร์ lwIP Echo เริ่มต้นใช้ TCP หากต้องการแปลงให้ใช้ UDP แทน ให้แทนที่ main.c ที่ให้มาด้วย main.c ในที่เก็บ Github นี้ นอกจากนี้ ให้แทนที่ไฟล์ echo.c ด้วย
นอกจากนี้ ให้ดาวน์โหลดไฟล์ include.h และเพิ่มลงในโปรเจ็กต์ของคุณ
คัดลอกไฟล์ลงในไดเร็กทอรี project.sdk/project/src ของโปรเจ็กต์ของคุณ จากนั้นใน SDK ให้ไฮไลต์บรรทัดในกรอบ "Project Explorer" แล้วกด F5 เพื่อรีเฟรช
** คอมไพล์และรัน
ตอนนี้รวบรวมและรันโค้ด ขณะที่โค้ดทำงาน ในโปรแกรมเทอร์มินัลที่เชื่อมต่อ คุณจะเห็นสิ่งนี้:
จุดด้านล่างแสดงว่า Zedboard กำลังส่งแพ็กเก็ต UDP สิ่งนี้จะเกิดขึ้นทุกๆ 500 มิลลิวินาที แพ็กเก็ตประกอบด้วยจำนวนเต็มตัวเดียวที่มีค่า 0x45
หากต้องการดูแพ็กเก็ตที่ถูกส่ง ให้ใช้ Wireshark
มีหลายวิธีในการส่งแพ็กเก็ต UDP ไปยัง Zedboard ฉันใช้เครื่องเล่นสื่อ VLC และตั้งค่าให้สตรีมไฟล์ .mpg ผ่าน UDP ต่อไปนี้เป็นวิธีดำเนินการ:
เปิด VLC แล้วคลิก Media -> Stream...
บนแท็บไฟล์ คลิก "+เพิ่ม" และเลือกไฟล์มีเดีย ฉันใช้ไฟล์วิดีโอ .mpg คลิกปุ่มสตรีม
คลิกถัดไป สำหรับการตั้งค่าปลายทาง ให้ดึงกล่องปลายทางใหม่ลง เลือก UDP (ดั้งเดิม) คลิกเพิ่ม พิมพ์ที่อยู่ IP ของ Zedboard และตั้งค่าพอร์ตเป็น 7
คลิกถัดไป ฉันยกเลิกการเลือก "เปิดใช้งานการแปลงรหัส" แต่ไม่สำคัญสำหรับจุดประสงค์นี้
คลิกถัดไปแล้วสตรีม
ในโปรแกรมเทอร์มินัล คุณจะเห็นข้อความจำนวนมาก (จาก Zedboard) แสดงความยาวของดาตาแกรม UDP ที่ Zedboard ได้รับจากโปรแกรม VLC
** การปรับปรุง
โปรเจ็กต์นี้ส่วนใหญ่เป็นการสาธิตวิธีใช้ UDP เพื่อส่งและรับข้อมูลโดยใช้ Zedboard หรือบอร์ด Zynq อื่น ๆ
ฉันจะใช้มันเพื่อสตรีมสื่อจาก Zedboard ไปยังพีซี และใช้ VLC เพื่อดูสตรีมสื่อ
** เครดิต
Lance Simms โพสต์โครงการที่ดีและซับซ้อนซึ่งใช้ UDP ที่นี่: http://lancesimms.com/Xilinx/MicroZed_UDP_Server_for_Waveform_Centroiding_Table_Of_Contents.html
โปรเจ็กต์ของฉันลดฐานโค้ดนั้นให้เป็นหลักการ UDP พื้นฐานเพื่อให้เป็นแพลตฟอร์มที่ขยายได้ง่ายสำหรับโปรเจ็กต์ที่กำหนดเอง