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