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