引言
傳統測試系統由于專用性強、相互不兼容、擴展性差、缺乏通用化、模塊化,不能共享 軟硬件組成,不僅使開發效率低下,而且使得開發一套復雜測試系統的價格高昂[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 所示:
?
?
?
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; 軟件重構采用了應用框架的復用技術。
評論
查看更多