基于MSP430單片機(jī)的智能IC卡水表控制器
摘要:介紹了一種以MSP430單片機(jī)為控制核心的IC卡水表控制器的設(shè)計方案。將微控制器和4442卡技術(shù)、I2C總線技術(shù)、流量計量技術(shù)及低壓檢測技術(shù)等相結(jié)合,實現(xiàn)了水表管理的高效率和智能化。詳細(xì)介紹了該控制器的基本結(jié)構(gòu)及各模塊的軟硬件設(shè)計原理。樣機(jī)試驗表明該智能水表控制器具有功能完善、計量準(zhǔn)確及通信可靠等特點。
關(guān)鍵詞:IC卡水表;4442卡;I2C總線;MSP430
0 引言
隨著IC卡應(yīng)用的普及,利用IC卡實現(xiàn)“預(yù)付費方式”的水費管理成為可能。目前的電子水表按照抄表的方式主要可以分為網(wǎng)絡(luò)式和分立式。由于在某些場合需要對舊的水表系統(tǒng)改造,如果采用網(wǎng)絡(luò)式抄表方式需要進(jìn)行抄表線路的鋪設(shè),這給施工帶來很大的問題。而分立式的IC卡水表收費系統(tǒng)則無需考慮這一問題,這為管理部門和用戶提供了極大的便利。
1 硬件電路設(shè)計
本控制器以MSP430單片機(jī)為控制核心。MSP430系列單片機(jī)是美國TI公司從1996年開始推向市場的一種16位RISC架構(gòu)、超低功耗的混合信號處理器。電源采用1.8~3.6 V低電壓、RAM數(shù)據(jù)保持方式下耗電僅0.1μA,活動模式下耗電250μA/MIPS,IO口漏電流僅為50 nA(一般單片機(jī)為1~10μA)。非常適合水、燃?xì)?、熱、電表等電池供電設(shè)備的設(shè)計。單片機(jī)系統(tǒng)圖如圖1所示。系統(tǒng)整體電路方案如圖2所示。
1.1 IC卡接口部分電路設(shè)計
利用德國西門子SLE 4442卡與單片機(jī)進(jìn)行通信,來完成對水表的控制、用戶充值和查看水量等功能。IC卡接口電路便是IC卡與單片機(jī)連接的樞紐。本設(shè)計可兼容4442卡和T5557卡兩種卡片。電路預(yù)留了單片機(jī)與IC卡的接口??筛鶕?jù)設(shè)計需要靈活選擇卡片種類。SLE4442卡遵循I2C協(xié)議,讀寫時序與I2C相類似。
一般說來,IC卡只要直接和單片機(jī)相連即可以應(yīng)用,但是為了使設(shè)計更加穩(wěn)定,在IC卡與單片機(jī)之間增加一些電阻以達(dá)到保護(hù)的目的。另外IO口和卡到位檢測需要上拉電阻,以保證其可以正常操作。在水表的標(biāo)準(zhǔn)中要求水表要有防靜電的功能,所以在IC卡座的設(shè)計上,加上TVS管保證在遭受靜電后,此IC卡座仍能正常工作。
1.2 E2PROM電路的設(shè)計
采用CAT24WC02芯片,它為2 Kb串行E2PROM,與400kHz I2C總線兼容,1.8~6.0 V工作電壓范圍,低功耗CMOS技術(shù),具有寫保護(hù)功能,當(dāng)WP為高電平時進(jìn)入寫保護(hù)狀態(tài)。頁寫緩沖器、自定時擦寫周期為1 000 000編程/擦除周期,可保存數(shù)據(jù)100年。8腳DIPSOIC或TSSOP封裝,溫度范圍分為商業(yè)級、工業(yè)級和汽車級。本系統(tǒng)利用存儲芯片對水表中的數(shù)據(jù)進(jìn)行存儲。E2PROM中存儲的數(shù)據(jù)掉電之后不丟失,這樣就避免了由于掉電導(dǎo)致的數(shù)據(jù)丟失,可靠性較高。
1.3 電源檢測電路設(shè)計
電源檢測電路主要是用來檢測低壓,當(dāng)電源電壓過低的時候,通過低壓檢測電路檢測到,進(jìn)行相應(yīng)的操作,避免出現(xiàn)不必要的錯誤。具體工作原理如圖3所示,當(dāng)PWR_CHECK_EN為高電平時,此電路工作,此時,Q9導(dǎo)通,Q8的基極為低電平,VBAT端一直為高電平,Q8導(dǎo)通,WR_ CHECK腳的電壓為R17和R20分壓得到。之后,PWR_CHECK端的電壓作為MSP430內(nèi)部ADC的輸入端,和1.5 V的電源相比較得到比較結(jié)果,確定是否為低壓。電容的作用是防止電壓突變引起的AD采樣錯誤。PWR_CHECK_EN端口設(shè)置主要是為了低功耗設(shè)計,低壓檢測需要一定的時間間隔,當(dāng)不需要檢測的時候此端口置高,以節(jié)省功耗。
1.4 脈沖檢測電路的設(shè)計
MSP430F149單片機(jī)最多可以提供1路數(shù)字I/O接口,即P1~P7。MSP430單片機(jī)的I/O端口有8個管腳。每個I/O管腳都可以獨立地設(shè)置為輸入或者輸出方向,并且每個I/O接線都可以被獨立地讀取或者寫入。所有接口的寄存器都可以被獨立地置位或者清零。MSP430系列單片機(jī)具有豐富的I/O口資源和中斷資源,其中P1,P2端口是有中斷能力的。本設(shè)計中可以利用P1,P2端口的中斷能力來實現(xiàn)對脈沖的計量。利用中斷來完成計量有利于節(jié)省單片機(jī)資源。
脈沖檢測電路如圖4所示。利用4個呈環(huán)形均勻分布的干簧管進(jìn)行脈沖計數(shù),當(dāng)有磁鐵靠近干簧管時,簧片吸合。此時只要將干簧管的一端接地,一端接入單片機(jī)的I/O口,將單片機(jī)的I/O口設(shè)置為中斷允許,隨著葉輪的轉(zhuǎn)動,基表中的磁鐵也跟著轉(zhuǎn)動,轉(zhuǎn)過一圈之后,四個干簧管分別吸合,I/O口通過中斷來完成4個計數(shù),這樣即可完成脈沖的計數(shù)。
2 軟件設(shè)計
軟件主要涉及系統(tǒng)時鐘配置、IC卡與單片機(jī)通信、低壓檢測程序、E2PROM相關(guān)程序、報警程序、閥門控制程序、液晶顯示程序等,這里主要介紹脈沖檢測和通信模塊的程序設(shè)計。
2.1 脈沖檢測程序
脈沖檢測部分是水表的重要組成部分,主要用作流量的計量,水表的整個換算體系都是以此為基礎(chǔ)的,流量汁量是衡量水表性能的重要標(biāo)志。脈沖檢測的原理是:當(dāng)有磁鐵靠近干簧管的時候,干簧管的簧片吸合。根據(jù)當(dāng)四個干簧管分別吸合一次,即表示水流過一圈(在本程序中設(shè)定當(dāng)流過五圈表示1 m3水量),由此可以得到用水量。此時將累計用水量加1,并存入到E2PROM中。具體流程圖如圖5所示。
2.2 通信模塊程序設(shè)計
SLE 4442卡主要包括三個存儲器:256×8位E2PROM型主存儲器(地址0~31為保護(hù)數(shù)據(jù)區(qū)、32~255后24字節(jié)為應(yīng)用數(shù)據(jù)區(qū),該區(qū)數(shù)據(jù)讀寫不受限制,擦除和寫入受加密存儲器數(shù)據(jù)校驗結(jié)果影響)、32×1位PROM型保護(hù)存儲器(一次性編程以保護(hù)主存儲器保護(hù)數(shù)據(jù)區(qū),防止一些固定的標(biāo)識參數(shù)被改動,保護(hù)存儲器同樣受加密存儲器數(shù)據(jù)校驗結(jié)果的影響)、4×8位E2PROM型加密存儲器。讀卡和寫卡流程如圖6和圖7所示。
3 結(jié)論
本文討論了以MSP430單片機(jī)為控制核心的IC卡智能水表控制器的設(shè)計方案,該控制器具有水量計量、換算充值、各種異常的檢查等功能,并帶有RF和M-Bus抄表的擴(kuò)展接口。該系統(tǒng)實現(xiàn)了用水收費的電子化和智能化,改變了先用水后收費的不合理狀況,促進(jìn)了用水計量、收費的科學(xué)化管理。該裝置具有操作簡單、低功耗、方便、可靠等特點,具有良好的推廣使用前景。
評論