在檢測技術(shù)與應(yīng)用、DCS的I/O板卡以及信號傳輸?shù)仍S多工業(yè)生產(chǎn)過程中都需要將數(shù)據(jù)傳輸?shù)接?jì)算機(jī),這一過程必須先進(jìn)行A/D轉(zhuǎn)換。目前A/D轉(zhuǎn)換芯片種類非常多,有的價(jià)格高且設(shè)計(jì)復(fù)雜,有的轉(zhuǎn)換精度低滿足不了要求。為此,挑選了高精度16位A/D轉(zhuǎn)換芯片AD7705,該芯片轉(zhuǎn)換精度高、價(jià)格低,滿足多種應(yīng)用。本文設(shè)計(jì)了以單片機(jī)ATmega16為控制核心,以AD7705為前端采集芯片,以CPLD芯片EPM3064為邏輯開關(guān)陣列的32通道模擬量采集系統(tǒng)。給出了相應(yīng)的硬件電路、驅(qū)動程序以及應(yīng)用軟件,指出了AD7705在實(shí)際應(yīng)用中應(yīng)當(dāng)注意的一些問題。
1.A/D轉(zhuǎn)換芯片AD7705
AD7705具有兩個(gè)模擬輸入通道,利用Σ-Δ轉(zhuǎn)換技術(shù)實(shí)現(xiàn)了16位無丟失代碼性能。模擬調(diào)制器具有增益可編程功能,片內(nèi)設(shè)有數(shù)字濾波器、處理調(diào)制器的輸出信號,通過片內(nèi)控制器可調(diào)節(jié)濾波器的截止點(diǎn)和輸出更新速率。是用于智能系統(tǒng)、微控制器系統(tǒng)和DSP系統(tǒng)的理想產(chǎn)品,其串行接口可配置為3線方式。增益值、信號極性以及更新速率的選擇都可通過串行接口由軟件來設(shè)置。該器件還包括自校準(zhǔn)和系統(tǒng)校準(zhǔn)功能,以消除器件本身或系統(tǒng)的增益和偏移誤差。
ATmega16ATmega16是Atmel公司生產(chǎn)的8位嵌入式單片機(jī),它是基于增強(qiáng)的AVRRISC結(jié)構(gòu)的低功耗8位CMOS微控制器。特點(diǎn)為:16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力,即RWW),512字節(jié)EEPROM,1K字SRAM,32個(gè)通用I/O口線,32個(gè)通用工作寄存器,用于邊界掃描的JTAG接口,支持片內(nèi)調(diào)試與編程,3個(gè)具有比較模式的靈活的定時(shí)器/計(jì)數(shù)器(T/C),片內(nèi)/外中斷,1個(gè)可編程串行USART,1個(gè)SPI串行端口等,硬件資源非常豐富。
3.采集系統(tǒng)的設(shè)計(jì)
采集系統(tǒng)的硬件構(gòu)成在功能上主要包括線性電源電路、AD7705外圍電路、ATmega16外圍電路和通道選擇電路。
3.1線性電源電路
本電路(圖1)電壓為+5V和+3.3V。使用電源芯片78L05、Z33等,D1、D2為5V穩(wěn)壓管,D8、D9為3.3V穩(wěn)壓管。C14、C17用于濾除高頻雜波,C15、C16用于保證輸出電壓平坦,外部供電為+12V。
圖1 線性電源電路
3.2AD7705外圍電路
AD7705的外圍電路如圖2所示。時(shí)鐘頻率設(shè)計(jì)為2.4576MHz,晶振Y1兩端需各接一20pF電容到地以保證時(shí)鐘頻率的精準(zhǔn)。電源電壓VDD為+5V。AN1+與AN1-,AN2+與AN2-分別接模擬輸入信號。芯片REF192為AD公司生產(chǎn)的精密基準(zhǔn)電壓源,為AD7705提供2.5V基準(zhǔn)電壓,其輸出引腳6到地之間需并接0.1μF和10μF的電容以保證其輸出電壓平坦。
圖2 AD7705外圍電路原理圖
AD7705與單片機(jī)Atmega16接口電路為片選端CS—PD4、復(fù)位端RESET—PD5、邏輯輸出端DRRY—PB3、串行數(shù)據(jù)輸入端DIN—PB5、串行數(shù)據(jù)輸出端DOUT—PB6和串行時(shí)鐘SCLK—PB7。
3.3ATmega16外圍電路
ATmega16(圖3)的供電電壓VCC為+5V,時(shí)鐘頻率8MHz。PB5為串行外設(shè)接口SPI的主機(jī)輸出端,PB6為主機(jī)輸入端,PB7為SPI時(shí)鐘。PB3、PD4、PD5用作普通的數(shù)字接口。AVCC為模擬電源,需經(jīng)LC網(wǎng)絡(luò)接至數(shù)字電源VCC,L1為10μH,C11為100nF,LC網(wǎng)絡(luò)用于抑制噪聲、提高抗干擾能力。該電路控制AD7705以完成數(shù)據(jù)的采集,主要是利用其SPI接口對AD7705進(jìn)行各種初始配置,控制A/D轉(zhuǎn)換并讀取轉(zhuǎn)換結(jié)果。
圖3 ATmega16外圍電路原理圖
3.4通道選擇電路
該電路在ATmega16的程序控制下工作,AT-mega16的控制信號通過PA4~PA0以完成32個(gè)通道模擬的模擬量采集。以高度集成CPLD芯片EPM3064為解碼電路,制作一個(gè)5/32解碼器,用VHDL語言編寫而成,其供電電壓3.3V,輸入信號PA4~PA0和PD7,輸出信號為TD0~TD31。EPM3064是基于EEPROM的CMOS工藝CPLD,其有64個(gè)宏單元,100管腳TQFP封裝有66個(gè)用戶I/O管腳,可滿足許多應(yīng)用需要。
PD7作為5/32解碼器的使能信號,用于選擇采集通道0~31。DS2Y-S為信號繼電器,其引腳8、9接AD7705模擬信號1的AN1+與AN1-,引腳4、13接通道0的模擬輸入信號AI0+與AI0-。其導(dǎo)通斷開通過PNP三極管Q1驅(qū)動,控制信號為TD0,二極管D1起續(xù)流作用,保護(hù)電路正常工作同時(shí)具有抑制尖峰干擾作用。通道1~31的選擇電路類似,同理設(shè)計(jì)模擬信號輸入AI1~AI31的選擇電路。PD7作為使能信號,低電平有效,總共需要32片信號繼電器,本質(zhì)上通道選擇電路(圖4)是由CPLD芯片EPM3064和信號繼電器構(gòu)建的邏輯陣列開關(guān)。
圖4 通道選擇電路
4.軟件設(shè)計(jì)
軟件設(shè)計(jì)包括3個(gè)子模塊:SPI初始化模塊、AD7705驅(qū)動模塊、定時(shí)器模塊。工作過程:首先通過ATmega16的SPI接口驅(qū)動AD7705,完成AD7705通道設(shè)置、時(shí)鐘設(shè)置、更新速率以及校準(zhǔn)模式等,然后啟動ATmega16的定時(shí)器,在定時(shí)器中斷函數(shù)中查詢AD7705的狀態(tài),如轉(zhuǎn)換完成則讀取轉(zhuǎn)換結(jié)果,否則繼續(xù)等待直到轉(zhuǎn)換完成,如此不斷讀出所需的轉(zhuǎn)換結(jié)果。程序流程如圖5所示。
圖5 程序流程框圖
4.1SPI初始化模塊
對ATmega16的SPI接口進(jìn)行配置:
void spi_init(void)
{
DDRB|=(1《
DDRB&=~(1《
PORTB|=(1《
SPCR=(1《
}
4.2AD7705驅(qū)動模塊
該模塊程序完成對AD7705的配置任務(wù),需要注意的是讀寫寄存器之前必須先選擇要操作的寄存器。
向AD7705寫入1字節(jié)函數(shù),入口參數(shù)data為需寫入的字節(jié)數(shù)據(jù):
voidwr_7705(unsignedchardata)
{
SPDR=data;//啟動數(shù)據(jù)傳輸
while(!(SPSR&(1《《SPIF)))//等待傳輸
結(jié)束;
}
讀出AD7705數(shù)據(jù)函數(shù),返回值為讀出的2字節(jié)數(shù)據(jù):
unsignedintrd_7705(void)
{
unsignedinttemp;//定義臨時(shí)變量
wr_7705(0x38);//選擇讀數(shù)據(jù)寄存器,1通道
SPDR=1;//啟動數(shù)據(jù)傳輸
while(!(SPSR&(1《《SPIF)))//等待傳輸結(jié)
束
{
;
}
temp=SPDR《《8;//讀取高字節(jié)
SPDR=1;//啟動數(shù)據(jù)傳輸
while(!(SPSR&(1《《SPIF)))//等待傳輸結(jié)束
{
;
}
temp|=SPDR;//讀取低字節(jié)
return(temp);
}
AD7705初始化函數(shù):
voidinit_7705(void)
{
wr_7705(0x20);//選擇時(shí)鐘寄存器,下一操作是寫
wr_7705(0x00);//20Hz的更新速率
wr_7705(0x10);//選擇設(shè)置寄存器,下一操作是寫
wr_7705(0x44);//自校準(zhǔn)模式,增益為1,單極性
}
4.3定時(shí)器模塊
利用定時(shí)器1按一定的時(shí)間間隔讀取AD7705的轉(zhuǎn)換結(jié)果。讀取數(shù)據(jù)之前必須確定數(shù)據(jù)寄存器的狀態(tài),有兩種不同的方式:第1種是查詢DRDY引腳,如果處于低電平,表示已經(jīng)轉(zhuǎn)換完成,可以讀取;第2種是查詢通信寄存器中的DRDY位,如果是0表示可以讀取數(shù)據(jù):
定時(shí)器1初始化函數(shù):
定時(shí)器1溢出中斷函數(shù):
結(jié)語
本文總結(jié)了基于AD7705的32通道模擬量采集系統(tǒng)設(shè)計(jì),經(jīng)過試驗(yàn)證明,該采集系統(tǒng)不僅減少儀表設(shè)計(jì)調(diào)試時(shí)間,而且結(jié)合測量儀器可以構(gòu)建靈活的測量系統(tǒng),節(jié)約儀器購置成本,提高工作效率。
責(zé)任編輯人:CC
-
模擬量
+關(guān)注
關(guān)注
5文章
491瀏覽量
25559 -
AD7705
+關(guān)注
關(guān)注
2文章
39瀏覽量
20533
發(fā)布評論請先 登錄
相關(guān)推薦
評論