《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于AD7888的度激光器監測系統的設計
基于AD7888的度激光器監測系統的設計
今日電子
未知
摘要: 在高穩定度激光器的研制中,實時監測激光器的工作狀態是需要重點關注的問題。}  程序中把寫控制寄存器通知 ...
關鍵詞: 軟件 AD7888 激光器
Abstract:
Key words :

  在高穩定度激光器的研制中,實時監測激光器的工作狀態是需要重點關注的問題。本系統實現了高穩定度激光器溫度控制系統、激光管工作電流、工作電壓、激光器光功率的實時精確監測,以及激光器工作狀態數據的存儲和數據串行上傳的功能。其中電流設定值和實際工作電流的觀測可以更好地確定激光器的工作狀態。系統結構圖如圖1所示。

  

  

  圖1 系統結構框圖

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

  AD7888的特點

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

  

  

  圖2 AD7888模數轉換器

  

  圖3 控制器位功能描述

  表1 AD7888模數轉換器管腳

  

  表2 引腳符號及說明

  

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

  串行接口:

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

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

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

  寫信息到控制寄存器應該在數據傳送的前8個SCLK上升沿進行。控制寄存器經常在數據傳送發生時進行寫操作。從器件中讀數據時用戶必須經常仔細地在PIN線上設置正確的信息。

  接口與驅動

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

  

  

  圖4 串行接口時序圖

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

  

  圖5 AD7888與MCU連接圖

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

  

  

  unsigned int get_ad(unsigned char Adcaddres)

  //寫入控制字和讀出轉換數據

  {

  unsigned 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;i<8;i++)

  //前8個時鐘周期進行控制寄存器的寫入

  {

  //和讀出上次轉換的高4位數據

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

  //先移出最高位

  Ad_sclk=0;

  for(j=0;j<2;j++);

  Ad_sclk=1;

  for(j=0;j<2;j++);

  Strdatah=Ad_dout;

  Strdatah=Strdatah<<(7-i);

  Tempdata=Tempdata | Strdatah;

  }

  Strdatah=Tempdata;

  Tempdata=0×0;

  for(i=0;i<8;i++)

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

  {

  Ad_sclk=0;

  for(j=0;j<2;j++);

  Ad_sclk=1;

  Strdatal=Ad_dout;

  Strdatal=Strdatal<<(7-i);

  Tempdata=Tempdata | Strdatal;

  for(j=0;j<2;j++);

  }

  Strdatal=Tempdata;

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

  //去除高四位的無效數據”0”,防止誤碼出現

  Ad_cs(1);

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

  return(Strdata);

  }

  程序中把寫控制寄存器通知采樣某通道和讀出上次轉換的高位有效數據同時進行,提高了轉換的速度,使應用程序編程更加高效。

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

  子程序入口參數Adcaddres通過設置控制寄存器來修改采樣通道進行數字濾波

  #define LEN 18

  //采樣數組的長度

  #define SHIFT 4

  //LEN = 2^SHIFT+2

  unsigned int szlb(unsigned char Adcaddres) {

  unsigned char pdat;

  //移動指針

  unsigned char pmax,pmin;

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

  unsigned char i;

  //統中,數據的長度>=8,

  unsigned int datas[LEN];

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

  unsigned int average=0;

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

  pmax=0;

  pmin=0;

  for ( pdat=0;pdat

  //采樣所得數據存入數據表中

  {

  datas[pdat] = get_ad(Adcaddres);

  DelayMs(0×06);

  }

  for(i=0;i

  average+=datas[i];

  //求所有數據總和

  /******去除被認為是脈沖的數據*******/

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

  {

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

  //記錄數組中最大值的下標

  pmax=i-1;

  if(datas[i-1]

  //記錄數組中最小值的下標

  pmin=i-1;

  }

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

  //減去脈沖

  return (average>>SHIFT);

  //求算術平均值

  }

  設計中需要注意的問題

  單片機連接多個外圍芯片時需要注意幾個問題,首先要保證這幾個外設的使能有效信號絕對區分開來,通過CPLD譯碼產生片選來激活不同的外設,否則多個外設的數據就會同時出現在數據總線上,造成數據沖突,接受錯誤,其次要從地址上區分開對外部設備寄存器的讀寫操作,同一時刻不能對多個外設進行讀或寫操作。

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

  本系統介紹的技術已在高穩定度激光器多路監測中得到了應用,它不但提高了系統抗干擾性和數據的測量精度,而且由于結構簡單也給維護帶來了便利。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美成人一区二区三区在线视频 | 日本黄色美女网站 | 在线观看日本污污ww网站 | 久草在线国产视频 | 国产精品午夜波多野结衣性色 | 美女黄视频在线 | 色精品视频 | 国产三级a三级三级天天 | 国产区一区二区三区 | 亚洲综合精品一区二区三区中文 | 午夜限制r级噜噜片一区二区 | 欧美人成在线观看网站高清 | 末成年娇小性色xxxxx | 日本在线视频免费看 | 在线永久免费观看黄网站 | 亚洲国产精品激情在线观看 | 国产一二三区精品 | 免费观看三级毛片 | 久草视频中文在线 | 久草中文视频 | 日本不卡一区在线 | 香港台湾经典三级a视频 | 99久久伊人一区二区yy5099 | 400部大量精品情侣网站 | 国产区一区二区三区 | 欧美日韩一区二区三区高清不卡 | 高清一本之道加勒比在线 | 亚洲人成综合网站在线 | 日本特一级毛片免费视频 | 黄色三级网站免费 | 成人免费福利网站在线看 | 国产日韩欧美一区二区三区综合 | 日韩国产成人资源精品视频 | 欧美中文字幕在线视频 | 久久精品视 | 男人的天堂2018| 国产毛片在线高清视频 | 成人在线播放视频 | 亚洲国产一区二区三区在线观看 | 久久国产免费观看精品1 | 欧美日韩看看2015永久免费 |