時域反射儀的硬件設計與實現----關鍵電路設計(二)
電路模擬通道有許多控制電路,基本上都可以通過FPGA來完成,比如衰減倍數控制、交直流禍合,接地控制、使能控制、通道較準控制等,這些都可以通過常規的高低電平來完成。考慮到前端電路需要的控制信號線較多,如果直接由FPGA來控制,必定會占用較多的I/O口,同時從布線的角度來考慮的話,大量的連線從后端連接到前端,必定會使用較多的板上面積,給整體布線帶來許多麻煩。為此本設計摒棄了直接控制方式,而采用間接控制,所有的控制任務只需要三條控制線和一個或多個串并轉換器CD4094就可以完成。
該串并轉換器有四個輸入端,八個并行輸出端和一對互補的串行輸出端。四的輸入端中包括:串行數據輸入、時鐘信號輸入、選通控制、使能輸出控制。串并轉換器內部主要由三大部分組成:移位寄存器、數據鎖存(選通)器和三態緩沖器。時鐘信號將串行數據以先后的順序存到移位寄存器,每一個時鐘對應一位數據,選通控制端則控制是否將舊數據用新數據代替,如果選通控制器一直處于低電平,則并行輸出端的數據還是上一次的數據,如果選通控制在新數據到來之前已經是高電平,則如果使能輸出為高,從并行輸出端的數據隨著時鐘到來依次得到更新。如果是經過八個串行時鐘以后,選通控制信號由低到高的變化,則并行數據端的八位輸出數據同時得到更新。串并轉換器的兩個串行輸出端口可以用來對數據位數的擴展,即實現多個串并轉換器的級聯。
在FPGA內部同樣存在一個并轉串的模塊,它將從ARM送過來的通道所需要的并行控制型信號轉換成對應的串行信號,轉換模塊通過verilog HDL(硬件描述語言)來實現。該模塊結構和仿真時序圖,如圖4-21和4-22所示。

從時序圖可以看到當W嘆仃E信號產生一個上升沿以后,16位的并行數據隨著時鐘的增加,依次從最高位開始串行輸出,當最低位輸出以后STROBE在最后一位數據產生半個時鐘周期以后產生一個上升沿,該上升沿可以用來控制在通道中的串并轉換器的選通控制引腳,使級聯的兩個串并轉換器的并行輸出端同時得
到更新。CLK_SER輸出用來為串并轉換器提供所必須的時鐘信號。
在最初的設計當中,考慮到數字電路的設計簡單和方便,對通道的控制信號的寫入采用的是循環寫的方式,即寫完一次以后緊接著寫第二次,無論數據是否更新,CD4094一直都有數據寫入。后來發現通過這種方式對通道進行控制,導致了一些不必要的麻煩。首先是控制信號很多都與被測信號有一定的聯系,如果不停的循環寫,則把噪聲信號引入到了被測信號上。另外對通道上的控制信號的修改次數相對于循環寫的次數來說,修改的次數遠遠小于寫的次數,也就是說很多次的寫操作都是沒有任何意義。為此將對通道上的控制信號的寫入采用由ARM來控制,即在ARM讀取一次FPGA內部RAM中的數據并顯示完以后,就進行一次對通道控制的寫操作,只需要在圖4-21中的WRITE端產生一個上升沿即可。這樣即消除了噪聲的引入,同時也保證了數據的更新。
評論