整機在工作時,大概有4%的能量被各種電力電子器件所消耗,這些被消耗的能量以熱量的形式分別在單個模塊中通過散熱器散發出去。 針對以上的現象,可用PTl00鉑電阻溫度傳感器在散熱器表面感應溫度,以保護電力電子器件不因為在高溫下運行而損壞。金屬鉑(Pt)的電阻值隨溫度變化而變化,并且具有很好的重現性和穩定性,利用鉑的此種物理特性制成的傳感器稱為鉑電阻溫度傳感器,通常使用的鉑電阻溫度傳感器的零度電阻值為100Ω,電阻變化率為0.3851Ω/℃。鉑電阻溫度傳感器具有精度高,穩定性好,應用范圍廣等優點,是最常用的一種溫度傳感器。 串行外設接口SPI (Serial Peripheral Interface)是一種高速同步串行輸入輸出端口。近年來SPI接口廣泛應用于外部移位寄存器、DA轉換器、AD轉換器、串行EEPROM、LED顯示驅動器等外部設備的擴展。SPI接口可以共享.因而便于組成帶多個SPI接口器件的系統。其傳送速率可編程,連接線少,并具有良好的擴展性。 AD7705是典型的具有SPI接口的AD轉換器,可以方便地與帶有SPI模塊的控制器進行通信。本文采用FPGA為主控制器,利用其通用I/O口來模擬SPI時序,以采集AD7705的兩路輸入信號(溫度信號和電壓信號),并將采集到的16位溫度數字信號和16位電壓數字信號送給DSP進行處理,然后對數字信號進行算法還原,最終在1602液晶顯示器上分別顯示兩路實際信號,從而實現對溫度和電壓兩路信號的實時監控。 1 硬件設計方案 該系統的功能主要是實現對工控領域后臺裝置的溫度信號和電壓信號的實時雙監控。其中溫度信號可根據PT電阻值隨溫度變化的線性關系將溫度信號轉換為0~2.5 V變化的電壓信號。然后送給AD7705的l通道。電壓信號則可用變壓器轉換為O~2.5 V的電壓信號,送給AD7705的2通道,從而實現對溫度和電壓兩路信號的采集。 1.1 P11電阻的特點 PT電阻值可隨溫度的變化而變化,在0℃時,電阻值為100Ω。小于0℃時,阻值隨溫度的降低而減小;大于0℃時,阻值隨溫度的增加而增大。阻值隨溫度的變化關系可用公式1和公式2表達。 其中,R1為PT電阻在溫度為t時的電阻值,R0為PT電阻在0℃時的電阻值,式(1)和式(2)為溫度系數TCR=0.003851時,PT電阻值隨溫度變化的數學表達式,其中,A、B、C三個系數分別為: 由于t2和t3項的系數都很小,故可近似的認為,鉑電阻的阻值隨溫度呈線性的變化關系,又因為它的溫度系數為TCR=0.003851,所以在計算時,可以直接按照溫度系數來計算。如果把PTl00鉑電阻放在散熱器表面的功率器件周圍,那么,就可以根據測試點的電阻值估算出溫度。 1.2 溫度信號轉換電路 圖1所示是本系統中的溫度信號檢測電路。 圖1電路中,R14是放在散熱器表面的鉑電阻,用于感應散熱器的溫度,該電路可將PT電阻隨溫度信號變化的阻值信號轉變成電壓信號,這樣,根據PTl00-V點的電壓值,即可換算出PT電阻R14的電壓信號,ref-V為基準電壓信號,ref-V經過圖2所示的差分放大電路后,再根據圖中元器件的參數即可計算出,最后傳輸的電壓信號Va為與基準電壓差值的12倍。 圖3所示為光耦隔離傳輸電路,由圖2所示的差分放大電路輸出的電壓信號Va經過光耦隔離電路后,即可以l:1的形式傳送,即Vb點的電壓信號和差分放大后的信號Va是一樣的,將Vb送到AD7705進行模數轉換。然后將其轉換成串行序列輸出給FPGA處理,同時也上傳到DSP控制器。 2 軟件設計方案 本系統的軟件設計主要是根據AD7705的特點和操作時序,用FPGA的通用GPIO模擬SPI時序。圖4給出了該系統中AD7705的主狀態流程圖。此后,根據流程圖再編寫各子模塊,即可完成對AD7705兩路信號的實時采集。 2.1 AD7705的特點及操作時序 AD7705是采用∑-△轉換技術來實現16位代碼無丟失性能的AD轉換器件。該器件可以直接接收來自傳感器的低電平輸入信號,然后產生串行的數字輸出。AD7705只需2.7~5.25 V的單電源,采用雙通道全差分模擬輸入,并有一個差分基準輸入。當電源電壓為5 V、基準電壓為2.5 V時,這種器件可對輸入信號范圍在0~20 mA和0~2.5 V的信號進行處理,還可以處理±20 mV~±2.5 V的雙極性輸入信號,其串行接口也可配置為三線接口。其增益值、信號極性以及更新速率的選擇均可用串行輸入口由軟件來配置。此外,該器件還包括自校準和系統校準選項,以消除器件本身或系統的增益和偏移誤差。 AD7705包括6個用戶可通過串口訪問的片內寄存器。其中第一個是通訊寄存器,用于管理通道選擇,決定下一個操作是讀操作還是寫操作,以及下一次讀或寫哪一個寄存器。所有與器件的通訊必須從寫通訊寄存器開始。上電或復位后,器件將等待在通訊寄存器上進行一次寫操作; 第二個是設置寄存器,用于決定校準模式、增益設置、單/雙極性輸入以及緩沖模式; 第三個是時鐘寄存器,其中包括濾波器選擇位和時鐘控制位; 第四個是數據寄存器,器件輸出的數據從這個寄存器讀出; 第五個是零標度校準寄存器,AD7705包含兩組獨立的零標度寄存器,每個零標度寄存器負責一個輸入通道。它們都是24位讀,寫寄存器; 第六個是滿標度校準寄存器,AD7705包含兩組獨立的滿標度寄存器,每個滿標度寄存器負責一個輸入通道。它們都是24位讀/寫寄存器。 AD7705的寫操作時序圖如圖5所示。在將片選端CS拉低后,即可在串行時鐘的上升沿發送數據,發送數據時,高位在前。 AD7705的讀操作時序圖如圖6所示。當在AD7705的DRDY信號腳檢測到邏輯低電平時,表示可以從AD7705的數據寄存器獲取新的輸出字,當完成對一個完全的輸出字的讀操作后,DRDY引腳立即回到高電平。如果在兩次輸出更新之間,不發生數據輸出,DRDY將在下一次輸出更新前500個輸入時鐘時間返回高電平。DRDY處于高電平時,不能進行讀操作。當數據更新后,DRDY又返回低電平。 2.2 FPGA接口的軟件設計 FPGA與AD7705共有5個接口引腳,分別為片選端CS、串行時鐘端SCLK、串行數據輸入端DIN、串行數據輸出端DOUT和串行數據請求端 DRDY。 讀AD7705的數據寄存器前,需先設置其時鐘寄存器和設置寄存器,下面以1通道為例來簡要說明,首先向AD7705發送串行數據0x20,表示下一操作選擇時鐘寄存器,接著發送串行數據0x0C,設置時鐘為2分頻,然后發送Oxl0,表示下一操作選擇設置寄存器,接著發送串行數據0x44,表示設置寄存器模式為自校準,增益l,單極性,無緩沖,然后再向AD7705發送0x38,表示可以讀通道1的數據寄存器,并等待AD7705的DRDY變低,然后發送16個時鐘,以讀取通道1的16位轉換數據。通道2的數據讀取與通道1的數據讀取相似,發送的數據分別為0x21,0x0C, 0x11,0x44,0x39。 3 結束語 本文用有限狀態機在FPGA上實現了對有SPI接口的AD轉換器AD7705的接口應用,并對AD7705的兩路輸入信號進行了實時采集。事實上,選用通用I/O口模擬SPI時序,相比標準SPI接口IP核更為簡潔,可以節約FPGA的片上資源。由于AD7705提供有雙通道、低成本、高分辨率的模數轉換功能,因此,采用∑-△結構實現模數轉換,可使得該器件在噪音環境下免受干擾,因而很適合于工業控制應用。 |