<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP和CPLD技術(shù)的多路ADC系統(tǒng)的設(shè)計方案

          基于DSP和CPLD技術(shù)的多路ADC系統(tǒng)的設(shè)計方案

          作者: 時間:2012-06-19 來源:網(wǎng)絡(luò) 收藏

          引言

          本文引用地址:http://www.ex-cimer.com/article/257426.htm

          隨著現(xiàn)代電子技術(shù)的應(yīng)用和發(fā)展,數(shù)字信號處理的內(nèi)容日益復(fù)雜,而ADC是實現(xiàn)從模擬到數(shù)字轉(zhuǎn)換的一個必然過程。針對這種情況,利用數(shù)字信號處理器和可編程邏輯器件提出了的設(shè)計方法,實現(xiàn)了對動態(tài)多路模擬輸入信號的采樣傳輸以及處理,簡化了電路設(shè)計,可編程邏輯器件使得系統(tǒng)的通用性和可移植性得到良好的擴展。系統(tǒng)框圖如圖1所示。

          系統(tǒng)硬件設(shè)計

          本設(shè)計所采用的ADC器件是MAXIM公司的生產(chǎn)的低功耗16位模數(shù)轉(zhuǎn)換器(ADC)MAX1162。MAX1162采用逐次逼近型ADC結(jié)構(gòu),具有自動關(guān)斷、1.1μs快速喚醒和兼容于SPI/QSPI/MICROWIRE的高速接口,采用+5V單模擬電源,并且具有獨立的數(shù)字電源引腳,允許芯片直接和+2.7~+5.25V的數(shù)字邏輯接口。REF引腳接外部參考電壓,用于設(shè)定模擬輸入電壓范圍,與模擬地之間連接一個4.7μF的電解電容;AVDD引腳是+5V電源供應(yīng)輸入端,與模擬地之間接一個0.1μF的電容;AGND是模擬地;CS是片選輸入,低有效。當為高時,系統(tǒng)處于斷電模式,由高變低時,激活系統(tǒng)到正常運行模式,同時初始化一次轉(zhuǎn)換。本系統(tǒng)選擇作為AD的使能信號;SCLK是串行時鐘輸入,驅(qū)動模數(shù)轉(zhuǎn)換進程;DOUT是串行數(shù)據(jù)輸出,數(shù)據(jù)狀態(tài)在SCLK的下降沿改變;DGND是數(shù)字地;DVDD是數(shù)字電壓供應(yīng),與數(shù)字地之間接一個0.1μF的電容;AIN是模擬信號輸入端。

          該ADC系統(tǒng)的中央控制單元采用TI(德州儀器)公司的浮點數(shù)字信號處理器TMS320VC33-150,TMS320VC33的地址總線為24位,程序?qū)ぶ贩秶蛇_16M,數(shù)據(jù)總線為32位,內(nèi)部具有34K×32bit的SRAM,可根據(jù)需要映射在程序或數(shù)據(jù)空間,擁有一路串行口,可以構(gòu)成傳輸8、16、24、32位的數(shù)據(jù),其傳輸模式可以設(shè)置為突發(fā)模式或者是連續(xù)模式。兩個32位的通用定時器,能夠用來按照規(guī)定的時間間隔與芯片內(nèi)部通信或者是和外部通信。

          本系統(tǒng)考慮到主要應(yīng)用在ADC中,所以就直接采用TMS320VC33的數(shù)據(jù)總線和地址總線,沒有再附加額外的電路,使得ADC的采樣速度和轉(zhuǎn)換精度得到良好的保證。同時還利用了INT2和XF0引腳,作為接收數(shù)據(jù)的中斷信號和ADC的使能信號。INT2是外部中斷引腳,由外部的數(shù)據(jù)輸入觸發(fā)中斷;XF0即外部標志輸出引腳,受軟件控制,可以用來向外部器件發(fā)送信號,該引腳的狀態(tài)由I/O標志寄存器決定,IOF=0X22,即置XF0為通用目的輸出引腳,同時該引腳輸出0;若IOF=0X26,則置XF0為通用目的輸出引腳,同時該引腳輸出為1。本系統(tǒng)利用軟件指令對XF0進行置高置低,控制ADC的啟動轉(zhuǎn)換和停止。

          EMP7512AE基于EEPROM技術(shù),采用多電壓I/O接口技術(shù),系統(tǒng)內(nèi)核供應(yīng)電壓為3.3V,而I/0引腳與2.5V、3.3V、5.0V邏輯電平相互兼容。EPM7512AE有10 000個可用門、512個宏單元、32個邏輯陣列塊和212個用戶可用I/0引腳。在系統(tǒng)中的主要功能是:給ADC轉(zhuǎn)換提供時鐘信號,控制ADC轉(zhuǎn)換的使能和復(fù)位,由于采用的ADC芯片是串行輸出的,還實現(xiàn)對串行數(shù)據(jù)的輸入轉(zhuǎn)為并行數(shù)據(jù)的輸出,然后直接和TMS320VC33的數(shù)據(jù)總線相連接。同時產(chǎn)生脈沖信號,在ADC轉(zhuǎn)換完成后,數(shù)據(jù)暫存在CPLD中,該脈沖向CPU申請中斷,提示有數(shù)據(jù)需要接收。另外,CPLD的一個關(guān)鍵作用就是,實現(xiàn)路數(shù)的動態(tài)選擇,目前設(shè)計的該系統(tǒng)最多路數(shù)為8路。CPLD和及AD芯片的具體硬件連接圖如圖2所示。

          系統(tǒng)軟件設(shè)計

          在軟件設(shè)計中,通過CPLD程序?qū)DC轉(zhuǎn)換進行動態(tài)控制,選通模擬信號輸入端,對ADC進行使能,按照圖3所示的轉(zhuǎn)換時序圖完成對MAX1162的數(shù)據(jù)采樣及傳輸。

          下面給出VHDL語言的主要程序部分。

          BEGIN
          ADCS = SYNTHESIZED_WIRE_12;
          ADA = SYNTHESIZED_WIRE_2;
          GDFX_TEMP_SIGNAL_1 = (L L H H H L);
          GDFX_TEMP_SIGNAL_0 = (H L H H L);
          U1 : lpm_bustri_0----三態(tài)總線緩沖器,允許采樣的數(shù)據(jù)輸出到的數(shù)據(jù)總線上
          PORT MAP(enabledt => DRD,
          data => ADO,
          tridata => D);
          U2 : lpm_counter_1----計數(shù)器,把數(shù)據(jù)總線寬度改為3位
          PORT MAP(sload => SYNTHESIZED_WIRE_0,
          clock => SYNTHESIZED_WIRE_1,
          aload => XFA0,
          data => CMD(2 downto 0),
          q => SYNTHESIZED_WIRE_2);
          U3 : lpm_dff_1---D觸發(fā)器,數(shù)據(jù)總線寬度為8位,接收來自于DSP的數(shù)據(jù)
          PORT MAP(clock => CMDCK,
          data => D(7 downto 0),
          q => CMD);
          U4 : lpm_compare_1---比較器,比較CMD(5..3)和CMD(2..0)的值,即輪詢采樣通道
          PORT MAP(dataa => CMD(5 downto 3),
          datab => SYNTHESIZED_WIRE_2,
          aeb => SYNTHESIZED_WIRE_0);
          SYNTHESIZED_WIRE_1 = NOT(AQ(4));
          NRW= NOT RW;
          CMDCK= NOT( NOT PAGE3 AND(NOT RW)AND A6 AND A5 AND A4 AND (NOT A3));
          ----通道控制地址編碼
          DRD = NOT PAGE3 AND RW AND A6 AND A5 AND A4 AND A3;----采樣地址編碼
          CLKA = NOT(CLK);
          U5 : lpm_counter_2---產(chǎn)生計數(shù)脈沖
          PORT MAP(sload => SYNTHESIZED_WIRE_3,
          clock => HFP(5),
          data => GDFX_TEMP_SIGNAL_0,
          eq => SQ,
          q => AQ);
          U5 : lpm_dff_5---緩沖器
          PORT MAP(clock => SYNTHESIZED_WIRE_12,
          data => SYNTHESIZED_WIRE_5,
          q => ADO);
          SYNTHESIZED_WIRE_12 = SQ(12) OR 0 OR XFA0;
          SYNTHESIZED_WIRE_3 = XFA0 OR SQ(14);
          ADEN = NOT(XFA0);
          SYNTHESIZED_WIRE_10 = HFP(5) AND HFP(4) AND HFP(0) AND SYNTHESIZED_WIRE_6 AND SYNTHESIZED_WIRE_7 AND SYNTHESIZED_WIRE_8;
          SYNTHESIZED_WIRE_7 = NOT(HFP(2));
          SYNTHESIZED_WIRE_6 = NOT(HFP(3));
          INTA2 = XFA0 OR SYNTHESIZED_WIRE_9;
          U6 : lpm_shiftreg_1----串行數(shù)據(jù)輸入轉(zhuǎn)為并行數(shù)據(jù)輸出
          PORT MAP(shiftin => ADOUT,
          clock => HFP(5),
          q => SYNTHESIZED_WIRE_5);
          U7 : lpm_counter_3---產(chǎn)生時鐘信號
          PORT MAP(sload => SYNTHESIZED_WIRE_10,
          clock => H1CK,
          data => GDFX_TEMP_SIGNAL_1,
          q => HFP);
          SYNTHESIZED_WIRE_8 = NOT(HFP(1));
          ADSCK = NOT(HFP(5));
          SYNTHESIZED_WIRE_9 = NOT(SYNTHESIZED_WIRE_12);
          H = '1';
          L = '0';
          END;

          把該VHDL程序?qū)懭氲紼PM7512AE芯片中的,對數(shù)據(jù)進行采樣編程就簡單了許多。在.CMD文件的MEMORY段中加入ADPORT :org=0x00c00070,len=9。然后通過自定義數(shù)據(jù)段把數(shù)組adport[8]映射到段ADPORT中。下面給出用C編寫的采樣主要程序。

          Main()
          {
          ……
          IOF = 0x26;/*置MAX1162數(shù)據(jù)輸出端為高阻態(tài)*/
          adport[0] = 0x28;
          /*采樣通道選擇:0通道~5通道,總共6路;若設(shè)adport[0]=0x38,則通道為:0通道~7通道,總共8路。同理可進行其他設(shè)置*/
          IE = 4;/*中斷使能*/
          IOF = 0x22;/*啟動ADC*/
          /* adport[0]對應(yīng)地址為0x00c00070,配置寄存器有6位,0、1、2位對應(yīng)起始通道,3、4、5位對應(yīng)結(jié)束通道。adport[8]對應(yīng)地址為0x00c00078,是控制寄存器*/
          ……
          }
          在中斷服務(wù)子程序接收采樣的數(shù)據(jù),程序如下。
          C_INT02()
          {
          ad[adi++] = adport[8];/*把采集的數(shù)據(jù)十六進制數(shù)據(jù)存入數(shù)組ad中*/
          If(adi>0x7ff) /*存入的數(shù)據(jù)大小為2K×16bit,根據(jù)內(nèi)存大小動態(tài)改變*/
          adi = ox7ff;
          }

          結(jié)論

          經(jīng)過實際驗證,本ADC系統(tǒng)在低成本的情況下的采樣精度達到了13位,這在16位的ADC芯片中達到很好的水平,并被應(yīng)用到高精度的工業(yè)控制中。利用TMS320VC33和EPM7512AE,靈活方便地實現(xiàn)了對高精度模數(shù)轉(zhuǎn)換器MAX1162的控制和動態(tài)多通道采樣,簡化了系統(tǒng)設(shè)計的復(fù)雜性,同時使得DSP的編程處理變得非常高效簡潔。若應(yīng)用在要求更加嚴格的場面,本系統(tǒng)有待做進一步的改進,把ADC芯片更換為并行輸出,同時把CPLD芯片更換為CycloneII FPGA,DSP芯片用TMS320C6713,同時加入噪聲抑制設(shè)計,這樣整個系統(tǒng)性能將會顯著提高。在一定的條件下,和ADC模塊相類似,本系統(tǒng)可以經(jīng)過擴充,實現(xiàn)更多路的信號采集。



          關(guān)鍵詞: 多路ADC系統(tǒng) DSP CPLD

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();