文/柴俊 王維 陳玲 楊松
嵌入式系統(tǒng)通常由一個(gè)或多個(gè)處理平臺(tái)組成。PowerPC是一種精簡(jiǎn)指令集架構(gòu)的中央處理器。Powerpc處理器有廣泛的實(shí)現(xiàn)范圍。同時(shí)該處理器具有非常強(qiáng)的嵌入式表現(xiàn),因?yàn)樗哂懈咝阅?、低功耗、低散熱的特點(diǎn)。
FPGA包含可編程邏輯元件的集成電路,是在PAL、GAL、CPLD等編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它的出現(xiàn)既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。
本文提出一種以PowerPC為核心,F(xiàn)PGA為協(xié)處理器的音頻轉(zhuǎn)換模塊的設(shè)計(jì)方案。其中包括硬件設(shè)計(jì)、應(yīng)用軟件設(shè)計(jì),以及FPGA程序設(shè)計(jì)方案。
本文采用FPGA+PowerPC架構(gòu)作為音頻數(shù)據(jù)轉(zhuǎn)換模塊的核心,PowerPC作為主處理器,用于音頻數(shù)字信號(hào)接收、解包、命令收發(fā)以及將解完包的音頻數(shù)據(jù)傳輸給FPGA使用。PowerPC通過Local Bus總線與FPGA相連,通過映射的地址空間進(jìn)行命令與數(shù)據(jù)的交互。FPGA作為協(xié)處理器,接收來自PowerPC的相關(guān)指令和音頻數(shù)字信號(hào),對(duì)音頻數(shù)據(jù)進(jìn)行處理。FPGA處理完成之后的數(shù)據(jù)通過DAC模塊生成模擬音頻數(shù)據(jù),如圖1。
表1:測(cè)試結(jié)果
圖3:PowerPC軟件流程
圖4:FPGA邏輯設(shè)計(jì)框圖
主控CPU采用freecale公司的PowerPC架構(gòu)P1020處理器,外接兩片512MB的DDR3存儲(chǔ)器、64MB的NorFlash以及512MB NandFlash。P1020外接3路千兆以太網(wǎng)PHY芯片(88E1111)用于音頻數(shù)據(jù)接收、命令接收以及調(diào)試。在板子上引出1路MAX3232接口用于打印調(diào)試。VPX接口與VPX底板連接。選用Xilinx公司的KINTEX-7系列芯片作為協(xié)處理器用于數(shù)據(jù)管理。FPGA芯片使用DDR3接口外擴(kuò)4片DDR3芯片,總?cè)萘繛?GB,同時(shí)使用4個(gè)PCM5102用于D/A轉(zhuǎn)換,如圖2所示。
PowerPC通過以太網(wǎng)接口與音頻信號(hào)源進(jìn)行通信,通過Localbus總線與FPGA進(jìn)行交互。
FPGA與PowerPC通信,首先需要將FPGA映射到PowerPC的地址空間中。本文使用Localbus總線,通過配置eLBC_BR2和eLBC_OR2寄存器將1M空間從FPGA映射到PowerPC地址空間中。
PowerPC通過以太網(wǎng)接收音頻數(shù)據(jù),將收到的數(shù)據(jù)根據(jù)協(xié)議解包獲得音頻數(shù)據(jù)的元數(shù)據(jù)。本文中的音頻模塊提供4種采樣率,根據(jù)協(xié)議將包頭信息中采樣率的字段解析后,并將其寫入FPGA在PowerPC映射空間ControlBlock中的控制采樣率寄存器??刂泼顚懭牒?,將音頻元數(shù)據(jù)根據(jù)包頭中的通道號(hào)寫入不同通道的DMA空間中。再配置DMA控制器的DMA_MR、DMA_SAR、DMA_SATR、DMA_DAR、DMA_DATR、DMA_BCR寄存器使DMA符合FPGA的需求,就可以寫入FPGA的數(shù)據(jù)接收地址,數(shù)據(jù)通過Localbus總線傳至FPGA中。如圖3所示。
Xilinx公司的KINTEX-7芯片擁有豐富的外圍接口,可以用來實(shí)現(xiàn)多模塊間的復(fù)雜通信。KINTEX-7系列高容量高性能FPGA采用Verilog HDL硬件描述語言來進(jìn)行編程,能夠靈活的實(shí)現(xiàn)信號(hào)的采集及存儲(chǔ)、提高了程序的可移植性和可維護(hù)性。
FPGA邏輯設(shè)計(jì)按照功能模塊,可劃分為eLBC控制器模塊,F(xiàn)IFO模塊,時(shí)鐘模塊,IIS控制器模塊,F(xiàn)PGA邏輯設(shè)計(jì)框圖如圖4。
音頻數(shù)據(jù)接收過程中,音頻轉(zhuǎn)換板上的PowerPC通過網(wǎng)絡(luò)接收到數(shù)據(jù)和指令,然后通過localbus總線傳輸給FPGA的eLBC控制模塊。eLBC控制模塊收到命令后將采樣率和通道選擇命令傳給時(shí)鐘模塊。時(shí)鐘模塊根據(jù)指令對(duì)FIFO收到的數(shù)據(jù)根據(jù)采樣率進(jìn)行采樣。
FPGA中的FIFO模塊收到PowerPC通過localbus傳輸?shù)囊纛l數(shù)據(jù),將收到的16位音頻數(shù)據(jù)通過拼接生成32位的音頻數(shù)據(jù)。拼接之后的數(shù)據(jù),再根據(jù)之前配置好的時(shí)鐘模塊進(jìn)行采樣按照一定的節(jié)拍寫入IIS控制器中進(jìn)行并串轉(zhuǎn)換。串行數(shù)據(jù)通過IIS傳到DAC模塊中生成模擬信號(hào),最后通過VPX底板傳出。
在實(shí)驗(yàn)室進(jìn)行了多通道多采樣率的測(cè)試,測(cè)試結(jié)果如表1所示。
本文將PowerPC和FPGA結(jié)合的設(shè)計(jì)實(shí)現(xiàn)的音頻轉(zhuǎn)換模塊,合理利用了PowerPC控制功能和FPGA的運(yùn)算能力。經(jīng)測(cè)試表明,本音頻轉(zhuǎn)換模塊具備多通道多采樣率,靈活切換,易于擴(kuò)展等特點(diǎn)。