時域反射儀的硬件設(shè)計與實現(xiàn)----關(guān)鍵電路設(shè)計(二)
電路模擬通道有許多控制電路,基本上都可以通過FPGA來完成,比如衰減倍數(shù)控制、交直流禍合,接地控制、使能控制、通道較準(zhǔn)控制等,這些都可以通過常規(guī)的高低電平來完成。考慮到前端電路需要的控制信號線較多,如果直接由FPGA來控制,必定會占用較多的I/O口,同時從布線的角度來考慮的話,大量的連線從后端連接到前端,必定會使用較多的板上面積,給整體布線帶來許多麻煩。為此本設(shè)計摒棄了直接控制方式,而采用間接控制,所有的控制任務(wù)只需要三條控制線和一個或多個串并轉(zhuǎn)換器CD4094就可以完成。
該串并轉(zhuǎn)換器有四個輸入端,八個并行輸出端和一對互補(bǔ)的串行輸出端。四的輸入端中包括:串行數(shù)據(jù)輸入、時鐘信號輸入、選通控制、使能輸出控制。串并轉(zhuǎn)換器內(nèi)部主要由三大部分組成:移位寄存器、數(shù)據(jù)鎖存(選通)器和三態(tài)緩沖器。時鐘信號將串行數(shù)據(jù)以先后的順序存到移位寄存器,每一個時鐘對應(yīng)一位數(shù)據(jù),選通控制端則控制是否將舊數(shù)據(jù)用新數(shù)據(jù)代替,如果選通控制器一直處于低電平,則并行輸出端的數(shù)據(jù)還是上一次的數(shù)據(jù),如果選通控制在新數(shù)據(jù)到來之前已經(jīng)是高電平,則如果使能輸出為高,從并行輸出端的數(shù)據(jù)隨著時鐘到來依次得到更新。如果是經(jīng)過八個串行時鐘以后,選通控制信號由低到高的變化,則并行數(shù)據(jù)端的八位輸出數(shù)據(jù)同時得到更新。串并轉(zhuǎn)換器的兩個串行輸出端口可以用來對數(shù)據(jù)位數(shù)的擴(kuò)展,即實現(xiàn)多個串并轉(zhuǎn)換器的級聯(lián)。
在FPGA內(nèi)部同樣存在一個并轉(zhuǎn)串的模塊,它將從ARM送過來的通道所需要的并行控制型信號轉(zhuǎn)換成對應(yīng)的串行信號,轉(zhuǎn)換模塊通過verilog HDL(硬件描述語言)來實現(xiàn)。該模塊結(jié)構(gòu)和仿真時序圖,如圖4-21和4-22所示。
從時序圖可以看到當(dāng)W嘆仃E信號產(chǎn)生一個上升沿以后,16位的并行數(shù)據(jù)隨著時鐘的增加,依次從最高位開始串行輸出,當(dāng)最低位輸出以后STROBE在最后一位數(shù)據(jù)產(chǎn)生半個時鐘周期以后產(chǎn)生一個上升沿,該上升沿可以用來控制在通道中的串并轉(zhuǎn)換器的選通控制引腳,使級聯(lián)的兩個串并轉(zhuǎn)換器的并行輸出端同時得
到更新。CLK_SER輸出用來為串并轉(zhuǎn)換器提供所必須的時鐘信號。
在最初的設(shè)計當(dāng)中,考慮到數(shù)字電路的設(shè)計簡單和方便,對通道的控制信號的寫入采用的是循環(huán)寫的方式,即寫完一次以后緊接著寫第二次,無論數(shù)據(jù)是否更新,CD4094一直都有數(shù)據(jù)寫入。后來發(fā)現(xiàn)通過這種方式對通道進(jìn)行控制,導(dǎo)致了一些不必要的麻煩。首先是控制信號很多都與被測信號有一定的聯(lián)系,如果不停的循環(huán)寫,則把噪聲信號引入到了被測信號上。另外對通道上的控制信號的修改次數(shù)相對于循環(huán)寫的次數(shù)來說,修改的次數(shù)遠(yuǎn)遠(yuǎn)小于寫的次數(shù),也就是說很多次的寫操作都是沒有任何意義。為此將對通道上的控制信號的寫入采用由ARM來控制,即在ARM讀取一次FPGA內(nèi)部RAM中的數(shù)據(jù)并顯示完以后,就進(jìn)行一次對通道控制的寫操作,只需要在圖4-21中的WRITE端產(chǎn)生一個上升沿即可。這樣即消除了噪聲的引入,同時也保證了數(shù)據(jù)的更新。
評論