基于FPGA的無線同播頻率校準(zhǔn)裝置的設(shè)計
2.2 脈沖計時模塊設(shè)計
脈沖計時模塊接口信號包括:級別輸入level[2∶0]、開始計數(shù)輸入auto_reset、判斷輸出judge[1∶0]、讀指令輸出read,還有輸入時鐘fre_in和復(fù)位使能reset,模塊內(nèi)部設(shè)寄存器clk_add[32∶0],用于脈沖計數(shù)。模塊的狀態(tài)包括idle、calculate、judgment和readtime,狀態(tài)機如圖3所示。本文引用地址:http://m.butianyuan.cn/article/191781.htm
其具體工作過程為:
(1)狀態(tài)為idle時,read置0,clk add[32∶0]清空,讀入level值。Level是計數(shù)判斷的基準(zhǔn),必須在計數(shù)前讀入。
(2)當(dāng)收到auto_reset為高電平,狀態(tài)從idle轉(zhuǎn)至calculate開始脈沖計數(shù)。由于計數(shù)的頻率同時是FPGA的工作頻率,所以clk_add[32∶0]只需在calculate狀態(tài)下每個時鐘累加一次。
(3)auto_reset變?yōu)榈蜁r,狀態(tài)轉(zhuǎn)至judgment,將clk_add[32∶0]與所在級別的上下限對比,將結(jié)果通過judge[1∶0]輸出。
(4)狀態(tài)轉(zhuǎn)至readtime,將read置1,read信號告知分級控制模塊judge[1∶0]信號已經(jīng)更新,要求讀取,當(dāng)clk_add [32∶0]等于中心脈沖數(shù),read不置為1,表示無需改變電壓值。
(5)狀態(tài)轉(zhuǎn)回idle。
2.3 電壓控制模塊設(shè)計
電壓控制模塊的接口信號包括:級別輸入level[2∶0]、調(diào)整方向輸入step、調(diào)整輸入load、就緒輸出ready、DAC接口輸出(sync、SClk和din),還有輸入時fre_in和復(fù)位使能reset,模塊內(nèi)部設(shè)寄存器data reg[23∶0]用于生成控制DAC的幀,max_24bits[4∶0]用于記錄當(dāng)前是控制幀的第幾位輸出。每幀長度為24位,控制字包括:LDB、LDA選擇寫入通道,Buffer Select選擇寫入的寄存器,PDl、PD0選擇輸出阻抗模式,D15~D0為16位的DAC數(shù)據(jù)。其幀結(jié)構(gòu)如圖4所示。
DAC8552采用SYNC、SCLK和DIN三線接口控制方式,從SYNC變低時開始寫入,SCLK產(chǎn)生寫時鐘,在SCLK下降沿數(shù)據(jù)被寫入DAC8552,SYNC必須在第24個下降沿后才重新拉高,否則寫入失敗。其時序圖如圖5所示
評論