SOPC基礎(chǔ)上的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言:隨著集成電路的不斷發(fā)展,可編程邏輯器件FPGA因其功能強(qiáng)大,設(shè)計(jì)靈活,開(kāi)發(fā)周期短等特點(diǎn),得到越來(lái)越廣泛的應(yīng)用。于是片上可編程系統(tǒng)(System On Programmable Chip,SOPC)的設(shè)計(jì)方法也越來(lái)越受到重視。SOPC將微處理器、存儲(chǔ)器、定時(shí)器、通用I/O接口等系統(tǒng)設(shè)計(jì)必需的功能模塊以及用戶設(shè)計(jì)的有特定功能的模塊集成到一片可編程邏輯器件上,構(gòu)建一個(gè)具備軟,硬件在系統(tǒng)可編程功能的可編程片上系統(tǒng)。這種非常靈活的電路設(shè)計(jì)方式使得對(duì)整個(gè)電路系統(tǒng)的裁減、擴(kuò)充、升級(jí)變的很容易。這樣可以縮短電路設(shè)計(jì)的開(kāi)發(fā)周期,節(jié)省開(kāi)發(fā)成本。
1 系統(tǒng)總體結(jié)構(gòu)
整個(gè)系統(tǒng)由xilinx公司的spartan3E高性能、低成本的90nm FPGA和一些外圍電路組成。主要有AD轉(zhuǎn)換器、FLASH存儲(chǔ)器、系統(tǒng)PROM配置電路和電源模塊等,其系統(tǒng)總體結(jié)構(gòu)如圖1所示。
系統(tǒng)核心采用嵌入式技術(shù),在一片芯片上實(shí)現(xiàn),它包含Xilinx公司的一些標(biāo)準(zhǔn)總線IP核如中斷控制器,通用輸入輸出端口等模塊和帶有PLB總線接口的用戶自定義的數(shù)據(jù)采集與存儲(chǔ)IP核。其中用戶自定義的IP核是用VHDL語(yǔ)言設(shè)計(jì)的,它包含AD控制邏輯、FLASH控制邏輯、DMA傳輸控制邏輯和FIFO緩存模塊等。
整個(gè)系統(tǒng)設(shè)計(jì)可以分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)部分。利用SOPC技術(shù)結(jié)合VHDL硬件描述語(yǔ)言,在芯片內(nèi)部設(shè)計(jì)硬件控制系統(tǒng);利用EDK(嵌入式開(kāi)發(fā)套件)為特定硬件配置自動(dòng)生成的軟件包結(jié)合C語(yǔ)言,設(shè)計(jì)基于Microblaze處理器的軟件控制程序。
2 系統(tǒng)結(jié)構(gòu)
FPGA的硬件設(shè)計(jì)先確定要用的外部接口,然后進(jìn)行IP核設(shè)計(jì),將IP核的邏輯功能映射到FPGA芯片上。其系統(tǒng)結(jié)構(gòu)框圖如圖2所示。
2.1 AD轉(zhuǎn)換芯片
AD轉(zhuǎn)換器采用MAXIM公司的MAXIM1308芯片,它是12位模數(shù)轉(zhuǎn)換器(ADC)提供8個(gè)獨(dú)立輸入通道,獨(dú)立的采樣保持(T/H)電路為每個(gè)通道提供同時(shí)采樣,提供+5V輸入范圍,20MHz、12位雙向并行數(shù)據(jù)總線用來(lái)提供轉(zhuǎn)換結(jié)果,并可接受數(shù)字輸入來(lái)單獨(dú)配置每一通道的開(kāi)啟和關(guān)閉。
2.2 FLASH存儲(chǔ)器
FLASH存儲(chǔ)器芯片采用8片三星公司的K9XXG08UXA系列的NAND Flash存儲(chǔ)器,該存儲(chǔ)器是按頁(yè)進(jìn)行讀寫按塊擦除,通過(guò)I/O管腳分時(shí)復(fù)用發(fā)送命令/地址/數(shù)據(jù)。每片的存儲(chǔ)容量為512MB。存儲(chǔ)過(guò)程使用流水線方式對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。
2.3 FPGA配置電路
Xilinx公司的FPGA器件是基于SRAM的內(nèi)部結(jié)構(gòu),掉電后FPGA的內(nèi)部邏輯丟失,因此外部需要一個(gè)配置芯片在每次上電時(shí)可以將配置數(shù)據(jù)加載到FPGA器件的內(nèi)部SRAM中。配置芯片采用的是XCF04系列PROM串行配置芯片。當(dāng)系統(tǒng)上電時(shí),芯片以主動(dòng)配置方式來(lái)實(shí)現(xiàn)系統(tǒng)中FPGA的硬件配置。通過(guò)高速的串行接口,整個(gè)芯片的配置工作可以在很短的時(shí)間內(nèi)完成。
2.4 系統(tǒng)電源模塊
電源模塊的設(shè)計(jì)不僅需要為器件提供各種高性能的功率輸出,還要包括選擇合適的旁路、去耦電容,以濾除各種干擾信號(hào),保證系統(tǒng)的穩(wěn)定工作。Xilinx公司Spartan-3E XC3S500E FPGA需要三種電壓供電才能正常工作:VCCAUX:1.2V±5%,VCCAUX:2.5V±5%,VCCO:3.3V±5%。利用TI公司TPS75003芯片加上必要的外圍電路作為該系統(tǒng)的完整的電源解決方案。
2.5 USB接口芯片
USB芯片使用由FTDI公司推出的FT245R,該芯片主要完成USB串行總線和8位并行FIFO接口之間的相互協(xié)議轉(zhuǎn)換。整個(gè)USB通信協(xié)議全部由芯片自動(dòng)完成,無(wú)須考慮底層固件的編程。該芯片可以使用內(nèi)部集成的時(shí)鐘電路進(jìn)行工作,也可以使用外部晶振,本系統(tǒng)中使用外部晶振。完全兼容USB2.0協(xié)議。它有256字節(jié)的接收緩沖區(qū)和128個(gè)發(fā)送緩沖區(qū),可以進(jìn)行數(shù)據(jù)的大吞吐量操作。通過(guò)8位并行數(shù)據(jù)口D[0:7]和4位讀寫狀態(tài)/控制口RXF、TXE、RD、WR就可實(shí)現(xiàn)與微控制器的數(shù)據(jù)交換。
3 FPGA系統(tǒng)硬件設(shè)計(jì)
Xilinx公司EDK(嵌入式開(kāi)發(fā)套件)的XPS(平臺(tái)工作室)的系統(tǒng)組建面板以展開(kāi)式的樹(shù)和表形式顯示所有硬件平臺(tái)IP實(shí)例,因此用戶可以方便地查看自己的嵌入式設(shè)計(jì)。在此面板中可以對(duì)IP元素、端口、屬性以及參數(shù)進(jìn)行配置。
3.1 用戶IP核設(shè)計(jì)
使用XPS進(jìn)行基于MicroBlaze的用戶IP核的開(kāi)發(fā),該套件集成了硬件平臺(tái)產(chǎn)生器、軟件平臺(tái)產(chǎn)生器、仿真模型生成器、軟件編譯器和軟件調(diào)試工具等。
為實(shí)現(xiàn)系統(tǒng)功能,需自定義一個(gè)IP核實(shí)現(xiàn)數(shù)據(jù)的采集與存儲(chǔ):該IP核包括五部分,分別為PLB總線接口模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)緩存模塊、數(shù)據(jù)存儲(chǔ)模塊FLASH讀寫控制邏輯。
(1)數(shù)據(jù)采集模塊:利用FPGA邏輯資源實(shí)現(xiàn)A/D采集電路的控制邏輯。在功能上,該AD控制邏輯相當(dāng)于一個(gè)主控制器。該控制過(guò)程無(wú)需處理器參與。另外AD控制邏輯與AD數(shù)據(jù)接口的分離,使得高速采集與發(fā)送數(shù)據(jù)成為可能。它連接兩片12位的8通道MAXIM1308轉(zhuǎn)換器,可實(shí)現(xiàn)多通道的數(shù)據(jù)采集。
(2)數(shù)據(jù)緩存模塊:在FPGA內(nèi)部設(shè)計(jì)FIFO將AD轉(zhuǎn)換后的數(shù)據(jù)暫時(shí)存放其中。FIFO是Xilinx以FPGA片上Blockram為資源生成,F(xiàn)IFO模塊的主要功能是數(shù)據(jù)緩沖,實(shí)現(xiàn)速率匹配。該異步FIFO模塊在FIFO讀、寫控制模塊的控制之下進(jìn)行異步讀寫,F(xiàn)IFO的讀時(shí)鐘受數(shù)據(jù)存儲(chǔ)模塊控制,寫時(shí)鐘受數(shù)據(jù)采集模塊的控制。FPGA內(nèi)部設(shè)計(jì)了兩片12位的FIFO與上述兩片AD轉(zhuǎn)換器相對(duì)應(yīng)。
(3)數(shù)據(jù)存儲(chǔ)模塊:對(duì)本系統(tǒng)使用VHDL語(yǔ)言專門設(shè)一個(gè)DMA控制器來(lái)連接FIFO緩存和外部FLASH存儲(chǔ)陣列。當(dāng)FIFO緩存容量達(dá)到一定的值時(shí)可以啟動(dòng)DMA控制器建立一個(gè)高速的通道以提供連續(xù)的數(shù)據(jù)傳輸,存儲(chǔ)到FPGA外部FLASH存儲(chǔ)器陣列。這個(gè)通道使得只要FIFO緩存中的數(shù)據(jù)達(dá)到一定的值時(shí)便能迅速地存儲(chǔ)到外部FLASH中,主設(shè)備不必為了確定從端口是否能夠發(fā)送或接收數(shù)據(jù)而不斷地訪問(wèn)從外設(shè)的狀態(tài)寄存器。這使得系統(tǒng)的整體效率有了較大的提高,同時(shí)避免了自定義外設(shè)FIFO中的數(shù)據(jù)上溢或下溢。并且該過(guò)程只需要Microblaze處理器很少的干預(yù)即可完成,極大地節(jié)省了CPU資源。
(4)FLASH讀寫控制邏輯:主要實(shí)現(xiàn)K9XXG08UXA系列的NAND Flash存儲(chǔ)器的讀寫時(shí)序,完成對(duì)FLASH的操作。
在SOPC硬件系統(tǒng)設(shè)計(jì)過(guò)程中用戶IP核的設(shè)計(jì)是關(guān)鍵,它的設(shè)計(jì)是否成功決定著整個(gè)系統(tǒng)設(shè)計(jì)是否可行。在用戶IP核設(shè)計(jì)過(guò)程中AD控制器、FLASH控制器、DMA控制器的設(shè)計(jì)都比較成功的,圖3是對(duì)用戶IP核設(shè)計(jì)的部分驗(yàn)證:示波器捕獲的讀FLASH存儲(chǔ)器ID號(hào)時(shí)序圖,且實(shí)驗(yàn)證明讀出來(lái)的FLASH存儲(chǔ)器的ID號(hào)是正確的。其中通道0—4分別代表FLASH的CE(片選)、ALE(地址鎖存)、CLE(命令鎖存)、RE(讀)、WE(寫)信號(hào)。
3.2 設(shè)計(jì)生成FPGA硬件系統(tǒng)
在XPS嵌入式開(kāi)發(fā)環(huán)境中將用戶IP核和標(biāo)準(zhǔn)總線核添加到系統(tǒng)中并將它們互相按規(guī)則連接起來(lái)。XPS提供了一個(gè)交互式的開(kāi)發(fā)環(huán)境,允許用戶對(duì)硬件平臺(tái)各個(gè)方面進(jìn)行設(shè)置。其中,XPS在高層對(duì)硬件平臺(tái)描述進(jìn)行維護(hù),此高層形式即為微處理器硬件規(guī)范(MHS)文件。MHS文件作為一個(gè)可以編輯的文本文件,是表示用戶嵌入式系統(tǒng)硬件部分的主要源文件。XPS將MHS文件綜合到硬件描述語(yǔ)言網(wǎng)表中,用于FPGA的布局布線形成FPGA系統(tǒng)的硬件結(jié)構(gòu),該過(guò)程即是生成硬件比特流的階段,形成后綴名為.bit的文件。
4 結(jié)束語(yǔ)
本文介紹了基于SOPC的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì),可以對(duì)多種關(guān)心的環(huán)境參數(shù)進(jìn)行采集并研究其特性。利用MicroBlaze微處理器搭建數(shù)據(jù)此采集與存儲(chǔ)的嵌入式可編程片上系統(tǒng),可以由單個(gè)芯片完成整個(gè)系統(tǒng)的主要邏輯功能。便于系統(tǒng)實(shí)現(xiàn)小型化,集成化。