基于FPGA的手持式示波器設(shè)計(jì)
摘要:在此設(shè)計(jì)的低成本手持式示波器是以ADC128S022模/數(shù)轉(zhuǎn)換芯片為數(shù)據(jù)采集前端;使用FPGA片內(nèi)雙口內(nèi)建RAM進(jìn)行數(shù)據(jù)存儲(chǔ)、有限狀態(tài)機(jī)實(shí)現(xiàn)示波器的觸發(fā)控制和顯示驅(qū)動(dòng);最后再用LCD12864液晶模塊完成終端的低成本圖形顯示。在DE0-Nano FPGA(Altera Cyclone IV)開發(fā)板上的測(cè)試結(jié)果表明,所設(shè)計(jì)的手持式示波器可以實(shí)現(xiàn)模擬信號(hào)任意電平上升沿或下降沿的觸發(fā)測(cè)量;垂直靈敏度和掃描速度調(diào)節(jié)、波形參數(shù)的直接讀出等功能。
關(guān)鍵詞:FPGA;示波器;液晶顯示屏;有限狀態(tài)機(jī)
0 引言
目前,數(shù)字存儲(chǔ)示波器以其體積小、攜帶方便、準(zhǔn)確率高的獨(dú)特優(yōu)勢(shì)逐步取代了傳統(tǒng)的模擬示波器,并向著更為小巧的低成本、便攜式應(yīng)用方向發(fā)展。近幾年來,許多研究者充分利用FPGA片上的資源豐富、使用靈活、開發(fā)成本低的優(yōu)點(diǎn)提出了一些數(shù)字示波器的虛擬儀器解決方案和嵌入式解決方案,這些設(shè)計(jì)采用FPGA片內(nèi)資源來實(shí)現(xiàn)數(shù)字示波器的數(shù)據(jù)存儲(chǔ)(RAM)、觸發(fā)控制、數(shù)字信號(hào)運(yùn)算與處理、顯示終端驅(qū)動(dòng)等功能,這在很大程度上能夠降低示波器成本和復(fù)雜度,但是這些設(shè)計(jì)方案往往會(huì)使用到微處理器(8051/ARM/NoisⅡ)作為系統(tǒng)調(diào)度和數(shù)據(jù)處理的核心或采用VGA顯示器作為圖形輸出終端,還不能達(dá)到低成本的手持便攜使用要求。
LCD12864液晶顯示模塊具有低壓、微功耗、壽命長(zhǎng)、超薄等顯著優(yōu)點(diǎn),比較適合低成本、便攜式電子信息產(chǎn)品來實(shí)現(xiàn)字符和圖形的顯示。因此,文中就以LCD12864液晶模塊作為數(shù)字示波器的低成本圖形顯示終端;基于FPGA應(yīng)用技術(shù),設(shè)計(jì)出了具有模擬信號(hào)任意電平、上升沿或下降沿觸發(fā);垂直靈敏度和掃描速度調(diào)節(jié)、波形參數(shù)的直接讀出特點(diǎn)的低成本手持式數(shù)字示波器。
1 手持式示波器的系統(tǒng)設(shè)計(jì)
基于FPGA的手持式示波器系統(tǒng)結(jié)構(gòu)框圖如圖1所示,系統(tǒng)主要包括片外AD芯片、配置芯片EPCS16、以及片內(nèi)PLL模塊、采樣時(shí)鐘配置模塊、按鍵掃描模塊、觸發(fā)控制模塊、雙口RAM存儲(chǔ)模塊、采樣數(shù)據(jù)圖形化與轉(zhuǎn)置模塊、LCD12864顯示驅(qū)動(dòng)模塊等。示波器的工作過程大致如下:經(jīng)過片外ADC128S022采集的12 b數(shù)字信號(hào),再經(jīng)過片內(nèi)圖形化模塊后轉(zhuǎn)換成1列LCD屏顯示的點(diǎn)陣數(shù)據(jù);為了適應(yīng)液晶屏按行讀出的工作方式,需要通道數(shù)據(jù)轉(zhuǎn)置模塊把按列采樣的點(diǎn)陣數(shù)據(jù)轉(zhuǎn)置成按行排列的數(shù)據(jù);觸發(fā)模塊主要是要根據(jù)用戶設(shè)置(鍵盤輸入)的觸發(fā)電平及模式來控制RAM的寫數(shù)據(jù)開始或停止指令,同時(shí)生成對(duì)應(yīng)的寫數(shù)據(jù)地址;數(shù)控采樣時(shí)鐘模塊可以產(chǎn)生多種不同的采樣時(shí)鐘以滿足不同頻率信號(hào)的測(cè)量顯示;LCD驅(qū)動(dòng)模塊主要是依據(jù)LCD的工作時(shí)序產(chǎn)生RAM的讀數(shù)據(jù)地址和LCD模式控制指令。
圖1所示手持式示波器的設(shè)計(jì)關(guān)鍵在于根據(jù)LCD12864顯示模塊的工作時(shí)序來組織雙口RAM的讀/寫、片外A/D的數(shù)據(jù)采集;這樣才能保證測(cè)量的模擬信號(hào)波形顯示正確。下文就對(duì)片外A/D模塊、雙口RAM的讀寫控制和LCD顯示驅(qū)動(dòng)3個(gè)關(guān)鍵模塊做出比較具體的設(shè)計(jì)描述。
2 A/D轉(zhuǎn)換模塊
系統(tǒng)選用德州儀器公司(TI)的12位CMOS模/數(shù)轉(zhuǎn)換芯片(ADC128S022)實(shí)現(xiàn)模擬信號(hào)的數(shù)據(jù)采樣,該AD可以通過通道選擇信號(hào)實(shí)現(xiàn)8通道的模數(shù)轉(zhuǎn)換,并且是單電源供電;功耗極低,在2.7~5.25 V的供電范圍內(nèi),功耗只有1.2~7.5 mW;轉(zhuǎn)換速率可以達(dá)到50~200 KSPS,通過串行外設(shè)接口(SPI)與外部器件交換數(shù)據(jù),芯片采用16引腳的超小型TSSOP封裝,這些特征都很適合小型的便攜式電子產(chǎn)品上使用,ADC12 8S022的內(nèi)部結(jié)構(gòu)如圖2所示。
3 雙口RAM的讀寫控制
圖1所示手持式示波器設(shè)計(jì)結(jié)構(gòu)中的雙口RAM的每位數(shù)據(jù)分別對(duì)應(yīng)于LCD12864屏上的一個(gè)像素點(diǎn),要求存儲(chǔ)容量8 192 b(1 024×8 b)。存儲(chǔ)器的管理需要滿足采集數(shù)據(jù)(64 b)按列實(shí)時(shí)寫入、又要滿足LCD模塊按行讀出數(shù)據(jù)(8 b)的要求。
為此,首先需要把64 b的圖形數(shù)據(jù)按位分成8段分別存儲(chǔ)在8個(gè)128x8 b的RAM單元中,這樣才能保證每個(gè)RAM存儲(chǔ)單元的讀/寫數(shù)據(jù)位寬一致。其次,采集的波形數(shù)據(jù)需要經(jīng)過行列數(shù)據(jù)轉(zhuǎn)置模塊,才能做到RAM數(shù)據(jù)的按行寫入。行列數(shù)據(jù)轉(zhuǎn)置模塊采用了流水線結(jié)構(gòu),在觸發(fā)啟動(dòng)信號(hào)和時(shí)鐘的共同作用下把采集到的列點(diǎn)陣數(shù)據(jù)轉(zhuǎn)置成適合LCD屏顯示的行數(shù)據(jù)格式。
圖3所示為雙口RAM存儲(chǔ)單元的讀寫順序示意;經(jīng)過轉(zhuǎn)置后行數(shù)據(jù),按照?qǐng)D中所示的橫向“S”形順序?qū)懭耄跀?shù)據(jù)讀出時(shí),需要按照逐行的豎向的“S”形順序進(jìn)行讀數(shù)據(jù),這是LCD12864模塊控制時(shí)序要求的,按列逐字的寫入存儲(chǔ)器組織方式能夠提高RAM的緩存數(shù)據(jù)刷新頻率,同時(shí)也對(duì)存儲(chǔ)器的讀寫地址生成電路形成了較高設(shè)計(jì)難度。
4 LCD顯示驅(qū)動(dòng)模塊
要驅(qū)動(dòng)LCD模塊顯示正確圖形,就需要根據(jù)液晶屏的控制時(shí)序和用戶指令集,設(shè)計(jì)出正確的有限狀態(tài)機(jī)(FSM)來完成LCD模塊的初始化、控制命令和寫入數(shù)據(jù)操作過程;并產(chǎn)生RAM讀數(shù)據(jù)的地址,圖4所示就是LCD顯示驅(qū)動(dòng)模塊的狀態(tài)遷移。
在LCD模塊的狀態(tài)轉(zhuǎn)換圖中,系統(tǒng)上電后,首先進(jìn)行持續(xù)大約0.05 s的自動(dòng)復(fù)位(需要根據(jù)時(shí)鐘頻率調(diào)整),然后進(jìn)入LCD模塊的初始化過程,因此在狀態(tài)機(jī)中設(shè)置有3條條件轉(zhuǎn)換路徑來實(shí)現(xiàn)LCD屏的工作模式切換:初始化、顯示數(shù)據(jù)和起始行地址寫入。同時(shí)也在關(guān)鍵路徑上設(shè)置有可以配置參數(shù)的延時(shí)——在方便LCD模塊的工作調(diào)試的同時(shí),使LCD模塊一直工作在寫屏模式,驅(qū)動(dòng)LCD模塊動(dòng)態(tài)實(shí)時(shí)顯示、產(chǎn)生雙口RAM的
讀數(shù)據(jù)地址。
5 設(shè)計(jì)驗(yàn)證
使用DEO_Nano開發(fā)板(Altera FPGA Cyclone IVEP4CE22F17C6N)、液晶模塊(KB12864KZK)和4×4鍵盤組成手持式示波器的硬件測(cè)試驗(yàn)證平臺(tái);示波器設(shè)計(jì)項(xiàng)目經(jīng)過OuartusⅡ10.1 FPGA開發(fā)平臺(tái)的編譯和芯片下載配置后得到的運(yùn)行效果圖如圖5所示,圖中(a)是手持式示波器開機(jī)的畫面;(b)是三角波的測(cè)量效果;(c)是正弦波的測(cè)量效果;(d)是下拉菜單隱藏效果。示波器參數(shù)設(shè)置采用5鍵輸入的下拉菜單模式;設(shè)置時(shí),屏的最下端顯示參數(shù)調(diào)整菜單,設(shè)置完成確認(rèn)后菜單自動(dòng)收起隱藏。
實(shí)驗(yàn)結(jié)果表明,采用LCD12864液晶模塊作為手持式示波器的顯示終端,雖然顯示分辨率較低,可以清楚看到圖形的像素點(diǎn);同時(shí),這也是采用LCD12864屏的獨(dú)特優(yōu)點(diǎn)所在——能夠根據(jù)一個(gè)周期波形的像素點(diǎn)數(shù)和采樣信號(hào)頻率直接讀出被測(cè)信號(hào)周期,假如采用100 kHz(周期10μs)的采樣率;測(cè)得顯示屏上的一個(gè)完整周期的波形點(diǎn)數(shù)是50,那么該被測(cè)信號(hào)的周期就是500 μs。
6 結(jié)論
文中所設(shè)計(jì)的以LCD12864模塊為圖形顯示的低成本手持式示波器,最終在DEO_Nano FPGA開發(fā)板上的驗(yàn)證結(jié)果表明,完全實(shí)現(xiàn)了模擬信號(hào)的測(cè)量;垂直靈敏度和掃描速度調(diào)節(jié)、波形參數(shù)直接讀出功能;這不但實(shí)現(xiàn)了示波器的廉價(jià)和便攜,而且還具有被測(cè)信號(hào)周期直接讀出的優(yōu)點(diǎn)。