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