<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > TM卡信息紐扣在預(yù)付費(fèi)水表中的應(yīng)用

          TM卡信息紐扣在預(yù)付費(fèi)水表中的應(yīng)用

          ——
          作者:魚瑞文 龔成龍 時(shí)間:2007-08-22 來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用 收藏

            摘要:探討預(yù)付費(fèi)智能冷水表設(shè)計(jì)中的關(guān)鍵技術(shù),通過與IC卡進(jìn)行比較,確定Dallas公司的iButton作為預(yù)付費(fèi)充值存儲卡。對讀寫方法與信息保密機(jī)制、控制器軟硬件設(shè)計(jì)、最小功耗設(shè)計(jì)與電池長壽供電方法等多方面技術(shù)進(jìn)行整合,設(shè)計(jì)機(jī)電一供化系統(tǒng)。在設(shè)量控制精度、功耗、數(shù)據(jù)保密性、動作可靠性等方面都取得良好性能。

              關(guān)鍵詞:預(yù)付費(fèi) 冷水水表 最小功耗設(shè) iButton

          引言

            智能水表是一種涉及到多方面技術(shù)整合的機(jī)電一體化系統(tǒng),在計(jì)量控制精度、功耗、數(shù)據(jù)保密性、動作可靠性等方面都有嚴(yán)格的性能要求。目前,國內(nèi)企業(yè)與研究機(jī)構(gòu)主要致力于遠(yuǎn)傳表有線水表網(wǎng)絡(luò)和IC卡預(yù)付費(fèi)智能卡無線水表網(wǎng)絡(luò)方面的研究開發(fā)。遠(yuǎn)傳表有線網(wǎng)絡(luò)系統(tǒng)需要配套的遠(yuǎn)傳通信網(wǎng)絡(luò)支持,其初期投資大,因此只適用于在一些新建住宅小區(qū)組成相對獨(dú)立的小網(wǎng);而后者的網(wǎng)絡(luò)服務(wù)可由銀行的金融網(wǎng)絡(luò)提供,儲值卡作為網(wǎng)絡(luò)傳輸介質(zhì),可容易地組建城域網(wǎng),不但適用于新建住宅小區(qū),還可在舊水網(wǎng)系統(tǒng)改造中發(fā)揮極大作用,特別適合我國現(xiàn)階段的國情。目前,預(yù)付費(fèi)智能水表主要采用IC卡,信息保密性與防盜用性能方面存在明顯不足。本文研究Dallas公司的半導(dǎo)體作為充值存儲介質(zhì),構(gòu)建預(yù)付費(fèi)智能卡式冷水表,在基表上附加計(jì)量控制器和管道開閉控制閥門,實(shí)現(xiàn)預(yù)付費(fèi)智能卡式水表的設(shè)計(jì)。

          1 TM卡信息紐扣應(yīng)用研究

          1.1 TM卡信息紐扣簡介

            作為一種便攜式信息載體,Dallas公司的iButton信息紐扣[1]可靠安全,特別適宜作為預(yù)付費(fèi)充值載體。它采直徑17mm、厚3~6mm的紐扣狀不銹鋼外殼封裝,內(nèi)部由I/O處理器和存儲器兩個(gè)基本部分組成,其內(nèi)部結(jié)構(gòu)如圖1所示。作為一種新穎的智能化信息載體,iButton信息紐損采用接觸式存取方式的存儲器(Touch Memory,簡稱TM卡),以1-Wire規(guī)范作為通信協(xié)議,其外殼為信號址,用1根數(shù)據(jù)線按特定的時(shí)序要求由數(shù)據(jù)線逐位與外界交換數(shù)據(jù)。與微處理器的典型接口電路如圖2所示,當(dāng)外部上位引線接觸到其信號線時(shí),可自動發(fā)出下拉報(bào)到脈沖,存取操作極為方便。

            筆者在TM卡智能預(yù)付費(fèi)冷水水表項(xiàng)目研究中,通過對IC卡、TM卡的存儲數(shù)據(jù)格式、保密性能以及耐用性等多方面性能進(jìn)行比較研究,最終選定TM卡作為水表智能信息存儲介質(zhì)。TM卡采用不銹鋼外殼封裝,無易損部件或易腐部件,具有攜帶方便、抗撞擊、防水漬、耐腐蝕、抗磁擾、防折疊等顯著特點(diǎn),適用于惡劣的環(huán)境。1-Wire通信協(xié)議使得TM卡存取數(shù)據(jù)極為方便,與觸頭輕輕一碰,瞬間即可完成數(shù)據(jù)信息的讀寫操作;其完善的保密存取方式,確保數(shù)據(jù)信息具有相當(dāng)高的完全可靠性,TM卡與普通IC卡的性能比較如表1所列。

            表1 TM卡與IC卡的性能比較

            TM卡 普通IC卡

            耐用性 不銹鋼封裝,壽命在10以上 塑料卡片封裝,彎曲會損壞芯片,開放的引腳裸露,容易磨損導(dǎo)致接觸不良,18個(gè)月左右壽命

            識別成功率 100% 需要一定的刷卡技巧

            使用方便性 瞬間接觸,無需對準(zhǔn) 4個(gè)不同插卡方向,性只有1個(gè)方向是正確的

            安全性 具有全球唯一的、不可復(fù)制的光記得序列號,同時(shí)提供64位密碼保護(hù) 單純依靠軟件密碼保護(hù)數(shù)據(jù)內(nèi)容,且密碼位數(shù)少,容易被破解

            攜帶方便性 不怕高溫、磨損、碰摔,耐腐,不易丟失 卡片容易丟失、拆斷、易腐,須小心保護(hù)

          1.2 1-Wire通信協(xié)議與讀寫控制程序設(shè)計(jì)

            TM卡內(nèi)部包含有3個(gè)獨(dú)立的64字節(jié)數(shù)據(jù)存儲區(qū)和1個(gè)64字節(jié)讀寫緩沖區(qū),每個(gè)數(shù)據(jù)存儲區(qū)均由8字節(jié)ID身份碼、8字節(jié)PASSWORD和48字節(jié)NVRAM數(shù)據(jù)區(qū)構(gòu)成。TM卡的1-Wire通信協(xié)議以15μs低電平脈沖表示數(shù)據(jù)“1”,以60μs低電平脈沖表示數(shù)據(jù)“0”。內(nèi)部工作過程可描述為:首先,由微機(jī)主動向TM卡發(fā)測試脈沖,以識別TM卡是否已與其觸頭接觸,若已正確連續(xù),可接收到TM卡發(fā)來的應(yīng)答脈沖,表示可以進(jìn)入數(shù)據(jù)通信過程。這時(shí),微機(jī)先發(fā)操作TM卡的ROM區(qū)的指令,如讀ROM區(qū)數(shù)據(jù)指令、匹配操作指令、搜尋操作指令等,這些指令被TM卡接受并執(zhí)行。然后,發(fā)操作TM卡的NV RAM區(qū)數(shù)據(jù)的指令,如讀寫NV RAM區(qū)數(shù)據(jù)指令、讀寫或復(fù)制讀寫緩沖區(qū)數(shù)據(jù)的指令等。TM卡的讀寫時(shí)序可分為測試連接與應(yīng)答、從TM卡讀取數(shù)據(jù)和向TM卡寫入數(shù)據(jù)3種類型。

            筆者在項(xiàng)目研發(fā)中重點(diǎn)研究了TM卡的信息存儲機(jī)理,并研究獲得了一個(gè)性能優(yōu)良的密碼保護(hù)模式,確保了一表一卡對應(yīng)。我們根據(jù)研究獲得的信息存儲模式維制了存取可靠安全的TM卡讀寫控制程序模塊。水表控制器1-Wire讀寫模塊采用MCS-51匯編語言,按TM卡通信協(xié)議編制。管理PC機(jī)的讀寫控制程序采用Visual C++6.0編寫。應(yīng)用軟件開發(fā)過程中,對TM卡進(jìn)行數(shù)據(jù)讀寫的過程需要遵循其工作機(jī)理和時(shí)序要求,具體包括:

           ?、贉y試連接及應(yīng)答。微機(jī)發(fā)測試負(fù)脈沖給TM卡,查詢TM卡是否已在觸頭正確連接。若與觸頭連接良好,TM卡則將數(shù)據(jù)線拉低,產(chǎn)生應(yīng)答負(fù)脈沖。如果微機(jī)檢測到這個(gè)應(yīng)答脈沖,就可以進(jìn)行數(shù)據(jù)讀寫操作了。

           ?、趶腡M卡讀取數(shù)據(jù)。微機(jī)先向TM卡發(fā)1個(gè)讀負(fù)脈沖,TM卡接收該脈沖后立即將被讀取位的內(nèi)容送至數(shù)據(jù)線上,微機(jī)從數(shù)據(jù)線上獲得數(shù)據(jù)。若數(shù)據(jù)線在TM卡的采樣時(shí)區(qū)內(nèi)維持高電平,則讀取值為“1”;否則,為“0”。最后,TM卡釋放數(shù)據(jù)線,數(shù)據(jù)線恢復(fù)為高電平,為微機(jī)繼續(xù)從TM卡讀取數(shù)據(jù)位作好準(zhǔn)備。

            ③將數(shù)據(jù)寫入TM卡。與讀取數(shù)據(jù)類似,微機(jī)向TM卡發(fā)1個(gè)寫負(fù)脈沖,然后開始寫數(shù)據(jù)。微機(jī)維持?jǐn)?shù)據(jù)線低電平特定時(shí)間,再恢復(fù)為高電平,則表明寫入“0”;微機(jī)發(fā)出寫負(fù)脈沖后立即將數(shù)據(jù)線拉高并維持特定時(shí)間,則表明寫入“1”。完成數(shù)據(jù)寫入后,數(shù)據(jù)線恢復(fù)為高電平,為微機(jī)繼續(xù)向TM卡寫入數(shù)據(jù)位作好準(zhǔn)備。

          2 TM卡預(yù)付費(fèi)智能冷水水表設(shè)計(jì)

            TM卡預(yù)付費(fèi)智能冷水水表由基表、SCP微處理器系統(tǒng)、LCD顯示驅(qū)動電路、電動陶瓷閥門及其控制電路、刷卡電路等部分組成。采用符合ISO4064B標(biāo)準(zhǔn)的CDTAR系列單流旋翼式冷水水表作為基表。該表計(jì)數(shù)機(jī)構(gòu)與測量機(jī)構(gòu)經(jīng)磁耦合傳動,可將用水量轉(zhuǎn)換成電信號輸出;表內(nèi)設(shè)有磁保護(hù)裝置,具有較強(qiáng)的抗外磁干擾能力。設(shè)計(jì)過程中重點(diǎn)對水表整機(jī)功耗、成本、體積、重量、外觀等方面進(jìn)行優(yōu)化研究;水表控制器設(shè)計(jì)中采用了I2C總線、最小功耗設(shè)計(jì)、表面貼裝技術(shù)專門定制LCD液晶驅(qū)動器模塊以及產(chǎn)品造型設(shè)計(jì)等多項(xiàng)先進(jìn)技術(shù),完成嵌入式機(jī)電系統(tǒng)優(yōu)化設(shè)計(jì)。

          2.1 微控制器系統(tǒng)設(shè)計(jì)

            使用的微控制器P87LPC76X屬于MCS-51兼容型[2],與標(biāo)準(zhǔn)51單片機(jī)相比,盡管只有20引腳,卻提供了I2C通信總線、灌電流達(dá)到20mA的18條I/O口線、1個(gè)WDT看門狗定時(shí)器。它具有許多獨(dú)特的功能,特別適用于設(shè)計(jì)高集成度、低成本、低功耗的智能設(shè)備。本項(xiàng)目充分利用這些資源,擴(kuò)展了I2C接口EEPROM、時(shí)鐘芯片電路、LCD顯示驅(qū)動電路,完成高集成化系統(tǒng)擴(kuò)展設(shè)計(jì)。控制器硬件框圖如圖3所示。

          2.2 水表控制器程序設(shè)計(jì)

            P87LPC76X單片機(jī)檢測到用戶按鍵后,通過TM卡讀寫電路讀入用戶購買的水量,并保存到數(shù)據(jù)保存器EEPROM中,同時(shí)液晶顯示模塊顯示用戶購買的水量及表中剩余的水量。閥門驅(qū)動檢測電路檢測閥門開關(guān)狀態(tài),打開閥門,用戶可以正常用水。水表每10升發(fā)1個(gè)計(jì)量脈沖,MCU通過計(jì)量檢測電表每10升發(fā)1個(gè)計(jì)量脈沖,MCU通過計(jì)量檢測電路檢測到水表發(fā)來的脈沖后,從數(shù)據(jù)保存器EEPROM中保存的剩余水量中減去10升。當(dāng)剩余水量為提示性關(guān)閥水量時(shí),MCU通過閥門驅(qū)動檢測電路關(guān)閉閥門。用戶按鍵后控制電路打開閥門,恢復(fù)供水,當(dāng)剩余水量為預(yù)設(shè)值(通常為零噸)時(shí)徹底關(guān)閥。整表工作狀態(tài)檢測電路主要實(shí)現(xiàn)整個(gè)控制電路的電池供電電壓的檢測、磁干擾檢測、TM卡讀寫電路異常檢測、閥門開閉異常檢測等,并將整表工作狀態(tài)信息保存到數(shù)據(jù)保存電路中,同時(shí)還寫到TM卡中,以便于收費(fèi)管理軟件在讀寫用戶TM卡時(shí)能及時(shí)了解用戶水表的工作狀態(tài)。用戶在任何時(shí)候都可以按鍵,通過液晶顯示用水情況及水表工作狀態(tài)。程序流程如圖4所示。

          2.3 電池長壽供電與最小功耗設(shè)計(jì)

            智能水表作為一種新型換代產(chǎn)品,必須具備良好的免維護(hù)性能,其設(shè)計(jì)目標(biāo)應(yīng)在規(guī)定整機(jī)壽命內(nèi),需要用戶進(jìn)行的相關(guān)操作越少越好。本設(shè)計(jì)采用以下技術(shù)措施,徹底解決了目前各類IC卡均未能突破的電池供電最小功耗設(shè)計(jì)這難題,整機(jī)待機(jī)電流只有18~40μA。

            ①應(yīng)用P87LPC76X單片機(jī)的節(jié)電模式,降低控制器功耗。CDTAR基表每10升發(fā)1個(gè)計(jì)量脈沖,若設(shè)用戶每月充值1次,若再設(shè)計(jì)LCD顯示器只有用戶按鍵后顯示一般時(shí)間后自動關(guān)閉,這意味著控制器只在極小的時(shí)間片內(nèi)進(jìn)行流量檢測、讀寫TM卡和顯示操作,控制器在絕大部分時(shí)間片內(nèi)可以處于待機(jī)狀態(tài)。P87LPC76X單片機(jī)支持掉電模式,掉電工作電流僅1μA。控制程序設(shè)計(jì)中,P87LPC76X單片機(jī)自檢后即將PCON寄存器內(nèi)PD位置“1”,進(jìn)入掉電模式,以TM卡插卡中斷、按鍵中斷、流量脈沖中斷、WDT定時(shí)中斷(對應(yīng)程序跑飛出錯(cuò)等故障)作為喚醒P87LPC76X的動作,P87LPC76X處理完相應(yīng)中斷服務(wù)后再次進(jìn)入掉電模式。經(jīng)測試發(fā)現(xiàn),采用這一方式可使P87LPC76X以極低的平均電流實(shí)現(xiàn)對系統(tǒng)的控制操作。

           ?、诤侠硗晟频慕涌陔娐返凸膬?yōu)化措施,降低整機(jī)功耗。P87LPC76X進(jìn)入掉電模式后,外圍接口電路的功率消耗不可忽視。本設(shè)計(jì)中的外圍接口電路主要有:EEPROM、LCD顯示驅(qū)動、日歷時(shí)鐘、流量脈沖檢測電路、閥門開閉控制電路等。為減小電流消耗,需對電路進(jìn)行反復(fù)精簡優(yōu)化,采用的措施包括:應(yīng)用I2C總線設(shè)計(jì)外圍接口,降低功耗;盡量由P87LPC76X的I/O口線提供外圍芯片供電或片選端控制;門電路使用CMOS電路;上拉電路采用小電流結(jié)構(gòu)。

            ③靈巧合理的電動陶瓷閥門,降低控制執(zhí)行機(jī)構(gòu)耗能。自行開發(fā)了DC2.7~3.6V電池供電陶瓷電動閥門,其機(jī)械結(jié)構(gòu)靈巧合理,動作電流僅120mA。設(shè)計(jì)獨(dú)特的閥門開閉狀態(tài)位置檢測機(jī)構(gòu)既保證了動作可靠性,也可避免無謂的電池能量損失。

            ④嚴(yán)密完善的電池壽命測算,保證長壽供電。設(shè)計(jì)中,我們選取武漢力興14505M DC3.6V/3Ah功率型鋰電池。該電池具有自放電電流小、瞬時(shí)電流大等優(yōu)點(diǎn),符合系統(tǒng)長壽供電要求。

          結(jié)束語

            三表(電表、水表、煤氣表)智能網(wǎng)絡(luò)工程是我國重點(diǎn)支持的新興高技術(shù)產(chǎn)業(yè),《中國住宅產(chǎn)品發(fā)展綱要》等國家建設(shè)部和科委的若干文件中都明確對三表提出了智能化、網(wǎng)絡(luò)化要求。開發(fā)可靠價(jià)廉、易于推廣應(yīng)用的預(yù)付費(fèi)智能卡式水表及其網(wǎng)絡(luò)系統(tǒng)是今后智能水表行業(yè)的主要產(chǎn)業(yè)發(fā)展方向。本文介紹的基于TM卡的預(yù)付費(fèi)智能冷水水表已通過江蘇省質(zhì)量技術(shù)監(jiān)督局的樣機(jī)試驗(yàn)檢測。該表計(jì)量范圍為0~99 999.999M 3。單電池工作壽命6~10年,工作穩(wěn)定可靠,數(shù)據(jù)保密性強(qiáng),具有良好的抗外力敲擊、外磁干擾等惡性盜用能力。各項(xiàng)技術(shù)指標(biāo)符合GB/T778.1.2.3-96《冷水水表》國家標(biāo)準(zhǔn)和



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();