張天浩 婁瑩 周震
摘 要 隨著電子行業飛速發展,電子開發工程師數量急劇上升。在這樣一個關鍵的市場領域中,人們常常將示波器稱為電子工程師的“武器”。電子初學者、學生、以及很多電子愛好者而言,示波器也是常用工具,但是示波器的價格卻十分昂貴,好的十多萬,一般的也要近萬元。這讓很多電子愛好者望而卻步,尤其是學生。基于此,一款低成本高性能的示波器體現出了他獨特的優勢。傳統的虛擬示波器需要高帶寬、高采樣率的芯片、高速ADC,以及DSP數字信號處理芯片。而本文設計的示波器減少了這些昂貴硬件的使用,通過FPGA可編程邏輯器件和高速代替昂貴的采集硬件,通過高速AD芯片ADS830檢測到數據傳輸到FPGA內部FIFO中,再經過觸發條件發送到STM32單片機并將繪制的波形顯示在TFT屏幕上。基于STM32的手持示波器儲存深度更大,在去掉了傳統虛擬示波器中的電子槍、偏轉板等器件后,PCB的設計更加小巧緊湊,大大的提升了便攜性,并保證了其效果和性能。
關鍵詞 STM32 FPGA DSP ADS830 數字示波器
中圖分類號:TM935.3 文獻標識碼:A
1硬件電路設計STM32主控工作電路
考慮到本系統設計中對主控處理器的資源、速度、穩定性等有一定的要求,因此選用了內核為ARM CORTEX-M3位內核的STM32F103C8T6芯片作為主控制器芯片。這個主控芯片具有32位的帶寬,相比于51單片機其最高處理速度有72MHz。并有48個外部引腳,64kb的存儲容量和20kb的數據存儲空間。其從資源到性能均可以實現本電路需要實現的功能。
1.1高速AD采集電路
由于單片機只能讀取數字信號,而不能進行模擬量讀取,在本系統中示波器的采集電路需要對電子線路中的信號進行采集,將連續的模擬量轉換成離散的0,1數據,這就需要有一個芯片來對模擬量進行采集、量化和編碼最終傳送給單片機進行讀取和處理。根據系統設計的要求,選擇了一款TI公司生產的專為數字示波器設計的數模(A/D)轉換器ADS830E。其是一款高性能的AD轉換芯片,信噪比可以達到49.5db,采樣頻為60MHz,支持單極性和雙極性信號輸入,信號輸入范圍為1.5v-3.5v。為提高信號穩定性,選用雙路運算放大器OPA2356和LM358來對采集的信號進行衰減和調理。
1.2 FPGA核心工作電路
本系統設計選擇了阿爾特拉公司的Cyclone系列EP1C3100核心的FPGA芯片,其擁有高達294912位RAM,支持LVTTL,LVCOMS,SSTL-2,SSTL-3的IO標準。擁有最多八個全局時鐘線和六個可用的時鐘資源。內核供電電壓為1.5v,EP1C3系列芯片只有一個鎖相環PLL,用于一個時鐘和一個專用收雙倍數據速率接口,以滿足DRAM和快速周期RAM內存需求。擁有104個用戶I/O引腳并支持多種I/O標準。
FPGA的基本工作電路有主控芯片、下載電路、晶振電路、電源濾波電路組成。由于FPGA芯片特性下載電路采用了AS和JTAG的組合下載電路,通過串行配置器件EPCS與AS連接的組合下載接口,將下載線連接到AS接口來完成對POF文件的下載。由于FPGA芯片中JTAG接口協議的特性,下載測試的配置文件會在主控芯片掉電之后消失,這樣就在開發測試階段通過JTAG接口進行測試。晶振電路在本系統設計中由于對時序要求比較高就選擇了50M的有源晶振。由于FPGA芯片本身需要多種電壓供電,如PLL供電,I/O口供電,核心供電等都需要不同的電壓供電,這樣穩定而且較少紋波的供電電壓也成了組成整體電路的重要部分。
1.3屏幕顯示電路
為了節約系統資源,本設計采用I2C協議的串口屏多為0.96小尺寸的OLED屏幕,雖然OLED屏幕由于自發光的特性不需要背光源并且有很高的對比度和很大的可視角度,但是由于屏幕尺寸較小不適合用來顯示波形參數等信息。所以綜合所有信息,本系統選擇了SPI協議的TFT液晶屏。這里選擇了以ADS7843為驅動芯片的2.4寸TFT屏幕,分辨率為240*320。既保證了能夠清晰顯示所需繪制的波形及波形信息,又能兼顧本設計作品的便攜性。
2手持示波器的軟件設計
2.1軟件總體設計及流程
在系統軟件設計時,做好規整的系統軟件框架可以讓自己在完成程序設計后更容易進行調試修改和增加新功能。并且由于軟硬件調試時間比較長,在保存和修改時要按照日期和版本規范編寫程序名稱并在程序中標注好出現的問題,所有的子函數都規范命名,以便自己在之后的調試中能夠最快時間看懂程序并上手修改。
在整個系統流程中,首先被測信號在經過衰減和調整后進入ADS830數模轉換器中,之后通過FPGA內部開辟的FIFO進行緩存,將高速AD采集的數據緩存后,根據觸發條件發送到STM32單片機內,最后通過TFT屏幕將接收到的數據繪制成波形并顯示出來。
2.2初始化程序流程
在本系統設計中,需要對STM32引腳配置的初始化,也要對FPGA及高速AD采集、屏幕等外設器件進行初始化。FPGA需要對讀取數據端口、讀取端口時鐘等等進行初始化。屏幕需要將引腳配置、控制命令、屏幕設置、清屏等進行初始化,并且在程序中加入一定的延時使其達到主控的時序,實現TFT顯示屏的初始化。
參考文獻
[1] 盧貺.基于TLC5510的手持示波器設計[J].襄陽職業技術學院學報,2018,17(05):53-56.
[2] 屈歡.基于Android平臺的無線數字示波器設計[D].成都:電子科技大學,2013.