天天看點

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

本文将給出通過vivado ide開發zynq平台上ps裸機應用程式的流程。通過與本系列部落格(三)對比,讀者将看到vivado開發更高效、快捷。

mp3我們都聽過,現在我們可以用zed-board來聽。闆子上有音頻晶片adau1761,可以實作錄音、放音,但不具有mp3解碼功能。zynq 雙核arm9做mp3軟體解碼應該是可以實作的,但是部落客本人有一顆vs1003,可以實作mp3硬體解碼,軟體将得以簡化,對mp3解碼原理感興趣的可以深入研究如何利用cortexa9+adau1761實作mp3播放。電路圖如下:

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放
ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

利用zynq mio實作vs1003控制,這樣隻和ps有關,pl完全可以丢棄。在本節基礎上,讀者可以嘗試将spi子產品移到pl上實作,這樣可以降低ps部分io讀寫頻率,提高cpu使用率。實物連接配接圖如下:

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放
ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放
ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

zynq闆子外接用排母,為了使用杜邦線,需要一個雙公排針,可以用普通單排2.54mm排針壓制而成

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

下面介紹軟體開發流程。建立vivado工程,命名為mp3player,過程遵循上節vivado建立工程步驟,略。

進入ide後,點選左側流程管理器中的ipi integrator下的create block design。 這個工具是2013.1版本後才出現的,将取代xps完成系統內建。

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

在編輯區右鍵,選擇add ip...,名稱保持預設design_1.bd

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

搜尋框中輸入zynq,輕按兩下第一個,添加ip到電路圖中。

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

添加完成後,自動進行布線連接配接,點下圖中圓圈區域 run block automation。

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

等待完成,結果如下圖所示。

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

可以看到,ddr和固定io自動進行了連接配接。這是因為我們建立工程時選擇了zedboard dvk,這樣就能按照闆子描述自動連接配接引腳到相應外設。

另外看到,預設狀态下使能了m_axi_gp0,可以将pl部分帶axi從接口的ip連接配接到ps進行控制。本節不需要,是以必須禁用,否則驗證設計時會報錯。輕按兩下方塊,見下圖

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

看到了熟悉又陌生的畫面,有些像xps中zynq視圖,但精簡了很多。單擊左側“ps-pl configuration",界面如下:

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

将axi gp0接口後的勾取消選擇,确認,回到ipi。

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

驗證設計,在空白處右鍵,點選validate design。無誤,點确認即可。

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

在上圖位置點generate block design,确認。

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

在sources視窗中找到design_1,右鍵選擇生成頂層hdl包裝。确認。

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

直接點左側流程中的generate bitstream,一步到位。完成比特流大約需要5~8min。

完成後,先open implementated design,再導出到sdk。

ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放
ZED Board從入門到精通系列(七)——Vivado+SDK實作MP3播放

完成後,先open implementated design,再導出到sdk。如果沒有做這一步,上圖中第二項會變成灰色。

後面就是sdk開發了,和本系列教程(三)中相同。建立application工程,c工程,模闆helloworld。将代碼改為下面:

音頻檔案需要轉換為c頭檔案,可以用matlab實作:

下載下傳比特流,運作。通過耳機可以聽到你轉換的mp3。

完成上述工程,隻需要10min,操作完全由vivado+sdk完成,操作十分簡單集中。