- 相關(guān)推薦
一種PC104溫度采集卡的設(shè)計(jì)
的控制器的設(shè)計(jì)過程。該控制器提供了一定的數(shù)據(jù)緩沖能力和多種參數(shù)的工作方式,使得PC104采集卡的功能比較強(qiáng)大和全面,并且非常靈活。其設(shè)計(jì)思路值得以后類似的采集卡借鑒。實(shí)際運(yùn)行結(jié)果表明,該采集卡的設(shè)計(jì)是成功的,并且工作可靠。關(guān)鍵詞:溫度采集AD7711PC104控制器CPLD
PC104總線是一種出現(xiàn)已久的棧式總線,基本上屬于ISA總線的變型。模塊尺寸很。90mm×96mm),多個(gè)模塊通過針孔結(jié)構(gòu)堆疊而成,形成的系統(tǒng)結(jié)構(gòu)緊湊、抗沖擊性能好,加上現(xiàn)在廣泛應(yīng)用的低功耗技術(shù),使PC104總線特別適于用戶自行開發(fā)特殊應(yīng)用產(chǎn)品。
對于低速率、高精度的測量系統(tǒng)而言,A/D芯片AD7711是個(gè)功能完事的模擬前端。它直接從傳感器接收信號(hào),通過一個(gè)可編程的增益控制后將信號(hào)送到模擬調(diào)節(jié)器,再經(jīng)濾波后輸出一個(gè)16位的串行數(shù)字字。它的主要結(jié)構(gòu)特點(diǎn)是:內(nèi)部包含有一個(gè)∑-ΔA/D轉(zhuǎn)換器,具有非常高的轉(zhuǎn)換精度;兩個(gè)通道的可編程增益前端;帶內(nèi)部SRAM的校正控制器,使得校正因子可讀可寫;時(shí)鐘發(fā)生器;低通數(shù)字濾波器,具有可編程的通阻帶分截點(diǎn);一個(gè)雙向串行通信端口,能較方便地與微處理器接口;可以單電壓或雙電壓供電,具有較低的功耗。
對于RTD(電阻式溫度檢測)傳感器的應(yīng)用,AD7711是一款很不錯(cuò)的選擇。本文介紹的PC104采集卡主要用于分布式溫度點(diǎn)采集測量,上面集成了12個(gè)AD7711,形成12個(gè)通道,每個(gè)通道可以輸入兩路模擬信號(hào),其中一路為單極性輸入,另一路為雙極性輸入。
1電路原理
PC104溫度采集卡主要由12個(gè)AD7711、通道控制器、PC104棧式連接器組成,其原理框圖如圖1所示。板卡地址輸入由撥盤開關(guān)完成。串口E2PROM用來保存每個(gè)通道的校準(zhǔn)參數(shù)和一些板卡工作參數(shù)。另外還提供了配置ROMEPC2。
通道控制器采用Altera公司的CPLD器件FLEX10K50QC240來實(shí)現(xiàn)。PC104主機(jī)首先初始化通道控制器,通過板卡命令對板卡進(jìn)行操作,如啟動(dòng)、停止、設(shè)置工作參數(shù)(如中斷選擇、每分鐘采校次數(shù)、輸出因子等)。然后通道控制器對各個(gè)AD7711通道進(jìn)行操作,如寫AD7711的控制寄存器、讀寫其校準(zhǔn)寄存器里的校正因子、讀取每個(gè)通道的采樣數(shù)據(jù)。通道控制器的另一個(gè)功能是模擬PC104主機(jī)的指示對串口E2PROM進(jìn)行讀寫操作,并提供結(jié)果。
采樣頻率有1Hz、2Hz、4Hz、8Hz、16Hz、32Hz、64Hz等,指定每個(gè)通道每分鐘等間隔采樣次數(shù)。板卡的控制器提供數(shù)據(jù)緩沖能力,每個(gè)采樣周期都將12個(gè)通道的數(shù)據(jù)保存在緩沖器里。在存儲(chǔ)了若干個(gè)采樣周期的數(shù)據(jù)后,向主機(jī)發(fā)出中斷,讓PC104總線讀走數(shù)據(jù),輸出因子則指定每次中斷采樣周期的個(gè)數(shù)。板卡提供八個(gè)ISA中斷,主機(jī)可以選擇其中一個(gè)。
AD7711每次采樣16位數(shù)據(jù),所以主機(jī)PC104總線從通道控制器讀取數(shù)據(jù)時(shí),使用16位I/O訪問,因此/IOCS16和SBHE信號(hào)應(yīng)當(dāng)被驅(qū)動(dòng),而IOCHRDY則被用來插入等待周期。由于通道控制器和AD7711都采用10MHz時(shí)鐘,所以對于CPU主頻比較快的PC104總線,其ALE、/IOW、/IOR、AEN等信號(hào)的有效電平脈寬是與時(shí)鐘周期有關(guān)系的,此時(shí)它們的脈寬可能比板卡的時(shí)鐘周期100ns要小,故不能用它們直接作為時(shí)鐘使能,而應(yīng)當(dāng)利用它們的沿來鎖存地址,并觸發(fā)得到寬脈沖信號(hào)完成使能,鎖存數(shù)據(jù)。
AD7711采用自時(shí)鐘方式。SCLK提供串行時(shí)鐘輸出;SDATA是串行數(shù)據(jù)位;/DRDY的下降沿表明數(shù)據(jù)字準(zhǔn)備好,當(dāng)傳送完畢時(shí)恢復(fù)到高電平;/TFS、/RFS是發(fā)送和接收數(shù)據(jù)幀同步信號(hào);A0是地址輸入,表明是對AD7711控制寄存器操作,還是對AD7711數(shù)據(jù)或校準(zhǔn)寄存器操作。
圖2
2通道控制器的設(shè)計(jì)
2.1邏輯框圖
這里采用CPLD器件FLEX10K50QC240來實(shí)現(xiàn)通道控制器的所有邏輯。其內(nèi)部邏輯原理框圖如圖2所示。主要的功能有:①包含有若干個(gè)控制或狀態(tài)寄存器,主要用來設(shè)置工作參數(shù)和對AD7711通道進(jìn)行控制;②對AD7711的數(shù)字界面提供接口;③提供足夠的數(shù)據(jù)緩沖能力;④具有可編程的采樣時(shí)鐘發(fā)生器;⑤具有內(nèi)部RAM和控制讀取片外串口E2PROM的能力。
當(dāng)主機(jī)的PC104總線地址被驅(qū)動(dòng)時(shí),則在ALE的下降沿鎖存地址。當(dāng)選中板卡地址時(shí)(這里以0x280~0x28f為例),則利用/IOW的上升沿鎖存數(shù)據(jù),并根據(jù)地址譯碼的不同,鎖存到不同的寄存器里。這里有四個(gè)控制寄存器,即通道操作寄存器(CtlReg,0x282)、板卡命令寄存器(CmdReg,0x286)、用于串口E2PROM和內(nèi)部RAM的存儲(chǔ)器操作控制寄存器(EepReg,其中包括用于控制的16位寄存器0x288和數(shù)據(jù)寄存器0x289)及參數(shù)寄存器(ParaReg,0x280)。由于通道操作寄存器是32位,主機(jī)對同一個(gè)口地址(如0x282)連續(xù)進(jìn)行兩個(gè)16位寫操作,因此利用兩個(gè)連續(xù)的/IOW寫數(shù)據(jù)。通道操作寄存器低24位是寫入AD7711的數(shù)據(jù),即24位控制字或校準(zhǔn)數(shù)據(jù)。高8位的含義如下:
R/WF1F0CHCH3CH2CH1CH0
R/W:0表示寫,1表示讀。
F1,F(xiàn)0:00表示對AD7711控制寄存器操作,11表示對AD7711校準(zhǔn)寄存器操作,01則是讀取數(shù)據(jù)。
CHCH3CH3CH1CH0:1xxxx表示全通道操作,0xxxx表示某單通道操作。
因?yàn)榉峙浣o每塊采集卡的I/O地址空間有限,所以利用板卡命令寄存器的低8位作為參數(shù)數(shù)據(jù),高8位作為命令/參數(shù)類型。為了穩(wěn)定可靠地鎖存數(shù)據(jù),參數(shù)寄存器的使能信號(hào)由板卡命令寄存器寫造中信號(hào)延時(shí)兩個(gè)野兔周期得到。參數(shù)類型是指采樣速率、輸出因子、中斷號(hào)。板卡命令寄存器高8位提供的命令有啟動(dòng)(START)、停止、同步(驅(qū)動(dòng)AD7711的/sync線)、復(fù)位、FIFO清零等命令。
圖2中的粗線表示數(shù)據(jù)的流向。通道主控器(ChnMaster)與AD7711數(shù)字界面接口,負(fù)責(zé)產(chǎn)生AD7711的所有讀寫時(shí)序。一共有12個(gè)通道主控器,可以并行地工作,由通道觸發(fā)電路(ChnTrigger)觸發(fā)和指定串/并工作方式。它將通道操作寄存器給出的并行24位控制字或校準(zhǔn)數(shù)據(jù)(由CtlReg.F1F0決定)轉(zhuǎn)換成串行數(shù)據(jù),由SDATA發(fā)送出去,或者讀取AD7711的數(shù)據(jù)寄存器和控制/校準(zhǔn)寄存器,將串行數(shù)據(jù)轉(zhuǎn)換成24位和16位的并行數(shù)據(jù)。當(dāng)通道主控器產(chǎn)生Rdy信號(hào)時(shí)表示接收完畢,新的數(shù)據(jù)已經(jīng)獲得。
根據(jù)通道操作寄存器的24~28位,有全通道和單通道工作方式。
當(dāng)CH=1時(shí),為全通道的數(shù)據(jù)采集并行工作方式。如果板卡命令START有效,可編程時(shí)鐘發(fā)生器(ProgClkGen)則根據(jù)采樣速率輸出采樣時(shí)鐘。采樣時(shí)鐘直接或經(jīng)定時(shí)器(Timer)延時(shí)后產(chǎn)生Tpt信號(hào)輸入到通道觸發(fā)電路,產(chǎn)生通道使能信號(hào)Ena,從而觸發(fā)通道主控器開始工作。每個(gè)通道的通道主控器讀取AD7711的數(shù)據(jù),當(dāng)16位數(shù)據(jù)讀完時(shí),輸出Rdy信號(hào)?刂品峙淦鳎―irector)接收采樣時(shí)鐘和Rdy信號(hào)。當(dāng)所有通道的Rdy信號(hào)都收到時(shí),輸出通道選擇信號(hào)到4~16多路選擇器,依次選通各個(gè)通道的數(shù)據(jù),并產(chǎn)生FIFO寫控制信號(hào),將每個(gè)通道的數(shù)據(jù)寫入FIFO里。當(dāng)采樣次數(shù)達(dá)到輸出因子大小時(shí),就通過中斷產(chǎn)生模塊(IntrGen)輸出一個(gè)指定的中斷脈沖。PC104主機(jī)接收到中斷后,讀取參數(shù)寄存器(0x280)的值,其大小即為輸出數(shù)據(jù)的個(gè)數(shù)?刂品峙淦鬟對主機(jī)連續(xù)讀取數(shù)據(jù)的/IOR信號(hào)進(jìn)行計(jì)數(shù),若該次中斷讀取的數(shù)據(jù)完畢,產(chǎn)生中斷處理結(jié)束信號(hào),允許下次對FIFO進(jìn)行寫操作。
當(dāng)CH=0時(shí),由CH3CH2CH1CH0決定對哪個(gè)通道操作,一般對AD7711讀寫控制字和校準(zhǔn)字時(shí)使用單通道的操作。當(dāng)PC104主機(jī)寫控制寄存器時(shí),內(nèi)部產(chǎn)生一個(gè)表示寫新控制字完畢的脈沖信號(hào),觸發(fā)通道觸發(fā)電路使之產(chǎn)生一個(gè)通道使能信號(hào)Ena,使相應(yīng)的通道主控器開始工作。如果寫AD7711控制/校準(zhǔn)寄存器,則通道主控器將24位數(shù)據(jù)鎖存,進(jìn)行并-串轉(zhuǎn)換發(fā)送出去。如果讀AD7711控制/校準(zhǔn)豁口,則通道主控器接收串行數(shù)據(jù)并轉(zhuǎn)換成24位并行數(shù)據(jù)。通道操作寄存器的通道號(hào)決定多路選擇器的輸出,將數(shù)據(jù)鎖存到通道寄存器數(shù)據(jù)鎖存器(0x284)里。操作完成后,狀態(tài)寄存器的busy位為0,主機(jī)就可以從地址0x284讀取到相應(yīng)AD7711控制/校準(zhǔn)寄存器里的數(shù)據(jù)。
圖2里還包括了內(nèi)部RAM和對外部串口E2PROM?梢猿跏蓟疪AM,使CPLD在上電時(shí)就保存有各通道校準(zhǔn)參數(shù),但是若修改固化參數(shù),必須重新編譯和對外部配置器件編程,用戶主機(jī)不能修改。若將參數(shù)保存在片外的串口E2PROM,則可以對其讀和寫,以方便用戶主機(jī)根據(jù)實(shí)際情況校準(zhǔn)各個(gè)通道,并保存新的校準(zhǔn)參數(shù)。
2.2通道主控器的設(shè)計(jì)
通道主控器的主要結(jié)構(gòu)如圖3所示,包括左移移位寄存器、/RFS和TFS生成模塊、SCLK計(jì)數(shù)器。發(fā)送時(shí),內(nèi)部輸入數(shù)據(jù)通過LodSht鎖存,通過移位從Sdata_o輸出;接收時(shí),串行數(shù)據(jù)從Sdata_I輸入,通過移位得到并行數(shù)據(jù)(24位)輸出到內(nèi)部。ClrSht和EnaSht分別是清零和使能信號(hào)。
2.3FIFO和RAM
FIFO提供數(shù)據(jù)緩沖能力。FLEX10K50QC240能夠提供2880個(gè)邏輯單元、10個(gè)嵌入式陣列塊(EAB),總計(jì)20480個(gè)RAM位。根據(jù)板卡的要求,最大的輸出因子為32,它所需的最大RAM位為32×12×16=6144。每個(gè)EAB只能配置成256×8bit,深度為384、數(shù)據(jù)位寬為16的FIFO需要占用4個(gè)EAB。所以FIEX10K50QC240完全可以滿足要求,實(shí)際上它可以實(shí)現(xiàn)最大輸出因子為64所需要的FIFO緩沖。這里使用Altera公司提供的參數(shù)化模塊LPM_FIFO來實(shí)現(xiàn)所需的模塊。它是一個(gè)單時(shí)鐘同步FIFO,支持同時(shí)讀和寫。
2.4控制分配器
控制分配器主要輸出通道選擇信號(hào)和FIFO的寫控制信號(hào)。當(dāng)條件滿足時(shí),便輸出從1~12個(gè)FIFO寫控制信號(hào)。這里休用狀態(tài)機(jī)實(shí)現(xiàn)這一過程。
2.5可編程時(shí)鐘發(fā)生器
采樣脈沖由10MHz時(shí)鐘計(jì)數(shù)分頻得到,其頻率由主機(jī)寫到參數(shù)寄存器的參數(shù)決定。計(jì)數(shù)器的預(yù)置值與參數(shù)存在一一對應(yīng)關(guān)系。方法一是采用譯碼器,由于輸出的預(yù)置值是24位,則邏輯復(fù)雜,需占用大量的邏輯單元資源。方法二是使用查找表,采用三段8位的ROM來實(shí)現(xiàn),僅占用若干RAM位,簡單有效。
通道控制器內(nèi)部邏輯的原理設(shè)計(jì)完成后,所有的詳細(xì)設(shè)計(jì)都采用硬件描述語言VHDL實(shí)現(xiàn),并在MAX+PULSII集成環(huán)境下編譯、模擬、綜合,最后下載到外部配置器件EPC2中。首先規(guī)劃好每個(gè)子功能塊的模型,子功能模型可以使用狀態(tài)模型,也可以使用時(shí)序圖進(jìn)程模型來描繪。其次選擇適當(dāng)?shù)拿枋龇绞骄帉懘a。編寫代碼的方式非常重要,因?yàn)閂HDL綜合工具將依據(jù)設(shè)計(jì)代碼方式映射成相應(yīng)的器件邏輯,VHDL代碼的編寫方式將直接影響到設(shè)計(jì)的結(jié)果。
本文介紹的PC104溫度采集卡不僅完成了代碼設(shè)計(jì)和功能仿真驗(yàn)證,最后還在實(shí)際系統(tǒng)中得到成功應(yīng)用。結(jié)果表明,這款PC104溫度采集卡不僅設(shè)計(jì)緊湊、功能強(qiáng)大而且非常靈活,很適合用于過程控制、智能傳感器、便攜式工業(yè)設(shè)備、分布式工業(yè)測量等場合。其中通道控制器是采集卡的設(shè)計(jì)核心,它的詳細(xì)設(shè)計(jì)過程對其它類似的采集卡控制器設(shè)計(jì)也有一定的借鑒意義。
【一種PC104溫度采集卡的設(shè)計(jì)】相關(guān)文章:
基于PC104總線的故障診斷裝置的設(shè)計(jì)08-06
基于TC534的數(shù)據(jù)采集卡設(shè)計(jì)08-06
USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)08-06
溫度與溫度計(jì)教學(xué)設(shè)計(jì)08-17
基于TLC5540的高速數(shù)據(jù)采集卡設(shè)計(jì)08-06
另一種溫度作文【精選】02-05
另一種溫度作文12-16