中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 關(guān) 閉

        新聞中心

        EEPW首頁 > 安全與國防 > 設(shè)計應(yīng)用 > 基于AD7888的度激光器監(jiān)測系統(tǒng)的設(shè)計

        基于AD7888的度激光器監(jiān)測系統(tǒng)的設(shè)計

        作者: 時間:2008-07-16 來源:網(wǎng)絡(luò) 收藏

          在的研制中,實(shí)時監(jiān)測的工作狀態(tài)是需要重點(diǎn)關(guān)注的問題。本系統(tǒng)實(shí)現(xiàn)了溫度控制系統(tǒng)、激光管工作電流、工作電壓、激光器光功率的實(shí)時精確監(jiān)測,以及激光器工作狀態(tài)數(shù)據(jù)的存儲和數(shù)據(jù)串行上傳的功能。其中電流設(shè)定值和實(shí)際工作電流的觀測可以更好地確定激光器的工作狀態(tài)。系統(tǒng)結(jié)構(gòu)圖如圖1所示。

          

          

          圖1 系統(tǒng)結(jié)構(gòu)框圖

          本系統(tǒng)的實(shí)時監(jiān)測是利用AD模數(shù)轉(zhuǎn)化器實(shí)現(xiàn)的。對于AD芯片的選擇,需要綜合設(shè)計諸項(xiàng)因素,系統(tǒng)技術(shù)指標(biāo)、成本、功耗、安裝等,最主要的依據(jù)還是速度、精度以及需要的通路。由于系統(tǒng)采樣的數(shù)據(jù)是緩慢變化的信號,所以速度的要求不高,主要是精度的要求和多通路的要求,所以選擇了美國模擬器件AD公司推出的一款8路單端模擬輸入的12位模數(shù)轉(zhuǎn)換器AD7888,VREF(+)為+5V時,其精度能達(dá)到1/212×5V=0.00122V,完全滿足系統(tǒng)設(shè)計的需要。LCD使用OCM4×16,4行16字符的液晶顯示模塊,使用兩個按鍵控制不同監(jiān)測數(shù)據(jù)之間的切換。數(shù)據(jù)存儲器使用的是AT28C256,容量為256MB,在EEPROM中將存儲器分為8個區(qū)域,按照實(shí)時時鐘的節(jié)拍存儲上傳給PC的。在PC端可以遠(yuǎn)程直接監(jiān)控激光器的工作狀態(tài)。與PC間的數(shù)據(jù)通信采用的是串行方式,從MCU的TX和RX端CMOS電平到PC的標(biāo)準(zhǔn)RS232電平的轉(zhuǎn)換器件選用Maxim公司的MAX232。由于MCU的外圍器件比較多,以及考慮了以后的擴(kuò)展,這里使用了CPLD芯片進(jìn)行了器件片選的地址譯碼和液晶屏的控制信號的生成。

          AD7888的特點(diǎn)

          AD7888是美國模擬器件AD公司推出的一款高速低功耗12位模數(shù)轉(zhuǎn)換器,可以在+2.7~+5.25V單電源模式下工作,見圖2。其最大轉(zhuǎn)換速率可達(dá)到125k SPS。AD7888的輸入采樣/保持電路在500ns內(nèi)獲取一個信號,采用單端采樣模式,包含8個單端模擬輸入,從AIN1到AIN8,模擬輸入電壓從0~VREF。AD7888內(nèi)部具有用做A/D轉(zhuǎn)換的換的2.5V源,REFIN/REFOUT管腳允許用戶訪問這個基準(zhǔn)。另外,該管腳也可以使用外部,范圍從1.2V到VDD。CMOS的制造工藝確保了低功率消耗,正常工作時為2mW,掉電狀態(tài)下為3μW。該器件采用16腳SOIC和TSSOP外形封裝。可以選擇多種電源管理模式(包括數(shù)據(jù)轉(zhuǎn)換后自動處于掉電模式),與多種串行接口兼容,如SPI/QSPI/MICOWIRE/DSP。AD7888引腳功能及符號說明見圖3、表1、表2。

          

          

          圖2 AD7888模數(shù)轉(zhuǎn)換器

          

          圖3 控制器位功能描述

          表1 AD7888模數(shù)轉(zhuǎn)換器管腳

          

          表2 引腳符號及說明

          

          在AD7888中,控制寄存器是8位的只寫寄存器。數(shù)據(jù)在時鐘周期信號的上升沿從AD7888的DIN引腳載入,在此同時獲取外部模擬量轉(zhuǎn)換的結(jié)果。每次數(shù)據(jù)的傳輸需要準(zhǔn)備16個連續(xù)時鐘信號。數(shù)據(jù)只能在片選信號下降沿之后的前8個時鐘脈沖的上升沿裝入控制寄存器。

          串行接口:

          在圖4中顯示了詳細(xì)的串行接口時序圖,串行時鐘提供了轉(zhuǎn)換時序,且控制AD7888轉(zhuǎn)換信息的輸入輸出。

          CS初始化數(shù)據(jù)傳送和轉(zhuǎn)換處理。在其下降沿之后的1.5個時鐘周期開始采樣輸入信號,這段時間表示為tACQ(獲取時間)。這是從DIN輸出到控制寄存器的MSB位為DONTC一個原因。在自動下獲取時間必須要慮及5μs的喚醒時間。整個轉(zhuǎn)換過程還需要14.5個時鐘周期來完成。上升沿之后,總線返回高阻狀態(tài)。如果繼續(xù)保持低電平,則準(zhǔn)備新一輪的轉(zhuǎn)換。

          進(jìn)行采樣的輸入通道的選擇是提前寫入控制寄存器的,因此在轉(zhuǎn)換時,用戶必須提前寫入以備通道的轉(zhuǎn)換。也就是說,在進(jìn)行當(dāng)前轉(zhuǎn)換時,用戶就必須提前寫入通道的地址以備下次轉(zhuǎn)換使用。設(shè)計中初始化時,先做一次寫控制寄存器的操作,將需要轉(zhuǎn)換的通道信息寫入控制寄存器中。

          寫信息到控制寄存器應(yīng)該在數(shù)據(jù)傳送的前8個SCLK上升沿進(jìn)行??刂萍拇嫫鹘?jīng)常在數(shù)據(jù)傳送發(fā)生時進(jìn)行寫操作。從器件中讀數(shù)據(jù)時用戶必須經(jīng)常仔細(xì)地在PIN線上設(shè)置正確的信息。

          接口與驅(qū)動

          串行外圍設(shè)備接口SPI(serial peripheral interface)總線技術(shù)是Motorola公司推出的一種。SPI總線是一種三線同步總線,因其硬件功能很強(qiáng),所以其實(shí)現(xiàn)軟件就相當(dāng)簡單。AD7888與多種串行接口兼容,可以根據(jù)使用的控制芯片在設(shè)計中靈活的使用,從經(jīng)濟(jì)的角度出發(fā)選擇普通的MCU芯片AT89S52,使用程序可方便地實(shí)現(xiàn)對SPI總線的控制。

          

          

          圖4 串行接口時序圖

          AD7888與MCU之間的接口關(guān)系如圖5所示。為了能夠獲得穩(wěn)定的數(shù)據(jù),AD7888與MCU之間加入光隔離器。光隔離器件采用的是隔離電壓高、速度快、性強(qiáng)的6N137。由于6N137的速度快,編程中不需要進(jìn)行延時就能滿足光隔離器的電平建立時間。試驗(yàn)表明通過光隔離器,獲得的穩(wěn)定數(shù)據(jù)能夠增加3~4位(二進(jìn)制位)。AD7888的CS接地,使AD888始終工作在SPI接口模式。對每個接口模塊的控制是通過74LSl25的三態(tài)允許端來實(shí)現(xiàn)的。對其中一個SPI接口操作時,使其74LSl25處于選通狀態(tài),而其他SPI接口的74LSl25處于高阻狀態(tài)。這樣可實(shí)現(xiàn)微處理器單獨(dú)對一個接口進(jìn)行操作,而不影響其他接口。CPU通過對三態(tài)緩沖器74LSl25控制,可實(shí)現(xiàn)多個接口共用相同的數(shù)據(jù)線。AD7888所采樣的七路電壓信號經(jīng)過分壓以后電壓都在2.5V以內(nèi),所以這里可以直接使用芯片內(nèi)置的+2.5V參考電壓,在程序中必須將控制器的REF位置清為“0”。

          

          圖5 AD7888與MCU

          子程序入口參數(shù)Adcaddres通過設(shè)置控制寄存器來修改采樣通道和工作模式

          

          

           int get_ad( char Adcaddres)

          //寫入控制字和讀出轉(zhuǎn)換數(shù)據(jù)

          {

           char i,j;

          unsigned char Strdatah,Strdatal,Tempdata;

          unsigned int Strdata;

          Tempdata=0×0;

          Strdatah=0×0;

          Strdatal=0×0;

          Strdata=0;

          Ad_cs(0);

          //使能AD7888片選有效

          Ad_sclk=1;

          for(i=0;i8;i++)

          //前8個時鐘周期進(jìn)行控制寄存器的寫入

          {

          //和讀出上次轉(zhuǎn)換的高4位數(shù)據(jù)

          Ad_din=(bit)( Adcaddres (0×80>>i));

          //先移出最高位

          Ad_sclk=0;

          for(j=0;j2;j++);

          Ad_sclk=1;

          for(j=0;j2;j++);

          Strdatah=Ad_dout;

          Strdatah=Strdatah(7-i);

          Tempdata=Tempdata | Strdatah;

          }

          Strdatah=Tempdata;

          Tempdata=0×0;

          for(i=0;i8;i++)

          //從AD7888中讀取低8位采樣碼

          {

          Ad_sclk=0;

          for(j=0;j2;j++);

          Ad_sclk=1;

          Strdatal=Ad_dout;

          Strdatal=Strdatal(7-i);

          Tempdata=Tempdata | Strdatal;

          for(j=0;j2;j++);

          }

          Strdatal=Tempdata;

          Strdata=(Strdatah*256 +Strdatal)0x0fff;

          //去除高四位的無效數(shù)據(jù)”0”,防止誤碼出現(xiàn)

          Ad_cs(1);

          //使能AD7888片選無效,降低功耗

          return(Strdata);

          }

          程序中把寫控制寄存器通知采樣某通道和讀出上次轉(zhuǎn)換的高位有效數(shù)據(jù)同時進(jìn)行,提高了轉(zhuǎn)換的速度,使應(yīng)用程序編程更加高效。

          當(dāng)電源不穩(wěn)定或者電路出現(xiàn)干擾的時候,AD7888輸出的采出碼將出現(xiàn)波動,使得采樣效果變差,這時可以在讀數(shù)據(jù)時采用防脈沖干擾移動平均值法,即加入后置濾波器,使效果得以改善。下面是相關(guān)的程序。

          子程序入口參數(shù)Adcaddres通過設(shè)置控制寄存器來修改采樣通道進(jìn)行

          #define LEN 18

          //采樣數(shù)組的長度

          #define SHIFT 4

          //LEN = 2^SHIFT+2

          unsigned int szlb(unsigned char Adcaddres) {

          unsigned char pdat;

          //移動指針

          unsigned char pmax,pmin;

          //記錄數(shù)據(jù)表中最大值和最小值的位置,在一般的數(shù)據(jù)采集系

          unsigned char i;

          //統(tǒng)中,數(shù)據(jù)的長度>=8,

          unsigned int datas[LEN];

          //因此用指針記錄而不是直接記錄最大值和最小值

          unsigned int average=0;

          //清零,用來計算平均值

          pmax=0;

          pmin=0;

          for ( pdat=0;pdatLEN;pdat++)

          //采樣所得數(shù)據(jù)存入數(shù)據(jù)表中

          {

          datas[pdat] = get_ad(Adcaddres);

          DelayMs(0×06);

          }

          for(i=0;iLEN;i++)

          average+=datas[i];

          //求所有數(shù)據(jù)總和

          /******去除被認(rèn)為是脈沖的數(shù)據(jù)*******/

          for ( i=LEN;i>0;i--)

          {

          if(datas[i-1]>datas[pmax])

          //記錄數(shù)組中最大值的下標(biāo)

          pmax=i-1;

          if(datas[i-1]datas[pmin])

          //記錄數(shù)組中最小值的下標(biāo)

          pmin=i-1;

          }

          average=average-datas[pmax]-datas[pmin];

          //減去脈沖

          return (average>>SHIFT);

          //求算術(shù)平均值

          }

          設(shè)計中需要注意的問題

          單片機(jī)連接多個外圍芯片時需要注意幾個問題,首先要保證這幾個外設(shè)的使能有效信號絕對區(qū)分開來,通過CPLD譯碼產(chǎn)生片選來激活不同的外設(shè),否則多個外設(shè)的數(shù)據(jù)就會同時出現(xiàn)在數(shù)據(jù)總線上,造成數(shù)據(jù)沖突,接受錯誤,其次要從地址上區(qū)分開對外部設(shè)備寄存器的讀寫操作,同一時刻不能對多個外設(shè)進(jìn)行讀或?qū)懖僮鳌?/P>

          由于AD7888是高分辨率的ADC,因而電源的耦合電路尤為重要。因此在印制電路板設(shè)計時,應(yīng)對所有的模擬電源輸入加一級去耦電路,即用10μF鉭電容和0.1μF陶瓷電容并聯(lián)到地。這些去耦電路的元件應(yīng)盡可能靠近芯片的電源引腳,這樣才能獲得更好的去耦效果,并消除引線過長帶來的干擾。

          本系統(tǒng)介紹的技術(shù)已在度激光器多路監(jiān)測中得到了應(yīng)用,它不但提高了系統(tǒng)抗干擾性和數(shù)據(jù)的測量精度,而且由于結(jié)構(gòu)簡單也給維護(hù)帶來了便利。



        評論


        相關(guān)推薦

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

        關(guān)閉