新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > USB2.0虛擬邏輯分析儀的設計與實現

        USB2.0虛擬邏輯分析儀的設計與實現

        ——
        作者:唐海洋 翟巍 王勇 時間:2007-02-08 來源:電子設計應用 收藏
        引言

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

        工作原理

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

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

        系統功能框圖

          圖1 系統功能框圖

        系統觸發模塊設計

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

        采樣時鐘選擇模塊

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

        觸發電平設置

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

        觸發電路

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

        立即觸發

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

        順序觸發

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

        使用順序觸發方式,可以對任意一個通道選擇最多8位長度的序列進行觸發。在進行觸發設置時,除設置觸發方式(選擇順序觸發)和進行采樣頻率選擇以外,還需要進行通道選擇、觸發字和屏蔽位設置。其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為所測采樣通道的數據緩存;TrigWord[0]、TrigWord[1]為觸發字;enbit[0]、enbit[1]為屏蔽字;Trigpoint為觸發位置寄存器。

        并行觸發

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

        使用并行觸發方式,可以選擇最多八級的并行觸發。在進行觸發設置時,除設置觸發方式(選擇并行觸發)和進行頻率選擇以外,還需要進行觸發字、屏蔽位和并行深度的設置。其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的數據緩存;TrigWord[dcount]為觸發字;dcount為觸發深度計數器;control[4:2]為設定的觸發深度;enbit[0]為屏敝字;Trigpoint為觸發位置寄存器。

        USB2.0接口設計

        本設計選用符合規范的CP2102芯片構建系統與PC的通信接口。

        CP2102是USB-UART橋接芯片。該電路內置全速功能控制器、USB收發器、晶體振蕩器、EEPROM及異步串行數據總線,支持調制解調器全功能信號,無需任何外部的USB器件。其功能強大,采用MLP-28封裝,尺寸僅為5mm



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浪卡子县| 盈江县| 始兴县| 蒲江县| 钦州市| 大连市| 靖远县| 田林县| 芷江| 德惠市| 西贡区| 冀州市| 闵行区| 邵东县| 邵阳市| 蕉岭县| 仪陇县| 平武县| 巴塘县| 湘潭县| 凯里市| 龙川县| 来安县| 隆化县| 景泰县| 炉霍县| 济阳县| 河津市| 蒲城县| 中方县| 迁安市| 大渡口区| 集安市| 仁寿县| 鞍山市| 建瓯市| 楚雄市| 文水县| 宝山区| 渑池县| 新化县|