基于FPGA的可重構(gòu)智能儀器設(shè)計(jì)
引言
傳統(tǒng)測(cè)試系統(tǒng)由于專用性強(qiáng)、相互不兼容、擴(kuò)展性差、缺乏通用化、模塊化,不能共享 軟硬件組成,不僅使開發(fā)效率低下,而且使得開發(fā)一套復(fù)雜測(cè)試系統(tǒng)的價(jià)格高昂[1]。 目前,傳統(tǒng)的分析儀表正在更新?lián)Q代,向數(shù)字化,智能化方向邁進(jìn)[2]。改變以往由儀器 生產(chǎn)廠家定義儀器功能、用戶只能使用的局面,使用戶可自定義儀器、根據(jù)不同測(cè)試需求對(duì) 儀器進(jìn)行重構(gòu),已經(jīng)成為現(xiàn)代測(cè)試技術(shù)發(fā)展的一個(gè)重要方面。由于其能夠大大減少測(cè)試設(shè)備 的維修成本、提高資源利用率,可重構(gòu)儀器技術(shù)已引起高度重視。
1 可重構(gòu)技術(shù)
目前對(duì)可重構(gòu)性還沒有形成公認(rèn)的定義??芍貥?gòu)性一般是指在一個(gè)系統(tǒng)中,其硬件模塊 或(和)軟件模塊均能根據(jù)變化的數(shù)據(jù)流或控制流對(duì)結(jié)構(gòu)和算法進(jìn)行重新配置(或重新設(shè)置)。
在可重構(gòu)系統(tǒng)(Reconfigurable System)中,硬件信息(可編程器件的配置信息)也可 以像軟件程序一樣被動(dòng)態(tài)調(diào)用或修改。這樣既保留了硬件計(jì)算的性能,又兼具軟件的靈活性。 尤其是大規(guī)模可編程器件FPGA 的出現(xiàn),實(shí)時(shí)電路重構(gòu)思想逐漸引起了學(xué)術(shù)界的關(guān)注[3]???重構(gòu)的實(shí)現(xiàn)技術(shù)又很多種方式,包括DSP 重構(gòu)技術(shù)、FPGA 重構(gòu)、DSP+FPGA 重構(gòu)、可重 組算法邏輯體系結(jié)構(gòu)、可進(jìn)化硬件(EHW)、本地重構(gòu)/Internet 遠(yuǎn)程重構(gòu)、SOPC/SOC 重構(gòu)。
可重構(gòu)技術(shù)具有以下優(yōu)點(diǎn):
1)可重構(gòu)技術(shù)能夠高效地實(shí)現(xiàn)特定功能。可重構(gòu)邏輯器件上都是硬連線邏輯,它通過 改變器件的配置來改變功能。2)可重構(gòu)技術(shù)能夠動(dòng)態(tài)改變器件配置,靈活滿足多種功能的 需求。3)可重構(gòu)技術(shù)適合惡劣工作環(huán)境下的應(yīng)用。利用可重構(gòu)邏輯器件的一個(gè)優(yōu)勢(shì)是不需 要微處理器必需的散熱系統(tǒng),大大減少了電子產(chǎn)品占據(jù)的空間。4)可重構(gòu)技術(shù)具有強(qiáng)大的 技術(shù)支持來加速產(chǎn)品開發(fā)。5)可重構(gòu)技術(shù)的使用能夠大大降低系統(tǒng)成本。另外,對(duì)于不會(huì) 同時(shí)被使用的功能,可考慮利用動(dòng)態(tài)重構(gòu)技術(shù)在不同的需求時(shí)段里分別實(shí)現(xiàn),做到“一片多 用”,節(jié)省了資源、空間和成本。
2 可重構(gòu)智能儀器硬件設(shè)計(jì)
2.1 可重構(gòu)儀器硬件結(jié)構(gòu)
可重構(gòu)智能儀器技術(shù)將先進(jìn)的微電子技術(shù)、半導(dǎo)體技術(shù)和微處理器技術(shù)引入儀器設(shè)計(jì)領(lǐng) 域,通過構(gòu)建通用的硬件平臺(tái),最終由用戶通過選擇不同的軟件來實(shí)現(xiàn)不同的儀器功能,因 此軟硬件在可重構(gòu)儀器設(shè)計(jì)技術(shù)中同樣關(guān)鍵。
可重構(gòu)智能儀器硬件結(jié)構(gòu)由 Nois II 處理器系統(tǒng)(包括可重構(gòu)FPGA 芯片、FPGA 片外 系統(tǒng))和計(jì)算機(jī)組成,其硬件結(jié)構(gòu)框圖如圖1 所示。
可重構(gòu) FPGA 選用Altera 公司Cyclone II 系列中的EP2C35F672C6 芯片,片外系統(tǒng)主要 包括SDRAM 存儲(chǔ)器、Flash 存儲(chǔ)器、模數(shù)轉(zhuǎn)換芯片、數(shù)模轉(zhuǎn)換芯片、EPC16 增強(qiáng)型配置芯 片、MAX232 芯片等組成。片外系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的采集、預(yù)處理、存儲(chǔ)和輸出等功能。
2.2 控制核
在基于 FPGA 的可重構(gòu)智能儀器中,EP2C35F672C6 是整個(gè)系統(tǒng)的核心,為了實(shí)現(xiàn)FPGA 與其他芯片、器件的正確通信、數(shù)據(jù)交換,需要在FPGA 上配置Nios II 軟核處理器以及其 他控制器核。
?。ㄒ唬㎞ios II 嵌入式處理器的設(shè)置。首先在Quartus II 下建立一個(gè)Project,在SOPC Builder 中選擇組件列表中的Nios II Processor-Altera Corporation,考慮到芯片的性能以及資 源利用率,選擇Nios II/s(標(biāo)準(zhǔn)型)CPU,在Cache & Tightly Coupled Memories 標(biāo)簽下設(shè)置 Instruction Cache 為4KB。在JTAG Debug Module 標(biāo)簽下選擇Level 3,可設(shè)置2 個(gè)硬斷點(diǎn)、 2 個(gè)數(shù)據(jù)觸發(fā)、指令跟蹤和片上系統(tǒng)。整個(gè)Debug 模塊將占用2400~2700 個(gè)LE,4 個(gè)M4K。
?。ǘ┨砑覵DRAM 控制器內(nèi)核。在SOPC Builder 組件選擇欄中選擇Avalon Components→Memory→SDRAM Controller,加入SDRAM 控制器核,。在Data Width(數(shù)據(jù) 總線寬度)下拉列表框中選擇16Bits,其余設(shè)置不變,因?yàn)槎紳M足SDRAM 芯片IS42S16400 的參數(shù)要求。Timing 選項(xiàng)卡的參數(shù)也滿足芯片要求,不必修改。
?。ㄈ┨砑?FLASH 控制器。在對(duì)硬件系統(tǒng)進(jìn)行編程控制時(shí),F(xiàn)lash 用于存儲(chǔ)應(yīng)用程序。 在SOPC Builder 的組件選擇欄中選擇Avalon Components→Bridge→Avalon Tri-State Bridge, 加入Avalon 三態(tài)總線橋; 在SOPC Builder 的組件選擇欄中選擇AvalonComponents→Memery→Flash Memery(Common Flash Interface),添加CFI 控制器。
?。?四) 定時(shí)器設(shè)置。在SOPC Builder 組件選擇欄中選擇Avalon Components→Other→Interval timer,加入定時(shí)器核。定時(shí)器的硬件配置選項(xiàng)會(huì)影響定時(shí)器的 硬件結(jié)構(gòu),SOPC 提供了簡(jiǎn)單周期中斷配置、完全功能配置和看門狗配置三種硬件配置。
(五)添加 SPI 核。采用的A/D 轉(zhuǎn)換芯片和D/A 轉(zhuǎn)換芯片都是基于SPI 總線進(jìn)行數(shù)據(jù) 傳輸?shù)模獙?shí)現(xiàn)Nios II 系統(tǒng)對(duì)轉(zhuǎn)換芯片的控制必須添加SPI 核。在SOPC Builder 組件選擇 欄中選擇Avalon Components→Communication→SPI(3 Wire Serial),配置SPI 核。由于用到 的模數(shù)轉(zhuǎn)換芯片AD7810 和數(shù)模轉(zhuǎn)換芯片AD5611 對(duì)于Nios II 系統(tǒng)來說都是從SPI 器件, 所以在FPGA 中添加兩個(gè)主SPI 核分別控制A/D 和D/A 轉(zhuǎn)換芯片。[!--empirenews.page--]可重構(gòu)配置文件生成
#e#
2.3 可重構(gòu)配置文件生成
在完成可重構(gòu)智能儀器的各個(gè)控制器核之后,要生成相應(yīng)的配置文件,才能配置FPGA 芯片,使其實(shí)現(xiàn)各種功能。
配置是對(duì) FPGA 的內(nèi)容進(jìn)行編程的一個(gè)過程。目前大部分FPGA 都是基于SRAM 工藝 的,而SRAM 工藝的芯片在掉電后信息就會(huì)丟失,需要外加專用配置芯片,在上電時(shí),由 這個(gè)專用配置芯片把配置數(shù)據(jù)加載到FPGA 中,之后FPGA 就可以正常工作了。
在被動(dòng)模式(PS)方式下,F(xiàn)PGA 處于完全被動(dòng)的地位。FPGA 接收配置時(shí)鐘、配置命 令和配置數(shù)據(jù),給出配置的狀態(tài)信號(hào)以及配置完成指示信號(hào)等。PS 配置時(shí)序如圖2 所示:
根據(jù) SOPC Builder 中對(duì)FPGA 添加的各種控制器核,利用Quatus II 軟件例化Nios II 處 理器,生成了完整的FPGA 內(nèi)部頂層模塊圖,如圖3 所示。然后利用引腳規(guī)劃器Pin Planner 對(duì)其進(jìn)行引腳分配。最后用進(jìn)行Compilation,生成.sof 和.pof 配置文件,完成硬件設(shè)計(jì)。
2.4 外圍電路設(shè)計(jì)
外圍電路設(shè)計(jì)包括存儲(chǔ)器設(shè)計(jì)、AD 轉(zhuǎn)換電路設(shè)計(jì)、DA 轉(zhuǎn)換設(shè)計(jì)、顯示電路設(shè)計(jì)、開 關(guān)量DI、DO 設(shè)計(jì)和RS232 通信設(shè)計(jì)等。
儀器上的存儲(chǔ)器包含 1 片8M 字節(jié)的SDRAM 和一片32M 字節(jié)的FLASH 存儲(chǔ)器。限于 篇幅SDRAM(IS42S16400)與EP2C35F672C6 連接的引腳、FLASH 存儲(chǔ)器(AT49BV163) 與EP2C35F672C6 連接的引腳分配這里不再贅述。
A/D 轉(zhuǎn)換電路采用了AD7810 芯片、DA 轉(zhuǎn)換電路采用AD5611 芯片。
DI、DO 均為16 路,數(shù)字端口滿足標(biāo)準(zhǔn)TTL 電氣特性。數(shù)字量輸入最低的高電平為2V, 數(shù)字量輸入最高的低電平為0.8V;數(shù)字量輸出最低的高電平為3.4V,數(shù)字量輸出最高的低 電平為0.5V。DI、DO 部分的電路如圖4 所示:
[!--empirenews.page--]3 可重構(gòu)智能儀器軟件設(shè)計(jì)
3.1 可重構(gòu)儀器軟件結(jié)構(gòu)
可重構(gòu)智能儀器的軟件結(jié)構(gòu)如圖 5 所示。
系統(tǒng)軟件模塊庫:包含軟件控制模塊、RS232 通訊模塊、模數(shù)轉(zhuǎn)換模塊、數(shù)模轉(zhuǎn)換模塊、 顯示模塊和DI、DO 開關(guān)量模塊。通過軟件控制模塊選擇其他的模塊進(jìn)行組合就可以實(shí)現(xiàn)不 同的軟件功能,從而達(dá)到重構(gòu)的目的。
HAL 程序庫實(shí)際上包含了各種不同的硬件驅(qū)動(dòng),包括MAX232 驅(qū)動(dòng)、AD 轉(zhuǎn)換芯片驅(qū) 動(dòng)、DA 轉(zhuǎn)換芯片驅(qū)動(dòng)、FPGA 的I/O 引腳驅(qū)動(dòng)等。
通過選擇軟件模塊庫中的軟件模塊,就可以調(diào)用 HAL 程序庫中相應(yīng)的硬件驅(qū)動(dòng),從而 實(shí)現(xiàn)上層應(yīng)用程序?qū)Φ讓佑布目刂?。軟件模塊的可重構(gòu)性對(duì)應(yīng)了底層硬件的可重構(gòu)性。
3.2 基于HAL 的可重構(gòu)智能儀器軟件開發(fā)
硬件抽象層(HAL, Hardware Abstraction Layer),是指在應(yīng)用程序和系統(tǒng)硬件之間的一 個(gè)系統(tǒng)庫(System Library),為嵌入式系統(tǒng)與硬件通信的程序提供簡(jiǎn)單的設(shè)備驅(qū)動(dòng)接口。 SOPC Builder 是一個(gè)自動(dòng)化的SOPC 硬件系統(tǒng)工具?;贖AL 的軟件系統(tǒng)由兩個(gè)Nios II 工 程所構(gòu)建,用戶的程序包含在一個(gè)工程中(用戶應(yīng)用工程),該工程依賴一個(gè)獨(dú)立的系統(tǒng)庫 工程(HAL 系統(tǒng)庫工程)。用戶應(yīng)用工程包含開發(fā)的所有代碼,編譯該工程可以產(chǎn)生可執(zhí)行 文件。HAL 系統(tǒng)庫工程包含涉及處理器硬件接口的所有信息。系統(tǒng)庫工程依賴于由SOPC Builder 產(chǎn)生的擴(kuò)展名為.ptf 的Nios II 處理器系統(tǒng)。
由于該工程的依賴結(jié)構(gòu),如果 SOPC Builder 生成的系統(tǒng)改變(即.ptf 文件已修改),則 Nios II IDE 管理HAL 系統(tǒng)庫并且修改驅(qū)動(dòng)配置來正確的反應(yīng)系統(tǒng)硬件。HAL 系統(tǒng)庫將用戶 程序與底層硬件變化分離開來,這樣,用戶可以不用考慮自己的程序是否與目標(biāo)硬件匹配來 開發(fā)和調(diào)試代碼,簡(jiǎn)而言之,基于HAL 系統(tǒng)庫的程序和目標(biāo)硬件是同步的。
由于 HAL 系統(tǒng)庫中包含有各種不同的硬件驅(qū)動(dòng),用戶可以根據(jù)特定的設(shè)計(jì)需要調(diào)用 HAL 系統(tǒng)庫中的相應(yīng)硬件驅(qū)動(dòng),從而實(shí)現(xiàn)對(duì)不同硬件系統(tǒng)的控制,來達(dá)到可重構(gòu)設(shè)計(jì)的目的。本文所設(shè)計(jì)的基于HAL 系統(tǒng)庫的可重構(gòu)智能儀器軟件系統(tǒng)如6 示。在系統(tǒng)軟件控制界 面中選擇了某一功能后,該功能就會(huì)調(diào)用HAL 程序庫中相應(yīng)的一些硬件驅(qū)動(dòng),從而實(shí)現(xiàn)對(duì) 硬件設(shè)備的控制。
4 系統(tǒng)分析
基于 FPGA 的可重構(gòu)智能儀器主要是針對(duì)目前測(cè)試儀器生產(chǎn)出來后功能不能改變、維護(hù) 費(fèi)費(fèi)用過高、資源浪費(fèi)嚴(yán)重等問題。提出基于FPGA 的可重構(gòu)智能儀器的硬件結(jié)構(gòu)和軟件結(jié) 構(gòu),實(shí)現(xiàn)了八種不同的功能,借鑒虛擬儀器的思想,開發(fā)了基于FPGA 的可重構(gòu)智能儀器演 示系統(tǒng),該系統(tǒng)具有A/D 采集、D/A 輸出和開關(guān)量控制三種功能。
本文作者創(chuàng)新點(diǎn):基于SOPC技術(shù)進(jìn)行可重構(gòu)設(shè)計(jì);采用了FPGA增強(qiáng)型配置芯片EPC16; 軟件重構(gòu)采用了應(yīng)用框架的復(fù)用技術(shù)。