1 引言
科學(xué)技術(shù)的發(fā)展對(duì)數(shù)據(jù)采集系統(tǒng)的采樣速率,、分辨率、精度,、接口及抗干擾能力等提出越來(lái)越高的要求,。
ADl871是目前市場(chǎng)上動(dòng)態(tài)范圍、采樣速率和采樣精度等指標(biāo)都很突出數(shù)據(jù)的一款24位 ADC,,它的推出為設(shè)計(jì)高速,、高精度數(shù)據(jù)采集系統(tǒng)提供了一種較好的解決方案。由于其輸出為串行輸出,,當(dāng)其和MCU直接相連時(shí),,會(huì)使采樣系統(tǒng)的采樣速率大大降低。
如果MCU的I/O端口的實(shí)際最高速率是1MHz(單片機(jī)的速率通常是這個(gè)數(shù)量級(jí)),,那么I/O端13傳輸1Bit的最短時(shí)間間隔為1μs,,當(dāng)ADl871輸出2路各24Bit時(shí),需要實(shí)際串行輸出64Bit,,故采樣速率下降為1MHz/64=15.625kHz,,這個(gè)速率遠(yuǎn)遠(yuǎn)低于ADl871的96kHz,另外,,單片機(jī)把64位串行數(shù)據(jù)再處理為2個(gè)24位的并行數(shù)據(jù)時(shí),速度會(huì)進(jìn)一步降低,。
為此,,筆者采用現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)設(shè)計(jì)了ADl871和MCU之間的接口,,由FPGA完成對(duì)ADl871的控制,并將其輸出的串行數(shù)據(jù)在FPGA的內(nèi)部變?yōu)椴⑿袛?shù)據(jù),,并行后的數(shù)據(jù)以8位或12位為一組發(fā)給MCU,。由于FPGA的實(shí)際傳輸速率可以滿(mǎn)足和ADl871的傳輸速率要求,故上述“瓶頸”得以解決,。
2 接口設(shè)計(jì)
2.1 時(shí)鐘設(shè)計(jì)
圖1示出A/D轉(zhuǎn)換器的輸入時(shí)鐘設(shè)計(jì),,MD轉(zhuǎn)換器工作在從模式下時(shí),需要外部提供RLCLK和BCLK,。在主時(shí)鐘MCLK的輸入下,,通過(guò)對(duì)MCLK 4分頻得到BCLK的信號(hào),用來(lái)作為位數(shù)據(jù)提取的信號(hào),。RLCLK是通過(guò)對(duì)BCLK的32分頻得到的,,用來(lái)區(qū)分左右通道的數(shù)據(jù),同時(shí)輸出EN信號(hào)作為后續(xù)處理的同步信號(hào),。
2.2 接口設(shè)計(jì)
在圖2中,,輸入為MCLK(主時(shí)鐘)、RESET(啟動(dòng)信號(hào))和SHIFTIN(A/D輸出數(shù)據(jù)),,輸出為RL(左右?guī)盘?hào)),、BCLK(A/D數(shù)據(jù)位時(shí)鐘),TXT(并行數(shù)據(jù)讀取控制)和SHIFTOUT(并行數(shù)據(jù)輸出),。通過(guò)時(shí)鐘控制輸出BCLK和 RLCLK到AD1871,,AD1871傳出數(shù)據(jù)SHIFTIN進(jìn)入SHIFT模塊,SHIFT模塊在正確的位時(shí)鐘下讀取SHIFTIN的輸入數(shù)據(jù),,并進(jìn)行串,,并轉(zhuǎn)換,之后輸出8位或12位的數(shù)據(jù),。同時(shí)輸出TXT并行數(shù)據(jù)讀取控制,。
2.3 SHIFT模塊程序
- Emity shifill is
- PORT(BCLK:IN STD_LOGIC;一輸入的BCLK位信號(hào)
- CR :IN STD_LOGIC,;--輸入的使能信號(hào)
- SHIFTIN:IN STD_LOGIC:--AD輸入的串行信號(hào)
- RLEN:IN STD_LOGIC,;--輸入的RLCLK使能,幀對(duì)準(zhǔn)信號(hào)
- TXTS:OUT STD_LOGIC,;--8位的組信號(hào)輸出控制信號(hào)
- sddddd:OUT STD_LOGIC_VECTOR (7DOWNTO 0),; --8位并行信號(hào)輸出);
- end shift11:
- architecture Behavioral of shift11 is
- SIGNAL TEMPDATE:STD_LOGIC_VEC—TOR(8 DOWNTO 0),;
- SIGNAL TEMPO11:STD_LOGIC_VECTOR(7DOWNTO 0):=“00000000”,;
- SIGNAL Q:INTEGER RANGE 0 T0 7;
- 一并行信號(hào)計(jì)數(shù)8位產(chǎn)生一個(gè)脈沖,;
- SIGNAL Q4:INTEGER RANGE 0 TO 3,;
- --有用信號(hào)選擇,,選擇32位中的24位;
筆者用MaxPlus II對(duì)以上設(shè)計(jì)進(jìn)行仿真后得到圖3所示的時(shí)序圖,,完全滿(mǎn)足設(shè)計(jì)要求,,從圖3可以看出串行輸入的數(shù)據(jù)(shiflin)變成并行的數(shù)據(jù)(shiftout) 輸出,在此過(guò)程中數(shù)據(jù)延時(shí)8個(gè)周期,,每個(gè)txts的上升沿提取數(shù)據(jù)能保證數(shù)據(jù)的正確性,。因?yàn)閺臄?shù)據(jù)的變動(dòng)到txts的上升沿有400ns,大于FPGA的數(shù)據(jù)建立時(shí)間(25ns~50ns),,可以保證提取數(shù)據(jù)的正確性,。
3 小型采樣系統(tǒng)
圖4示出采用ADl871構(gòu)成的采樣系統(tǒng)結(jié)構(gòu)。整個(gè)系統(tǒng)在1個(gè)FPGA上實(shí)現(xiàn),,分為3部分:并轉(zhuǎn)換模塊,;ADC控制和配置;UART通信,。
具體的功能是實(shí)現(xiàn)ADC的初始化,、信號(hào)的采集存儲(chǔ)及UART通信。
工作原理是由ADC控制模塊來(lái)接收PC的數(shù)據(jù),,轉(zhuǎn)發(fā)控制數(shù)據(jù)到ADC,,對(duì)ADC的工作狀態(tài)進(jìn)行配置。完成后ADC采樣并儲(chǔ)存在FIFO中,,通過(guò)控制向單片機(jī)傳送數(shù)據(jù),。
從仿真結(jié)果看,整個(gè)系統(tǒng)的工作正常,,說(shuō)明接口設(shè)計(jì)的正確性和可行性,。
4 結(jié)束語(yǔ)
由ADl871構(gòu)成的數(shù)據(jù)采集系統(tǒng)具有高分辨率、寬動(dòng)態(tài)范圍,、高信噪比等特點(diǎn),,特別適用于高精度數(shù)據(jù)采集系統(tǒng)。∑-△型ADC具有抗干擾能力強(qiáng),、量化噪聲小,、分辨率高、線性度好,、轉(zhuǎn)換速度較高,、價(jià)格合理等優(yōu)點(diǎn),因此越來(lái)越多地受到電子產(chǎn)品用戶(hù)及設(shè)計(jì)人員的重視,。解決這類(lèi)ADC的接口問(wèn)題在實(shí)際設(shè)計(jì)中具有重大意義,。筆者設(shè)計(jì)的接口使單片機(jī)從接收數(shù)據(jù)的困境中解脫出來(lái),大大提高了單片機(jī)的采樣速率,原來(lái)處理一幀數(shù)據(jù)需要讀64次,,現(xiàn)在只需要6次,,在12位輸出的情況下只需要4次,也就是說(shuō)采用FPGA后單片機(jī)的I/O口可以達(dá)到1MHz/6=166.66kHz 的采樣速率,,大大超過(guò)了96kHz的采樣速率,使單片機(jī)有時(shí)間對(duì)數(shù)據(jù)進(jìn)行一些處理,。