zedboard的demo評測

轉載來自:http://blog.csdn.net/xiaoyangger/article/details/7970142

Zedboard是第一款面向開源社區的Zynq-7000系列開發板,而Zynq-7000系列FPGA,也稱爲完全可編程(All Programable)SoC,是Xilinx一個有重大意義的產品系列。

在FPGA裏集成高性能的處理器內核一直是衆多FPGA廠商以及客戶的需求,Zynq-7000的面世標誌着Xilinx在SoC集成度上的一個突破,實現了雙核Cortex-A9 MPcore和最新的28nm 7系列可編程邏輯的緊密集成。

上圖可以看出Zynq芯片內部可以分爲兩部分PS(Processing System)和PL(Programmable Logic),其中PS部分有點像傳統的處理器內部結構,包括CPU核、圖形加速、浮點運算、存儲控制器、各種通信接口外設以及GPIO外設,而PL部分就是傳統的可編程邏輯和支持多種標準的IO,它們之間通過內部高速總線互聯。這種架構既提高了系統性能(處理器和各種外設控制的”硬核“),又簡化了系統的搭建(可編程的外設配置),同時提供了足夠的靈活性(可編程邏輯)。

Zedboard的一個簡單框圖,板上的外圍功能都是圍繞Zynq芯片

Zynq芯片的配置

因爲是最新的芯片和開發套件,資料還是比較少的,而且基本都是大部頭的英文。要用FPGA進行開發,首先要了解FPGA的配置過程。傳統的SRAM型FPGA都是通過JTAG接口、外置非易失性存儲器(PROM、FLASH)或者外部處理器一次性將程序下載到FPGA中配置。而Zynq芯片則不同,其內部集成了處理器硬核和可編程邏輯,所以它的配置啓動是分階段的。

  • Stage 0:bootROM過程,Zynq芯片PS部分有片上ROM和RAM,在芯片上電或者復位後,其中一個處理器會執行片上ROM的代碼進行初始化,判斷啓動設備(boot device),將啓動設備上的FSBL(first boot loader)代碼拷貝到片上RAM內。
  • Stage 1:啓動設備包括SPI FLASH、SD和JTAG,FSBL代碼是用戶自己定製的,拷貝到片上RAM後執行。包括初始化PS部分配置、配置PL部分邏輯、加載和執行SSBL(second boot loader)或應用程序。
  • Stage 2:上一階段後硬件已經配置完成。這一階段是可選的,完成Linux系統啓動過程(U-BOOT)。

通過Zynq芯片的啓動過程可以看到上電或者復位後片內處理器首先啓動,然後根據MODE引腳判斷啓動方式,Zedboard的啓動可以通過Quad-SPI FLASH、SD卡或者JTAG接口,如下表:

管腳
MIO6
MIO5 MIO4 MIO3 MIO2
跳線 JP11 JP10 JP9 JP8 JP7
JTAG Mode
Cascade JTAG         0
Independent JTAG         1
Boot Device
JTAG   0 0 0  
Quad-SPI   1 0 0  
SD card   1 1 0  
PLL Mode
PLL used 0        
PLL bypass 1        

Zedboard上有兩個JTAG,一個可以接Xilinx編程電纜,一個是USB轉JTAG

Demo演示

Zedboard的附件中的4G SD卡預裝了一個演示的Linux文件系統,而且板載的SPI FLASH上也有一個簡單的Demo程序,下面我們來看看這些demo程序的功能,能夠很快熟悉Zedboard的使用和板上的外設功能。

1. Quad-SPI啓動

板載SPI FLASH中預置了一個非常簡單的程序,SPI-FLASH啓動過程可以分爲:

  • 上電後,片上ROM程序執行,初始化後判斷從SPI FLASH啓動。
  • 從SPI FLASH拷貝FSBL到片上RAM執行
  • FSBL執行,處理器從SPI FLASH讀取比特流(bitstream)配置Zynq的PL部分
  • PL配置完成後執行,點亮LED

首先要MODE跳線選擇在SPI FLASH啓動模式,如下圖所示:

接通Zedboard電源,程序啓動,因爲是一個非常簡單程序,所以啓動配置過程非常快,藍色LED(LD12)變亮說明Zynq芯片配置完成,程序執行後按照(10101010)邏輯點亮用戶LED。

2. SD驅動

隨板附送的SD卡中有一個演示的Linux文件系統,而且在Linux系統下有一些腳本例程用來控制Zedboard板上各種外設的功能,這與之前的FPGA調試很不一樣,顯示了Zynq芯片軟硬件開發的強大和靈活性。

首先搭好Zedboard平臺,連接12V電源(J20)、USB-UART接口(J14)到計算機、插上SD卡(J12)、VGA(J19)或者HDMI(J9)。

上圖看到跳線J6必須短接,MODE跳線選擇SD啓動。

該Linux文件系統沒有圖形界面或者控制檯,所以必須通過串口或者ssh訪問。如果沒有安裝過USB-UART驅動,可以先通電後安裝USB串口驅動。安裝好驅動後打開一個串口監視器,可以使用XP的超級終端或者其他的串口調試工具。

用putty來監視串口,串口參數設爲波特率115200、數據位8、停止位1、校驗無。

準備好以後,可以接通電源,從SD卡啓動過程可以分爲:

  • 上電後,片上ROM程序執行,初始化後判斷從SD卡啓動。
  • 從SD卡拷貝FSBL到片上RAM執行,FSBL配置FPGA,藍色LED(LD12)變亮說明配置完成。
  • 從SD讀取SSBL,開始Uboot過程(啓動Linux),啓動過程中VGA輸出了一個Demo演示圖像。
  • 串口監視程序會顯示Linux啓動過程(需要上電前打開putty窗口),啓動完成後,板上OLED會顯示一個Digilent demo圖像。

Putty監視窗口如下,可以看到Linux系統已經啓動了文件系統、telent終端、HTTP、FTP、SSH服務以及開始了OLED顯示,而且Zedboard的網口IP固定爲了192.168.1.10。

Linux系統啓動後,現在可以上面做一些演示的實驗以體驗下Zynq芯片的應用。

1)控制GPIO

在/usr/bin目錄下有一些腳本文件用來控制或讀取一些外設的狀態。

腳本read_sw用來讀取板上8個開關的狀態,在命令行輸入read_sw會顯示輸出開關的狀態值(16位進制和10進制)。

腳本write_led用來控制板載8個用戶LED燈(LD0~LD7)的顯示,輸入write_led 後面加一個數值(可以是16位進制或者10位進制數,最大255),例如write_led 0xFF與write_led 255效果一樣,都是點亮8個LED。

2)OLED

系統啓動時在OLED有一個默認的Digilent公司logo顯示,可以通過腳本unload_oled和load_oled掛載和關閉OLED顯示。

VGA顯示一個默認的條紋碼圖像

HDMI輸出也顯示一個默認的小企鵝畫面

3)網口

Linux系統啓動是初始化了Zedboard上的網口,設定固定IP192.168.1.10。演示系統的網絡參數不能修改,因此並不能真正連到互聯網遠程訪問。輸入ifconfig查看Zedboard此時網絡設置:

可以通過網線連接一臺主機,然後修改主機的網絡設置:

設置好了,在主機瀏覽器輸入192.168.1.10,可以看到一個Http頁面:

前面我們看到Linux啓動了ssh服務,這裏也可以通過ssh訪問Zedboard,打開putty:

確定後進入登陸窗口,用戶root,密碼root,這樣我們就能夠訪問Zedboard上的Linux了。

現在和串口訪問模式一樣,也可以輸入腳本控制Zedboard上的外設了。

在Linux下還有一些實驗,可以參考Zedboard的入門手冊。

小結

瞭解了Zynq芯片的配置啓動過程,演示了從Quad-SPI FLASH啓動和通過SD卡啓動Zedboard過程,完成了在Linux下的一些演示實驗。後續會介紹通過JTAG啓動Zedboard以及用ISE開發程序流程。

 

 

 

Zedboard USB串口驅動安裝
2012年09月10日 ⁄ 教程 ⁄ 暫無評論⁄ 被圍觀 58+

Zedboard上板載有一個USB轉UART串口,採用了Cypress公司的USB-UART控制器CY7C64225。CY7C64225提供了一個非常簡潔的USB串口方案,片內集成了USB2.0全速控制器、UART收發器、晶振以及EEPROM等各種功能,而只採用了28腳的SSOP封裝。

Zedboard的USB驅動安裝很簡單,首先下載USB驅動程序,解壓縮後會有3個子目錄分別對應Windows XP、Windows Vista和Windows 7系統,根據自己的計算機系統選擇。

Zedboard上的J14 USB口(有UART標識)作爲USB-UART接口,連接Micro USB到計算機。

接通電源,系統會識別USB設備,這裏我們需要安裝兩次驅動。首先識別設備Cypress-USB2UART-0123456,

安裝驅動之後會產生一個USB設備Cypress Virtual Comm Port00,這裏繼續選擇剛纔的驅動程序位置

安裝完成之後打開設備管理器可以看到USB串口端號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章