新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的嵌入式音頻處理系統設計

基于FPGA的嵌入式音頻處理系統設計

作者: 時間:2014-04-30 來源:網絡 收藏

嵌入式設計中,常通過軟件編程的方式來訪問或者控制某些外圍設備.電路設計軟件Altium Designer的軟件平臺構建器(SPB)是一個包含了用于創(chuàng)建復雜軟件系統所需的所有驅動和服務程序的軟件構架.SPB中的軟件IP模塊可以屏蔽底層細節(jié),為嵌入式設計的快速開發(fā)提供便利,提高研發(fā)效率.介紹了基于SPB的嵌入式設計關鍵技術,并在智能開發(fā)平臺 3000上實現了基于SPB的嵌入式音頻處理系統設計.

本文引用地址:http://2s4d.com/article/246209.htm

0 引言

FPGA(Field Programmable Gate Array)現場可編程門陣列,是在PAL,GAL,PLD基礎上進一步發(fā)展的,作為專用集成電路(ASIC)領域中的一種半定制電路,FPGA既解決了定制的電路的不足,又克服了原有可編程器件門電路數有限的缺點.使用FPGA來開發(fā)數字電路,可以大大縮短設計時間.從簡單的與非門電路到高性能的CPU,FPGA能完成所有的數字器件.

1 軟件平臺構建器

設計FPGA嵌入式系統時,常需要通過軟件編程的方式訪問外圍設備,如LED.音頻接口.觸摸屏等.但在編程時需要熟悉相關外圍設備的工作狀況,包括設備工作時所需的設備寄存器.設備特定的命令.使用的通信協議及需要處理的中斷等.AD軟件的軟件平臺構建器(SPB)為這些特定的外圍設備提供了配置數據和驅動等相關的底層模塊(軟件IP 模塊),提供了訪問外圍設備的應用編程接口(API).

在AD 軟件下進行嵌入式系統設計時,SPB 的使用是通過軟件平臺文件(SwPlatform)實現的.SPB是一個圖形化的用戶界面,可以自行讀取FPGA 設計,為設計中的外圍設備導入合適的底層模塊,并以此為基礎添加更多的高層IP模塊到軟件平臺文件中.具體添加何種IP模塊,取決于FPGA嵌入式設計中需要訪問哪些外圍設備.訪問外圍設備時,可以使用SPB提供的多個IP模塊.較底層的IP 模塊可以訪問特定的存儲設備,如硬盤.SD卡.RAM驅動器,較高層的IP模塊則更抽象也更獨立于硬件.

軟件平臺文件(SwPlatform)是在SPB 中,從一系列提供的元器件中選擇組合起來的軟件層.軟件平臺文件使得應用程序通過一組標準化的服務來利用硬件,如存儲服務和網絡服務.軟件平臺文件的目的其實就是使硬件設備通過抽象和通用的軟件接口,來為應用程序提供外圍設備的應用編程接口(API).軟件平臺中的設備堆棧(Device Stacks)由三種類型的模塊構成,分別是硬件包裝(Wrapper).驅動(Driver)和服務程序(Con-text).通常從底而上,從最底層的與原理圖設計上特定硬件設備相關的模塊開始構建設備堆棧.在此之上,可以堆積較高層次的模塊,提供更通用的訪問外圍設備的功能函數.設備堆棧的底部是硬件包裝(Wrapper),然后是驅動(Driver),最后是服務程序(Context).堆棧每往上一層,模塊對硬件的抽象層面越高.設備堆棧層的功能描述如表1所示.

?

?

SPB中的軟件服務列表(Software Service)是一組應用程序可以使用的類型.定義.結構和功能函數.軟件服務包含用于訪問SD卡.IDE存儲設備.CF卡和閃存上的文件的存儲服務;用于提供以太網訪問的網絡服務;提供符合POSIX規(guī)范的多線程功能的核心服務;允許快速構造現代圖形界面的GUI服務;用于實現音頻和視頻功能的多媒體服務.用于中斷管理和軟件定時管理的系統服務總是出現在軟件平臺中,并且與特定設備無關.每個不同的軟件模塊都包含完整的API 參考信息.通過API Reference可以訪問API參考信息,堆棧中的每一層都會有詳細的該層上可用函數的描述.通過Header Files 可以查看任意驅動或者服務程序的頭2 嵌入式音頻處理系統設計2.1 OpenBus系統設計

嵌入式設計時,在處理外圍設備與處理器的連接關系時,可以采用AD 軟件中的開放總線(OpenBus系統)來完成,這樣連接過程將被大大簡化.“OpenBus系統”是一個描述一種使用普通總線實現整個系統內邏輯功能性 “模塊”連接的術語[3].在OpenBus系統文檔中,打開OpenBus Palette面板,選擇并放置組成系統所需的器件.OpenBus Palette面板中用于FPGA 設計的器件,按照功能分類有Connectors(連接器).Processors(處理器).Memories(存儲器).Peripherals(外圍設備)等.每個OpenBus器件必須正確配置后才能使用.這種Open-Bus 系統的設計方法與傳統的將處理器和外圍電路作為元件放置在電路板上不同,它移除了所有低級別的走線和互連細節(jié),能夠快速地構建系統.

在本文的嵌入式音頻處理系統中,通過訪問NB3000開發(fā)板上的高保真音頻接口獲取音頻流信號.在設計OpenBus主處理器系統中,分別選擇并放置微處理器(32 – bit RISC Processor TSK3000A).連接件(Interconnect).I2S 音頻流控制器(Audio Streaming Control-ler).SPI控制器(SPI Controller)和SRAM 控制器(SRAMController)等OpenBus 器件,并連線如圖1 所示.同時,對OpenBus器件進行參數配置.將SPI控制器的數據發(fā)送大小(Data Transfer Size)參數配置為32.將I2S音頻流控制器的數據緩存(I2S Hardware Buffer)參數配置為4k samples,將I2S設置為中斷號INT_I1.

?

?

通常情況下,任何使用OpenBus系統的FPGA 設計都要設計放置接口電路的頂層原理圖.圖1的Open-Bus系統文件為32位處理器TSK3000A 和I/O 接口邏輯獲得了音頻流數據,包含了FPGA設計中的主處理器系統.約束文件將原理圖頂層的端口連接到目標FPGA器件的實際物理管腳.約束文件中不但包含端口到管腳的映射,還包含如時鐘分配.目標器件等其他相關的設計規(guī)范.

頂層原理圖通過約束文件,將下載到FPGA中的嵌入式系統設計與FPGA器件的物理管腳連接起來.頂層原理圖設計中,音頻流控制器I2S 與音頻編解碼器(AUDIO_CODEC)相連,SPI 控制器與音頻編解碼器控制器CS4270(AUDIO_CODEC_CTRL)相連,如圖2所示.

?

?

2.2 軟件平臺文件設計


上一頁 1 2 下一頁

關鍵詞: FPGA NanoBoard

評論


相關推薦

技術專區(qū)

關閉