基于IC卡的記錄式溫度表
摘要:基于IC卡的溫度表是一種新穎的現(xiàn)場儀表。它利用IC卡作為信息載體進(jìn)行雙向數(shù)據(jù)傳送,可以共享PC機(jī)的強(qiáng)大功能;利用PC機(jī),可對(duì)儀表的測(cè)量數(shù)據(jù)進(jìn)行記錄、分析、處理、存檔、打印、繪制曲線等,具有記錄波形的功能。
關(guān)鍵詞:IC卡 熱電阻傳感器 采樣時(shí)間 1 一種新穎的記錄儀表 溫度計(jì)是常用的熱工儀表,常用于工業(yè)現(xiàn)場作為過程的溫度測(cè)量。在工業(yè)生產(chǎn)過程中,不僅需要了解當(dāng)前溫度讀數(shù),而且還希望能了解過程中的溫度變化情況。最近,筆者設(shè)計(jì)的基于IC卡的記錄式溫度表,價(jià)格與數(shù)字式溫度表相近;但可以記錄、存儲(chǔ)數(shù)據(jù),并可通過IC卡與PC機(jī)接口,是一種新穎的記錄式儀表。 該溫度表將熱電阻傳感器測(cè)得的溫度信號(hào),經(jīng)過信號(hào)調(diào)理和A/D轉(zhuǎn)換,在面板上顯示,同時(shí)將數(shù)據(jù)存儲(chǔ)在儀表中的E2PROM中。在儀表的面板上有一個(gè)鑰匙小孔,當(dāng)用戶需要時(shí),只要將IC卡插入,即可取出存儲(chǔ)的數(shù)據(jù)。用戶將IC卡再插入接在普通PC機(jī)打印口上的IC卡讀寫器,即可將數(shù)據(jù)送入PC機(jī)。利用PC機(jī)的強(qiáng)大功能,可進(jìn)行數(shù)據(jù)處理、分析、顯示、存儲(chǔ)、打印。這種儀表不僅可以顯示讀數(shù),而且還可以記錄溫度的實(shí)時(shí)變化。例如,可以顯示或打印一個(gè)過程的溫度曲線。這種溫度表用極低的代價(jià),使數(shù)字溫度表升級(jí)成為電記錄儀表,實(shí)現(xiàn)了儀表的信息化。 與集散系統(tǒng)中的儀表相比,該溫度表不用連接導(dǎo)線,而且IC卡作為信息載體傳送數(shù)據(jù)。雖然在速度上比不上現(xiàn)場總線的快捷和方便,但同時(shí)也避免了拉長線所帶來的干擾問題,同時(shí)不受距離、儀表數(shù)量的限制。因此,適用于分散、固定在工業(yè)現(xiàn)場的各種儀表。 本設(shè)計(jì)采用銅熱電阻作為溫度傳感器。傳感器作為電橋的一臂,用三線制接入電橋。電橋電壓經(jīng)運(yùn)算放大器7650放大后送入模/數(shù)轉(zhuǎn)換器。在本設(shè)計(jì)中,采用7107作為模/數(shù)轉(zhuǎn)換器,7107是三位半雙積分式模/數(shù)轉(zhuǎn)換器,可直接驅(qū)動(dòng)LED數(shù)碼管。當(dāng)前溫度值由數(shù)碼管直接顯示。單片機(jī)89C51將7107輸出的數(shù)字量取到計(jì)算機(jī)中。7107輸出的是七段字形代碼,位數(shù)較多。經(jīng)邏輯化簡后,這三位半數(shù)字可簡化為16位二進(jìn)制代碼。由軟件進(jìn)行反譯碼可以得到8421的BCD碼。選用7107作為A/D轉(zhuǎn)換器,是考慮到該芯片的性價(jià)比高。得到的溫度數(shù)字量存入儀表內(nèi)部的E2PROM 24C256中。 24C256是I2C總線的串行E2PROM。可存放32KB數(shù)據(jù),可重復(fù)擦寫10萬次,數(shù)據(jù)保存100年不丟失,寫入時(shí)間為10ms,可采用頁寫入方式,一次寫入64字節(jié)。在I2C總線上最多可掛接4片24C256芯片,通過地址線A1、A0的硬接線進(jìn)行選片。 IC卡也是由一片24C256芯片組成,IC卡上的插座掛接在I2C總線上。儀表內(nèi)的24C256片地址是“00”,IC卡上的24C256的片地址是“01”。IC卡上有五個(gè)引腳:電源、地、SDA、SCL、RDY。RDY在卡上與地短接,用來給單片機(jī)作卡插入判別信號(hào)。 圖1是該溫度表的硬件接線原理圖。 DS1302是一片串行時(shí)鐘日歷芯片,可進(jìn)行秒、分、時(shí)、日、月、星期、年的走時(shí);在芯片內(nèi)部還有31字節(jié)的靜態(tài)RAM可資利用;在2.5V工作時(shí),芯片電流小于300nA;外接備用電池,在外部停電的情況下可長期正常走時(shí)可給系統(tǒng)提供記錄數(shù)據(jù)的實(shí)時(shí)時(shí)間。另外,DS1302內(nèi)部的RAM可以作NVRAM來使用,存儲(chǔ)儀表的工作參數(shù)。 在單片機(jī)的P3.4口線上,接有一只有源訊響器。該訊響器用作IC卡讀、寫指示和超限報(bào)警。在IC卡進(jìn)行讀/寫操作時(shí),訊響器發(fā)出均勻的“嘟嘟”聲。讀/寫結(jié)束后音響停止。如讀/寫錯(cuò)誤,則發(fā)出短促報(bào)警聲。在IC卡未插入的正常工作情況,如溫度超過設(shè)定值,則發(fā)出溫度超限報(bào)警。 3 存儲(chǔ)分配和軟件考慮 用于記錄式溫度表的IC卡有兩種:一種用于設(shè)定儀表的工作參數(shù),稱“參數(shù)卡”;另一種用于讀取儀表的工作參數(shù)和溫度數(shù)據(jù),稱“數(shù)據(jù)卡”。工作參數(shù)包括卡標(biāo)志字、表號(hào)、采樣時(shí)間、超限設(shè)定,時(shí)間/日期。標(biāo)志字用來區(qū)別參數(shù)卡和數(shù)據(jù)卡。采樣時(shí)間可以從1s到1小時(shí)任意設(shè)定。如按1s的時(shí)間間隔進(jìn)行采樣,則最多可存放10小時(shí)的數(shù)據(jù)。如按1次/小時(shí)的時(shí)間間隔采樣溫度,則1次可取出8年的溫度數(shù)據(jù)。 在主程序中,單片機(jī)的工作是按時(shí)讀取A/D的輸出數(shù)字量,將數(shù)據(jù)存入24C256中;并將該數(shù)據(jù)與超限報(bào)警的設(shè)置值進(jìn)行比較,如超過了設(shè)定值,則啟動(dòng)訊響器進(jìn)行報(bào)警。 每存放一個(gè)數(shù)據(jù),必須修改一次地址指針。該地址指針存放在DS1302的NVRAM中。在系統(tǒng)停電的情況下,地址指針保存在NVRAM中不致丟失,以便在系統(tǒng)恢復(fù)送電時(shí),從該地址繼續(xù)記錄數(shù)據(jù)。該指針在IC卡讀取數(shù)據(jù)時(shí)也作為工作參數(shù)一起取走,送入PC機(jī)。PC機(jī)根據(jù)該指針來確定IC卡上的有效數(shù)據(jù)的長度。該指針不能存放在24C256中,因?yàn)镋2PROM的寫操作次數(shù)是有限的。另外,在對(duì)7107讀數(shù)時(shí),為防止7107數(shù)字量翻轉(zhuǎn)時(shí)可能出現(xiàn)的競爭現(xiàn)象,在程序中安排對(duì)A/D進(jìn)行兩次取數(shù)。只有在兩次取數(shù)的值相同時(shí),才認(rèn)為是一次有效數(shù)據(jù),否則應(yīng)重新取數(shù)。 在主程序中,單片機(jī)掃描RDY信號(hào),判斷有無IC卡插入,如有卡插入,則根據(jù)卡上的標(biāo)志字確定是參數(shù)卡還是數(shù)據(jù)卡。不同的卡采用不同的讀/寫流程。不論何種卡,在讀/寫操作時(shí)都要啟動(dòng)定時(shí)器,使訊響器發(fā)出均勻的“嘟-嘟”讀/寫訊號(hào)。 IC卡取出后,數(shù)據(jù)傳送到PC機(jī)中。PC機(jī)的IC卡讀/寫器接在PC機(jī)的并行打印口的25針插座上,數(shù)據(jù)從打印口進(jìn)入計(jì)算機(jī)。因一般的PC機(jī)打印口只有單向輸出數(shù)據(jù)的能力,為了與串行E2PROM實(shí)現(xiàn)雙向數(shù)據(jù)傳送,在打印插頭上外接一塊三態(tài)門電路,其線路連接如圖2所示。PC機(jī)數(shù)據(jù)輸出通過三態(tài)門送到SDA上。當(dāng)PC機(jī)輸入數(shù)據(jù)時(shí),三態(tài)門關(guān)閉,SDA上的信號(hào)通過打印插頭的15腳進(jìn)入PC機(jī)。因讀/寫電路和IC卡的電流很小,可以從打印口的空閑數(shù)據(jù)線上取得電源。只要在讀/寫過程中,將這些線置成高電平即可。 PC機(jī)對(duì)數(shù)據(jù)的管理采用菜單方式進(jìn)行,其主菜單如下: ①讀入IC卡內(nèi)容并進(jìn)行數(shù)據(jù)的分頁顯示、打印曲線、存檔; ②半溫度表的工作參數(shù)寫入IC卡; ③查看記錄在磁盤上的各臺(tái)儀表的數(shù)據(jù); ④退出。 該程序采用C語言編制,整個(gè)程序包括以下幾個(gè)主要的功能模塊: 讀卡程序模塊—將IC卡數(shù)據(jù)讀入PC機(jī)內(nèi)存區(qū),如有錯(cuò)誤,給出顯示; 寫卡程序模塊—將鍵盤輸入或磁盤上的儀表工作參數(shù)寫入IC卡,如有錯(cuò)誤,給出顯示; 數(shù)據(jù)處理模塊—將被壓縮的二進(jìn)制數(shù)據(jù)解壓為按時(shí)間排列的數(shù)據(jù)表; 顯示數(shù)據(jù)模塊—顯示運(yùn)行記錄表; 顯示曲線模塊—顯示溫度-時(shí)間曲線,并可根據(jù)需要進(jìn)行X軸放大,Y軸放大。 溫度表的工作參數(shù)和溫度數(shù)據(jù),均可在PC機(jī)屏幕上顯示,也可用打印機(jī)打印出來。圖3是溫度表所記錄的某過程的溫度曲線。 結(jié)語 基于IC卡的記錄式溫度表是一種具有存儲(chǔ)功能的儀表。它在儀表與PC機(jī)之間引入了一個(gè)簡單方便的接口,從而可以利用PC機(jī)的強(qiáng)大功能,使儀表成為一個(gè)數(shù)據(jù)采集的黑盒子。只黑盒子里的數(shù)據(jù),可以方便地從鑰匙孔里取出,從而使溫度的實(shí)時(shí)記錄成為可能。這種記錄式儀表,不僅適用于溫度表,也適用于其它儀表。對(duì)于分散在工業(yè)現(xiàn)場的各種分立式儀表,這是實(shí)現(xiàn)儀表信息化的切實(shí)可行的辦法。 |