基于TLV1562的四通道高速實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
由于TLV1562芯片是可配置A/D轉(zhuǎn)換器,其配置轉(zhuǎn)換時(shí)序圖見圖。所以如何利用CPLD實(shí)現(xiàn)對TLV1562的配置與讀寫是關(guān)鍵技術(shù)之一。對于TLV1562的讀寫控制易于實(shí)現(xiàn),而對于其配置,由于是對四通道循環(huán)采集,較為復(fù)雜。在TLV1562中有兩個(gè)寄存器需要配置,也就是要有兩次寫,而每次配置的數(shù)據(jù)還不一樣(見表一),所以應(yīng)該在每次寫的時(shí)候都應(yīng)相應(yīng)的提供數(shù)據(jù)。整個(gè)配置過程用VHDL語言采用有限狀態(tài)機(jī)的方式來實(shí)現(xiàn)。定義5個(gè)狀態(tài),分別為st0,st1,st2,st3,ST4,st0是空閑態(tài),st1,st2,st3,ST4是對應(yīng)相應(yīng)采集通道的狀態(tài),INDEXREG[1..0]是用來監(jiān)測寫信號的第幾次寫的標(biāo)識碼。 程序如下:
type states is (st0,st1,st2,st3,ST4);
signal current_state,next_state :states :=st0;
signal indexreg:STD_LOGIC_vector(1 downto 0);
signal chanel_data: STD_LOGIC_vector(9 downto 0);
begin
indexreg=index_reg; cs=not start;
process(current_state,indexreg,ad_ale)
begin
if ad_ale='0' then
chanel_data=ZZZZZZZZZZ;
else
if indexreg=10 then
chanel_data=0100000100;
else
case current_state is
when st0=>ad_end='0'; chanel=00;
next_state=st1;
chanel_data=0011000000;
when st1=> ad_end='0';chanel=01;
next_state=st2;
chanel_data=0011000001;
when st2=> ad_end='0';chanel=10;
next_state=st3;
chanel_data=0011000010;
when st3=> ad_end='1';chanel=11;
next_state=st0;
chanel_data=0011000011;
when st4=> next_state=st0;
chanel_data=0011000000;
when others=> ad_end='1'; next_state=st0;
chanel_data=0011000000;
end case;
end if;
end if;
end process;
表一 控制寄存器配置表 |
3 結(jié)束語
文中詳述了基于TLV1562和EP1K100的多通道高速采集系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)方法,將該采集系統(tǒng)應(yīng)用到雷達(dá)數(shù)字式對消器中,結(jié)果證明精度和速度都能滿足要求。實(shí)現(xiàn)了在較低的成本下實(shí)施多通道數(shù)據(jù)采集處理。
評論