基于FPGA的工控領(lǐng)域監(jiān)控系統(tǒng)設(shè)計(jì)
AD7705包括6個(gè)用戶可通過串口訪問的片內(nèi)寄存器。其中第一個(gè)是通訊寄存器,用于管理通道選擇,決定下一個(gè)操作是讀操作還是寫操作,以及下一次讀或?qū)懩囊粋€(gè)寄存器。所有與器件的通訊必須從寫通訊寄存器開始。上電或復(fù)位后,器件將等待在通訊寄存器上進(jìn)行一次寫操作;
第二個(gè)是設(shè)置寄存器,用于決定校準(zhǔn)模式、增益設(shè)置、單/雙極性輸入以及緩沖模式;
第三個(gè)是時(shí)鐘寄存器,其中包括濾波器選擇位和時(shí)鐘控制位;
第四個(gè)是數(shù)據(jù)寄存器,器件輸出的數(shù)據(jù)從這個(gè)寄存器讀出;
第五個(gè)是零標(biāo)度校準(zhǔn)寄存器,AD7705包含兩組獨(dú)立的零標(biāo)度寄存器,每個(gè)零標(biāo)度寄存器負(fù)責(zé)一個(gè)輸入通道。它們都是24位讀,寫寄存器;
第六個(gè)是滿標(biāo)度校準(zhǔn)寄存器,AD7705包含兩組獨(dú)立的滿標(biāo)度寄存器,每個(gè)滿標(biāo)度寄存器負(fù)責(zé)一個(gè)輸入通道。它們都是24位讀/寫寄存器。本文引用地址:http://www.ex-cimer.com/article/180882.htm
AD7705的寫操作時(shí)序圖如圖5所示。在將片選端CS拉低后,即可在串行時(shí)鐘的上升沿發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù)時(shí),高位在前。
AD7705的讀操作時(shí)序圖如圖6所示。當(dāng)在AD7705的DRDY信號(hào)腳檢測(cè)到邏輯低電平時(shí),表示可以從AD7705的數(shù)據(jù)寄存器獲取新的輸出字,當(dāng)完成對(duì)一個(gè)完全的輸出字的讀操作后,DRDY引腳立即回到高電平。如果在兩次輸出更新之間,不發(fā)生數(shù)據(jù)輸出,DRDY將在下一次輸出更新前500個(gè)輸入時(shí)鐘時(shí)間返回高電平。DRDY處于高電平時(shí),不能進(jìn)行讀操作。當(dāng)數(shù)據(jù)更新后,DRDY又返回低電平。
2.2 FPGA接口的軟件設(shè)計(jì)
FPGA與AD7705共有5個(gè)接口引腳,分別為片選端CS、串行時(shí)鐘端SCLK、串行數(shù)據(jù)輸入端DIN、串行數(shù)據(jù)輸出端DOUT和串行數(shù)據(jù)請(qǐng)求端
DRDY。
讀AD7705的數(shù)據(jù)寄存器前,需先設(shè)置其時(shí)鐘寄存器和設(shè)置寄存器,下面以1通道為例來簡要說明,首先向AD7705發(fā)送串行數(shù)據(jù)0x20,表示下一操作選擇時(shí)鐘寄存器,接著發(fā)送串行數(shù)據(jù)0x0C,設(shè)置時(shí)鐘為2分頻,然后發(fā)送Oxl0,表示下一操作選擇設(shè)置寄存器,接著發(fā)送串行數(shù)據(jù)0x44,表示設(shè)置寄存器模式為自校準(zhǔn),增益l,單極性,無緩沖,然后再向AD7705發(fā)送0x38,表示可以讀通道1的數(shù)據(jù)寄存器,并等待AD7705的DRDY變低,然后發(fā)送16個(gè)時(shí)鐘,以讀取通道1的16位轉(zhuǎn)換數(shù)據(jù)。通道2的數(shù)據(jù)讀取與通道1的數(shù)據(jù)讀取相似,發(fā)送的數(shù)據(jù)分別為0x21,0x0C,
0x11,0x44,0x39。
3 結(jié)束語
本文用有限狀態(tài)機(jī)在FPGA上實(shí)現(xiàn)了對(duì)有SPI接口的AD轉(zhuǎn)換器AD7705的接口應(yīng)用,并對(duì)AD7705的兩路輸入信號(hào)進(jìn)行了實(shí)時(shí)采集。事實(shí)上,選用通用I/O口模擬SPI時(shí)序,相比標(biāo)準(zhǔn)SPI接口IP核更為簡潔,可以節(jié)約FPGA的片上資源。由于AD7705提供有雙通道、低成本、高分辨率的模數(shù)轉(zhuǎn)換功能,因此,采用∑-△結(jié)構(gòu)實(shí)現(xiàn)模數(shù)轉(zhuǎn)換,可使得該器件在噪音環(huán)境下免受干擾,因而很適合于工業(yè)控制應(yīng)用。
評(píng)論