基于FPGA的IRIG-B編碼器的設(shè)計(jì)
4.2 IRIG-B AC編碼模塊
4.2.1 數(shù)字調(diào)制原理
按照奈奎斯特抽樣定理,只要抽樣頻率高于2倍信號(hào)的最高頻率,則整個(gè)連續(xù)信號(hào)就能完全用它的抽樣值來(lái)代表。使用抽樣值構(gòu)成的序列經(jīng)DAC和低通濾波后即可恢復(fù)原來(lái)的連續(xù)信號(hào)。
若對(duì)頻率為f的正弦波抽樣N次(N>2f),并在T=1/f內(nèi)通過(guò)DAC等間隔輸出N次抽樣值,則低通濾波后可恢復(fù)原始正弦信號(hào)。各個(gè)采樣點(diǎn)值為:
Ck=Asin(ωkt)=Asin[ωk(T/N)] (1)
式中:ω=2πf;f為信號(hào)頻率。則式(1)變?yōu)椋?p>Ck=Asin[2πfk(T/N)]=Asin(2kπ/N) (2)
4.2.2 正弦查找表
這里給出利用查找表實(shí)現(xiàn)交流數(shù)字調(diào)制的方法。在獲得IRIG-B的直流編碼后,將該信號(hào)導(dǎo)入到數(shù)字調(diào)制模塊,即可獲得交流編碼。對(duì)正弦信號(hào)進(jìn)行100次等間隔抽樣,對(duì)式(2)使用實(shí)際的增益和直流偏移,可得式(3)。據(jù)此獲得查找表。
Ck=Acsin(2πk/N)+A0 (3)
式中:N=100為采樣率;k=0,1,2,…,N-1;Ck對(duì)應(yīng)第k次抽樣獲得的值;A0為保證輸出信號(hào)為單極性而設(shè)置的初始直流偏移;Ac為考慮調(diào)制比和DAC滿幅度碼值的系數(shù)。
由于交流信號(hào)頻率為1 kHz,周期為T(mén)=1 ms,若在1 ms內(nèi)將上述抽樣值等間隔輸出到DAC,即可獲得1 kHz的調(diào)制信號(hào)。
本文使用MAX5712和單電源rail-rail運(yùn)放AD8601構(gòu)成濾波器。在MAX5712滿幅輸出時(shí),C=4 095(12 bit DAC),選擇調(diào)制比為1:5。綜合考慮,在最大輸出時(shí),不能使DAC輸出到達(dá)運(yùn)放的上軌,最低輸出時(shí),DAC輸出應(yīng)高于運(yùn)放的下軌,所以選取A0=C/2+200=2 248。對(duì)應(yīng)邏輯0,Ac=461;對(duì)應(yīng)邏輯1,Ac=1 844。根據(jù)上述原則計(jì)算出的正弦查找表如表1所示。
實(shí)際使用時(shí),應(yīng)根據(jù)使用DAC的解析度、運(yùn)放的動(dòng)態(tài)范圍以及采樣率及調(diào)制比確定上式中的參數(shù)。
4.2.3 DAC接口
實(shí)際使用時(shí)應(yīng)根據(jù)DAC的不同,在FPGA中構(gòu)建不同的數(shù)字接口。MAX5712需要在FPGA實(shí)現(xiàn)一個(gè)SPI接口,結(jié)構(gòu)如圖4所示。接口控制部分提供一個(gè)16 b寫(xiě)端口,可以接收數(shù)據(jù)。在寫(xiě)使能wren為高時(shí),接口上的數(shù)據(jù)寫(xiě)入內(nèi)部并行保持寄存器。在LDAC脈沖的上升沿,并行寄存器THR的內(nèi)容寫(xiě)入移位寄存器,同時(shí)啟動(dòng)時(shí)鐘邏輯。在輸出時(shí)鐘作用下,數(shù)據(jù)從Dout輸出到DAC,在SPI_CS的后沿,DAC啟動(dòng)轉(zhuǎn)換輸出與當(dāng)前編碼相匹配的模擬量。
4.2.4 交流調(diào)制方法
把按照第4.2.1節(jié)方法生成的正弦查找表生成Altera mif文件,再例化一個(gè)M4K ROM,使用上述文件作為ROM的初始化文件。建立一個(gè)周期為10μs的定時(shí)器和一個(gè)地址計(jì)數(shù)器。地址計(jì)數(shù)器和定時(shí)器在B碼直流信號(hào)的變化沿復(fù)位,定時(shí)器溢出后啟動(dòng)地址計(jì)數(shù)器。或者把邏輯0對(duì)應(yīng)的查找表放在ROM的上半部,如果把邏輯1對(duì)應(yīng)的查找表放在ROM的下半部,且輸入的直流B碼信號(hào)作為地址的高位,則此時(shí)刻對(duì)應(yīng)的ROM輸出即為DAC的調(diào)制輸出,ROM查找表VHDL的代碼實(shí)現(xiàn)如下:
其中:B為來(lái)自編碼器中IRIG-B的直流編碼;AQC為地址計(jì)數(shù)器;ddata為輸出到DAC的數(shù)字調(diào)制輸出。由于查找表是按照對(duì)正弦信號(hào)做100次等間隔采樣形成的,交流載波為1 kHz。所以AQC每隔10μs自加1,順序輸出100個(gè)編碼值,在B碼的每個(gè)變化邊沿復(fù)位。
按上述方法設(shè)計(jì)的數(shù)字調(diào)制模塊,用示波器測(cè)得輸出波形如圖5所示。
評(píng)論