當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]摘要:本文采用FPGA器件EP1C6T144C8芯片代替單片機(jī)控制A/D轉(zhuǎn)換芯片ADC0809進(jìn)行采樣控制,整個(gè)設(shè)計(jì)用VHDL語(yǔ)言描述,在QuartusⅡ平臺(tái)下進(jìn)行軟件編程實(shí)現(xiàn)正確的A/D轉(zhuǎn)換的工作時(shí)序控制過程,并將采樣數(shù)據(jù)從二進(jìn)制轉(zhuǎn)化成B

摘要:本文采用FPGA器件EP1C6T144C8芯片代替單片機(jī)控制A/D轉(zhuǎn)換芯片ADC0809進(jìn)行采樣控制,整個(gè)設(shè)計(jì)用VHDL語(yǔ)言描述,在QuartusⅡ平臺(tái)下進(jìn)行軟件編程實(shí)現(xiàn)正確的A/D轉(zhuǎn)換的工作時(shí)序控制過程,并將采樣數(shù)據(jù)從二進(jìn)制轉(zhuǎn)化成BCD碼。本設(shè)計(jì)可用于高速應(yīng)用領(lǐng)域和實(shí)時(shí)監(jiān)控方面。
關(guān)鍵詞:FPGA;A/D轉(zhuǎn)換;VHDL;采樣控制;BCD碼

在以往的A/D器件采樣控制設(shè)計(jì)中,多數(shù)是以單片機(jī)或CPU為控制核心,雖然編程簡(jiǎn)單,控制靈活,但缺點(diǎn)是控制周期長(zhǎng),速度慢。單片機(jī)的速度極大的限制了A/D高速性能的利用,而FPGA的時(shí)鐘頻率可高達(dá)100MHz以上。本設(shè)計(jì)以高集成度的芯片為核心,進(jìn)行時(shí)序控制、碼制變換。具有開發(fā)周期短,靈活性強(qiáng),通用能力好,易于開發(fā)、擴(kuò)展等優(yōu)點(diǎn)。既降低了設(shè)計(jì)難度,又加快了產(chǎn)品的開發(fā)周期。

1 系統(tǒng)設(shè)計(jì)原理

本設(shè)計(jì)采用FPGA芯片EP1C6T144C8來(lái)對(duì)ADC0809進(jìn)行采樣控制,并對(duì)數(shù)據(jù)進(jìn)行處理,可將數(shù)據(jù)用LED顯示出來(lái)。如圖1所示,芯片EP1C6T144C8在對(duì)ADC0809控制時(shí)產(chǎn)生START轉(zhuǎn)換啟動(dòng)信號(hào),ALE地址鎖存允許信號(hào)(高電平有效),在工作過程中,F(xiàn)PGA不斷讀入轉(zhuǎn)換結(jié)束信號(hào)EOC判斷AD0809轉(zhuǎn)換是否結(jié)束。當(dāng)EOC發(fā)出一個(gè)正脈沖時(shí),表示A/D轉(zhuǎn)換結(jié)束,此時(shí)開啟輸出允許OE,打開ADC0809的三態(tài)緩沖鎖存器將轉(zhuǎn)換好的8位二進(jìn)制數(shù)輸入FPGA芯片中。通過查找表的方法將8位二進(jìn)制數(shù)轉(zhuǎn)換成12位BCD碼。

                      


                                        圖1   控制原理圖

2  FPGA模塊設(shè)計(jì)與仿真

    本設(shè)計(jì)采用QuartusⅡ軟件平臺(tái)下的VHDL硬件描述語(yǔ)言進(jìn)行軟件編程。主要分為兩個(gè)部分:ADC0809的工作狀態(tài)模塊和二進(jìn)制到BCD碼轉(zhuǎn)換模塊。

2.1    ADC0809工作狀態(tài)模塊

采用雙進(jìn)程有限狀態(tài)機(jī)的方法來(lái)實(shí)現(xiàn)。設(shè)計(jì)st0~st7八個(gè)工作狀態(tài)。st0:初始化。st1:產(chǎn)生ALE的上升沿將模擬通道IN1的地址鎖存。st2:產(chǎn)生START信號(hào)上升沿,啟動(dòng)A/D轉(zhuǎn)換。st3:START信號(hào)延時(shí)一個(gè)脈沖。st4:A/D轉(zhuǎn)換中,等待。st5:轉(zhuǎn)換結(jié)束,開啟輸出允許信號(hào)OE。st6:OE延時(shí)一個(gè)脈沖,并開啟數(shù)據(jù)鎖存信號(hào)LOCK。st7:延時(shí)一個(gè)時(shí)鐘,輸出數(shù)據(jù)。狀態(tài)轉(zhuǎn)換方式見下面程序段。

case current_state is

    when st0=> ale<='0';start<='0';oe<='0';lock<='0'; next_state<=st1;

                   ---初始態(tài)ST0向下一狀態(tài)ST1轉(zhuǎn)換,0809采樣控制信號(hào)初始化;

    when st1=> ale<='1';start<='0';oe<='0';lock<='0'; next_state<=st2;

                   ---由ALE的上升沿將通道地址'001'鎖入0809的地址寄存器;

    when st2=> ale<='1';start<='1';oe<='0';lock<='0'; next_state<=st3;  ---啟動(dòng)采樣信號(hào);

    when st3=> ale<='0';start<='1';oe<='0';lock<='0';

      if(eoc='0')  then  next_state<=st4; ---轉(zhuǎn)換即將結(jié)束,轉(zhuǎn)換至下一狀態(tài);

        else next_state<=st3;   ---轉(zhuǎn)換未結(jié)束,繼續(xù)在狀態(tài)ST3中等待;

      end if;

    when st4=> ale<='0';start<='0';oe<='0';lock<='0';

      if(eoc='1')  then  next_state<=st5; ---EOC由0恢復(fù)1,轉(zhuǎn)換結(jié)束;

        else next_state<=st4; ---轉(zhuǎn)換未結(jié)束,等待;

      end if;

    when st5=> ale<='0';start<='0';oe<='1';lock<='0'; next_state<=st6;  --開啟輸出允許OE;

    when st6=> ale<='0';start<='0';oe<='1';lock<='1'; next_state<=st7;  --開啟數(shù)據(jù)鎖存LOCK;

    when st7=> ale<='0';start<='0';oe<='0';lock<='1'; next_state<=st0;

    when others=>next_state<=st0;  ---其它狀態(tài)返回ST0;

  end case;

2.2  二進(jìn)制到BCD碼轉(zhuǎn)換模塊

本設(shè)計(jì)模擬量輸入范圍為0~+5V,用8位二進(jìn)制數(shù)表示其精度為0.02。將ADC0809輸出的二進(jìn)制數(shù)劃分為高四位與低四位,通過查表分別算出電壓值并寫出對(duì)應(yīng)的12位BCD碼, 將得到的高四位電壓與低四位電壓值用12位BCD碼加法,把12位BCD碼分為三組,每組四位,相加從最低4位開始,且每4位相加結(jié)果超過10時(shí)需作進(jìn)位動(dòng)作,最終得到BCD碼分別對(duì)應(yīng)高、中、低三位輸出顯示。

2.3  A/D采樣控制與數(shù)據(jù)轉(zhuǎn)換的部分程序及仿真

采用QuartusⅡ軟件平臺(tái)下的VHDL語(yǔ)言編程實(shí)現(xiàn)。

library ieee;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_1164.all;

entity ad_hgq is

  port( d :in std_logic_vector(7 downto 0);---AD輸入;

        clk,eoc :in std_logic; ---eoc:轉(zhuǎn)換結(jié)束狀態(tài)信號(hào); oe : buffer std_logic;

        addr :out std_logic_vector(2 downto 0); ---oe:輸出允許,addr:選通地址;

        ale,start:out std_logic; ---ale:允許地址鎖存;

        q :buffer std_logic_vector(7 downto 0)); ---轉(zhuǎn)換數(shù)據(jù)輸出顯示;       

end ad_hgq;

architecture behaviour of ad_hgq is

  type state is (st0,st1,st2,st3,st4,st5,st6,st7); ---以枚舉類型定義各狀態(tài)子類型;

  signal current_state,next_state :state:=st0;   signal regl :std_logic_vector(7 downto 0);

  signal addrx :std_logic_vector(2 downto 0):="000";

  signal lock :std_logic;           ---轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時(shí)鐘信號(hào);

  signal hex :std_logic_vector(7 downto 0);

begin

process(clk)

  begin

    if(clk'event and clk='1')  then  current_state<=next_state;

    end if;     ---在時(shí)鐘上升沿,轉(zhuǎn)換至下一狀態(tài);

end process ; ---由信號(hào)current_state將當(dāng)前狀態(tài)帶出進(jìn)程,進(jìn)入下一進(jìn)程;

process(lock)

  begin

    if lock='1'and lock'event  then  regl<=d;

    end if; --在lock上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖存入8位鎖存器中;

end process;

process(clk)

  begin

    if clk'event and clk='1'  then

      if current_state=st0  then  addrx<=addrx+1; ---進(jìn)入下一地址通道;

      end if;

    end if;

    addr<=addrx;

end process;

q<=regl; ---數(shù)據(jù)輸出;

process(clk)

  begin

    if( clk'event and clk ='1')  then  if oe='1'  then  hex<=q; ---將數(shù)據(jù)送給hex;

      end if;

    end if;

end process;  

end behaviour;

圖2顯示的是A/D采樣控制并將所采的數(shù)據(jù)轉(zhuǎn)換為BCD碼的仿真結(jié)果。圖中Value為所采的電壓結(jié)果值。


圖2   采樣控制模塊仿真

3  結(jié)束語(yǔ)

采用EP1C6T144C8芯片實(shí)現(xiàn)對(duì)A/D轉(zhuǎn)換器的采樣控制,充分利用了FPGA的高速度和高可靠性,從而解決了傳統(tǒng)中用單片機(jī)控制時(shí)速度慢的問題。FPGA具有靈活的編程方式,簡(jiǎn)單方便的編程環(huán)境,易學(xué)易用,大大提高工作效率,縮短研制周期。本設(shè)計(jì)可用于高速應(yīng)用領(lǐng)域和實(shí)時(shí)監(jiān)控方面。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉