楊大偉,楊秀芳,李大偉,韓俊鋒, 陳劍虹
(1.西安理工大學(xué) 機(jī)械與精密儀器工程學(xué)院,陜西 西安 710048;2.中國(guó)科學(xué)院 西安光學(xué)精密機(jī)械研究所,陜西 西安 710119)
隨著工業(yè)技術(shù)的進(jìn)步,現(xiàn)代數(shù)字控制系統(tǒng)對(duì)執(zhí)行效率和集成化程度的要求越來(lái)越高[1]。特別是在靶場(chǎng)光電儀器平臺(tái)多個(gè)伺服系統(tǒng)數(shù)據(jù)信號(hào)采集中,對(duì)多通道A/D轉(zhuǎn)換的效率要求更高,此外,在外場(chǎng)便攜式采集儀器與光電設(shè)備接口中,使用多通道高速A/D轉(zhuǎn)換器還可以簡(jiǎn)化電路設(shè)計(jì)[2]。
許多文獻(xiàn)對(duì)串行多通道A/D轉(zhuǎn)換器AD7890的控制,基本上都是以單片機(jī)或者微處理器為控制核心。使用單片機(jī)作為處理器,雖然編程簡(jiǎn)單且容易控制,但是速度較慢,周期長(zhǎng),極大地限制了高速A/D的使用[3],而使用DSP作為處理器,需要專用SPI接口。采用FPGA作為控制核心,其時(shí)鐘頻率可高達(dá)100 MHz以上,與單片機(jī)或微處理器相比,更適合用于數(shù)字控制系統(tǒng)中直接對(duì)高速A/D器件進(jìn)行有效控制[4-6]。
本設(shè)計(jì)以Xilinx公司高性能現(xiàn)場(chǎng)可編程門陣列Virtex-4系列FPGA芯片為核心器件,利用多通道串行A/D轉(zhuǎn)換芯片AD7890實(shí)現(xiàn)快速、高精度的A/D轉(zhuǎn)換。
圖1 FPGA控制AD7890設(shè)計(jì)原理圖
依據(jù)AD7890工作原理,采用FPGA器件XC4VLX25芯片,在ISE 10.1軟件環(huán)境下實(shí)現(xiàn)對(duì)A/D轉(zhuǎn)換控制模塊的程序設(shè)計(jì)及仿真。
AD7890是Analog Device公司推出的一款8通道12位高速串行A/D轉(zhuǎn)換器。它的內(nèi)部結(jié)構(gòu)和引腳功能如圖2、3所示,由8路模擬輸入(信號(hào)調(diào)理)、多路選擇器、跟蹤/保持放大器、參考電源、輸入控制寄存器和數(shù)據(jù)輸出寄存器等部分組成[8]。
圖2 AD7890內(nèi)部結(jié)構(gòu)功能圖[8]
圖3 AD7890引腳圖[8]
AD7890有兩種工作模式(外部時(shí)鐘和內(nèi)部時(shí)鐘)可選,由AD7890的SMODE引腳的高低置位決定,AD7890通過(guò)片內(nèi)的高速雙向串行數(shù)據(jù)接口接收輸入控制字和輸出串行數(shù)據(jù),器件的8路模擬輸入通道通過(guò)給定輸入控制字選出。串行輸入控制寄存器由5位組成:3位通道選擇地址位A2、A1、A0,1位軟件控制轉(zhuǎn)換狀態(tài)位CONV(低電平有效)、1位休眠狀態(tài)位STBY,如圖4所示。在指定芯片輸入控制命令時(shí),至少需要6個(gè)SCLK時(shí)鐘脈沖信號(hào)才能完成對(duì)寄存器的寫操作,超過(guò)6個(gè)寫周期時(shí)鐘的輸入字無(wú)效,且5位控制位默認(rèn)輸入為0。被選通道按照公式(通道號(hào)=4×A2+2×A1+A0+1)計(jì)算。
圖4 AD7890輸入控制寄存器
圖5 外部時(shí)鐘模式寫操作時(shí)序[8]
圖6 外部時(shí)鐘模式讀操作時(shí)序[8]
在Xilinx公司ISE 10.1軟件平臺(tái)下[10],使用VHDL硬件描述語(yǔ)言進(jìn)行邏輯描述,A/D控制邏輯包括系統(tǒng)頂層模塊、時(shí)鐘分頻模塊、A/D讀寫控制輸入輸出模塊。使用狀態(tài)機(jī)來(lái)設(shè)計(jì)通道產(chǎn)生及串行數(shù)據(jù)控制時(shí)序,AD7890控制時(shí)序圖及生成模塊原理圖分別如圖7、8所示。
圖7 AD7890控制時(shí)序圖
圖8 A/D轉(zhuǎn)換控制模塊圖
頂層結(jié)構(gòu)體定義源程序:
entity AD7890_top is
port(clk100mhz : in std_logic; ——系統(tǒng)時(shí)鐘
reset : in std_logic; ——復(fù)位信號(hào)(低有效)
dout : in std_logic; ——串行輸入端口信號(hào)
sclk : out std_logic; ——AD輸入時(shí)鐘
clk_in : out std_logic; ——AD內(nèi)部工作時(shí)鐘
rfs_n : out std_logic; ——接收幀同步信號(hào)(低有效)
tfs_n : out std_logic; ——發(fā)送幀同步信號(hào)(低有效)
din : out std_logic; ——控制命令串行輸出端口信號(hào)
convst : out std_logic; ——轉(zhuǎn)換控制標(biāo)志
/*8通道串行數(shù)據(jù)*/
vin1 : out std_logic_vector(11 downto 0);
…
vin8 : out std_logic_vector(11 downto 0));
end AD7890_top ;
A/D轉(zhuǎn)換接收串行數(shù)據(jù)部分源程序如下:
elsif (sclk’event and sclk=’1’) then
case state is
when state0=> if(count<12) then
tfs_n<=’1’;
count:=count+1;
state<=state0;
else
count:=0;
state<=swrite0;
end if;
/*輸入控制字*/
when swrite0=> tfs_n<=’0’;
din<=address(2);
state<=swrite1;
…
when swrite3=> din<=’0’;
state<=swrite4;
when swrite4=> din<=’0’;
state<=swrite5;
/*串行數(shù)據(jù)輸出:1位起始,3位地址,12位數(shù)據(jù)*/
when sread1=>state<=sread2;——串行輸出起始位
when sread2=> tempaddr(2)<=dout; ——串行輸出地址位和數(shù)據(jù)位
…
when sread16=> tempdata(0)<=dout;
state<=sread;
…
when converse=>
if(count<9) then
count:=count+1;
state<=converse;
else
count:=0;
state<=select;
convst<=’0’;
end if;
/*通道地址選擇輸出*/
when select=> case tempaddr is
when "000"=>
vin1<=tempdata;
…
when "111"=>
vin8<=tempdata;
when others=>NULL;
end case;
if address<"111" then
address<=address+"001";
else
address<="000";
end if;
state<=sover;
…
end case;
在ISE軟件環(huán)境下進(jìn)行綜合、布局布線后,將程序下載到光電儀器便攜式多功能信號(hào)處理采集系統(tǒng)硬件中(圖9為實(shí)物圖),使用在線邏輯分析儀ChipScope[11]采集信號(hào)數(shù)據(jù),得到AD7890控制時(shí)序及功能仿真測(cè)試圖,圖10、圖11是分別在AD7890第6通道輸入5 V模擬量和第7通道輸入3 V模擬量的時(shí)序控制及串行數(shù)據(jù)輸出圖。
圖9 實(shí)驗(yàn)實(shí)物圖
圖10 5V模擬輸入時(shí)序控制及串行數(shù)據(jù)輸出
圖11 3V模擬輸入時(shí)序控制及串行數(shù)據(jù)輸出
由圖10、圖11可以看出,F(xiàn)PGA實(shí)現(xiàn)了對(duì)AD7890的正確控制,AD7890輸出的二進(jìn)制數(shù)與理論計(jì)算結(jié)果完全一致。實(shí)驗(yàn)中在第6通道(101)、第7通道(110)分別接入5 V和3 V模擬量,由圖10、圖11的dout得到的AD7890輸出的二進(jìn)制碼分別是101_010000000000和110_001001100111。前面3位是通道碼,后面的12位是轉(zhuǎn)換的二進(jìn)制數(shù)據(jù),010000000000對(duì)應(yīng)的十進(jìn)制數(shù)的1024,001001100111對(duì)應(yīng)十進(jìn)制數(shù)的615,用公式(1)將其換算為輸入模擬量。式(1)中LSR、FSR分別表示AD7890允許輸入的最大模擬量(10 V)和最小模擬量(-10 V),以6通道轉(zhuǎn)換成的二進(jìn)制數(shù)010000000000為例,計(jì)算結(jié)果為5 V,這與加入到6通道的模擬量完全一致,對(duì)于7通道情況完全類同。
(1)
本設(shè)計(jì)和實(shí)驗(yàn)實(shí)現(xiàn)了用FPGA對(duì)AD7890的正確控制,充分發(fā)揮了AD7890高速高精度特點(diǎn),選用FPGA作為控制器件,使得數(shù)據(jù)采集硬件更加簡(jiǎn)單,控制更加靈活,集成化程度進(jìn)一步提高,這對(duì)光電儀器外場(chǎng)數(shù)據(jù)采集系統(tǒng)來(lái)說(shuō)是重要的。
參考文獻(xiàn):
[1]黃浦, 楊秀麗, 李軍, 等.多通道模/數(shù)轉(zhuǎn)換器AD7890與DSP的接口設(shè)計(jì)[J].現(xiàn)代電子技術(shù), 2009, (22): 213-215.
Huang Pu, Yang Xiuli, Li Jun, et al.Interface design between multi-channel A/D convertor AD7890 and DSP[J].Modern Electronics, 2009, (22):213-215.
[2]湯楠, 李明.AD7890型串行數(shù)/模轉(zhuǎn)換器與51系列單片機(jī)的接口設(shè)計(jì)[J].國(guó)外電子元器件, 2006, (8): 4-7.
Tang Nan, Li Ming.Design of interface between serial A/D converter AD7890 and 51 series single-chip microcomputer[J].International Electronic Elements, 2006, (8): 4-7.
[3]黃榮蘭,萬(wàn)德煥.基于FPGA的A/D轉(zhuǎn)換采集控制模塊設(shè)計(jì)[J].數(shù)據(jù)采集與處理, 2009, 24(S): 237-240.
Huang Ronglan, Wan Dehuan.Design of A/D convertion sampling control module based on FPGA[J].Journal of Data Acquisition & Processing, 2009, 24(S): 237-240.
[4]陳鈺利, 曾成志, 鄭海榮,等.基于ADS6122和FPGA的多通道信號(hào)采集系統(tǒng)的設(shè)計(jì)[J].電子器件, 2012, 35(4): 406-411.
Chen Yuli, Zeng Chengzhi, Zheng Hairong, et al.Design of multi-channel data acquisition system based on ADS6122 and FPGA[J].Chinese Journal of Electron Devices, 2012, 35(4): 406-411.
[5]賀秋實(shí), 郝國(guó)法, 錢龍.基于FPGA的高速AD轉(zhuǎn)換[J].電子設(shè)計(jì)工程, 2012, 20(8): 122-124.
He Qiushi, Hao Guofa, Qian Long.AD conversion with high speed based on FPGA[J].Electronic Design Engineering, 2012, 20(8):122-124.
[6]徐園,靳根,王希濤,等.ARM與AD7656-1的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].核電子學(xué)與探測(cè)技術(shù), 2012, 32(8): 914-917.
Xu Yuan, Jin Gen,Wang Xitao, et al.The design of multi-channel data acquisition system between ARM and AD7656-1[J].Nuclear Electronics & Detection Technology, 2012, 32(8): 914-917.
[7]田耘,徐文波,胡彬.Xilinx ISE Design Suite 10.x FPGA開發(fā)指南[M].北京:人民郵電出版社, 2008: 26-38.
[8]Analog Devices Inc.LC2MOS 8-Channel, 12-Bit Serial Data Acquisition System AD7890 Data Sheet[EB/OL].http:∥www.ananlog.com/static/imported-files/data_sheets/AD7890.pdf, 2013-5-20.
[9]趙慧潔,劉小康,張穎.聲光可調(diào)諧濾波成像光譜儀的CCD成像電子學(xué)系統(tǒng)[J].光學(xué)精密工程, 2013, 21(5): 1291-1296.
Zhao Huijie, Liu Xiaokang, Zhang Ying.CCD imaging electrical system of AOTF imaging[J].Optics and Precision Engineering, 2013, 21(5): 1291-1296.
[10]趙吉成,王智勇.Xilinx FPGA設(shè)計(jì)與實(shí)踐教程[M].西安:西安電子科技大學(xué)出版社, 2012: 26-40.
[11]田耘, 徐文波.Xilinx FPGA 開發(fā)實(shí)用教程[M].北京: 清華大學(xué)出版社, 2008: 295-316.