《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 一種PC104溫度采集卡的設(shè)計(jì)

一種PC104溫度采集卡的設(shè)計(jì)

2008-08-11
作者:何曰光

??? 摘 要: 介紹了一種用于12路通道溫度采集的PC104采集卡" title="采集卡">采集卡的設(shè)計(jì)。重點(diǎn)描述了實(shí)現(xiàn)通道校正、采集數(shù)據(jù)的控制器的設(shè)計(jì)過程,。該控制器提供了一定的數(shù)據(jù)緩沖能力和多種參數(shù)的工作方式,使得PC104采集卡的功能比較強(qiáng)大和全面,,并且非常靈活,。其設(shè)計(jì)思路值得以后類似的采集卡借鑒。實(shí)際運(yùn)行結(jié)果表明,,該采集卡的設(shè)計(jì)是成功的,,并且工作可靠。
??? 關(guān)鍵詞: 溫度采集? AD7711? PC104? 控制器? 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)品。
??? 對(duì)于低速率、高精度的測(cè)量系統(tǒng)而言,,A/D芯片AD7711是個(gè)功能完整的模擬前端,。它直接從傳感器接收信號(hào),通過一個(gè)可編程的增益控制后將信號(hào)送到模擬調(diào)節(jié)器,,再經(jīng)濾波后輸出一個(gè)16位的串行數(shù)據(jù)" title="串行數(shù)據(jù)">串行數(shù)據(jù)字,。它的主要結(jié)構(gòu)特點(diǎn)是:內(nèi)部包含有一個(gè)∑-△ A/D轉(zhuǎn)換器,具有非常高的轉(zhuǎn)換精度,;兩個(gè)通道的可編程增益前端,;帶內(nèi)部SRAM的校正控制器,使得校正因子可讀可寫,;時(shí)鐘發(fā)生器,;低通數(shù)字濾波器,具有可編程的通阻帶分截點(diǎn),;一個(gè)雙向串行通信端口,,能較方便地與微處理器接口;可以單電壓或雙電壓供電,,具有較低的功耗,。
??? 對(duì)于RTD(電阻式溫度檢測(cè))傳感器的應(yīng)用,AD7711是一款很不錯(cuò)的選擇,。本文介紹的PC104采集卡主要用于分布式溫度點(diǎn)采集測(cè)量,,上面集成了12個(gè)AD7711,形成12個(gè)通道,,每個(gè)通道可以輸入兩路模擬信號(hào),,其中一路為單極性輸入,另一路為雙極性輸入,。
1 電路原理
??? PC104溫度采集卡主要由12個(gè)AD7711,、通道控制器、PC104棧式連接器組成,,其原理框圖如圖1所示,。板卡地址輸入由撥盤開關(guān)完成。串口" title="串口">串口E2PROM用來保存每個(gè)通道的校準(zhǔn)參數(shù)和一些板卡工作參數(shù),。另外還提供了配置ROM EPC2,。

?


??? 通道控制器采用Altera公司的CPLD器件FLEX10K50QC240來實(shí)現(xiàn)。PC104主機(jī)首先初始化通道控制器,,通過板卡命令對(duì)板卡進(jìn)行操作,,如啟動(dòng)、停止,、設(shè)置工作參數(shù)(如中斷選擇、每分鐘采樣次數(shù)、輸出因子等),。然后通道控制器對(duì)各個(gè)AD7711通道進(jìn)行操作,,如寫AD7711的控制寄存器" title="控制寄存器">控制寄存器、讀寫其校準(zhǔn)寄存器里的校正因子,、讀取每個(gè)通道的采樣數(shù)據(jù),。通道控制器的另一個(gè)功能是根據(jù)PC104主機(jī)的指示對(duì)串口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í)鐘,,所以對(duì)于CPU主頻比較快的PC104總線,其ALE,、/IOW,、/IOR、AEN等信號(hào)的有效電平脈寬是與時(shí)鐘周期有關(guān)系的,,此時(shí)它們的脈寬可能比板卡的時(shí)鐘周期100ns要小,,故不能用它們直接作為時(shí)鐘使能,而應(yīng)當(dāng)利用它們的沿來鎖存" title="鎖存">鎖存地址,,并觸發(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是地址輸入,,表明是對(duì)AD7711控制寄存器操作,,還是對(duì)AD7711數(shù)據(jù)或校準(zhǔn)寄存器操作。
2 通道控制器的設(shè)計(jì)
2.1 邏輯框圖

??? 這里采用CPLD器件FLEX10K50QC240來實(shí)現(xiàn)通道控制器的所有邏輯,。其內(nèi)部邏輯原理框圖如圖2所示,。主要的功能有:①包含有若干個(gè)控制或狀態(tài)寄存器,主要用來設(shè)置工作參數(shù)和對(duì)AD7711通道進(jìn)行控制,;②對(duì)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,ox280),。由于通道操作寄存器是32位,,主機(jī)對(duì)同一個(gè)口地址(如0x282)連續(xù)進(jìn)行兩個(gè)16位寫操作,因此利用兩個(gè)連續(xù)的/IOW寫數(shù)據(jù),。通道操作寄存器低24位是寫入AD7711的數(shù)據(jù),,即24位控制字或校準(zhǔn)數(shù)據(jù)。高8位的含義如下:

???
??? R/W:0表示寫,,1表示讀,。
??? F1,F0:00表示對(duì)AD7711控制寄存器操作,11表示對(duì)AD7711校準(zhǔn)寄存器操作,,01則是讀取數(shù)據(jù),。
??? CHCH3CH2CH1CH0: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í)鐘周期得到。參數(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ù),??刂品峙淦鬟€對(duì)主機(jī)連續(xù)讀取數(shù)據(jù)的/IOR信號(hào)進(jìn)行計(jì)數(shù),若該次中斷讀取的數(shù)據(jù)完畢,,產(chǎn)生中斷處理結(jié)束信號(hào),,允許下次對(duì)FIFO進(jìn)行寫操作。
??? 當(dāng)CH=0時(shí),,由CH3CH2CH1CH0決定對(duì)哪個(gè)通道操作,,一般對(duì)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和對(duì)外部串口E2PROM??梢猿跏蓟疪AM,,使CPLD在上電時(shí)就保存有各通道校準(zhǔn)參數(shù),但是若修改固化參數(shù),,必須重新編譯和對(duì)外部配置器件編程,,用戶主機(jī)不能修改。若將參數(shù)保存在片外的串口E2PROM,,則可以對(duì)其讀和寫,,以方便用戶主機(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.3? FIFO和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變化的通道選擇信號(hào),,同時(shí)輸出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ù)存在一一對(duì)應(yīng)關(guān)系,。方法一是采用譯碼器,,由于輸出的預(yù)置值是24位,則邏輯復(fù)雜,,需占用大量的邏輯單元資源,。方法二是使用查找表,,采用三段8位的ROM來實(shí)現(xiàn),僅占用若干RAM位,,簡(jiǎn)單有效,。
??? 通道控制器內(nèi)部邏輯的原理設(shè)計(jì)完成后,所有的詳細(xì)設(shè)計(jì)都采用硬件描述語(yǔ)言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è)測(cè)量等場(chǎng)合。其中通道控制器是采集卡的設(shè)計(jì)核心,,它的詳細(xì)設(shè)計(jì)過程對(duì)其它類似的采集卡控制器設(shè)計(jì)也有一定的借鑒意義,。
參考文獻(xiàn)
1 宋萬杰,羅 豐,,吳順君. CPLD技術(shù)及其應(yīng)用[M]. 西安:西安電子科技大學(xué)出版社, 1999
2 AD7711 DataSheet-LC2MOS Signal Condition ADC. Analog?Devices Inc. 1998
3 侯伯亨. VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].? 西安: 西安電子科技大學(xué)出版社, 1999
4 SysCentreModule/SuperDx Technical Handbook. SBS?Science & Technology Co.,Ltd. 1999

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。