《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > USB2.0虛擬邏輯分析儀的設計與實現(xiàn)
USB2.0虛擬邏輯分析儀的設計與實現(xiàn)
EE365
摘要: 傳統(tǒng)的邏輯分析儀體積龐大,、價格昂貴,、通道數(shù)目有限,并且在數(shù)據(jù)采集,、傳輸,、存儲、顯示等方面存在諸多限制,,在很大程度上影響了其在實際中的應用,。選用高性能的FPGA芯片進行數(shù)據(jù)處理,充分利用PC的強大處理功能,,配合LabView圖形化語言開發(fā)的虛擬邏輯分析儀,,其數(shù)據(jù)處理和傳輸速率大大提高,適用性極大增強,,其顯示,、操作界面和低廉的成本較之傳統(tǒng)的邏輯分析儀具有極大的優(yōu)勢和發(fā)展前景。
Abstract:
Key words :

  引言

  傳統(tǒng)的邏輯分析儀體積龐大,、價格昂貴,、通道數(shù)目有限,并且在數(shù)據(jù)采集,、傳輸,、存儲、顯示等方面存在諸多限制,,在很大程度上影響了其在實際中的應用,。選用高性能的FPGA芯片進行數(shù)據(jù)處理,充分利用PC的強大處理功能,,配合LabView圖形化語言開發(fā)的虛擬邏輯分析儀,,其數(shù)據(jù)處理和傳輸速率大大提高,適用性極大增強,,其顯示,、操作界面和低廉的成本較之傳統(tǒng)的邏輯分析儀具有極大的優(yōu)勢和發(fā)展前景。

  工作原理 

  本設計選用Altera公司的Cyclone系列FPGA器件EP1C3進行數(shù)據(jù)采集和處理,,外接SRAM,,用于數(shù)據(jù)的存儲。系統(tǒng)通過高性能的PIC單片機PIC18F6620完成與PC的通信,,接收PC發(fā)出的觸發(fā),、配置信息并控制系統(tǒng)將采集處理后的數(shù)據(jù)上傳至PC顯示。單片機與PC的接口利用符合USB2.0規(guī)范的接口芯片CP2102實現(xiàn),。 

  首先,,PC向FPGA發(fā)送觸發(fā)字信息、數(shù)據(jù)采集控制信息和開啟數(shù)據(jù)采集信號,;單片機發(fā)送數(shù)據(jù)至外接DAC產生門限電壓,;采集到的輸入信號通過高速比較器與此門限電壓進行比較,以確定其值為0或1,。接收到PC發(fā)出的開啟數(shù)據(jù)采集信號后,,F(xiàn)PGA按設定的工作方式采集數(shù)據(jù),,各通道數(shù)據(jù)移位輸入FPGA內部緩存并存入外部SRAM。FPGA將緩存中存儲的采集數(shù)據(jù)與設定的觸發(fā)字,、觸發(fā)方式和屏蔽位進行比較,。一旦符合觸發(fā)條件,則設置觸發(fā)標志,,記錄觸發(fā)位置,。當數(shù)據(jù)采集至設定的點數(shù)后,F(xiàn)PGA向PC發(fā)送采集完成信號,。上位機接收到此信號后,,發(fā)送讀取數(shù)據(jù)命令,系統(tǒng)讀回采集數(shù)據(jù)并在PC屏上顯示,。系統(tǒng)功能框圖如圖1所示,。


圖1 系統(tǒng)功能框圖

  系統(tǒng)觸發(fā)模塊設計 

  觸發(fā)模塊是整個系統(tǒng)的核心部分,主要包括采樣時鐘選擇模塊,、觸發(fā)電平設置和觸發(fā)電路三個部分,。

  采樣時鐘選擇模塊 

  時鐘選擇模塊用于選擇采樣頻率??晒┻x擇的時鐘源包括:外部時鐘(由有源晶振提供),、單片機PWM模塊產生的PWM時鐘、外部時鐘輸入(由額外的設備提供),、以第N路數(shù)字信號輸入作為采樣時鐘,。

  觸發(fā)電平設置 

  觸發(fā)電平用來確定系統(tǒng)正確識別采樣信號的高低電平。該模塊由串行數(shù)模轉換器TLC5615和高速比較器LT1721構成,。采樣開始前,,單片機向DAC發(fā)送觸發(fā)電平數(shù)據(jù),轉換后的電平信號(范圍從0~+5V)送入高速比較器,。

  觸發(fā)電路 

  觸發(fā)電路的作用是判斷采樣信號是否滿足觸發(fā)條件,,并分別產生觸發(fā)動作。當采集的信號滿足用戶設置的觸發(fā)條件時,,系統(tǒng)記錄觸發(fā)位置并產生觸發(fā)信號通知上位機讀取,、顯示采樣數(shù)據(jù)。本次設計的觸發(fā)電路具有三種可選的觸發(fā)模式:立即觸發(fā),、順序觸發(fā)和并行觸發(fā),。

  立即觸發(fā) 

  當上位機向FPGA發(fā)出立即觸發(fā)觸發(fā)字和開始采樣指令后,F(xiàn)PGA開始采樣并立即產生觸發(fā)信號,。采樣電路將采集到的信號存入外部的SRAM中,,直至采集到規(guī)定的點數(shù)后停止采樣,向上位機發(fā)出采樣結束信號,通知其讀取采樣數(shù)據(jù),。此方式下讀回的觸發(fā)點位置為0,。

  順序觸發(fā) 

  該方式設置了一個8位的序列觸發(fā),只有當被測通道的信號按依次滿足觸發(fā)字所設定的8位序列時,,才產生觸發(fā)信號,。同時,,為了操作的靈活性,,還加入了屏蔽位。若對某一位的數(shù)據(jù)不敏感,,可以將其對應的屏蔽位設置為0,,在判斷觸發(fā)條件時不對該位進行檢測。 

  使用順序觸發(fā)方式,,可以對任意一個通道選擇最多8位長度的序列進行觸發(fā),。在進行觸發(fā)設置時,除設置觸發(fā)方式(選擇順序觸發(fā))和進行采樣頻率選擇以外,,還需要進行通道選擇,、觸發(fā)字和屏蔽位設置。其Verilog HDL算法源程序如下:

if(((dbuf^{TrigWord[1],TrigWord[ 0]})&{enbit[1],enbit[0]}) == 8'h00) 
 begin
 TrigFlag=2'b01; Trigpoint[6:0] <= MemABus_Wr[6:0]; 
  end 

  其中:dbuf為所測采樣通道的數(shù)據(jù)緩存,;TrigWord[0],、TrigWord[1]為觸發(fā)字;enbit[0],、enbit[1]為屏蔽字,;Trigpoint為觸發(fā)位置寄存器。

  并行觸發(fā) 

  該方式設置了一個八級深度的并行觸發(fā),,將每次采樣得到的4個通道的數(shù)據(jù)組合為一個十六進制數(shù),,對應于一個4位的觸發(fā)字,當4個通道的數(shù)據(jù)在時間上依次滿足8個4位的觸發(fā)字時(并非要求連續(xù)),,產生觸發(fā)信號,。同樣,可以使用屏蔽位對某一通道的數(shù)據(jù)進行屏蔽,,即在進行并行觸發(fā)檢測時,,不對該路通道進行檢測。 

  使用并行觸發(fā)方式,,可以選擇最多八級的并行觸發(fā),。在進行觸發(fā)設置時,除設置觸發(fā)方式(選擇并行觸發(fā))和進行頻率選擇以外,,還需要進行觸發(fā)字,、屏蔽位和并行深度的設置。其Verilog HDL算法源程序如下:

if ((({dbuf4[0],dbuf3[0], dbuf2[0],dbuf1[0]}^ TrigWord [dcount] )&enbit[0] ) == 4'h0)
 begin
 if(dcount[2:0]==control[4:2])
 begin
 TrigFlag=2'b01; Trigpoint[6:0] <= MemABus_Wr[6:0]; 
     dcount=3'b000;     end
   dcount = dcount+3'b001;
     end 

  其中,dbuf4,、dbuf3,、dbuf2、dbuf1分別為采樣通道4,、3,、2、1的數(shù)據(jù)緩存,;TrigWord[dcount]為觸發(fā)字,;dcount為觸發(fā)深度計數(shù)器;control[4:2]為設定的觸發(fā)深度,;enbit[0]為屏敝字,;Trigpoint為觸發(fā)位置寄存器。

  USB2.0接口設計 

  本設計選用符合USB2.0規(guī)范的CP2102芯片構建系統(tǒng)與PC的通信接口,。 

  CP2102是USB-UART橋接芯片,。該電路內置USB2.0全速功能控制器、USB收發(fā)器,、晶體振蕩器,、EEPROM及異步串行數(shù)據(jù)總線,支持調制解調器全功能信號,,無需任何外部的USB器件,。其功能強大,采用MLP-28封裝,,尺寸僅為5mm×5mm,,占用空間非常小,非常適合大數(shù)據(jù)量處理與傳輸電路系統(tǒng)的設計與應用,。 

  實際應用中,,系統(tǒng)只需使用CP2102基本的輸入/輸出數(shù)據(jù)線與復位信號線。其接口原理如圖2所示,。

  系統(tǒng)啟動時,, 單片機RB1端口發(fā)送一低電平至CP2102復位端,芯片復位,,然后保持復位端高電平,,CP2102正常工作。
 

圖2 USB2.0接口電路圖 


   由于CP2102內部的透明設計,,數(shù)據(jù)通信時,,可以不必構建CP2102與單片機的握手信號;CP2102數(shù)據(jù)線直接與單片機1#USART模塊的接收移位寄存器(RSR)和發(fā)送移位寄存器(TSR)相連,。CP2102數(shù)據(jù)線上一旦出現(xiàn)待發(fā)送的數(shù)據(jù),,該數(shù)據(jù)會自動移入單片機接收移位寄存器,;同樣,單片機發(fā)送數(shù)據(jù)時,,發(fā)送移位寄存器中的數(shù)據(jù)直接移至CP2102的數(shù)據(jù)線(即USB接口數(shù)據(jù)線)上,。 

  程序設計中,系統(tǒng)不斷檢測單片機接收中斷標志位RCIF1,,一旦USART異步接收器的移位寄存器RSR接收到CP2102數(shù)據(jù)線上發(fā)送的停止位,,RSR寄存器就將已接收的8位數(shù)據(jù)裝載到接收寄存器(RCREG1)中。系統(tǒng)發(fā)送數(shù)據(jù)時,,前次裝入發(fā)送緩沖器(TXREG1)的數(shù)據(jù)的停止位P發(fā)送出去后,,TXREG1緩沖器中的數(shù)據(jù)(軟件裝入)就被載入TSR寄存器中,TXREG1緩沖器就為空狀態(tài),,同時發(fā)送中斷標志位TXIF被置1,。TSR將待發(fā)送數(shù)據(jù)逐位移至CP2102數(shù)據(jù)線,完成系統(tǒng)與CP2102 USB模塊的數(shù)據(jù)傳輸,。

  軟件設計 

  FPGA功能實現(xiàn)程序運用硬件描述語言Verilog HDL編寫;PIC單片機程序用C語言編寫,,并采用第三方C語言工具HITECH公司PICC—18編譯器編譯實現(xiàn),。PC顯示和操作部分運用圖形化語言LabView7.1編寫,其前面板如圖3所示,。

圖3 系統(tǒng)面板

  實驗操作 

  采用LabView7.1開發(fā)的虛擬操作平臺,,可以方便實現(xiàn)儀器的操作控制。實驗開始前,,首先選擇通信端口,,建立PC與本系統(tǒng)的通信;設置觸發(fā)電平,,設置采樣頻率(外部,、內部或其他)、觸發(fā)方式,、觸發(fā)字,、屏蔽字并點擊“發(fā)送觸發(fā)命令”按鈕,完成相關設置,,開啟數(shù)據(jù)采集和觸發(fā)進程,。點擊“讀取采樣數(shù)據(jù)”可讀出采集到的數(shù)據(jù),并在PC上顯示,。

  結語 

  在綜合考慮應用需要和成本的前提下,,本設計采用4個高速采樣通道,最高可達75MHz采樣率,,存儲深度達512KB,,最多可采集220個測試點,。觸發(fā)電平由10位串行數(shù)模轉換器TLC5615產生,電平誤差小于5mV,。高速USB2.0通信接口配合LabView7.1開發(fā)的虛擬操作平臺,,可實現(xiàn)數(shù)據(jù)在PC上的實時顯示。本設計的成本還不到市場上同性能產品的1/2,,更適用于教學等對產品數(shù)量要求較多,,性能要求中等的單位采用。

  參考文獻

1.鄧火炎,,王磊,,等編著.Labview 7.1測試技術與儀器應用[M].機械工業(yè)出版社,2004.7
2.  Silicon Laboratories.CP2102 DataSheet. Rev. 1.0 2004.4.
3.  劉和平 等編著.PIC18Fxxx單片機程序設計及應用[M].北京航空航天大學出版社,, 2005.2

此內容為AET網站原創(chuàng),,未經授權禁止轉載。