光纖光柵傳感器是利用光纖光柵受外界物理作用時其反射中心波長會發生偏移的機理制成的,光纖光柵傳感器具有體積小、重量輕和抗電磁干擾等特點,被廣泛應用于變壓器、水泵等特殊環境下的溫度監測。在光纖光柵測溫系統中,光纖光柵傳感器采集的反射光通過光電檢測與轉換電路把光信號轉換成電信號,經高精度的AD轉換器得到數字信號,再經過一系列的數據處理后得到溫度值。為提高測量精度和穩定性,本文提出了以16位模數轉換器AD7705為核心的光信號采集系統,闡述了FPGA控制模塊的設計思路及VHDL實現方法,并以FPGA作為控制器實現AD7705邏輯控制,利用QuartuslI對系統進行仿真驗證。
1.系統總體結構
光信號采集系統總體方框圖如圖1所示,主要由光電檢測與轉換電路、AD7705接口電路、FPGA控制模塊等部分組成,光電檢測與轉換電路把光信號變成電信號放大后再送入AD7705電路,AD7705在FPGA的控制下完成AD轉換,并把數據送入后續信號處理模塊處理,計算出具體的溫度值。
圖1 系統總體結構
2.光電檢測與轉換電路
光纖光柵傳感器反射回來的光信號功率一般較低,經過長距離傳輸后到達光電檢測器的信號也就非常微弱,而且在放大電路中還存在器件的固有噪聲以及供電電源引起的噪聲,因此,在微弱信號電路設計中必須采取多項措施抑制噪聲,以滿足后續數字信號處理電路的需要。電路采用高精度、低溫漂、低損耗的OP07作為運算放大器,該放大器偏置電流非常小,適合用作小信號放大。光電檢測與轉換電路如圖2所示,光電探測器采用PIN管,其相當于電流源,完成光功率到電流的轉化,由于信號較小,電路采用三級放大其中一、二級主要完成光信號到電流再到電壓的放大與轉換,第三級主要對電壓進行放大,放大后的電壓信號送入AD7705進行AD轉換,為減小電源噪聲干擾,每個電源端需加上耦電容。
圖2 光電檢測與轉換電路
3.AD7705硬件電路
AD7705是AD公司生產的適合測量低頻信號的16位AD轉換器,片內帶有數字濾波和增益可編程的∑-?轉換技術,能夠直接將傳感器測量到的微小信號進行AD轉換,具有寬動態范圍、高分辯率等特點,在儀器儀表測量、工業控制等領域有廣泛的應用。AD7705配有串行通信接口,可配置成三線或四線接口模式(CS、SCLK、MOSI、MISO),其增益值、信號的極性以及更新速率可由軟件靈活配置。AD7705外圍接口電路如圖3所示。
圖3 AD7705硬件接口電路
AD7705主要引腳及功能:兩組模擬信號輸入端AIN1(+)、AIN1(-)和AIN2(+)、AIN2(-),分別可配置成單極性輸入和差分輸入,通信接口為片選端,低電平有效,DIN為串行數據輸入端,DOUT為轉換結果的串行數據輸出端,SCLK為串行移位脈沖,一般由控制芯片提供,DRDY為邏輯輸出,高電平表示數據正在更新中,低電平表示AD轉換結束可以讀取數據,REF(+)、REF(-)為基準輸入端,由于基準電壓對轉換結果影響較大,本設計采用低動態阻抗、低噪音的LM285D作為基準電源,為AD提供2.5V基準電壓。
4.FPGA控制器設計
用戶對AD7705的功能設置以及AD轉換結果輸出都是采用串行接口方式訪問片內寄存器,本設計采用VHDL語言把通信接口配置成四線工作方式,即與AD7705的CS、SCLK、DIN、DOUT端口進行通信,完成串行數據的發送和接收。
4.1數據發送模塊
數據發送模塊SPI_WRITE就是把各種控制字以串行方式寫入AD7705內部相應的寄存器,實現各種功能。在寫入過程中必須按AD7705的工作時序要求傳送數據,才能保證數據準確性和有效性,該模塊采用VHDL進行設計,其端口設置如下:
由于與寫入有關的寄存器均為8位寄存器,因此,把SPI_WRITE模塊設計成一個8位并入串出移位寄存器,當WR_FLAG控制信號為高電平時,讀入WR_CODE[7.。.0]中控制字的值,同時在SCLK上產生8個移位脈沖,并在移位脈沖的作用下把8位輸人數據轉換為串行數據從TX端輸出,在這移位期間uCS輸出保持低電平,數據移位完后重新回到高電平,并等待下一個寫入控制脈沖,其仿真結果如圖4所示。
圖4 數據發送模塊仿真
4.2數據接收模塊
數據接收模塊SPI_READ主要是讀取AD7705內部數據寄存器中已轉換好的AD值,其設計原理與數據發送模塊類似,該模塊端口設置如下:
由于AD7705內部數據寄存器是一個16位寄存器,因此,SPI_READ模塊是一個串入并出的16位移位寄存器,當DRDY為低電平,且RD_FLAG為高電平時,系統開始讀取AD7705的16位串行數據,經過16個脈沖后,完成串并轉換,RECE_OK結束標志位置高電平,同時輸出并行數據RECE_DATA[15.。.0],仿真結果如圖5所示。
圖5 數據接收模塊仿真
4.3AD7705工作狀態控制模塊
AD7705工作狀態控制模塊STATE_CTR是根據AD7705工作流程,完成各種設置并讀取AD轉換值,AD7705內部主要有通信寄存器、設置寄存器、時鐘寄存器、數據寄存器等,其中通信寄存器主要管理通道選擇,并決定下一個操作是讀操作還是寫操作,以及下一次讀或寫哪一個寄存器,所有與器件的通信必須從寫入通信寄存器開始。該模塊采用VHDL有限狀態機實現,該控制器由7個工作狀態組成,其狀態轉換圖如圖6所示。
圖6 AD7705工作狀態轉換
S0狀態:初始化,寫通信寄存器20H,將下一個操作設為對時鐘寄存器進行寫操作;
S1狀態:寫時鐘寄存器04H,外部時鐘頻率設為4.9152MHz,更新頻率為50Hz;
S2狀態:寫通信寄存器10H,選擇通道1為輸入端口,將下一個操作設為設置寄存器寫操作;
S3狀態:寫設置寄存器40H,增益設為1,差分輸入,自校準模式;
S4狀態:查詢DRDY端口值,如果為低電平表示AD轉換結束,可以讀出轉換結果;否則數據尚在更新中,繼續待待;
S5狀態:寫通信寄存器38H,將下一個操作設為對數據寄存器進行讀操作;
S6狀態:從數據寄存器中讀取AD值,重新返回S4狀態,重復上面的步驟,并可連續讀出AD的值。
4.4FPGA控制器結構
FPGA控制器結構圖如圖7所示,由FENPING分頻模塊、SPI_WRITE數據發送模塊、SPI_READ數據接收模塊及STATE_CTR工作狀態控制模塊組成。AD7705外接時鐘為4.9152MHz,設計選用更新速率為50Hz,同時從AD手冊可知串行時鐘脈沖寬度不得小于100ns,即時鐘不得大于5MHz,FPGA開發板上配有50MHz時鐘源,通過分頻模塊FENPING得到3MHz輸出頻率,再經過SPI_READ和SPI_WRITE模塊后產生500kHz的移位脈沖頻率,即每寫入一個字節需要16ms,因此,在STATE_CTR模塊中,每寫入一個控制字需要等待16ms以上才能進入下一個狀態,而數據寄存器是16位的,因此,在讀出AD轉換數據時需要等待32ms以上,才能進入下一個狀態,讀取下一個數據。
圖7 FPGA控制器結構
5.系統測試與仿真
在QuartuslI平臺上對FPGA控制模塊進行了仿真測試,其仿真結果如圖8所示。
圖8 FPGA控制器仿真波形
從圖8中可以看出,前面4組寫入脈沖分別寫入20H、04H、10H、40H,當DRDY端信號為低電平時表示AD數據已轉換結束,再寫入38H,再經過16個脈沖讀出轉換數據,然后又繼續等待DRDY變為低電平,周而復始,并可連續讀取AD轉換值。根據測試數據進行分析,符合AD7705工作時序要求,最后把設計文件下載至CycloneII的EP2C8Q208C7芯片進行驗證測試,實現相關功能。
結束語
本文總結了基于AD7705與FPGA的光信號采集系統設計。該系統采用高精度的AD轉換器,利用FPGA及VHDL有限狀態機完成對AD7705的時序邏輯控制,完成光信號的檢測與放大及數據轉換,以軟件方式實現硬件電路,控制靈活、轉換精度高、穩定性好,在水泵的溫度檢測應用系統中有良好應用,同時對于一些精度要求高,而輸入信號較小的其他模擬量檢測也有較好的應用參考價值。
責任編輯人:CC
-
FPGA
+關注
關注
1630文章
21761瀏覽量
604387 -
光信號
+關注
關注
0文章
443瀏覽量
27808 -
AD7705
+關注
關注
2文章
39瀏覽量
20542
發布評論請先 登錄
相關推薦
評論