天天看點

Zedboard & Zynq 圖像采集 視訊開發 (一) 硬體平台搭建

前言

之前沒有寫過部落格,這是第一次寫,希望能記錄下自己的開發流程,如果能給一些人一些參考,那是榮幸之至,如果有疏漏錯誤之處,大家可以互相讨論。 Zynq是一款比較強大的SOC,内部包含FPGA和Cortex-A9雙核的ARM,我的這個設計就是用Zedboard開發闆,搭配一個OV7725的cmos圖像傳感器,實作圖像的采集和簡單的傳輸,具體功能包括:圖像采集,Bayer圖像轉RGB888圖像,自制VDMA子產品,VGA controller,Linux系統視訊發送,Linux虛拟機QT用戶端視訊顯示,後續可能還會再添加一些功能子產品。其中OV7725寄存器初始化,Bayer圖像轉RGB888圖像,VGA controller參考了crazybingo的設計。

這裡不再贅述Zynq内部結構等,而是直接針對具體應用,如果有不明白的可以看官方手冊或者給我留言。

硬體設計

先上一張圖檔

Zedboard & Zynq 圖像采集 視訊開發 (一) 硬體平台搭建
Zedboard & Zynq 圖像采集 視訊開發 (一) 硬體平台搭建

使用了Zedboard的pmod接口,做了适當的修改,也可以使用杜邦線連接配接,管腳限制如下: [plain]  view plain copy

  1. set_property PACKAGE_PIN Y9 [get_ports ext_clk]  
  2. set_property IOSTANDARD LVCMOS25 [get_ports ext_clk]  
  3. #  
  4. #VGA  
  5. #  
  6. set_property PACKAGE_PIN V20 [get_ports {vga_r[0]}]  
  7. set_property IOSTANDARD LVCMOS25 [get_ports {vga_r[0]}]  
  8. set_property PACKAGE_PIN U20 [get_ports {vga_r[1]}]  
  9. set_property IOSTANDARD LVCMOS25 [get_ports {vga_r[1]}]  
  10. set_property PACKAGE_PIN V19 [get_ports {vga_r[2]}]  
  11. set_property IOSTANDARD LVCMOS25 [get_ports {vga_r[2]}]  
  12. set_property PACKAGE_PIN V18 [get_ports {vga_r[3]}]  
  13. set_property IOSTANDARD LVCMOS25 [get_ports {vga_r[3]}]  
  14. set_property PACKAGE_PIN AB22 [get_ports {vga_g[0]}]  
  15. set_property IOSTANDARD LVCMOS25 [get_ports {vga_g[0]}]  
  16. set_property PACKAGE_PIN AA22 [get_ports {vga_g[1]}]  
  17. set_property IOSTANDARD LVCMOS25 [get_ports {vga_g[1]}]  
  18. set_property PACKAGE_PIN AB21 [get_ports {vga_g[2]}]  
  19. set_property IOSTANDARD LVCMOS25 [get_ports {vga_g[2]}]  
  20. set_property PACKAGE_PIN AA21 [get_ports {vga_g[3]}]  
  21. set_property IOSTANDARD LVCMOS25 [get_ports {vga_g[3]}]  
  22. set_property PACKAGE_PIN Y21 [get_ports {vga_b[0]}]  
  23. set_property IOSTANDARD LVCMOS25 [get_ports {vga_b[0]}]  
  24. set_property PACKAGE_PIN Y20 [get_ports {vga_b[1]}]  
  25. set_property IOSTANDARD LVCMOS25 [get_ports {vga_b[1]}]  
  26. set_property PACKAGE_PIN AB20 [get_ports {vga_b[2]}]  
  27. set_property IOSTANDARD LVCMOS25 [get_ports {vga_b[2]}]  
  28. set_property PACKAGE_PIN AB19 [get_ports {vga_b[3]}]  
  29. set_property IOSTANDARD LVCMOS25 [get_ports {vga_b[3]}]  
  30. set_property PACKAGE_PIN AA19 [get_ports vga_hs]  
  31. set_property IOSTANDARD LVCMOS25 [get_ports vga_hs]  
  32. set_property PACKAGE_PIN Y19 [get_ports vga_vs]  
  33. set_property IOSTANDARD LVCMOS25 [get_ports vga_vs]  
  34. set_property PACKAGE_PIN Y10 [get_ports {cmos_data[0]}]  
  35. set_property IOSTANDARD LVCMOS25 [get_ports {cmos_data[0]}]  
  36. set_property PACKAGE_PIN AB9 [get_ports {cmos_data[1]}]  
  37. set_property IOSTANDARD LVCMOS25 [get_ports {cmos_data[1]}]  
  38. set_property PACKAGE_PIN AA9 [get_ports {cmos_data[2]}]  
  39. set_property IOSTANDARD LVCMOS25 [get_ports {cmos_data[2]}]  
  40. set_property PACKAGE_PIN AA8 [get_ports {cmos_data[3]}]  
  41. set_property IOSTANDARD LVCMOS25 [get_ports {cmos_data[3]}]  
  42. set_property PACKAGE_PIN W12 [get_ports {cmos_data[4]}]  
  43. set_property IOSTANDARD LVCMOS25 [get_ports {cmos_data[4]}]  
  44. set_property PACKAGE_PIN V12 [get_ports {cmos_data[5]}]  
  45. set_property IOSTANDARD LVCMOS25 [get_ports {cmos_data[5]}]  
  46. set_property PACKAGE_PIN W11 [get_ports {cmos_data[6]}]  
  47. set_property IOSTANDARD LVCMOS25 [get_ports {cmos_data[6]}]  
  48. set_property PACKAGE_PIN W10 [get_ports {cmos_data[7]}]  
  49. set_property IOSTANDARD LVCMOS25 [get_ports {cmos_data[7]}]  
  50. set_property PACKAGE_PIN AB10 [get_ports cmos_sclk]  
  51. set_property IOSTANDARD LVCMOS25 [get_ports cmos_sclk]  
  52. set_property PACKAGE_PIN AA11 [get_ports cmos_sdat]  
  53. set_property IOSTANDARD LVCMOS25 [get_ports cmos_sdat]  
  54. set_property PACKAGE_PIN V9 [get_ports cmos_pclk]  
  55. set_property IOSTANDARD LVCMOS25 [get_ports cmos_pclk]  
  56. set_property PACKAGE_PIN V10 [get_ports cmos_xclk]  
  57. set_property IOSTANDARD LVCMOS25 [get_ports cmos_xclk]  
  58. set_property PACKAGE_PIN V8 [get_ports cmos_vsync]  
  59. set_property IOSTANDARD LVCMOS25 [get_ports cmos_vsync]  
  60. set_property PACKAGE_PIN W8 [get_ports cmos_href]  
  61. set_property IOSTANDARD LVCMOS25 [get_ports cmos_href]  

附上一張成像效果圖

Zedboard & Zynq 圖像采集 視訊開發 (一) 硬體平台搭建

接下來的文章中就開始整個系統設計