基于FPGA的慣導(dǎo)系統(tǒng)溫控電路接口設(shè)計(jì)
摘要:本文介紹了一種基于FPGA的光纖陀螺慣導(dǎo)系統(tǒng)溫控電路接口設(shè)計(jì)。主要說明了溫控電路整體結(jié)構(gòu),溫控電路工作流程,FPGA與外圍電路的通信接口和FPGA的邏輯設(shè)計(jì)等幾個(gè)方面。
1 引言
采用光纖陀螺的捷聯(lián)慣性導(dǎo)航系統(tǒng)是一種極具發(fā)展?jié)摿Φ膶?dǎo)航系統(tǒng),對(duì)于其核心部件的光纖陀螺,尤其是中高精度光纖陀螺,環(huán)境溫度帶來的漂移是不容忽視的,因此對(duì)系統(tǒng)進(jìn)行溫度控制很有必要。溫度控制電路是整個(gè)溫控系統(tǒng)的硬件基礎(chǔ),其中涉及到溫度采集,與微處理器通信,串口輸出,控制數(shù)模轉(zhuǎn)換芯片等多個(gè)組成部分。本文提出一種高效實(shí)用的FPGA 接口設(shè)計(jì),它能夠完成協(xié)調(diào)各個(gè)組成部分有序工作,準(zhǔn)確、快速實(shí)現(xiàn)數(shù)據(jù)傳輸,嚴(yán)格控制信號(hào)時(shí)序等工作。
2 溫控電路整體結(jié)構(gòu)
溫控電路的整體結(jié)構(gòu)框圖如圖1 所示。其中包括七路溫度傳感器,DSP, 232 接口芯片,DAC ,后端控制電路,上位機(jī)和FPGA 等多個(gè)組成部分。FPGA 接口是整個(gè)電路的核心。
圖1 溫控電路的整體結(jié)構(gòu)框圖
其中,溫度傳感器采用DALLAS 公司的DS18B20,它采用1-wire 總線協(xié)議,僅需1 根數(shù)據(jù)線進(jìn)行通信。DSP 采用TI 公司的TMSVC33,它可以實(shí)現(xiàn)高速浮點(diǎn)運(yùn)算。232 接口芯片采用MAXIM 公司的MAX3232,支持高達(dá)120kbps 的傳輸速率。DAC 采用TI 公司的TLV5620I,它是通過4 條串行信號(hào)控制的8 位4 路數(shù)模轉(zhuǎn)換芯片。FPGA 選用ALTERA 公司的ACEX 系列的EP1K100,它時(shí)鐘頻率高,具有豐富內(nèi)部資源,提供大量可編程IO 管腳,配置十分方便?;贔PGA 的溫控電路接口在整個(gè)電路中具有非常重要的作用。FPGA 本身的高速并行結(jié)構(gòu)為整個(gè)電路的性能提供了可靠保證。
3 溫控電路工作流程
溫控電路的工作流程如圖2 所示。FPGA 與七路溫度傳感器通信,讀取溫度值,并存儲(chǔ)于內(nèi)部存儲(chǔ)器中,每秒更新一次。FPGA 發(fā)送中斷信號(hào)通知DSP 讀取FPGA 中存儲(chǔ)的溫度值,DSP 根據(jù)當(dāng)前溫度值和控制算法計(jì)算出控制量。而后將溫度值和控制量打包成一幀數(shù)據(jù)發(fā)送給FPGA。FPGA 將DSP 發(fā)送來的數(shù)據(jù)存儲(chǔ)在內(nèi)部存儲(chǔ)器后,對(duì)數(shù)據(jù)進(jìn)行操作,生成輸出信號(hào)。
FPGA 一方面將數(shù)據(jù)串行發(fā)送給232 接口芯片,然后通過232 串口發(fā)送給上位機(jī)。上位機(jī)可通過監(jiān)視軟件實(shí)時(shí)觀測(cè)溫度值和控制量的變化情況,方便系統(tǒng)調(diào)試與*估;另一方面從數(shù)據(jù)中提取出控制量,將其串行輸出到DAC,數(shù)字控制信號(hào)經(jīng)過DA 轉(zhuǎn)換后輸出模擬控制電壓到后端控制電路,實(shí)現(xiàn)對(duì)七路溫度的閉環(huán)控制。
圖2 溫控電路的工作流程
4 FPGA 與外圍電路之間的通信接口
FPGA 與外圍電路之間的通信接口主要包括與溫度傳感器,DSP,232 接口芯片和DAC的通信接口四個(gè)部分。
(1) 與溫度傳感器的通信接口
本方案的溫度傳感器采用DS18B20,它通過硬件非常簡(jiǎn)單的1-wire 總線通信,由于硬件簡(jiǎn)單所以通信協(xié)議比較復(fù)雜。要實(shí)現(xiàn)與它的通信接口將占用大量FPGA 片內(nèi)資源,而且本方案要進(jìn)行七路溫度采集,因此優(yōu)化程序設(shè)計(jì),減少冗余,節(jié)省資源顯得尤為重要。
(2) 與DSP 的通信接口
DSP 與FPGA 的組合已經(jīng)成為當(dāng)今數(shù)字電路中非常流行的模式。FPGA 非常適合與DSP配合。本方案中,DSP 與FPGA 的通信接口主要由數(shù)據(jù)總線,地址總線和一些控制信號(hào)組成。FPGA 和DSP 之間由8 位數(shù)據(jù)總線連接,數(shù)據(jù)以字節(jié)形式并行傳輸。DSP 通過地址總線對(duì)FPGA的片內(nèi)資源尋址??刂菩盘?hào)主要包括復(fù)位信號(hào),中斷信號(hào)和讀寫信號(hào)。
(3) 與232 接口芯片的通信接口
FPGA 與232 接口芯片的通信是通過收發(fā)兩條數(shù)據(jù)線實(shí)現(xiàn)的。本方案中,只存在溫控系統(tǒng)到上位機(jī)的單向數(shù)據(jù)傳輸,故僅需一條發(fā)送數(shù)據(jù)線就可以完成與232 接口芯片的通信。
(4) 與DAC 的通信接口
本方案選用TI 公司的TLV5620I 芯片作為DAC。它是8 位4 路電壓數(shù)模轉(zhuǎn)換器。對(duì)于它的數(shù)字控制基于由4 條信號(hào)線組成的串行總線。包括CLK,DATA,LOAD 和LDAC 四種信號(hào)。
5 FPGA 的邏輯設(shè)計(jì)
在溫控電路的總體方案,硬件結(jié)構(gòu),工作流程和接口協(xié)議都確定后,就可以進(jìn)行FPGA的邏輯設(shè)計(jì)了。FPGA 的邏輯設(shè)計(jì)是整個(gè)溫控電路接口設(shè)計(jì)的重中之重。它基于verilog 硬件描述語言。良好的FPGA 邏輯設(shè)計(jì)應(yīng)該是時(shí)序清晰,運(yùn)行穩(wěn)定,結(jié)果明確和節(jié)省資源的。它能夠保證整個(gè)系統(tǒng)的可靠,穩(wěn)定和高效。FPGA 的邏輯模塊圖如圖3 所示。FPGA 內(nèi)部邏輯大致分為RESET 模塊,DS18B20 接口模塊,總線控制模塊,DSP 接口模塊,雙口RAM 模塊,232 接口模塊和DAC 接口模塊等幾部分。
圖3 FPGA 的邏輯模塊圖
(1)RESET 模塊
該模塊生成全局復(fù)位信號(hào)。是所有模塊中優(yōu)先級(jí)最高的。系統(tǒng)上電后,該模塊將復(fù)位信號(hào)拉低并持續(xù)1 秒而后拉高,對(duì)DSP 和FPGA 內(nèi)部其他模塊進(jìn)行復(fù)位。
(2)DS18B20 接口模塊
該模塊用于實(shí)現(xiàn)與DS18B20 通信,讀取并存儲(chǔ)溫度值。它包含2 個(gè)子模塊。
一、溫度采集模塊
該模塊實(shí)現(xiàn)與DS18B20 的通信協(xié)議。首先通過一個(gè)初始化序列對(duì)DS18B20 進(jìn)行初始化,包括一個(gè)由主機(jī)發(fā)出的復(fù)位脈沖和其后由從機(jī)發(fā)出的存在脈沖。探測(cè)到存在脈沖之后,代表初始化完成,模塊將發(fā)送ROM 操作命令。本方案中,執(zhí)行SKIP ROM 跳過ROM 匹配。之后將發(fā)送存儲(chǔ)器操作命令。溫度轉(zhuǎn)化和讀取溫度就在這部分完成。其中每一次讀寫操作都需要嚴(yán)格按照DS18B20 的讀寫時(shí)隙進(jìn)行。該模塊復(fù)雜程度高和占用資源多,是整個(gè)FPGA 中的重要模塊。本方案一共有七路溫度采集模塊,它們的并行結(jié)構(gòu)使得系統(tǒng)可以方便地實(shí)現(xiàn)對(duì)七路溫度的實(shí)時(shí)監(jiān)控。
二、溫度存儲(chǔ)模塊
該模塊的主要構(gòu)成部分是一個(gè)14*8 位存儲(chǔ)器,用于存儲(chǔ)七路溫度數(shù)值,每一路數(shù)值需要2 個(gè)8 位寄存器存放。存儲(chǔ)完畢后,等待DSP 讀取。
(3)DSP 接口模塊
該模塊主要用于與DSP 進(jìn)行通信。它包含3 個(gè)子模塊。
一、DSP 寫信號(hào)同步模塊
DSP 的數(shù)據(jù)寫入在寫信號(hào)控制下完成。由于DSP 和FPGA 采用不同的時(shí)鐘源,所以DSP產(chǎn)生的寫信號(hào)無法和FPGA 的主時(shí)鐘同步。這樣就會(huì)導(dǎo)致寫數(shù)據(jù)錯(cuò)誤。該模塊用于將DSP 寫信號(hào)與FPGA 的主時(shí)鐘同步。
二、中斷生成模塊
由于本方案中,溫度值每秒更新一次。在溫度值更新后,通過中斷信號(hào)通知DSP 讀取溫度值。該模塊用于生成周期為1 秒的中斷脈沖。
三、尋址模塊
該模塊對(duì)FPGA 片內(nèi)資源進(jìn)行編址,由DSP 的地址總線控制尋址。準(zhǔn)確讀寫所需的數(shù)據(jù)。
(4)總線控制模塊
DSP 和FPGA 之間的數(shù)據(jù)總線是雙向總線,總線控制模塊用于控制總線的數(shù)據(jù)流向。當(dāng)DSP 從FPGA 中讀取溫度值時(shí),總線控制模塊將溫度存儲(chǔ)模塊和數(shù)據(jù)總線相連,輸出數(shù)據(jù)。當(dāng)DSP 向FPGA 中寫數(shù)據(jù)時(shí),總線控制模塊將數(shù)據(jù)總線和雙口RAM 模塊相連,輸入數(shù)據(jù)。
(5)雙口RAM 模塊
該模塊主要實(shí)現(xiàn)以下三個(gè)功能:當(dāng)DSP 寫數(shù)據(jù)時(shí),將數(shù)據(jù)存儲(chǔ)于內(nèi)部存儲(chǔ)器中;當(dāng)數(shù)據(jù)存儲(chǔ)完畢后,將其中的控制量發(fā)送給DAC 控制模塊;與串口發(fā)送模塊通信,將所有數(shù)據(jù)依次串行輸出。
(6) 232 接口模塊
該模塊用于實(shí)現(xiàn)串口數(shù)據(jù)輸出,它包含2 個(gè)子模塊:
一、串口波特率模塊
串口通信協(xié)議要求數(shù)據(jù)收發(fā)雙方有相同的波特率。該模塊用于設(shè)定串口通信波特率。
二、串口發(fā)送模塊
雙口RAM 模塊將數(shù)據(jù)存儲(chǔ)完畢后,將給串口發(fā)送模塊一個(gè)標(biāo)志信號(hào)。串口發(fā)送模塊接到此信號(hào)后,依次將雙口RAM 模塊中存儲(chǔ)的數(shù)據(jù)串行輸出。
(7)DAC 接口模塊
該模塊包含2 個(gè)子模塊:
一、DAC 時(shí)鐘模塊
DAC 需要特定頻率范圍的時(shí)鐘來驅(qū)動(dòng)。該模塊用于生成驅(qū)動(dòng)DAC 的時(shí)鐘信號(hào)。
二、DAC 控制模塊
該模塊用于生成DAC 控制信號(hào)。它的基本原理是將雙口RAM 模塊輸出的7 路控制量存儲(chǔ)在內(nèi)部存儲(chǔ)器,然后根據(jù)DAC 的接口協(xié)議生成CLK,DATA,LOAD 和LDAC 等控制信號(hào),這些信號(hào)將驅(qū)動(dòng)DAC 的工作,將數(shù)字控制量轉(zhuǎn)換成模擬電壓值。
圖4 溫度控制電路
6 結(jié)束語
FPGA 接口設(shè)計(jì)需要綜合考慮硬件連接,工作流程,接口協(xié)議和邏輯模塊等多方面因素,是一項(xiàng)系統(tǒng)工程。本文分別從以上幾方面介紹了基于FPGA 的光纖陀螺慣導(dǎo)系統(tǒng)溫控電路接口設(shè)計(jì),該設(shè)計(jì)目前已應(yīng)用于實(shí)際系統(tǒng)中。經(jīng)過驗(yàn)證,接口滿足系統(tǒng)要求,工作狀態(tài)良好。本文所述的FPGA 接口設(shè)計(jì)方案是可靠,穩(wěn)定和高效的??蔀槠渌嚓P(guān)應(yīng)用提供有益的借鑒。