吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Digilent Zybo板的數字示波器的制作

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-20 17:29 ? 次閱讀

步驟1:模擬前端

使用Digilent Zybo板的數字示波器的制作

Xilinx Zynq IC具有“ XADC模數轉換器。 XADC最多以1MSPS(每秒兆采樣)采樣,輸出12位值。該ADC的輸入范圍為0-1V。

XADC能夠對幾個輸入通道進行采樣,但是在Zynq板上,用戶實際上只能訪問幾個特定的輔助輸入。在示波器中,我使用了Zybo XADC PMOD上可用的AUX14 ADC輸入。

由于0-1V的示波器輸入范圍不是很有用,因此必須在ADC輸入的前面添加模擬電路,以便縮放和移動輸入電壓,請參見此步驟的框圖。

此框圖是使用LTSPICE原理圖/仿真中顯示的電路實現的(為仿真附上原理圖文件)。根據需要,增益為1/20 = 0.05,直到抗混疊濾波器導致其下降約400kHz(1MSPS ADC的奈奎斯特頻率= 500kHz)為止。

我在面包板上實現了該設計(沒有時間使用通孔組件設計PCB)。第二個LTSPICE原理圖中顯示了用于實現此設計的組件(不可仿真,僅用于設計用于訂購零件的電路),以及實際構建的電路。 3.3V和GND來自XADC PMOD連接器

步驟2:ADC緩沖器/觸發器

設計負責采樣輸入信號,在發生波形事件時觸發并在完成時使數據可用于PS。

-processing_system7_0:Zynq PS

-rst_processing_system7_0_100M:零件AXI通信(添加到連接自動化中)

-processing_system7_0_ai_periph:AXI通信(添加到連接自動化中)

-xadc_wiz_0:XADC實現。在DRP,單通道模式下配置,具有最大轉換率(實際為961KSPS)。 VAUX14被配置為雙極性模式。

-gpio_trigger_settings:GPIO IP用于設置子采樣和觸發閾值。二次采樣是指選擇從ADC接受輸入值的頻率。如果將示波器的時基縮小很長一段時間,則緩沖區將太小而無法填滿(例如)以1MSPS采集的1秒數據。觸發閾值是指觸發發生時的電壓電平。

-gpio_trigger_control:GPIO IP。通道1輸出,能夠復位觸發塊(當PS準備好用于新的數據緩沖區時)并聲明要讀取的存儲器的地址值。通道2是輸入,允許讀取數據緩沖區的輸出數據,最后寫入的地址以及觸發緩沖區是否已滿。

-drp_int_0:我的IP,用于解釋XADC的DRP輸出。

-trigger_0:我的IP,用于實現觸發行為

-blk_mem_gen_0:用于保存過去的采樣值的IP。

此部分所有IP的SystemVerilog文件都包括在內。

步驟3:用戶輸入處理

設計的這一部分負責對編碼器和按鈕輸入進行采樣。 “標準速度” PMOD用于將這些信號引入Zynq。只需使用GPIO模塊即可對按鈕輸入進行采樣。編碼器輸入由編碼器IP塊(由我編寫)處理,以便獲得與旋轉編碼器多少有關的“計數”值。

由于使用了機械式旋轉編碼器,因此開關和編碼器輸出均需要上拉電阻(5k Ohm),并且還添加了一個去抖動的LP濾波器。這可能是我設計中最薄弱的部分,并且肯定需要做更多的工作。盡管對硬件模塊進行了仿真,但顯示出正常的功能(圖像已附上),但我仍然無法從編碼器獲取準確的計數值。在最后的演示之前,我沒有時間來診斷這個問題,因此我建議您花一些時間比我更多的時間來設計這個問題!

-encoder_btn_gpio:輸入了通道1,正在計數來自三個編碼器和兩個按鈕的值

-encoder0,1,2:我的IP,用于解釋旋轉編碼器的正交輸入。編碼器的步長被記錄為可以為負或正的“計數”值。存在RST輸入以重置計數值,允許PS讀取計數值,然后將其重置。這樣,計數值將永遠不會溢出并導致奇怪的結果。

步驟4:視頻驅動程序

設計的這一部分負責繪制GUI和輸入波形。示波器波形,觸發電平線和其他變化的指示器存儲在幀緩沖器中,每個存儲器地址保存一個像素值。該幀緩沖區是一個塊內存,VGA驅動程序從中讀取值,然后將其發送到VGA端口以在屏幕上顯示。

最初,屏幕的大小希望為640 x480。但是,存儲一個塊RAM中的所有這些像素值都是不可能的,因為塊ram的最大深度是262144(對應于18位的地址,2 ^ 18 = 262144),并且640 x 480 = 307200像素。做出了妥協,將屏幕縮小到480 x 512,以便將整個屏幕緩沖區存儲在一個塊ram中。

為了簡化以后的編碼,在計算機上的圖像編輯器中繪制了背景圖像(網格和屏幕輪廓)。編寫(包括)了一個matlab腳本,將黑白BMP轉換為.coe文件,該文件可以預加載到塊ram單元中。這意味著圖像已經存儲在內存中,不需要用代碼或硬件“繪制”。這是與屏幕緩沖區分開的獨立塊內存,因此兩個塊RAM的輸出將運行到自定義IP塊(顏色處理器)中,以便“決定”應顯示哪種顏色,示波器信號和指示器具有更高的層優先級在網格上。

-axi_gpio_0:輸出通道1。控制地址,數據和啟用信號以寫入屏幕緩沖區。輸入通道2。讀取確認位以確認寫入操作已完成。

-bram_write_controller:從GPIO模塊獲取地址,數據和啟用信號,以寫入塊ram。地址和數據信號無需更改即可簡單路由。 EN信號帶來了復雜性。我不確定從GPIO寫入“ 1”和“ 0”將花費多長時間(就時鐘周期而言),因此我想確保塊wram僅被寫入一次。該寫控制器在GPIO的EN信號的上升沿運行,以便為塊ram的寫使能產生一個1時鐘寬度的使能脈沖。完成該脈沖后,可以將確認信號置為高電平,以確認它已被寫入。

-signals_buffer1:這是一個3位寬的塊ram,用于在屏幕上存儲變化的像素值,例如波形,觸發電平線和電壓/分壓指示器。每個存儲器地址代表一個像素。地址系統的工作方式是,高9位是像素的行,低9位是像素的列。

-gui_buffer:這是一個1位寬的塊ram,用于存儲通過圖像生成的.coe文件加載的不變的GUI(網格,輪廓等)。 (附加了MATLAB腳本)

-vga_driver_0:為VGA協議生成水平和垂直同步信號。生成代表當前顯示像素的列和行值。這些用于從塊RAM中讀出以讀取當前像素的存儲值

-color_processor_0:此IP根據存儲的像素值決定顯示哪種顏色。我將優先級從最高設置為最低(紅色觸發電平線,黃色信號線,白色GUI/網格)。每個像素的值存儲為3位值,每個位代表一個“層”。優先級較高的信號(如觸發線)應出現在“頂層”,而優先級較低的信號(如背景網格)應出現在“底層”。

步驟5 :處理系統

將前面介紹的設計組合在一起,以提供最終設計,并由一個PS來控制它們。所有模塊的接口均通過GPIO IP。結合使用時,請參見圖像以查看所有先前的GPIO模塊的命名約定:

-gpio_trigger_control:控制觸發模塊,讀取緩沖區值

-gpio_trigger_settings:設置閾值和子采樣

-screen_buffer_gpio:將值寫入屏幕緩沖區

-encoder_btn_gpio:讀取編碼器計數和按鈕值。

寫入(包括)用于寫入像素的庫,讀取編碼器/按鈕輸入,并讀取樣本緩沖區值。由于時間有限,主代碼有些大,沒有足夠的時間使它們具有模塊化功能。

在最初的開發中,FreeRTOS將用于PS中。由于時間限制,這被放棄并且沒有使用任何任務。但是,我一直在進行的CORTEX_A9_Zynq_ZC702 FreeRTOS演示項目仍在使用,其名義是在最后一刻盡可能少地更改。

我的示波器的最終版本僅具有垂直刻度調整和觸發電平調整,因此未使用時分顯示。

主程序的基本流程是:

1)檢查編碼器和按鈕輸入,適當調整觸發值

2)檢查范圍是否已觸發(重復1&2,直到觸發)

3)擦除并更新顯示V/Second劃分的標記。

4)讀取觸發緩沖區的所有值。

5)計算觸發電平線在像素位置的位置

6)計算當前和下一個樣本的位置以像素為單位

7)刪除當前列中的所有像素

8)繪制一條從當前樣本位置的行到下一個樣本位置的行的垂直線。

9)繪制觸發電平線

10)繪制三角形以顯示0V電平

11 )重置觸發器以再次開始采樣。

12)從1開始重復。

第6步:結論,注釋,未來改進

回頭看看有一些變化我想做。大部分時間都受我時間緊迫的限制。

-編碼器:目前,編碼器的工作情況很差。我需要使用示波器進行更多調試,以確保正交輸出“無反彈”且干凈,以便在解釋它們時沒有錯誤。

-應該添加垂直偏移和水平偏移/縮放。

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 示波器
    +關注

    關注

    113

    文章

    6282

    瀏覽量

    185849
  • Digilent
    +關注

    關注

    2

    文章

    219

    瀏覽量

    15874
收藏 人收藏

    評論

    相關推薦

    與模擬示波器相比數字示波器的優點有哪些

    數字示波器(Digital Storage Oscilloscope, DSO)與模擬示波器(Analog Oscilloscope)是電子測試領域中用于觀察和分析電信號波形的重要工具。數字
    的頭像 發表于 09-20 09:57 ?1770次閱讀

    數字示波器的使用方法及注意事項

    數字示波器是一種廣泛應用于電子測量領域的儀器,它能夠將模擬信號轉換為數字信號,并在屏幕上顯示波形圖。數字示波器具有測量精度高、使用方便、功能
    的頭像 發表于 07-17 18:16 ?1764次閱讀

    如何使用數字示波器的自動測量功能

    數字示波器是一種廣泛應用于電子工程領域的測試儀器,它能夠實時顯示電信號的波形,幫助工程師對電子設備進行分析和調試。數字示波器的自動測量功能是其核心功能之一,可以大大提高工程師的工作效率
    的頭像 發表于 07-17 17:39 ?1762次閱讀

    虛擬示波器還是數字示波器好用

    虛擬示波器數字示波器各有優缺點,具體選擇哪一種取決于您的具體需求和預算。 虛擬示波器 定義 虛擬示波器是一種基于計算機軟件的
    的頭像 發表于 07-17 17:16 ?893次閱讀

    電子示波器數字示波器的比較

    引言 示波器是一種廣泛應用于電子測量領域的儀器,它能夠將電信號的波形以圖形的方式顯示出來,便于工程師對信號進行分析和測量。示波器主要分為兩大類:電子示波器數字
    的頭像 發表于 07-17 17:10 ?695次閱讀

    模擬示波器數字示波器的區別

    示波器作為電子測量領域的重要工具,經歷了從模擬到數字的技術變革。模擬示波器數字示波器各有其特點和應用場景,兩者在工作原理、性能參數、功能特
    的頭像 發表于 05-11 16:13 ?3055次閱讀

    數字示波器的工作原理和技術特點

    在電子技術日新月異的今天,示波器作為電子測量和信號分析的重要工具,其技術也在不斷發展。數字示波器作為示波器家族中的重要一員,憑借其獨特的優勢,在電子測試、通信、科研等領域得到了廣泛應用
    的頭像 發表于 05-11 16:12 ?1537次閱讀

    混合示波器數字示波器的區別

    在電子測試與測量領域,示波器作為一種重要的工具,其性能和應用對于工程師和技術人員來說至關重要。隨著科技的發展,示波器的種類和功能也在不斷演進,其中混合示波器數字
    的頭像 發表于 05-10 15:50 ?1064次閱讀

    數字示波器的基本原理及結構組成

    隨著電子技術的飛速發展,數字示波器作為電子測試領域的重要工具,其應用越來越廣泛。數字示波器利用數據采集、A/D轉換、軟件編程等一系列先進技術,為用戶提供了高性能、高精度的信號分析功能。
    的頭像 發表于 05-10 15:04 ?2954次閱讀

    數字示波器和模擬示波器的區別

    數字示波器和模擬示波器在電子測量領域都有各自的應用,它們之間存在一些顯著的區別。
    的頭像 發表于 05-09 18:25 ?2211次閱讀

    數字示波器的功能和作用

    數字示波器的功能和作用主要體現在電子信號的觀察、測量和分析上,它是電子工程師和技術人員不可或缺的工具。
    的頭像 發表于 05-09 17:45 ?1064次閱讀

    數字示波器的優缺點有哪些

    數字示波器在電子測量領域具有顯著的優勢,同時也存在一些局限性。
    的頭像 發表于 05-09 17:26 ?1045次閱讀

    數字示波器是什么東西

    數字示波器是一種高性能示波器,它采用數據采集、A/D轉換、軟件編程等一系列技術制造而成。
    的頭像 發表于 05-09 17:23 ?716次閱讀

    數字示波器探頭過度補償對幅頻特性的影響

    數字示波器探頭的過度補償對幅頻特性的影響是一個重要的話題,它涉及到在測量過程中如何正確地補償示波器探頭,以確保測量結果的準確性和可靠性。在本文中,我們將探討數字
    的頭像 發表于 04-29 10:02 ?376次閱讀
    <b class='flag-5'>數字</b><b class='flag-5'>示波器</b>探頭過度補償對幅頻特性的影響

    數字示波器和模擬示波器區別

    數字示波器:將模擬電信號經過模數轉換技術轉化成數字信號,再通過數字信號處理技術進行分析和顯示。
    的頭像 發表于 04-07 18:15 ?3173次閱讀
    真龙娱乐| 百家乐官网最安全打法| 玩百家乐678娱乐城| 盈博国际娱乐城| 澳门百家乐官网路单| 大发888电话客服| 缅甸百家乐官网娱乐场开户注册| 威尼斯人娱乐平台网址| 百家乐官网出老千视频| 大发888英皇国际| 博彩百家乐官网的玩法技巧和规则 | 新思维百家乐官网投注法| 百家乐永利娱乐场开户注册| 百家乐官网游戏补牌规则| 利澳百家乐的玩法技巧和规则| 百家乐官网蓝盾有赢钱的吗| 大发888方官| 实战百家乐官网的玩法技巧和规则| 大发888私网开户| 玩百家乐如何看路| 大西洋城| 昆明百家乐装修装潢有限公司| 濮阳县| 历史百家乐路单图| 百家乐官网最新投注方法| 威尼斯人娱乐城老lm0| 百家乐官网五种路单规| 大发888官网充值| 百家乐是骗人吗| 宣化县| 百家乐科学打| 七匹狼百家乐官网的玩法技巧和规则| 金沙国际娱乐| 百家乐网上真钱娱乐网| 百家乐官网赌场游戏平台| 永利赌场| 百家乐投注法减注| 百家乐官网注册平台排名| 大发888官方6222.| 赌博中百家乐什么意思| 上市百家乐官网.评论|