<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于SOPC技術(shù)的虛擬示波器設計 (1)

基于SOPC技術(shù)的虛擬示波器設計 (1)

作者: 時(shí)間:2011-10-28 來(lái)源:網(wǎng)絡(luò ) 收藏

引言
  模擬示波器由于無(wú)法高效地觀(guān)察實(shí)驗結果、數據處理功能弱等缺點(diǎn),已逐漸被數字示波器所取代,但數字示波器價(jià)格昂貴。虛擬儀器是在通用計算機平臺上,用戶(hù)利用軟件根據自已的需求定義設計儀器的測量功能,其可以大大拓展傳統儀器的功能,降低儀器成本,并可通過(guò)軟件實(shí)現數據的復雜分析、運算和海量存儲等功能。LabWindows/CVI是1種常用的虛擬儀器設計軟件,為用戶(hù)提供了功能強大的虛擬儀器系統開(kāi)發(fā)平臺。為此,本文以L(fǎng)abWindows/CVI為開(kāi)發(fā)平臺,利用FPGA中嵌入的NiosⅡ軟核構成的系統,設計一種雙通道,以達到一般傳統示波器的性能指標。
  1 硬件電路設計
  1.1 數據采集通道電路設計
  為減少虛擬示波器對被測電路的影響,要求虛擬示波器數據采集通道的輸入阻抗在1MΩ以上,因此必須設計合適的衰減器和可控增益的放大器。虛擬示波器數據采集通道的原理方框圖如圖1所示。圖1中,虛擬示波器的2個(gè)通道完全對稱(chēng),且相互獨立。從探頭進(jìn)來(lái)的信號經(jīng)過(guò)衰減網(wǎng)絡(luò ),獲得合適的信號強度,進(jìn)行AD/DC切換開(kāi)關(guān)后,送到可控增益放大器,將不同幅度的信號放大為幅度大致相同的信號,經(jīng)高速A/D轉換獲得兩路獨立的數字信號,同時(shí)觸發(fā)電路完成觸發(fā)功能,使波形能夠平穩地顯示。

本文引用地址:http://dyxdggzs.com/article/257822.htm

1.1.1 衰減與AD/DC轉換電路
  圖2為虛擬示波器的衰減與AD/DC轉換電路圖。

  圖2中,R1、R2、R3、C1 和R4、C2組成1:10的分壓網(wǎng)絡(luò ),通過(guò)CPU控制三極管Q1、Q2 和繼電器K1、K2 分別控制進(jìn)行1/10的衰減與AD/DC切換控制。
  1.1.2 可控增益放大器
  虛擬示波器需設計寬范圍可調節的增益放大電路器,以實(shí)現10mV~±200V范圍內的輸入電壓采樣。本系統采用模擬多路器切換運放的反饋電阻,以達到改變增益的目的,其電路圖如圖3所示。

 圖3中,U1內部包含兩通道JFET高輸入阻抗的運放,前級為跟隨器,以滿(mǎn)足示波器的高輸入阻抗要求,第2級為可控增益放大器,由模擬多路器和運放共同構成。
  1.1.3 A/D轉換電路
  虛擬示波器的A/D 轉換器采用Linear 公司的LTC2289,它的采樣頻率可達80MHz,有2個(gè)獨立通道,可選內部參考或外部參考。本文選用內部參考。
  1.2 虛擬示波器信息處理部分硬件設計
  虛擬示波器信息處理部分主要包括FPGA 系統和USB通信部分,其組成方框圖如圖4所示。
  圖4中,虛擬示波器模擬輸入通道的模擬信號經(jīng)A/D轉換后獲得數字信號,經(jīng)過(guò)1個(gè)數據緩沖器輸入到FPGA,FPGA通過(guò)邏輯電路和NiosⅡ管理將數據進(jìn)行存儲、上傳等。SRAM用于緩存采樣數據;FLASH用于存儲NiosⅡ應用程序,并實(shí)現系統上電時(shí)將程序加載至SDRAM中。
  系統選擇的USB接口芯片CY7C68001為USB2.0標準控制器,其可工作在高速或全速狀態(tài),支持4個(gè)可配置共享4KB FIFO空間的端點(diǎn),并具有一個(gè)標準8位或16位主機接口,非常適合做高速USB接口。虛擬示波器系統構建及NiosⅡ軟件開(kāi)發(fā)

2 虛擬示波器系統構建及NiosⅡ軟件開(kāi)發(fā)
  2.1 虛擬示波器SOPC系統構建
  本文采用ALTERA公司的NiosⅡ軟核處理器,并利用FPGA設計虛擬示波器系統。ALTERA 公司的NiosⅡ軟核處理器是一個(gè)32位RISC嵌入式處理器,具有5級流水線(xiàn)、采用數據和指令分離的Harvard結構、提供眾多標準外設和軟件集成開(kāi)發(fā)環(huán)境。
  進(jìn)行基于Nios Ⅱ 的SOPC 系統開(kāi)發(fā)時(shí),可利用ALTERA提供的SOPC插件,進(jìn)行外設和CPU的配置,并提供自定義IP的構建方法。在虛擬示波器系統中,需要開(kāi)發(fā)符合AVALON總線(xiàn)的示波器模塊,并加入到自定義IP中。示波器模塊實(shí)體程序如下:

  在SOPC插件中,將示波器模塊等自定義模塊集成為IP核,分別將NiosⅡJTAG_UART、FLASH以及SRAM等IP核加入虛擬示波器系統中,SOPC系統配置圖如圖5所示。

  配置完成后,生成系統,并在QuartusⅡ中進(jìn)行引腳配置,然后綜合、布線(xiàn),生成配置文件,通過(guò)JTAG 對FPGA進(jìn)行配置,即可獲得虛擬示波器系統的信息處理部分硬件電路。
  2.2 NiosⅡ軟件開(kāi)發(fā)
  實(shí)踐證明,當系統的復雜程度達到一定時(shí),采用嵌入式操作系統不僅會(huì )簡(jiǎn)化程序員工作、提高CPU利用率,而且會(huì )提高系統可靠性。因此本系統的下位機軟件采用嵌入式操作系統。microc/os-Ⅱ是1個(gè)性能優(yōu)良的嵌入式多任務(wù)實(shí)時(shí)操作系統,穩定度高、安全性好;同時(shí)NiosⅡ開(kāi)發(fā)環(huán)境中集成了性能良好的、免費的microc/os-Ⅱ估算版,因此虛擬示波器系統采用該操作系統。
  NiosⅡ的軟件開(kāi)發(fā)一般采用分層的方式進(jìn)行,它采用類(lèi)似Linux的設備文件系統來(lái)管理設備,采用HAL(硬件抽象層)完成硬件相關(guān)設備的封裝操作,因此每個(gè)CPU外設都需要有相應的驅動(dòng)程序。虛擬示波器系統中,NiosⅡ的驅動(dòng)分層結構如圖6所示。

@QANPXZPAB2VH2MG.jpg" alt="" />

  虛擬示波器系統需要為定義的IP設計相應的驅動(dòng)程序,對于最底層與硬件相關(guān)的操作,NiosⅡ提供了IOWR(base,offerset,data)和IORD(base,offerset)2個(gè)宏,分別用于對寄存器的讀、寫(xiě)操作。這里,base為虛擬示波器驅動(dòng)程序的基地址,其自動(dòng)生成;offerset為指被操作的寄存器在該設備中的偏移地址。
  2.3 嵌入式USB協(xié)議棧開(kāi)發(fā)
  USB協(xié)議復雜,虛擬示波器系統開(kāi)發(fā)的USB協(xié)議?;趍icroc/os-Ⅱ,并采用了如圖7的分層結構,以減少開(kāi)發(fā)調試的難度。

  硬件抽象層和命令接口層都與硬件相關(guān),硬件抽象層負責對SX2的寄存器進(jìn)行讀寫(xiě)操作,而命令接口則實(shí)現與SX2的工作方式有關(guān)的操作;協(xié)議層與平臺無(wú)關(guān),其主要完成USB的枚舉及各端口數據處理;應用層完成對提供調用的函數進(jìn)行封裝,應用層提供了簡(jiǎn)單的API接口,其利用senddata函數發(fā)送數據到主機,同時(shí)利用recdata函數從主機接收數據以及廠(chǎng)商請求的函數,上層程序只要簡(jiǎn)單地調試這3個(gè)函數而無(wú)需關(guān)注USB協(xié)議,即可完成虛擬示波器的USB通信。3 虛擬示波器上位機軟件設計
  3.1 虛擬示波器USB通信的封裝
  虛擬示波器上位機程序采用LabWindows/CVI開(kāi)發(fā),其本身并不支持USB通信,因此采用了調用外部模塊的方法。采用VC++編寫(xiě)程序,將USB通信底層函數進(jìn)行封裝,編譯成DLL,再供LabWindows/CVI進(jìn)行調用。為此,將動(dòng)態(tài)鏈接庫的頭文件和DLL文件導入進(jìn)工程,生成1個(gè)FP的驅動(dòng)器,這時(shí)虛擬示波器系統就可以直接調用DLL里面提供的函數。
  3.3 虛擬示波器面板程序的開(kāi)發(fā)
  圖8中,用戶(hù)對虛擬示波器面板上的垂直幅度調節、水平寬度調節等按鈕操作時(shí),系統會(huì )將相應的操作命令傳送給下位機,并由下位機調節垂直幅度和水平時(shí)基等,從而實(shí)現用戶(hù)對虛擬示波器系統的操作。

  4 測試結果
  采用FPGA處理器和ALTERA公司的NiosⅡ軟核完成虛擬示波器系統設計后,進(jìn)行了多次測試,其性能指標如表1所示。

  由表1可知,該虛擬示波器達到了一般模擬示波器的指標。然而由于本系統采用虛擬儀器技術(shù),在功能上增加單次采樣、波形保存等功能,因此與普通示波器相比,其成本低廉,操作界面更友好、簡(jiǎn)便。
  5 結論
  本文以L(fǎng)abWindows/CVI為開(kāi)發(fā)平臺,設計了1種雙通道虛擬示波器,該示波器利用FPGA 中嵌入的NiosⅡ軟核構成的SOPC系統,完成虛擬示波器各模塊的管理;利用嵌入式USB協(xié)議,配合片外的模擬信號處理模塊,通過(guò)USB總線(xiàn),完成各種波形數據的采集,經(jīng)上位機軟件完成了波形顯示和數據分析,并實(shí)現了儀器的各種操作功能。實(shí)際測試結果表明,該虛擬示波器達到了或優(yōu)于一般模擬示波器的性能指標。



關(guān)鍵詞: SOPC 虛擬示波器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>