基于SOPC技術(shù)的虛擬示波器設計
2 虛擬示波器SOPC系統(tǒng)構(gòu)建及NiosⅡ軟件開發(fā)
本文采用ALTERA公司的NiosⅡ軟核處理器,并利用FPGA設計虛擬示波器系統(tǒng)。ALTERA 公司的NiosⅡ軟核處理器是一個32位RISC嵌入式處理器,具有5級流水線、采用數(shù)據(jù)和指令分離的Harvard結(jié)構(gòu)、提供眾多標準外設和軟件集成開發(fā)環(huán)境。
進行基于Nios Ⅱ 的SOPC 系統(tǒng)開發(fā)時,可利用ALTERA提供的SOPC插件,進行外設和CPU的配置,并提供自定義IP的構(gòu)建方法。在虛擬示波器系統(tǒng)中,需要開發(fā)符合AVALON總線的示波器模塊,并加入到自定義IP中。示波器模塊實體程序如下:
在SOPC插件中,將示波器模塊等自定義模塊集成為IP核,分別將NiosⅡJTAG_UART、FLASH以及SRAM等IP核加入虛擬示波器系統(tǒng)中,SOPC系統(tǒng)配置圖如圖5所示。
配置完成后,生成系統(tǒng),并在QuartusⅡ中進行引腳配置,然后綜合、布線,生成配置文件,通過JTAG 對FPGA進行配置,即可獲得虛擬示波器系統(tǒng)的信息處理部分硬件電路。
2.2 NiosⅡ軟件開發(fā)
實踐證明,當系統(tǒng)的復雜程度達到一定時,采用嵌入式操作系統(tǒng)不僅會簡化程序員工作、提高CPU利用率,而且會提高系統(tǒng)可靠性。因此本系統(tǒng)的下位機軟件采用嵌入式操作系統(tǒng)。microc/os-Ⅱ是1個性能優(yōu)良的嵌入式多任務實時操作系統(tǒng),穩(wěn)定度高、安全性好;同時NiosⅡ開發(fā)環(huán)境中集成了性能良好的、免費的microc/os-Ⅱ估算版,因此虛擬示波器系統(tǒng)采用該操作系統(tǒng)。
NiosⅡ的軟件開發(fā)一般采用分層的方式進行,它采用類似Linux的設備文件系統(tǒng)來管理設備,采用HAL(硬件抽象層)完成硬件相關(guān)設備的封裝操作,因此每個CPU外設都需要有相應的驅(qū)動程序。虛擬示波器系統(tǒng)中,NiosⅡ的驅(qū)動分層結(jié)構(gòu)如圖6所示。
虛擬示波器系統(tǒng)需要為定義的IP設計相應的驅(qū)動程序,對于最底層與硬件相關(guān)的操作,NiosⅡ提供了IOWR(base,offerset,data)和IORD(base,offerset)2個宏,分別用于對寄存器的讀、寫操作。這里,base為虛擬示波器驅(qū)動程序的基地址,其自動生成;offerset為指被操作的寄存器在該設備中的偏移地址。
2.3 嵌入式USB協(xié)議棧開發(fā)
USB協(xié)議復雜,虛擬示波器系統(tǒng)開發(fā)的USB協(xié)議?;趍icroc/os-Ⅱ,并采用了如圖7的分層結(jié)構(gòu),以減少開發(fā)調(diào)試的難度。
硬件抽象層和命令接口層都與硬件相關(guān),硬件抽象層負責對SX2的寄存器進行讀寫操作,而命令接口則實現(xiàn)與SX2的工作方式有關(guān)的操作;協(xié)議層與平臺無關(guān),其主要完成USB的枚舉及各端口數(shù)據(jù)處理;應用層完成對提供調(diào)用的函數(shù)進行封裝,應用層提供了簡單的API接口,其利用senddata函數(shù)發(fā)送數(shù)據(jù)到主機,同時利用recdata函數(shù)從主機接收數(shù)據(jù)以及廠商請求的函數(shù),上層程序只要簡單地調(diào)試這3個函數(shù)而無需關(guān)注USB協(xié)議,即可完成虛擬示波器的USB通信。
評論