亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的多通道串行A/D轉(zhuǎn)換器的控制器設計

        2008-04-12 00:00:00周朝陽許建平徐國卿
        現(xiàn)代電子技術(shù) 2008年20期

        摘 要:在低成本、多通道數(shù)據(jù)采集系統(tǒng)中,串行接口A/D轉(zhuǎn)換器得到了廣泛的應用,但是通道的輪換以及串行數(shù)據(jù)的傳輸會降低數(shù)據(jù)采集的速度和CPU的工作效率。以ADS7844為例介紹基于FPGA和VHDL語言的A/D控制器設計方法,并通過計算機時序仿真結(jié)果驗證了該控制器的正確性。該控制器具有輸入通道自動轉(zhuǎn)換、數(shù)據(jù)并行輸出等特點,提高了采集速度和CPU的工作效率。

        關鍵詞:串行接口;A/D轉(zhuǎn)換;FPGA;ADS7844

        中圖分類號:TP331文獻標識碼:B文章編號:1004373X(2008)2005504

        Design of Multi-channel Serial A/D Converter Controller Based on FPGA

        ZHOU Zhaoyang1,XU Jianping1,XU Guoqing2

        (1.School of Electrical Engineering,Southwest Jiaotong University,Chengdu,610031,China;

        2.Shenzhen Institute of Advanced Technology,Chinese Academy of Sciences,Shenzhen,518067,China)

        Abstract:Serial interface A/D converters are used extensively in low-cost multi-channel data collection system.But channel turning and serial transmission can reduce the speed of data collection and the work efficiency of CPU.In this paper,as a sample,a design method of ADS7844 A/D converter controller is described which based on FPGA and VHDL language.Then the simulation with computer is carried through and the result is verified.This A/D converter controller which can change channel automatically and output data in parallel speeds up the data collection and increases the work efficiency of CPU.

        Keywords:serial interface;A/D converter;FPGA;ADS7844

        1 引 言

        隨著現(xiàn)代電子技術(shù)的應用和發(fā)展,越來越多的電子應用由模擬系統(tǒng)向數(shù)字系統(tǒng)轉(zhuǎn)變,而A/D轉(zhuǎn)換器為模擬系統(tǒng)和數(shù)字系統(tǒng)的界面,承擔著模擬信號轉(zhuǎn)變?yōu)閿?shù)字信號的任務,在一些多路信號采集系統(tǒng)和實時數(shù)字信號處理系統(tǒng)中,A/D轉(zhuǎn)換的多路擴展、高精度、低成本、實時性顯得越來越重要。在一般信號采集系統(tǒng)中,由單片機或微控制器對高精度A/D轉(zhuǎn)換器進行控制,通常采用軟件模擬A/D轉(zhuǎn)換器時序的方法。因此增加了CPU的負擔,降低了CPU的工作效率[1],在多片A/D轉(zhuǎn)換器多通道擴展應用中,降低了信號采集的實時性。

        現(xiàn)場可編程門陣列FPGA(Field Programmable Gate Array)是20世紀80年代中期在PAL,GAL等邏輯器件的基礎上發(fā)展起來的一種可編程邏輯器件,其特點是高集成度、高速和高可靠性,設計人員可以現(xiàn)場修改器件的邏輯功能[2]。VHDL(VHSIC Hardware Description Language)是目前通用的硬件描述語言之一,可用來描述一個數(shù)字電路的輸入、輸出以及相互間的行為與功能。

        FPGA的高集成度和高速的特性,使之相對于單片機和微控制器,更適合用于對高速A/D器件的采樣控制。本文設計一種基于FPGA的高速串行輸入/輸出A/D轉(zhuǎn)換器的控制器,該控制器完成對ADS7844芯片的采樣控制,提高了采樣的實時性、減輕了主CPU的運行負擔。

        2 ADS7844功能介紹

        ADS7844是Burr_Brown公司推出的一種高性能、寬電壓、低功耗的12 b串行數(shù)模轉(zhuǎn)換器。它有8個模擬輸入端,可用軟件編程為8通道單端輸入A/D轉(zhuǎn)換器或4通道差分輸入A/D轉(zhuǎn)換器,其轉(zhuǎn)換率高達200 kHz,而線性誤差和差分誤差最大僅為±1 LSB。ADS7844在電源電壓為2.7~5 V之間均能正常工作,最大工作電流為1 mA,進入低功耗狀態(tài)后的耗電僅為3 μA。ADS7844通過6線串行接口與CPU進行通信,接口簡單方便。

        2.1 ADS7844的引腳功能

        CH0~CH7:模擬輸入端,當器件被設置為單端輸入時,這些引腳可分別與信號地COM構(gòu)成8通道單端輸入A/D轉(zhuǎn)換器;當器件被設置為差分輸入時,利用CH0-CH1,CH2-CH3,CH4-CH5,CH6-CH7可構(gòu)成4通道差分輸入A/D轉(zhuǎn)換器;

        COM:信號地;

        Vref:參考電壓輸入端,最大值為電源電壓;

        CS:片選端、低電平有效、該腳為高電平時,其他數(shù)字接口呈三態(tài);

        Dclk:外部時鐘輸入端,在時鐘作用下,CPU將控制字寫入ADS7844,并將轉(zhuǎn)換結(jié)果從中讀出;

        Din:串行數(shù)據(jù)輸入端,在片選有效時,控制字在Dclk上升沿被逐位鎖入ADS7844;

        Dout:串行數(shù)據(jù)輸出端,在片選有效時,轉(zhuǎn)換結(jié)果在Dclk的下降沿開始被逐位從ADS7844移出;

        BUSY:“忙”信號輸出端,在接收到控制字的第一位數(shù)據(jù)后變低,只有在轉(zhuǎn)換結(jié)束且片選有效時,該腳才輸出一個高脈沖;

        SHDN:電源關閉端、低電平有效。當SHDN為低電平時,ADS7844進入低功耗狀態(tài);

        Vcc,GND:分別為電源端和數(shù)字地。

        2.2 ADS7844的控制字及轉(zhuǎn)換時序

        ADS7844的控制字如表1所述。

        表1 ADS7844的控制字含義

        bit7(MSB)bit6bit5bit4bit3bit2bit1bit0(LSB)

        sA2A1A0--sgl/DIFPD1PD0

        ADS7844的控制字共有8位,其中S是起始位,控制字的起始位總為“1”。A2~A0是通道選擇位,在單端輸入時分別對應8個通道,而對于差分輸入,000~011分別對應CH0-CH1,CH2-CH3,CH4-CH5,CH6-CH7,而100~111則分別對應CH0-CH1,CH1-CH0,CH3-CH2,CH5-CH4,CH7-CH6。Bit3沒有定義。SGL/DIF是模式控制位,該位為“1”時是單端輸入模式,為“0”時是差分輸入模式。PD1和PD0是電源關閉模式控制位,若為“00”,則表示ADS7844在不進行數(shù)據(jù)轉(zhuǎn)換時自動進入電源關閉模式,若為“11”,芯片則始終處于電源開啟模式。

        ADS7844有多種轉(zhuǎn)換時序,基本時序如圖1所示。

        圖1 ADS7844的基本時序

        從圖1中可見,一個轉(zhuǎn)換周期需要24個時鐘周期,其中8個用于輸入控制字,16個用于讀取轉(zhuǎn)換結(jié)果??刂谱值乃形辉跁r鐘上升沿被鎖入芯片,轉(zhuǎn)換結(jié)果在時鐘的下降沿被逐位移出。所有移入和移出的數(shù)據(jù)都是高位在前、低位在后。需要說明的是,ADS7844是12位A/D轉(zhuǎn)換器,其轉(zhuǎn)換結(jié)果只有12位,故在移出12位結(jié)果后,還需送入4個時鐘來完成整個轉(zhuǎn)換過程,這4個多余的時鐘移出的數(shù)據(jù)為“0”,使用時不應作為轉(zhuǎn)換結(jié)果處理。

        3 ADS7844控制器的設計

        用FPGA設計的采樣控制器AD_CONTROLLER 與ADS7844的接口電路如圖2所示,基本時序如上所述。AD_CONTROLLER的輸入時鐘取12 MHz,經(jīng)內(nèi)部4分頻后輸出至ADS7844的CLK引腳。cs_all 為來自CPU的啟動信號,當其為低時AD_CONTROLLER開始工作。 addr[3..0]為對應的ADS7844的通道地址,data[15..0]為某地址所對應通道的A/D轉(zhuǎn)換結(jié)果,當某一通道轉(zhuǎn)換結(jié)束,oe信號由低電平變?yōu)楦唠娖讲⒊掷m(xù)1個周期。

        圖2 ADS7844與采樣控制器的接口示意圖

        AD_CONTROLLER主要由分頻模塊(fq),A/D轉(zhuǎn)換周期形成模塊(fq_cs);A/D轉(zhuǎn)換器片選信號模塊(cs_pulse);通道地址及控制字形成模塊(addr_1);A/D轉(zhuǎn)換數(shù)據(jù)輸出模塊(from_ad)和控制字移位輸出模塊(to_ad)組成,其結(jié)構(gòu)如圖3所示。

        取FPGA工作頻率10 MHz, 經(jīng)分頻器4分頻得2.5 MHz作為A/D轉(zhuǎn)換器的時鐘。分頻器通常用計數(shù)器實現(xiàn),各VHDL教材上都已詳細講述,這里不再贅述。信號cs每隔28個clk1時鐘周期發(fā)出1個clk1周期的高電平脈沖并轉(zhuǎn)換1次模擬輸入通道,28個clk1周期中,A/D轉(zhuǎn)換器片選cs_ad信號占用4個周期,控制字的串行輸出(di)占用8個周期,ADS7844芯片由Din引腳接收到控制字后,在下一個周期的下降沿開始將A/D轉(zhuǎn)換后的數(shù)據(jù)串行輸出至Dout引腳,由from_ad模塊進行串/并轉(zhuǎn)換并輸出(data[15..0]),此串并轉(zhuǎn)換需16個周期。信號stld的下降沿將由狀態(tài)機產(chǎn)生的控制字(control_word[7..0])鎖存入to_ad模塊內(nèi)部的并/串移位寄存器(74165),經(jīng)過8個周期后控制字由di 引腳輸入ADS7844芯片。 cs脈沖的產(chǎn)生由計數(shù)器實現(xiàn),這里不做詳細介紹。cs_ad片選信號通過cs_ad模塊將cs信號展寬2個周期而得到,其電路結(jié)構(gòu)如下:

        圖3 AD_CONTROLLER 結(jié)構(gòu)圖

        圖4 cs_ad信號產(chǎn)生電路

        電路由1個計數(shù)器(cs_wide)、前沿D觸發(fā)器(inst6)和后沿D觸發(fā)器(inst3)組成。當cs信號上升沿到時,inst6觸發(fā),cs_ad置高電平。2個周期后,inst3由下降沿觸發(fā)輸出高電平,反相后將inst6和計數(shù)器cs_wide清零,同時cs_ad輸出低電平。由此看出,cs_ad的信號正是cs信號經(jīng)過2個周期展寬后得到。

        通道地址及控制字形成模塊(addr_1)可以實現(xiàn)所需的各種輸入模式,并產(chǎn)生通道地址和控制字[3],以單端輸入模式為例,VHDL代碼如下:

        address:process(current_state)

        begin

        case current_state is

        when s0=>control_word<=\"00000000\";

        addr<=\"0000\";

        next_state<=s1;

        when s1=>control_word<=\"10000100\";

        addr<=\"0001\";

        next_state<=s2;

        when s2=>control_word<=\"11000100\";

        addr<=\"0010\";

        next_state<=s3;

        when s3=>control_word<=\"10010100\";

        addr<=\"0011\";

        next_state<=s4;

        when s4=>control_word<=\"11010100\";

        addr<=\"0100\";

        next_state<=s5;

        when s5=>control_word<=\"10100100\";

        addr<=\"0101\";

        next_state<=s6;

        when s6=>control_word<=\"11100100\";

        addr<=\"0110\";

        next_state<=s7;

        when s7=>control_word<=\"10110100\";

        addr<=\"0111\";

        next_state<=s8;

        when s8=>control_word<=\"11110100\";

        addr<=\"1000\";

        next_state<=s0;

        when others=>control_word<=\"00000000\";

        next_state<=s0;

        end case;

        end process address;

        process(cs_all,cs)

        begin

        if cs_all='1' then current_state<=s0;

        elsif cs'event and cs='1' then

        current_state<=next_state;

        end if;

        end process;

        這里用雙進程的有限狀態(tài)機(FSM)[4]來設計通道地址產(chǎn)生器。當addr<=\"0000\"時表示沒有通道被選擇,ADS7844沒有工作;當addr<=\"0000\"時表示通道1被選擇,依次類推。

        4 計算機仿真分析

        用Quartus Ⅱ 6.0進行分析綜合、布局,共占用Altera cyclone FPGA 59個LE(logic elements),波形仿真如圖5所示。

        圖5 仿真波形圖

        圖5中clk的周期為100 ns,clk1為系統(tǒng)時鐘4分頻后的工作時鐘,當cs_all為低電平時,AD_CONTROLLER開始工作。由狀態(tài)機產(chǎn)生的控制字(10000100)在stld的下降沿被鎖存入移位寄存器,當cs_ad由高變低時,控制字被逐位移出至di端口。在此,假設當ADS7844接收到控制字并由ad_do端口逐位移出1通道轉(zhuǎn)換后的數(shù)據(jù)1000000000010000,經(jīng)過16個周期后oe由低變高,oe的下降沿可以將移入寄存器的數(shù)據(jù)鎖存。由圖5可見,仿真波形與ADS7844控制波形一致,達到了設計的目的。

        5 結(jié) 語

        本試驗用于混合動力汽車電池管理系統(tǒng)電池電壓、電流信息采集部分。電池管理系統(tǒng)通常采用雙單片機的結(jié)構(gòu),一個單片機完成電池信息采集功能,另外一個單片機完成電池SoC(State of Charge) 計算及人機交互功能。這種系統(tǒng)結(jié)構(gòu)復雜,可靠性降低。為解決這一問題,該A/D控制器被封裝成基于Avalon總線的自定義IP核,應用于Altera 公司FPGA所支持的NIOS Ⅱ嵌入式系統(tǒng)中,NIOS Ⅱ軟核CPU僅在A/D控制器引起的中斷服務程序中讀取采集到的數(shù)據(jù),這樣大大提高了采集速度和CPU的效率,使得有更多的CPU資源應用于SoC計算和人機交互。這種基于SoPC(System on Programmable Chip)的電池管理系統(tǒng)結(jié)構(gòu)緊湊、功能齊全、可靠性大大提高。

        FPGA 用來設計控制電路有很多優(yōu)點。FPGA不僅可進行任意次編程,而且用戶可以借助開發(fā)工具快速編程、編譯、優(yōu)化、仿真直到最后芯片制作。高集成性使得用戶可以利用硬件描述語言及開發(fā)工具在單片F(xiàn)PGA芯片上實現(xiàn)各種復雜的邏輯電路和片上系統(tǒng),提高了系統(tǒng)性能、減小了電路面積、降低了成本。高速性有效地解決模擬控制的精度與數(shù)字控制的速度之間的矛盾。隨著FPGA性能的提高和成本的降低,以FPGA為基礎的數(shù)字電路和SoPC(System on Programmable Chip)代表了嵌入式系統(tǒng)的發(fā)展方向[5],F(xiàn)PGA將應用得越來越廣泛。

        參考文獻

        [1]李漢舟,楊孟興.CPLD在串行A/D和ISA總線接口中的應用[J].戰(zhàn)術(shù)導彈控制技術(shù),2005(1):59-61.

        [2]吳繼華,王誠.Altera FPGA/CPLD設計(基礎篇、高級篇)[M].北京:人民郵電出版社,2005.

        [3]曹偉軍,聶楊.ADS8344和FPGA的高精度數(shù)據(jù)采集前端[J].單片機與嵌入式系統(tǒng)應用,2007(2):45-47.

        [4]潘松,王國棟.VHDL實用教程[M].成都:電子科技大學出版社,2001.

        [5]李蘭英.NIOS Ⅱ嵌入式軟核SOPC設計原理及應用[M].北京:北京航空航天大學出版社,2006.

        [6]傅曉程,胡東海.CPLD在ADS7812與CPU之間的接口應用[J].寧波職業(yè)技術(shù)學院學報,2006(2):56-57.

        作者簡介 周朝陽。研究方向為電動汽車電池管理系統(tǒng)、開狀電源。

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文

        青青草久热手机在线视频观看| 国产熟妇高潮呻吟喷水| 亚洲色精品三区二区一区| 国产高清在线精品一区二区三区 | 强开小婷嫩苞又嫩又紧视频韩国| 色偷偷av一区二区三区| 久久久av精品波多野结衣| 日本午夜精品理论片A级APP发布| 亚洲av乱码一区二区三区女同| 青青草视频在线观看网| 国产ww久久久久久久久久| 这里只有久久精品| 熟女丝袜美腿亚洲一区二区三区 | 日本理论片一区二区三区| 精品国产乱来一区二区三区| 久久精品国产亚洲av影院毛片| 摸进她的内裤里疯狂揉她动图视频| 无码中文字幕色专区| 国产高清亚洲精品视频| 日本97色视频日本熟妇视频| 无码av天天av天天爽| 亚洲av电影天堂男人的天堂| 亚洲先锋影院一区二区| 国产精品成人久久a级片| 91精品国自产拍老熟女露脸| 东京道一本热中文字幕| 99精品久久这里只有精品| 亚洲一本之道高清在线观看| 亚洲国产高清精品在线| 啪啪无码人妻丰满熟妇| 韩国日本亚洲精品视频| 在线人妻va中文字幕| 老师开裆丝袜喷水视频| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交 | 老熟女老女人国产老太| 人人人妻人人澡人人爽欧美一区| 好爽…又高潮了毛片免费看| 亚洲区1区3区4区中文字幕码| 久久久极品少妇刺激呻吟网站| 精品无码中文字幕在线| 国产精品久久这里只有精品|