999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的簡易手持式示波器設計

2017-04-23 03:31:54孫緒福
電子技術與軟件工程 2017年5期

孫緒福

摘 要 本文設計的簡易手持式示波器是基于FPGA應用技術,以PCF8951為數據采集前端。通過內建RAM進行對采集數據的存儲以及波形的顯示。利用有限狀態機實現對不同狀態之間的轉換,最后顯示在ST7735液晶顯示屏上。本設計最大的特點是所用器件都為低功耗、低成本、小體積的器件,能夠實現手持式設計。通過在開發板上的測試結果表明,該設計能夠實現示波器的基本功能,且大大降低成本及減少體積。

【關鍵詞】FPGA 示波器 PCF8591 有限狀態機

示波器是一種應用十分廣泛的電子測量儀器,能夠方便地測量各種不同的波形。但是傳統的模擬示波器具有體積大、成本高、攜帶不方便等缺點,因而使得許多電子實驗限制在了實驗室中進行。由于這種局限性推動了示波器朝著微型化、簡單化、廉價化的方向發展。對于精度要求不是特別高的情況下,生產出一款便攜手持式的低成本數字示波器將會有很大的需求和市場價值。由此本文提出一種簡單手持式示波器設計方案,基于FPGA應用技術,實現了對信號的實時顯示,以及具有調節掃描速度和垂直靈敏度的功能。本設計方案均采用體積小、成本低的元器件進行設計,在保證一定精度的前提下大大減小體積以及降低成本。在簡易的電子實驗中此設計能夠發揮重要的作用。

1 系統設計

數字示波器是由取樣存儲、系統控制和讀出顯示三大部分組成,它們之間通過數據總線、地址總線、和控制總線相互聯系和交換信息,以完成各種測量功本次設計采用萊迪思LCMX02-4000HC芯片,通過將外部輸入模擬信號經過PCF8591芯片進行A/D轉換,將轉換后的數據根據旋轉編碼器EC11設定的觸發條件以及采樣頻率,篩選出符合條件的數據,之后將數據送入RAM中保存。當RAM存滿后,狀態切換至讀RAM狀態,通過對ST7735顯示屏的初始化以及對RAM中數據的適當操作后,將信息呈現至屏幕上,以實現示波器的基本功能。此外,還設置了復位按鍵以實現示波器的復位功能。本次設計主要包括FPGA邏輯控制模塊、A\D數模轉換模塊、觸發條件及采樣頻率調節模塊、RAM的讀寫控制模塊、液晶顯示模塊圖1所示,為本次設計的總體示意圖。

1.1 A/D轉換模塊

由于本設計旨在設計低成本、便攜式示波器,對轉換速度、轉換精度要求相對降低,故采用8位串行輸出A/D轉換芯片進行A/D轉換模塊。綜合對各A/D轉換芯片的比較后,本設計采用恩智浦半導體公司生產的具有8位CMOS數模轉換芯片PCF8591以實現對輸入信號的采樣。該芯片們具有單獨供電、低功耗的特點,在2.5V~6V的工作電壓內,采樣速率取決于I2C總線的速度,在標準速度下可達100kbps,能夠實現本設計對采樣速度的要求。此外,它同時具有4路模擬輸入端及1路輸出端,可編程為單端或差分輸入,3個地址引腳A0、A1和A2用于編輯硬件的地址,允許同時將多個器件接至總線本設計中采用超小型SOP-16貼片式封裝以減少器件所用面積,有利于實現便攜式攜帶的要求。綜合以上特點,該芯片適用于本次關于簡易手持式示波器的設計,能滿足各項指標要求。A/D轉換模塊程序的編寫,主要采用設計有限狀態機(FSM),通過對不同狀態的計數,實現在初始化、開始、寫指令、讀數據、結束狀態之間的轉換。圖2所示為A/D轉換模塊的原理圖,其中模擬信號的輸入,通過連接母座以送入芯片模擬輸入端。

1.2 觸發條件及頻率調節模塊

考慮到輸入信號頻率及幅值的不同,在本設計中可以實現對采樣頻率以及觸發條件的改變。鑒于旋轉操作的簡易性,本設計采用ALPS常用金屬軸編碼器EC11實現對采集頻率以及觸發幅值的調節,通過對編碼器的左右旋轉實現增大與縮小的功能。EC11編碼器屬于小型高精度旋轉式編碼器,15脈沖30定位,20脈沖20定位的高分辨率,適用于微小電流回路的電子設備其上還帶有0.5mm按壓開關,在本設計中用于切換采樣頻率調節模式和觸發調節模式。

頻率調節通過旋轉編碼器的左右旋轉,改變采樣計數值的大小,以實現頻率的改變。以計數標志cnt_sample為例,初始設定cnt_sample為5,即每5個采樣點放進一次RAM當中用以之后顯示。當左旋一次后,設定cnt_sample自加1,則每6個采樣點放進RAM當中,右旋反之,由此實現了示波器采樣頻率的增大。

觸發幅值調節通過旋轉編碼器的左右旋轉,改變觸發邊界條件的大小,從而實現對不同信號觸發條件的改變。以幅值為1.5V的正弦波為例,若觸發條件設置為2V,則始終無法達到觸發條件,可以通過旋轉編碼器改變觸發條件,以獲取完整的信號波形。同時為避免始終無波形顯示的情況,本設計中通過設定計數環節,若連續16次未有滿足觸發條件的信號,則設置為已滿足觸發條件,實現對波形的顯示。此外,觸發條件的設置,還具有穩定波形的作用,由于A/D轉換時時進行,若要保證波形的穩定以及顯示時無視覺殘留,可以通過設定合適的觸發條件,當滿足觸發條件后,才將采樣數據保存至對應RAM中,以達到穩定波形的作用。圖3所示為本次設計中旋轉編碼器的原理圖。

1.3 RAM的讀寫控制模塊

由于A/D采集信號的保存以及LCD顯示數據的讀取共用同一個RAM,我們通過設立不同的標志位,來確定進行A/D轉換數據存RAM操作還是將RAM中數據輸出顯示至液晶屏操作。

當進行存RAM操作時,信號經過A/D轉換輸出8位二進制數據后,由于本此設計所采用的LCD顯示為128*160RGB三色顯示,數據存儲深度為128,我們可以將經A/D轉換后的8位二進制數左移一位,使采集數據范圍為0 ~127,恰能滿足數據存儲要求。當滿足觸發條件后,根據采樣條件,將符合條件的數據讀入RAM中直至存滿160個數據。此時RAM中儲存的就是采集到的信號。

當進行讀RAM操作時,為了起到顯示波形的效果,我們將RAM中除了采集到的160個數據外全部設置為黑色顯示,將信號設置為白色顯示,由此我們可以實現在顯示屏上看到白色的波形。圖4所示,為本次設計中RAM中數據部分示意。

1.4 LCD顯示模塊

本次設計采用ST7735液晶屏,具有132(H)*RGB*162(V)位大小的RAM,在本次設計中,數據保存至128*160,剩余的部分作為邊緣顯示,以更好地實現示波器的顯示效果。該顯示屏具有紅、綠、藍三色,可以根據對這三種色彩的16位二進制數據進行調配實現其它色彩的顯示,例如本次設計中白色16hffff以及黑色16h0000為了達到更好的顯示效果,本設計采用豎屏顯示。由數據手冊,我們可以得到驅動該器件的指令,利用有限狀態機實現對命令的寫入以及對RAM中數據的讀入。當RAM中數據顯示結束后,狀態切換至存RAM操作。圖5所示為本次設計中LCD模塊顯示原理圖。

2 程序設計

本次程序采用Verilog語言進行編輯使用Lattice diamond設計軟件進行綜合與調試。頂層模塊設計主要包括A/D轉換模塊、讀寫選擇模塊、采樣頻率調節模塊、觸發條件設置模塊、LCD顯示模塊以及LCD讀寫RAM模塊。關于輸入輸出端口及頂層模塊和各模塊的關系描述如下:

module Oscilloscope //示波器模塊

input clk, //時鐘輸入

input rst, //復位按鍵

input encode_left, //旋轉編碼器左旋

input encoder_right, //旋轉編碼器右旋

input encoder_key, //按下旋轉編碼器

inout ad_sda, //PCF8591數據端

output ad_scl, //PCF8591時鐘端

output lcd_rst, //LCD復位端

output lcd_bl, //LCD背光設置端

output lcd_dc, //LCD的D/C端

output lcd_clk, // LCD顯示SPI時鐘

output lcd_data // RAM讀寫數據端口

);

wire sample_en; //取樣使能信號

wire sample_finish; //取樣完成標志

wire display_en; //顯示使能信號

wire display_finish; //顯示完成標志

wire ad_finish; //ad轉換完成標志

wire [7:0] ad_data; //8位串行數據

wire [7:0] trigger; //觸發條件

wire wr_clock; //RAM寫時鐘

wire [7:0] wr_add; //RAM寫地址

wire [131:0] ram_ad; //RAM中寫對應AD轉換數據

wire re_clock; //RAM讀時鐘

wire [7:0] re_add; //RAM讀地址

wire [131:0] ram_lcd; //RAM中LCD讀數據

Mode_choosemode_choose //選擇進行顯示/讀數據模塊

.clk (clk ), //系統時鐘

.rst (rst ), //復位按鍵

.display_finish (display_finish ), //顯示完成標志

.sample_finish (sample_finish ), //采樣完成標志

.sample_en (sample_en ), //采樣使能標志

.display_en (display_en ) //顯示使能標志

);

AD_conversionad_conversion //A/D轉換模塊

.clk (clk ), //系統時鐘

.rst (rst ), //復位按鍵

.ad_scl (ad_scl ), //AD轉換控制時鐘

.ad_sda (ad_sda ), //AD轉換數據端

.ad_finish (ad_finish ), //AD轉換完成標志

.ad_data (ad_data ) //數據存儲寄存器

);

Parameter_setparameter_set //參數設置模塊

.clk (clk ), // 系統時鐘

.rst (rst ), //復位按鍵

.encode_left (encode_left ), // 左旋標志

.encode_right (encode_right ), // 右旋標志

.encode_key (encode_key ), // 按鍵標志

.trigger (trigger ), //觸發條件設置

.ad_finish (ad_finish ) //AD轉換完成標志

);

AD_SampleAD_sample //AD存RAM模塊

.clk (clk ), // 系統時鐘

.rst (rst ), //按鍵復位

.ad_finish (ad_finish ), //AD轉換完成標志

.ad_data (ad_data ), //AD轉換后數據

.trigger (trigger ), //觸發條件

.sample_en (sample_en ), //采樣使能標志

.sample_finish (sample_finish ), //采樣完成標志

.wr_clock (wr_clock ), //RAM寫時鐘

.wr_add (wr_add ), //RAM寫地址

.ram_data (ram_data ) //RAM中數據

);

LCD_DisplayLCD_display //LCD顯示模塊

.clk (clk ), //系統時鐘

.rst (rst ), //按鍵復位

.trigger (trigger ), //觸發條件

.display_en (display_en ), //顯示使能標志

.display_finish (display_finish ), //顯示完成標志

.re_clock (re_clock ), //RAM讀時鐘

.re_add (re_add ), //RAM讀地址

.ram_data (ram_data ), //RAM中數據

.lcd_rst (lcd_rst ), //LCD復位

.lcd_bl (lcd_bl ), //LCD背光控制

.lcd_dc (lcd_dc ), //LCD的DC端

.lcd_clk (lcd_clk ), // LCD傳輸SPI的時鐘

.lcd_data (lcd_data ) // LCD數據端

);

endmodule

采用Verilog語言進行電路設計,能夠在每個抽象層次的描述上對設計進行仿真設計,及時發現可能存在的設計錯誤,能夠有效縮短設計周期,并保證設計過程中的正確性,以此實現我們最終的設計。

3 設計驗證

通過在開發板上的測試結果表明,雖然LCD液晶顯示模塊的分辨率較低,但依然可以實現示波器的基本功能,特別是對于頻率不太高的模擬信號,能夠在屏幕上清晰地顯示波形對應的像素點。此外,通過調節旋轉編碼器,也實現了預定的切換模式、調節采樣頻率及改變觸發條件的功能。通過Lattice diamond自帶的仿真軟件測試得出本次設計運算速度較快,頻率顯示較為準確,能夠實現數據的快速讀取。本設計方案具有簡單易操作的特點,此外還具有體積小、功耗低、成本低的優點。由于FPGA并行執行的特點,大大提高了系統的性能,能夠實現手持式設計同時能滿足基礎電子實驗的需求。此外,本次設計的示波器綜合成本相對于市場銷售的手持式示波器大大降低,便于推廣,有較大的市場價值和實用價值。

4 結論

本設計利用FPGA、A/D轉換芯片、LCD液晶顯示器、旋轉編碼器實現了對輸入模擬信號的采樣、存儲以及波形的顯示功能,并增添了調節采樣頻率及觸發條件的功能,實現了對簡易手持式示波器的設計。通過驗證得出本設計具有較快的數據傳輸速度及較高的精度,能夠滿足日常的電子相關測量需求。本設計的低成本與小型化能夠實現廉價手持式示波器的廣泛化應用。此外,也可通過使用12位、16位并行A/D轉換芯片以提高本設計的精度與速度,利用更高分辨率的LCD顯示以實現對本設計的更高要求。

參考文獻

[1]朱英明.數字示波器原理與測試分析[J].測試技術,2007(Z1).

[2]雷貴,胡福云.基于FPGA的虛擬簡易數字存儲示波器設計[J].現代商貿工業,2011(08).

[3]CoolborXie,PCF8591芯片手冊,Philips公司.

[4]ALPS公司,旋轉編碼器EC11數據手冊,ALPS公司.

[5]孫盛坤,丁昊等.基于FPGA和TFT彩屏液晶的便攜示波器設計[J].現代電子技術,2011.

[6]夏宇聞.Verilog數字系統設計教程[M].北京航天航空大學出版社,2008.

主站蜘蛛池模板: 亚洲不卡无码av中文字幕| 狠狠色香婷婷久久亚洲精品| 91在线国内在线播放老师| 欧美在线精品怡红院| 亚洲精品在线91| 日韩一级毛一欧美一国产| 国产区91| 亚洲一区二区约美女探花| 午夜在线不卡| 国产精品网址在线观看你懂的| 天天色天天综合网| 国产视频一二三区| 国产成人综合久久精品下载| 91系列在线观看| 在线欧美日韩国产| 91高清在线视频| 欧美精品成人一区二区视频一| 色悠久久综合| 精品在线免费播放| 无码一区二区波多野结衣播放搜索| 亚洲首页在线观看| 老司机午夜精品网站在线观看 | 人妻精品久久久无码区色视| 不卡午夜视频| 亚洲欧洲日韩国产综合在线二区| 99久久国产综合精品2023| 成人免费网站久久久| 91热爆在线| 精品人妻AV区| 青青青国产在线播放| 热九九精品| 国产91久久久久久| 久久香蕉国产线| 青草视频网站在线观看| 精品天海翼一区二区| 欧美一级大片在线观看| 久久国产免费观看| 扒开粉嫩的小缝隙喷白浆视频| 少妇精品网站| 亚洲国产一区在线观看| 一本色道久久88亚洲综合| 精品欧美一区二区三区久久久| 亚洲欧洲免费视频| 国产成人精品一区二区三区| 91精品日韩人妻无码久久| 中文字幕亚洲精品2页| 国产天天射| 无码网站免费观看| 国产在线无码一区二区三区| 超清人妻系列无码专区| 日韩无码视频专区| 精品视频一区二区三区在线播| 国产视频一区二区在线观看| 国产精品人成在线播放| 亚洲AV永久无码精品古装片| 国产区福利小视频在线观看尤物| 日韩av无码DVD| 国产美女视频黄a视频全免费网站| 国产在线精品美女观看| 国产免费观看av大片的网站| 91精品专区| 国产靠逼视频| 欧美在线视频不卡第一页| 亚洲第一极品精品无码| 国产欧美日韩在线一区| 免费观看男人免费桶女人视频| 1769国产精品免费视频| 久久久久无码精品| 在线国产91| 亚洲国产精品一区二区第一页免| 国产欧美日韩va另类在线播放| 在线va视频| 国产激情在线视频| 中国国语毛片免费观看视频| 亚洲无码精品在线播放| 亚洲天堂色色人体| 亚洲精品动漫| 国产成人精品三级| 澳门av无码| 福利在线一区| 久久久久久久久亚洲精品| 亚洲国产理论片在线播放|