COP8CDR9微控制器在多路數(shù)據(jù)采集中的應(yīng)用
前端數(shù)據(jù)采集能夠及時獲取被控對象和生產(chǎn)過程的有效信息,在某些實時性要求高的場合尤為重要。工業(yè)生產(chǎn)過程中,為了清晰地反映出生產(chǎn)過程的詳細信息,往往需要獲得多個參量的動態(tài)數(shù)據(jù),這就有必要對被控對象和生產(chǎn)過程進行多路數(shù)據(jù)采集。COP8CDR9系列微控制器是美國國家半導(dǎo)體公司(National Semicondutor)推出的CMOS型8位FLASH微控制器產(chǎn)品。該系列產(chǎn)品集成度高,如:它集成了多達16路的10位A/D轉(zhuǎn)換器、32KB可加密的FLASH程序存儲器、1KB的數(shù)據(jù)存儲器、1個全雙工串行通信口、為節(jié)能設(shè)計的雙時鐘運行模式以及支持在紅編程功能等。它能夠以優(yōu)越的性價比運用在多數(shù)工業(yè)生產(chǎn)中。該系列產(chǎn)品,采用44腳或68腳PLCC封裝,以下是其主要的結(jié)構(gòu)特點,如圖1所示。
本文結(jié)合COP8CDR9微控制器的功能特點,重點介紹該型號芯片在多路數(shù)據(jù)采集系統(tǒng)中的應(yīng)用。
1 COP8CDR9的A/D轉(zhuǎn)換特性
以采用68腳PLCC的COP8CDR9為例。其PORTA和PORTB口為雙功能口,既可用作一般的I/O口,也是A/D轉(zhuǎn)換時模擬信號的輸入端口。當(dāng)用作A/D轉(zhuǎn)換口時,PORTA、PORTB口支持兩種信號的輸入模式:一種是單端模擬信號輸入模式,另一種是差分輸入模式。因而可根據(jù)檢測對象的特點靈活也選擇信號輸入模式進行A/D轉(zhuǎn)換。
為配合A/D轉(zhuǎn)換功能,COP8CDR9微控制器在其內(nèi)部RAM映射表中有3個可直接操作的寄存器與之相關(guān)。其中,2個是轉(zhuǎn)換結(jié)果寄存器和1個A/D轉(zhuǎn)換控制寄存器,它們使得A/D轉(zhuǎn)換的軟件編程工作可以輕松完成。由于該微控制器提供了10位精度的轉(zhuǎn)換,而該微處理器為8位系統(tǒng),因而需要2個寄存器來暫存轉(zhuǎn)換結(jié)果。這2個寄存器是高位轉(zhuǎn)換結(jié)果寄存器(ADRSTH)和低位轉(zhuǎn)換結(jié)果寄存器(ADRSTL),在RAM中的映射地址分別是0CCH和0CDH。轉(zhuǎn)換結(jié)果寄存器的數(shù)據(jù)存放格式如表1所列。轉(zhuǎn)換控制寄存器(ENAD)用來選擇A/D轉(zhuǎn)換通道、A/D轉(zhuǎn)換模式、多通道輸出以及啟動A/D轉(zhuǎn)換。ENAD寄存器中各位的設(shè)置決定了微控制器A/D轉(zhuǎn)換工作方式。其中,CHANNEL
SELECT中的四位采用BCD碼來選擇轉(zhuǎn)換通道。當(dāng)MOD=0時,PORTA、PORTB口中的每位用作單端輸入模式;當(dāng)MOD=1時,PORTA、PORTB口中的每相鄰兩位用作差分信號輸入模式;當(dāng)X=1時,芯片還具有多通道輸出的功能;Prescale位可用來選擇A/D轉(zhuǎn)換的時鐘頻率,當(dāng)該位置位時,A/D轉(zhuǎn)換的工作頻率為主時鐘的16分頻,否則,轉(zhuǎn)換頻率和主時鐘頻率相同;當(dāng)Busy位置位時,片內(nèi)A/D轉(zhuǎn)換模塊啟動A/D轉(zhuǎn)換。完成一次A/D轉(zhuǎn)換所需要的典型時間為15個A/D轉(zhuǎn)換周期。A/D轉(zhuǎn)換完畢,EAND寄存器的Busy位被機器內(nèi)部硬件自動復(fù)位,并將轉(zhuǎn)換結(jié)果存入ADRSTH和ADRSTL寄存器中,供總線讀取。另外,該芯片內(nèi)部提供A/D轉(zhuǎn)換的參考電壓,用作A/D轉(zhuǎn)換時只需將V+和Vcc連接,V-和GND連接。ENAD寄存器中各位的定義詳見參考文獻[1]。
Channel select:A/D轉(zhuǎn)換通道選擇位,它由4位組成;
Mode select:A/D轉(zhuǎn)換模式選擇位;
Mux/Out:多路轉(zhuǎn)換器/輸出選擇位;
Prescale:預(yù)定標功能選擇位;
Busy:A/D轉(zhuǎn)換狀態(tài)位。
2 COP8CDR9構(gòu)成的前端多路數(shù)據(jù)采集系統(tǒng)
由于COP8CDR9微控制器有著豐富的I/O資源以及多達32KB的片內(nèi)FLASH程序存儲器,因而可以在不外擴I/O(PLCC68封裝)或外擴I/O口(PLCC44封裝)的情況下,組成圖2所示的前端多路數(shù)據(jù)采集系統(tǒng)。
如圖2所示,該數(shù)據(jù)采集系統(tǒng)主要包括6個功能子模塊,能夠運用在大多數(shù)工業(yè)數(shù)據(jù)采集、記錄場合。下面逐一介紹各個功能子模塊。
(1)A/D轉(zhuǎn)換子模塊
該模式主要完成從模擬信號輸入到量程轉(zhuǎn)換(0~5V電壓),輸入方式轉(zhuǎn)換,再到芯片內(nèi)部完成模擬量的數(shù)字量化。一次典型A/D轉(zhuǎn)換子程序如下:
…… ;初始化(略)
LD PORTAC,#X'00H
LD PORTAD,#X'00H
LD PORTBC,#X'00H ;設(shè)置A、B口為輸入口
LD PBD,#X'00H
A/D:LD ENAD,#X'00H;對0通道單端輸入信號進行轉(zhuǎn)換
SBIT O,ENAD ;啟動A/D轉(zhuǎn)換
LD REG1,#X'20H
WAIT:DRSZ REG1 ;延時,等待A/D轉(zhuǎn)換結(jié)果
…… ;相應(yīng)處理程序
對于信號單端直接輸入而言,其線路簡單、易于實現(xiàn),但可能信號干擾嚴重。信號差分輸入具有抗干擾能力強的特點,圖3為多路數(shù)據(jù)采集中采用的抗干擾差分輸入轉(zhuǎn)換電路。差分轉(zhuǎn)換后電流為10~20mA。
(2)鍵盤顯示模塊
該模塊為實現(xiàn)人機接口而設(shè)計。這可用來設(shè)定A/D轉(zhuǎn)換的工作方式,比如,是多路巡回檢測轉(zhuǎn)換還是對特定的某位進行轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果通過顯示子模塊顯示出來,可采用常用的8279芯片來實現(xiàn)。
(3)FLASH數(shù)據(jù)存儲器模塊
在某些需要記錄重要數(shù)據(jù)的場合,比如數(shù)據(jù)黑匣子,就需要對采集到的實時數(shù)據(jù)立即保存,并且在系統(tǒng)掉電后,這些重要數(shù)據(jù)不被丟失。串行或并行FLASH數(shù)據(jù)存儲器能夠較好地解決這個問題。由于COP8CDR9微控制器自帶32KB
FLASH閃速程序存儲器,并且其支持Virtual EEPROM(虛擬電寫電擦除只讀程序存儲),即在一起記錄數(shù)據(jù)不大(小于32KB減去片內(nèi)程序所占用的存儲空間)的情況下,可以直接把采集到的數(shù)據(jù)寫入片內(nèi)FLASH中。這樣,可以充分利用系統(tǒng)資源降低成本,并且提高系統(tǒng)工作的可靠性。
(4)實時時鐘模塊
該模塊為多路實時數(shù)據(jù)采集系統(tǒng)提供一個統(tǒng)一的時間標準,方便后續(xù)的數(shù)據(jù)分析??蛇x用自帶鋰電池的實時時鐘芯片DS12C887來實現(xiàn)。
(5)ISP接口模塊
在系統(tǒng)編程ISP(In System Programming)接口模塊,使技術(shù)人員不需要拆卸已經(jīng)安裝好垢前端采集系統(tǒng),就能夠很方便地對前端采集系統(tǒng)進行程序更新升級。該接口可以利用美國國家半導(dǎo)體公司推出的微控制器微總線方式SI(Serial
In)、SO(Serial Out)和SK(Serial Clock)來實現(xiàn),也可以選擇任意3根I/O通過軟件編程實現(xiàn)ISP功能。
(6)RS485串行通信模塊
COP8CDR9集成了一個全雙工可軟件編程的USART口,可以方便進行串行數(shù)據(jù)通信。該微控制器構(gòu)成的數(shù)據(jù)采集系統(tǒng)采用RS485總線進行信號差分傳輸,克服了RS232總線傳輸距離有限的缺陷,并且通過上位機編碼。RS485總線可以方便地把多個前端數(shù)據(jù)采集系統(tǒng)組合成一個分布式數(shù)據(jù)采集系統(tǒng)。
3多路數(shù)據(jù)采集系統(tǒng)在列車實時監(jiān)控中的應(yīng)用
列車運行狀況監(jiān)控系統(tǒng)主要用來記錄列車在運行過程中的諸如發(fā)電機組電流、電壓、線座溫度以及制動系統(tǒng)壓力值等參量的變化情況。其中,列車空氣制動系統(tǒng)主要由每節(jié)車廂底部的主風(fēng)缸、儲風(fēng)缸、副風(fēng)缸、制動缸及管道組成。這些參數(shù)直接關(guān)系到列車運行過程的安全性,而現(xiàn)有列車在運行時缺乏對前端實時數(shù)據(jù)進行采集的有效手段。列車運行狀況主要依靠列車值班員的感官和工作經(jīng)驗來判斷,盡管列車經(jīng)過一定年限要進行全面檢修,但由于不能及時發(fā)現(xiàn)安全隱患,所以制約了進一步提高列車運行的可靠性。采用由COP8CDR9組成的多路數(shù)據(jù)采集系統(tǒng),可以對諸如溫度、壓力等傳感器轉(zhuǎn)換成的電量信息進行采集、存儲、并上傳給上位車載計算機,起到實時獲取列車運行狀況的作用,以提高列車運行安全性。圖4給出了運行列車綜合數(shù)據(jù)采集系統(tǒng)構(gòu)成的實時監(jiān)控系統(tǒng)。其中上位機是新型列車上的計算機,該新型的列車每節(jié)車廂配備有RS485總線接口;下位機為安裝在每節(jié)車廂同的以COP8CDR9微控制器為核心的前端多路數(shù)據(jù)采集系統(tǒng)。圖4中的可移動硬盤可將采集到的數(shù)據(jù)在列車到站后導(dǎo)入鐵路局地面上型數(shù)據(jù)庫系統(tǒng)。該數(shù)據(jù)庫系統(tǒng)用來分析和記錄列車的運行狀況。
結(jié)束語
COP8CDR9微控制器具有豐富的I/O資源,強大的多路A/D轉(zhuǎn)換能力,可以在外圍擴展電路不太復(fù)雜的條件下實現(xiàn)多路數(shù)據(jù)采集的功能。該系統(tǒng)系統(tǒng)具有較高的性價比,可以適用于多數(shù)具有一定精度要求的現(xiàn)場數(shù)據(jù)采集場