亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FIFO存儲的高速脫機波形記錄系統

        2014-03-22 01:50:39賀有智王大正劉福才
        儀表技術與傳感器 2014年9期
        關鍵詞:管腳時鐘波形

        賀有智,王大正,吳 晨,劉福才

        (燕山大學,工業(yè)計算機控制工程河北省重點實驗室,河北秦皇島 066004)

        0 引言

        在實驗中,經常需要觀察一個短暫的波形,如電容、電感放電信號等等,這類波形有作用時間短和發(fā)生時刻相對不確定兩個共同的特點。在以往的觀察實驗中,通常是在PC計算機上使用PCI接口的數據采集卡,利用高級語言程序控制記錄,由于高級語言程序運行時的不確定性,并不能準確地記錄下所需要的波形,為了保證數據的完整性,只能連續(xù)采集并篩選,這樣浪費了大量的系統資源,而且計算機的處理能力直接限制采樣周期和數據精度[1]。從實現的角度來分析,PC計算機波形記錄系統又有成本高,體積大,在相對惡劣的條件下不能連續(xù)工作等缺陷,不利于實際應用。

        文中以在2.4 ms的時間內使用FIFO記錄8路0~5 V的電壓信號為例,設計了數字波形記錄系統,其中每路存儲1000組12bit精度的數據。系統把數據采集和數據上傳分成了2個獨立的過程,實現了脫機數據采集,數據最終可以通過USB總線傳至上位計算機系統,用于分析和處理。系統受外信號觸發(fā),在觸發(fā)之后的2.4576ms內以300ns為一個采樣周期連續(xù)記錄8 000組數據,其中每路1 000組數據,多出的數據用于彌補系統延時從而保證波形的完整性。

        1 系統總體結構方案

        系統總體結構方案如圖1所示。8路模擬量通過多路復用器ADG608按順序循環(huán)進入模數轉換器AD9220,CPLD負責提供多路復用器的3bit選路信號(地址信號),與此同時,為模數轉換器提供與選路信號有一定相位差的時鐘信號,以確保采集到準確的模擬量[2]。模數轉換器輸出的12 bit數據與3 bit選路信號組成15 bit數據包被動存入FIFO,其中低12 bit為數據,13~15 bit為地址。FIFO芯片選用CY7C6255,由CPLD控制讀取15 bit數據包,存入自身RAM序列。

        圖1 系統總體框圖

        CLPD負責整個系統的數據采集與存儲過程,數據的采集隨系統的上電而開始,掉電而結束;數據的存儲則受FIFO的狀態(tài)影響,即存滿為止。外界觸發(fā)信號經過CLPD間接連至FIFO的復位管腳,當滿足特定的外界觸發(fā)條件(由CPLD配置決定)時,FIFO被復位,之后在2.4576 ms內存滿8 192組數據,實現了一次8路波形記錄過程。當多次觸發(fā)時,FIFO記錄的是最后一次觸發(fā)時的波形。

        數據的上傳,采用EZ-USB FX2方案實現[3],芯片CY7C68013A收到上位PC計算機經過USB總線發(fā)送的數據請求時,會通過GPIF方式從外FIFO中讀取數據并上傳到上位PC計算機。

        上位機使用了相對成熟和穩(wěn)定的通用驅動ezusb.sys作為USB的硬件驅動程序,Visual C++程序可以像打開讀取文件一樣借助驅動程序經過USB總線讀取波形數據信息,之后對所得波形數據進行拆分處理、繪圖顯示和數據保存。

        2 波形采集與存儲的實現

        2.1模擬通路的設計

        8路模擬信號經過ADG608的通道選擇,經過集成運算放大器的調整進入模數轉換芯片AD9220,其結構如圖2所示。

        圖2 模擬通路示意圖

        AD9220模數轉換芯片在同一時刻只能轉換一路的模擬量,為了處理8路模擬量的輸入,需要多路復用器以一定時序對不同的模擬通道分別選通。

        模擬多路復用器選用的ADG608是一個由8個單通道構成的獨立的CMOS模擬多路復用器,它可以根據A0、A1、A2管腳上的3位地址來選擇8路模擬輸入其中相應的一路作為輸出,ADG608具有低導通電阻(最大30 Ω)、高速換路(ton最大75 ns,toff最大45 ns)、低功耗、換路前自動關斷(Break-Before-Make Switching Action)、TTL/CMOS電平兼容等特點,其工作電壓和導通模擬信號的電壓范圍滿足設計要求[7]。

        模擬多路副復用器相比機械開關有很大的導通電阻Ron,最大可以到30 Ω,而機械開關的導通電阻一般在“mΩ”級別,導通電阻對模擬信號傳輸精度以及放大器的增益倍數都會有影響,在實際使用中應當設法減小其值。根據ADG608的典型特性,在一定范圍內導通電阻Ron與電源電壓成反比,與溫度成正比,特性曲線如圖3所示。

        圖3 ADG608導通電阻隨電源電壓及溫度變化曲線

        ADG608的換路行為受CPLD驅動,由于ADG608在換路前自動關斷模擬通路,CPLD只需發(fā)送新的地址,而不需要特意控制關斷模擬通路。

        在一般情況下,模數轉換芯片的電壓輸入信號符合輸入電壓范圍的要求,但是通常需要一個集成運算放大器來提高某些弱信號的驅動能力,減小這些信號受多路復用器導通電阻Ron以及模數轉換器的輸入電阻的影響。

        模數轉換芯片選用的AD9220為新一代高性能、12位模數轉換器,采用單電源供電。具有真12位線性度和溫度漂移性能(不包括內部基準電壓),以及11.5位或更佳的交流性能(取決于模擬輸入配置)。AD9220采用高速、低成本的單CMOS工藝及新穎的架構,器件為完整的單芯片ADC,內置片內高性能、低噪聲采樣保持放大器和可編程基準電壓源,也可以選用外部基準電壓,以滿足應用的直流精度與溫度漂移要求。器件采用多級差分流水線架構,內置數字輸出糾錯邏輯,在額定數據速率時可提供12位精度,并保證在整個工作溫度范圍內無失碼[6]。其差分輸入結構使單端輸入和差分輸入采樣接口均支持各種輸入范圍。采樣保持(SHA)放大器既適用于在連續(xù)通道中切換滿量程電平的多路復用系統,也適合采用最高Nyquist速率及更高的頻率對單通道輸入進行采樣。AD9220采用一個單時鐘輸入來控制所有內部轉換,數字輸出數據格式為標準二進制,超量程(OTR)信號表示溢出狀況,可由最高有效位來確定是下溢還是上溢。

        AD9220的配置如圖2所示,集成運算放大器在同相增益流入VINA的電壓信號的驅動能力;內置參考電壓VREF驅動VINB管腳;在VINA和VINB上串聯一個30~50 Ω的電阻可以從一定程度上減小噪聲帶寬或者限制過電壓時的灌入電流。

        AD9220模數轉換器的內部是將VINA與VINB做差得到電壓VCORE送入模數轉換核心,VCORE的取值范圍在+VREF到-VREF之間,即:

        -VREF

        在圖3的配置中,SENSE接地啟用內置2.5 V參考電壓,即VREF管腳的輸出電平為2.5 V,則VINB管腳的輸入電壓也為2.5 V.根據上述公式

        -2.5 V

        求得輸入電壓VINA的范圍為0~5 V,符合設計要求。

        AD9220的工作時鐘信號CLK由CPLD提供。

        2.2CPLD協調電壓波形記錄系統的實現

        邏輯可編程器件CPLD負責協調整個波形記錄系統的工作,其選用Max 7000系列邏輯可編程器件EPM7604,EPM7064 CPLD基于先進的多陣列矩陣第二代MAX架構,為大量應用提供了世界級的高性能解決方案。基于電可擦除可編程只讀存儲器(EEPROM)的EPM7064采用先進的CMOS工藝制造,具有64個宏單元的密度范圍,速度達3.5 ns的管腳到管腳延遲。EPM7064支持在系統可編程能力(ISP),并具有調試接口(JTAG),可以在現場輕松進行重配置。

        EPM7064 CPLD對錄波系統的控制包括為FIFO提供讀數據控制信號,對模數轉換器提供時鐘信號,對多路復用器提供選路地址信號,同時選路地址信號也將作為數字量的地址一同被存入FIFO中。其連接如圖4所示。

        圖4 CPLD與各錄波功能模塊連接圖

        為了波形能夠正確的記錄,CPLD的協調工作需要做到以下幾點:

        (1)多路復用器換路完成后模數轉換器鎖存模擬信號。

        (2)模數轉換器數字量輸出信號穩(wěn)定后FIFO讀取數據。

        (3)FIFO讀取數據時不能改變地址信號。

        其中各功能模塊的相關工作時序如圖5~圖7所示。

        圖5 ADG608換路時序

        圖6 AD9220模數轉換時序

        圖7 CY7C4255V-15寫操作時序

        為了滿足要求,將CPLD的控制輸出波形設計如圖8所示。

        圖8 CPLD輸出驅動信號時序圖

        外部時鐘信號源的頻率為20MHz,AD時鐘信號為外部時鐘信號的二分頻(10 MHz)。實驗證明換路之后的第一次AD轉換值不準確,這里我們取第三次的轉換值,與此同時也可以使FIFO記錄的地址與實際地址相同。這樣每路轉換需要6個時鐘周期,一共8路,可用cnt信號來計數6個時鐘周期,用adrCnt來計數8路。

        程序定義了cnt和adrCnt兩個計數器。受時鐘信號上升沿的驅動和條件語句的控制,cnt的值以000→001→010→011→100→111→000依次循環(huán),adclk取cnt的最低位,實現了對時鐘信號的二分頻。在cnt信號一次循環(huán)結束之后,地址信號遞增1,并輸出。需要注意的是由于VHDL程序是并行執(zhí)行的,所以語句的先后順序并非執(zhí)行順序。

        FIFO的復位信號為FIFO的復位管腳保持低電平最少10~25 ns(CY7C4255V-15為15 ns),在該設計中外部觸發(fā)信號可以滿足這個要求,所以在CLPD內部將其直接連接。

        3 數據上傳與處理的實現

        3.1CY7C68013AUSB2.0從接口模塊

        EZ-USB FX2系列芯片是世界上第一個集成USB2.0協議的微處理器,它支持12Mb/s的全速傳輸和480Mb/s的高速傳輸,可以使用4種USB傳輸方式:控制傳輸、中斷傳輸、批量傳輸和同步傳輸;完全使用USB2.0,并向下兼容USB1.1。

        EZ-USB FX2主要包括USB2.0收發(fā)器、串行接口引擎(SIE)、增強型8501、16KB的RAM、4KB的內部FIFO存儲器、I/O接口、數據總線和通用可編程接口(GPIF)[4-5]。

        設計采用GPIF接口方式從外部FIFO CY7C4255中讀取數據,在GPIF方式中,GPIF作為CY7C68013A的端點(EP6)FIFO的內部控制器[8],在這種方式下,CPU不會干涉數據的傳輸,從而提高了傳輸效率,降低了程序開銷。其硬件連接方式如圖9所示。

        圖9 GPIF方式下EZ-USB FX2與FIFO連接圖

        固件采用官方例程FX2_to_extsyncFIFO,其方便之處在于可以只修改GPIF波形圖(該設計不需要修改)便能實現功能,如果不需要特殊功能,則不需要修改固件,GPIF讀取外FIFO的波形如圖10所示。

        圖10 GPIF方式讀取外FIFO波形圖

        3.2下位機固件程序分析

        固件程序為官方提供的例程,未經修改,所以包含了一些未使用的功能,例如對外FIFO寫入等等。

        程序在初始化之后進入無限循環(huán)狀態(tài),在循環(huán)中依次判斷是否有來自上位機的命令和是否滿足對外FIFO讀寫的條件,一旦接到命令或滿足條件便執(zhí)行相應的代碼。其流程圖如圖11所示。

        圖11 下位機固件程序流程圖

        由流程圖可知對外FIFO的寫入操作主要取決于EP2端口是否有數據包;對外FIFO的讀取操作則主要取決于in傳輸標志是否為真。由于只需要讀取外FIFO中的數據,所以上位計算機需要向下位機發(fā)送B3命令(啟動in傳輸),隨后外FIFO的數據會被讀取到EP6 FIFO中,上位計算機程序通過USB總線讀取EP6 FIFO中的數據便可獲得錄波系統記錄的波形信息。

        3.3上位機數據讀取

        上位機采用Windows平臺PC計算機,界面程序使用Microsoft Visual C++開發(fā)。由于系統的數據上傳負荷較小,這里使用相對成熟和穩(wěn)定的通用驅動程序ezusb.sys與硬件通訊。

        通俗的講,通用驅動是將EZ-USB設備被當作一個路徑為.EZUSB-x的文件(其中x為阿拉伯數字形式的設備編號,按EZ-USB設備連接順序從0開始由小到大排列),界面應用程序只需以特定的方式打開這個“文件”,并對這個“文件”進行特定的操作,便能獲得相關外部設備中的數據,在本設計中,讀取到的是外部FIFO CY7C4255中的數據。

        打開文件(設備)使用API函數CreateFile(),該函數返回被打開的文件句柄,用于將來讀取文件(設備)。

        定義函數返回值傳遞給hDevice,那么當hDevice !=INVALID_HANDLE_VALUE時設備打開成功。打開失敗的原因主要是設備沒有正確連接或者失去響應,斷開重連便能解決。(注!之后代碼使用的hDevice句柄為上述設備正確打開之后的句柄,不再重復說明)

        為了進入外FIFO讀取狀態(tài),設備打開之后需要啟動IN傳輸,即通過API函數DeviceIoControl()函數向EZ-USB設備發(fā)送一個特定命令(0xB3)。

        當DeviceIoControl()返回值為0時說明IN傳輸沒有成功啟動,失敗原因主要為固件程序錯誤。停止IN傳輸的代碼類似,只是命令代碼為0xB4。

        數據的讀取依然采用DeviceIoControl()函數,讀取上來的數據將存在outBuffer中,512個數值,每個數值16位,讀取32次便可獲得全部8K的波形數據。如果DeviceIoControl()返回0,說明讀取失敗,原因主要是EZ-USB芯片與外FIFO連接錯誤,多出現在間接連接的系統中。

        在實際界面程序中,數據的讀取在CreatThread生成的獨立的線程中進行,讀取成功后用SetEvent設置事件通知主線程,并通過全局數組將數據共享給主線程;在觸發(fā)之后需要進行33次讀取操作,并丟棄第一次讀取到的數據,因為該數據為EP6 FIFO中的陳舊數據,這是由固件程序的特殊性造成的。

        數據經過一定的運算可以分離地址和數據并進行相應的處理,其中通道編號channel =(dat>0x0fff)+ (dat>0x1fff)+ (dat>0x2fff)+ (dat>0x3fff)+ (dat>0x4fff)+ (dat>0x5fff)+ (dat>0x6fff)+ (dat>0x7fff),dat為原始數據,原始數據的量的部分可以通過與運算屏蔽地址部分獲得;波形的繪制通過MFC中CDC的LineTo函數實現;數據的保存與讀取可以通過文件操作的相關函數實現。界面運行效果如圖12所示。

        圖12 上位機界面

        4 結論

        文中的設計實現了獨立的波形記錄系統,克服了傳統基于PCI總線+數據采集卡的波形記錄系統的不方便部署、成本高等缺陷??紤]到實驗要求并不嚴峻,設計降低了工作性能以降低成本和提高精度,系統還有一定的升級空間,即使用更高速的A/D;使用更大的FIFO,如CY7C4285;利用ADG726實現16路差分信號的輸入等。

        參考文獻:

        [1]劉昌偉,邵左文,畢文.基于LABVIEW的USB接口多路高速數據采集系統的設計.世界電子元器件,2008(12):85-88.

        [2]劉靜.某雷達A/D轉換器AD9220及其應用.火控雷達技術,2003,9:26-28;50.

        [3]李英偉.USB2.0原理與工程開發(fā).北京:國防工業(yè)出版社,2007.

        [4]EZ-USB FX2 Technical Reference Manual.Cypress Semicondctor,2003.

        [5]EZ-USB? FX2TMGPIF Primer.Cypress Semiconductor Corporation,2003.

        [6]Complete 12-Bit 1.5/3.0/10.0 MSPS Monolithic A/D Converters.Analog Devices,2003.

        [7]3 V/5 V,4/8 Channel High Performance Analog Multiplexers.Analog Devices,1995.

        [8]32 K/64 K×18 Low Voltage Deep Sync FIFOs.Cypress Semiconductor Corporation,2008.

        猜你喜歡
        管腳時鐘波形
        別樣的“時鐘”
        對《壓力容器波形膨脹節(jié)》2018版新標準的理解及分析
        古代的時鐘
        基于LFM波形的靈巧干擾效能分析
        測控技術(2018年2期)2018-12-09 09:00:46
        有趣的時鐘
        基于圖像處理的異型電子元器件管腳偏移誤差檢測方法研究
        CMOS數字IC管腳電容的估算與測量
        時鐘會開“花”
        基于ARM的任意波形電源設計
        大連臺使用CTS-1記錄波形特點
        老头巨大挺进莹莹的体内免费视频| 日韩人妻久久中文字幕| www婷婷av久久久影片| 亚洲精品美女久久久久99| 亚洲精品第一国产麻豆| 美腿丝袜美腿国产在线| 国产桃色一区二区三区| 欧美人与动人物牲交免费观看久久| 亚洲欧美国产日韩天堂在线视| 亚洲一区二区三区免费av在线| 国产一区二区三区在线男友| 夜夜揉揉日日人人青青| 亚洲 都市 校园 激情 另类| 日本视频精品一区二区| 精品国产一区二区三区av免费 | 成人影院免费观看在线播放视频| 一区二区视频中文字幕| av国产免费在线播放| 老鸭窝视频在线观看| 内谢少妇xxxxx8老少交| 国产一区二区三区爆白浆| 日本免费播放一区二区| 亚洲av中文无码乱人伦在线视色| 又白又嫩毛又多15p| 91亚洲欧洲日产国码精品| 国产一级黄色片在线播放| 精品国产麻豆免费人成网站| 国内精品久久久久久久久久影院| 视频精品亚洲一区二区| 国产日本精品视频一区二区 | 免费国产在线精品三区| 一区二区三区人妻av| 国产精品爽黄69天堂a| 中文字幕无码免费久久99| 亚洲熟少妇一区二区三区| 2019日韩中文字幕mv| 欧美日韩国产色综合一二三四| av天堂一区二区三区精品| 邻居少妇张开腿让我爽了一夜| 女人大荫蒂毛茸茸视频| 国产成人自拍小视频在线|