摘要 本文完成了系統(tǒng)的硬件電路設(shè)計(jì)和軟件設(shè)計(jì)。硬件電路采用模塊化設(shè)計(jì),包括用水量檢測(cè)電路、IC卡接口電路、電磁閥驅(qū)動(dòng)電路、報(bào)警電路、LED顯示電路等,詳細(xì)分析了各模塊的工作原理;系統(tǒng)軟件采用匯編語(yǔ)言編制,給出了具體的程序流程圖。 系統(tǒng)具有自動(dòng)供停水、插卡智能識(shí)別、身份驗(yàn)證、掉電保護(hù)、LED顯示、電磁閥門智能開(kāi)關(guān)控制、防干擾、防拆卸等功能。
第1章 緒論 本章介紹了本研究課題的背景及意義,闡述了其發(fā)展?fàn)顩r。對(duì)當(dāng)前水資源形勢(shì)、傳統(tǒng)水表和IC卡智能水表的特點(diǎn)及其水表的未來(lái)發(fā)展趨勢(shì)作了概況。另外,簡(jiǎn)要說(shuō)明了本文所做的工作。 1.1 本研究課題的背景及意義 環(huán)境與發(fā)展,是當(dāng)今國(guó)際社會(huì)普遍關(guān)注的重大問(wèn)題,保護(hù)環(huán)境是全人類的共同任務(wù)。水資源作為生態(tài)環(huán)境中的重要資源,是人類生活的生產(chǎn)中不可取代的資源,對(duì)一個(gè)國(guó)家的生存和發(fā)展也是極為重要的。水資源是一切生命的源泉,是人類不可缺少的物質(zhì)條件,沒(méi)有水人類就不能生存,沒(méi)有水人類賴以自下而上的物質(zhì)生產(chǎn)就不能發(fā)展。 由于歷史的原因,我國(guó)大部分城市居民使用自來(lái)水,都是在區(qū)域性水站供水基礎(chǔ)上,逐步發(fā)展成為以單位住宅區(qū)或以樓棟、單元為一戶由自來(lái)水公司抄表收費(fèi)的。目前,這種經(jīng)營(yíng)方式已越來(lái)越不適應(yīng)社會(huì)主義市場(chǎng)經(jīng)濟(jì)發(fā)展的要求,成為人民物資生活迅速提高和供水企業(yè)落后的經(jīng)營(yíng)方式之間產(chǎn)生的主要矛盾。 隨著社會(huì)經(jīng)濟(jì)的發(fā)展和人們生活水平的日益提高,智能化電子產(chǎn)品已逐步深入家庭,我們提出了IC卡智能水表的方案。 IC卡智能水表是一種利用現(xiàn)代微電子技術(shù)、現(xiàn)代傳感技術(shù)、智能IC卡技術(shù)對(duì)用水量進(jìn)行計(jì)量并進(jìn)行用水?dāng)?shù)據(jù)傳遞及結(jié)算交易的新型水表。這與傳統(tǒng)水表一般只具有流量采集和機(jī)械指針顯示用水量的功能相比,是一個(gè)很大的進(jìn)步。IC卡智能水表除了可對(duì)用水量進(jìn)行記錄和電子顯示外,還可以按照約定對(duì)用水量自動(dòng)進(jìn)行控制,同時(shí)可以進(jìn)行用水?dāng)?shù)據(jù)存儲(chǔ)的功能。由于其數(shù)據(jù)傳遞和交易結(jié)算通過(guò)IC卡進(jìn)行,因而可以實(shí)現(xiàn)由工作人員上門操表收費(fèi)到用戶自己去營(yíng)業(yè)所交費(fèi)的轉(zhuǎn)變。IC卡交易系統(tǒng)還具有交易方便,計(jì)算準(zhǔn)確,可利用銀行進(jìn)行結(jié)算的特點(diǎn)。 IC卡智能水表及其管理系統(tǒng)的出現(xiàn),將從根本上解決了已上問(wèn)題。采用IC卡智能水表進(jìn)行交易結(jié)算,不但實(shí)現(xiàn)了用水收費(fèi)的電子化,而且還改變了先用水后收費(fèi)的不合理狀況,使的供水部門能預(yù)先收取部分費(fèi)用,有利于公用事業(yè)的發(fā)展。IC卡智能水表具有成本低、可靠性高、使用壽命長(zhǎng)及安全性好等優(yōu)點(diǎn),可提高居民用水收費(fèi)的管理水平,確保供水部門能及時(shí)收取水費(fèi)。因此,IC卡智能水表成為相關(guān)科研單位關(guān)注的重點(diǎn),具有很好的經(jīng)濟(jì)效益與社會(huì)效益[1] [2]。 1.2 本研究課題的發(fā)展趨勢(shì) 隨著微電子技術(shù)的快速發(fā)展,加上國(guó)家相關(guān)政策的推動(dòng),民用計(jì)量?jī)x表的智能化將是一個(gè)必然的發(fā)展方向。這不僅是中國(guó)的一種趨勢(shì),也將成為世界性的趨勢(shì)。而在近十年里,單體式智能IC卡類儀表又將會(huì)是發(fā)展主流。
從理論上說(shuō),網(wǎng)絡(luò)式智能儀表系統(tǒng)應(yīng)當(dāng)是更好的一種計(jì)量管理模式,并且是最終發(fā)展方向。但是目前,由于網(wǎng)絡(luò)式智能儀表系統(tǒng)的建立條件不成熟,且沒(méi)有相關(guān)系統(tǒng)相配合,所以,單獨(dú)在一個(gè)部門大規(guī)模推動(dòng)建立網(wǎng)絡(luò)式智能儀表系統(tǒng)的優(yōu)點(diǎn)顯現(xiàn)不出來(lái)。而且,僅僅為了提取用水信息就要構(gòu)建一個(gè)信息網(wǎng)絡(luò),從經(jīng)濟(jì)角度講也不合算。
那么,現(xiàn)在普遍采用的單體式智能儀表模式與將來(lái)的網(wǎng)絡(luò)化管理模式是否會(huì)發(fā)生沖突呢,我的看法是不會(huì),相反,還會(huì)促進(jìn)網(wǎng)絡(luò)化管理模式的形成。因?yàn),單體式智能儀表模式與將來(lái)的網(wǎng)絡(luò)模式并不矛盾。因?yàn)椴还苁裁淳W(wǎng)絡(luò)模式,最終必須要有智能終端與其進(jìn)行聯(lián)結(jié),F(xiàn)在采用的單體式智能儀表將來(lái)就可以作為網(wǎng)絡(luò)管理系統(tǒng)的智能儀表終端。所以,它們不是一種沖突關(guān)系,而是一種相承關(guān)系。如果現(xiàn)在就能充分意識(shí)到這一點(diǎn),并尋找合理的技術(shù)方案,在將來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)化時(shí)就會(huì)占有主動(dòng)的地位。
根據(jù)以上的分析,我認(rèn)為,現(xiàn)在采用的單體式智能儀表發(fā)展模式是合理的,是適合現(xiàn)時(shí)需求并具有主流特征的。當(dāng)然,在密集度較高的建筑群里采用的一線四表控制系統(tǒng)也是值得推廣和具有合理發(fā)展前景的。 為了推動(dòng)IC卡智能水表的發(fā)展,全國(guó)有許多研究機(jī)構(gòu)投入力量對(duì)IC卡類智能產(chǎn)品進(jìn)行了開(kāi)發(fā)研究,很多自來(lái)水公司也積極參與了此項(xiàng)開(kāi)發(fā)工作并成功的開(kāi)發(fā)出了自己的產(chǎn)品。從理論角度看,IC卡智能水表已經(jīng)進(jìn)入了成熟期。但是,為什么現(xiàn)在IC卡智能水表的推動(dòng)工作還很困難呢?這不難理解。因?yàn)閺膶?shí)際情況看,現(xiàn)在的IC卡智能水表確實(shí)還存在著許多影響其大規(guī)模推廣使用的問(wèn)題。這些問(wèn)題集中起來(lái)主要是1. 價(jià)格太高;2. 質(zhì)量不可靠;3. 存在安全隱患。 隨著科學(xué)技術(shù)的不斷發(fā)展, IC卡智能水表將會(huì)不斷發(fā)展完善。比如,現(xiàn)在這種在老式水表上取信號(hào)的模式,將會(huì)由先進(jìn)的水流量信號(hào)提取裝置代替,機(jī)械計(jì)量和機(jī)械顯示部分會(huì)被淘汰,而表和閥將會(huì)集中在一體等等?偟恼f(shuō)來(lái),IC卡智能水表是一種先進(jìn)的計(jì)量?jī)x表,對(duì)這種先進(jìn)儀表的大規(guī)模推廣使用將會(huì)有力促進(jìn)中國(guó)供用水管理的現(xiàn)代化進(jìn)程。中國(guó)在這個(gè)方面的超前發(fā)展會(huì)使這種計(jì)量模式得到優(yōu)先完善,并有可能成為中國(guó)的一個(gè)有競(jìng)爭(zhēng)力的產(chǎn)品出口到其它國(guó)家[2][3]。 1.3 本文的工作 詳細(xì)分析課題任務(wù),對(duì)IC卡智能水表的發(fā)展現(xiàn)狀進(jìn)行分析,并對(duì)現(xiàn)代傳感器技術(shù)、IC卡技術(shù)和智能水表控制的原理進(jìn)行了深入的研究,并將其綜合。然后根據(jù)課題任務(wù)的要求設(shè)計(jì)出實(shí)現(xiàn)控制任務(wù)的硬件結(jié)構(gòu)及其原理圖和相關(guān)軟件程序,并進(jìn)行訪真調(diào)試。下面對(duì)本設(shè)計(jì)的主要研究工作做個(gè)簡(jiǎn)述。 1. 根據(jù)設(shè)計(jì)要求,提出幾種方案,對(duì)它們進(jìn)行了全面的論證; 2. 根據(jù)系統(tǒng)需要,合理選擇微處理器,并且詳細(xì)地闡述了它的基本功能特性; 3. 介紹了相關(guān)現(xiàn)代傳感技術(shù),選擇出信號(hào)采集的最佳方案; 4. 根據(jù)低功耗要求,對(duì)電磁閥的選擇與設(shè)計(jì)進(jìn)行了深入的研究; 5. 詳細(xì)分析了E2PROM的工作原理; 6. 對(duì)IC卡技術(shù)做了簡(jiǎn)明扼要的分析,并對(duì)其軟件的讀寫原理進(jìn)行了詳細(xì)的討論; 7. 應(yīng)用LED顯示技術(shù),可隨時(shí)查詢累計(jì)用水總量、可用水量; 8. 改進(jìn)了普遍應(yīng)用電源方案,詳細(xì)地介紹了超級(jí)電容技術(shù)及其在本設(shè)計(jì)中的應(yīng)用; 9. 對(duì)整個(gè)系統(tǒng)的軟、硬件進(jìn)行了深入的分析,并且繪制了相關(guān)硬件電路圖、軟件流程圖,還編寫了相關(guān)軟件程序。 第2章 設(shè)計(jì)思想與方案論證 本章對(duì)智能水表的設(shè)計(jì)思想做了詳細(xì)的介紹,并在設(shè)計(jì)思想的基礎(chǔ)上提出了三種智能水表的設(shè)計(jì)方案,還針對(duì)它們各自的工作原理和優(yōu)缺點(diǎn)進(jìn)行了簡(jiǎn)要分析。最終確定為采用基于AT89C2051單片機(jī)的IC卡智能水表方案。 2.1 設(shè)計(jì)思想 智能水表區(qū)別于傳統(tǒng)的人工抄表就是應(yīng)該具有一定的智能控制功能。針對(duì)目前供水部門與用戶的實(shí)際情況,本設(shè)計(jì)對(duì)智能水表應(yīng)該具有的功能提出了以下設(shè)計(jì)思想: 1. 統(tǒng)計(jì)功能:當(dāng)用戶插入有效卡時(shí),將購(gòu)買水量與剩余水量自動(dòng)相加,并且存入E2PROM以防丟失;當(dāng)用戶用水時(shí),將剩余水量與用水量 自動(dòng)相減,并且存入E2PROM以防丟失。 2. 自動(dòng)供停水功能:當(dāng)剩余水量為0時(shí),自動(dòng)關(guān)閉閥門;購(gòu)水后,閥門開(kāi)啟。 3. 顯示功能:采用6位LED顯示,可隨時(shí)查詢累計(jì)用水總量及可用剩余水量。 4. 報(bào)警功能:當(dāng)剩余水量減少到一定量時(shí),報(bào)警提示用戶購(gòu)水。
5. 掉電自動(dòng)保護(hù)數(shù)據(jù)功能:掉電后,數(shù)據(jù)依然可以被保存。當(dāng)恢復(fù)供電后,數(shù)據(jù)自動(dòng)恢復(fù)。 6. 一戶一卡的功能:通過(guò)設(shè)立用戶信息和用戶校驗(yàn)碼的方式實(shí)現(xiàn)一戶一卡。即一個(gè)水表只能使用一個(gè)用戶專用卡,插入其他卡片無(wú)效。
7. 欠電自動(dòng)關(guān)閉系統(tǒng)的功能:當(dāng)電池電壓或電池容量掉到規(guī)定數(shù)值后,意味著電池可能已經(jīng)快沒(méi)有電了,此時(shí),水表應(yīng)會(huì)自動(dòng)將閥門關(guān)閉并使系統(tǒng)處于休眠狀態(tài),并報(bào)警提示。
8. 防拆卸功能:在表體和接頭管件上設(shè)置鉛封口并可進(jìn)行防偽鉛封處理,以防止隨意拆卸水表的行為。即使被拆卸后,單片機(jī)立即關(guān)閉閥門,以防偷水。 2.2 方案比較 針對(duì)上述設(shè)計(jì)思想,提出了三種智能水表的設(shè)計(jì)方案。下面對(duì)它們的工作原理及其優(yōu)缺點(diǎn)進(jìn)行了簡(jiǎn)要地分析。 1. 方案一:脈沖發(fā)訊集中抄收式智能水表系統(tǒng) 工作原理:由表具不斷發(fā)出脈沖信號(hào),經(jīng)采集器對(duì)脈沖信號(hào)進(jìn)行采集、累加、存儲(chǔ)和數(shù)據(jù)上傳。 優(yōu)點(diǎn):發(fā)訊式集抄系統(tǒng)目前在國(guó)內(nèi)已普遍采推廣應(yīng)用方便,價(jià)格較低,只要生產(chǎn)廠商、系統(tǒng)集商嚴(yán)格把好每一環(huán)節(jié)的質(zhì)量關(guān),且發(fā)訊不隨時(shí)間產(chǎn)生疲勞損傷,此系統(tǒng)不失為一種可供選擇的、適于一定歷史時(shí)期的過(guò)渡產(chǎn)品。 缺點(diǎn):(1) 初始化及維護(hù)工作量大;(2) 磁鐵強(qiáng)磁場(chǎng)干擾;(3) 電能耗費(fèi)。 2. 方案二:基于CAN總線的智能水表自動(dòng)抄收系統(tǒng) 工作原理:自動(dòng)抄收系統(tǒng)主要由小區(qū)管理中心計(jì)算機(jī)(主控機(jī))、水表數(shù)據(jù)采集器、采集服務(wù)器、中繼站等幾個(gè)部分組成,是一種智能化多用戶能耗集中自動(dòng)抄收系統(tǒng)。其原理是將原能耗計(jì)量表的流量轉(zhuǎn)換為脈沖信號(hào),經(jīng)信號(hào)傳輸線至系統(tǒng)總線,由接口電路通過(guò)有線傳輸或主機(jī)直接抄讀,最后經(jīng)微機(jī)管理,實(shí)現(xiàn)耗能數(shù)據(jù)的自動(dòng)處理。 優(yōu)點(diǎn):CAN現(xiàn)場(chǎng)總線的方式來(lái)傳送數(shù)據(jù),以克服市場(chǎng)已有傳送方式所存在的不足之處,其傳送方式可實(shí)現(xiàn)10公里范圍的小區(qū)抄收工作,同時(shí)性能比同類系統(tǒng)穩(wěn)定可靠。采用點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)、全局廣播等幾種方式,數(shù)據(jù)收發(fā)靈活,可實(shí)現(xiàn)全分布式多機(jī)系統(tǒng),且無(wú)主從機(jī)之分,便于實(shí)現(xiàn)設(shè)備異常主動(dòng)報(bào)警。節(jié)點(diǎn)故障自動(dòng)關(guān)閉,不影響網(wǎng)絡(luò)性能,提高了系統(tǒng)的穩(wěn)定性,且不關(guān)閉總線即可任意掛接或拆除節(jié)點(diǎn),方便了系統(tǒng)的調(diào)試和維護(hù)。 缺點(diǎn):前期經(jīng)濟(jì)投入太多,需要大量的專業(yè)網(wǎng)絡(luò)維護(hù)人員,維護(hù)工作量大。設(shè)計(jì)過(guò)于復(fù)雜,太難,且不容易實(shí)現(xiàn)[4]。 3. 方案三:基于89C2051單片機(jī)的IC卡智能水表系統(tǒng) 工作原理:以接觸IC卡或非接觸射頻卡作為媒介,將各種信息輸入表中控制系統(tǒng)來(lái)自動(dòng)開(kāi)關(guān)閥門(供水或停水),由用戶到自來(lái)水公司網(wǎng)點(diǎn)先預(yù)購(gòu)買水量,再將用水量通過(guò)IC卡輸入表中控制系統(tǒng),等水量用盡即自動(dòng)關(guān)閥并中斷水的供應(yīng),報(bào)警器在設(shè)定水量用完之前會(huì)自動(dòng)報(bào)警以提醒用戶購(gòu)水,達(dá)到“先買水、后用水”的目的。 優(yōu)點(diǎn):在用戶不繳費(fèi)的情況下可自動(dòng)斷水,有效控制收費(fèi)單位的資金回籠,不需要人工上門抄表、收費(fèi),減少抄表員。 缺點(diǎn):(1) 電磁閥在長(zhǎng)期開(kāi)啟狀態(tài)下由于水垢和水中雜質(zhì)而影響閥門關(guān)閉,使用戶在不繳費(fèi)的情況下繼續(xù)用水,而收費(fèi)單位還一無(wú)所知,一旦發(fā)現(xiàn)也無(wú)法向用戶追繳多用水費(fèi);(2) IC卡表也是由發(fā)訊脈沖進(jìn)行累加計(jì)量,如果人為強(qiáng)磁干擾或強(qiáng)電瞬間電擊,也會(huì)造成芯片損壞,從而無(wú)法計(jì)量;(3) 鋰電池在長(zhǎng)期使用中是否能達(dá)到設(shè)計(jì)年限還有待考證,到期后由誰(shuí)負(fù)責(zé)更換是個(gè)問(wèn)題。 隨著微電子技術(shù)、現(xiàn)代傳感器技術(shù)的快速發(fā)展,以上該方案的缺點(diǎn)我們通過(guò)可行的具體方案基本可以解決了。該方案所設(shè)計(jì)的IC卡智能水表主要由開(kāi)關(guān)閥門控制模塊、流量采樣模塊、微處理器、電源模塊、IC卡讀寫模塊、數(shù)據(jù)存儲(chǔ)器模塊、顯示模塊等組成[2]。 2.3 方案選擇 從投入成本來(lái)看,方案二需要建立一整套的網(wǎng)絡(luò)系統(tǒng),所需設(shè)備多,前期所需經(jīng)濟(jì)投入最大,方案一次之,方案三最低。 從設(shè)計(jì)的難易程度來(lái)看,方案三融合了微電子技術(shù)、現(xiàn)代傳感器技術(shù)、IC卡技術(shù)等,這些技術(shù)都已經(jīng)相當(dāng)成熟,最容易實(shí)現(xiàn),方案二最難,方案一次之。 從維護(hù)成本來(lái)看,方案二是由一個(gè)專用的網(wǎng)絡(luò)系統(tǒng)組建而成,需要專業(yè)的網(wǎng)絡(luò)技術(shù)維護(hù)人員,它的維護(hù)成本最高,方案一次之,方案三最低。 從長(zhǎng)期效益來(lái)看,隨著技術(shù)的成熟,社會(huì)各行各業(yè)網(wǎng)絡(luò)化進(jìn)程的加速,方案二必定是今后的發(fā)展趨勢(shì),它所達(dá)到的效益最佳,方案三次之,方案一最差。 綜合考慮以上三種方案,根據(jù)現(xiàn)在的各種實(shí)際情況、現(xiàn)有技術(shù)水平和設(shè)計(jì)要求,我們選擇了第三種方案基于89C2051單片機(jī)的IC卡智能水表系統(tǒng)來(lái)進(jìn)行設(shè)計(jì)。 第3章 IC卡智能水表的硬件設(shè)計(jì) 本章是本文的核心內(nèi)容,主要介紹的是系統(tǒng)硬件部分的設(shè)計(jì)。我們采用了模塊化的設(shè)計(jì)方法,針對(duì)系統(tǒng)的工作原理和各個(gè)硬件模塊的原理和電路進(jìn)行了具體的介紹。還對(duì)各種器件的選擇(如微處理器、傳感器等)做了詳細(xì)的分析。 3.1 主系統(tǒng)的構(gòu)成 根據(jù)設(shè)計(jì)要求,所要設(shè)計(jì)的系統(tǒng)除了解決最基本的正常供水還應(yīng)具有一定的智能功能。主系統(tǒng)的框架圖如圖3.1所示。由圖中可以看出,系統(tǒng)由這樣一些功能模塊組成:微處理器、流量傳感器、信號(hào)處理模塊、IC卡接口電路、E2PROM數(shù)據(jù)存儲(chǔ)電路、顯示電路、報(bào)警電路、電源模塊、電磁閥驅(qū)動(dòng)電路以及其他輔助電路。所有模塊的設(shè)計(jì)均考慮了低功耗的要求,本系統(tǒng)采用外接3節(jié)5號(hào)電池供電,內(nèi)部采用超級(jí)電容作為備用。系統(tǒng)時(shí)鐘采用外接晶振方式,約為6MHz。 
圖3.1 主系統(tǒng)框圖 IC卡智能水表工作原理:首先由用戶購(gòu)買IC卡(即用戶卡),并攜IC卡至收費(fèi)工作站交費(fèi)購(gòu)水,工作人員將購(gòu)買水量等信息寫入卡中。用戶將卡插入IC卡水表,卡表內(nèi)單片機(jī)識(shí)別IC卡密碼并確認(rèn)無(wú)誤后,將卡中購(gòu)買水量與表內(nèi)剩余水量相加后,寫入卡表內(nèi)存儲(chǔ)器,同時(shí)必須將IC卡內(nèi)購(gòu)水值清零。當(dāng)用戶用水時(shí),由流量傳感器采進(jìn)來(lái)的信號(hào)以脈沖形式觸發(fā)單片機(jī)的外部中斷 ,換醒單片機(jī),進(jìn)行用水處理。 用戶在用水過(guò)程中,卡表內(nèi)剩余水量相應(yīng)減少。當(dāng)剩余水量低于一定量,如5m3,卡表報(bào)警提示用戶購(gòu)水。當(dāng)E2PROM中存儲(chǔ)的水量用完時(shí),單片機(jī)自動(dòng)關(guān)閉電磁閥。用戶只有重新購(gòu)水,才能使電磁閥打開(kāi)。此外,在發(fā)生人為故意破壞時(shí),閥門也會(huì)關(guān)閉[2]。 3.2 微處理器 微處理器是本設(shè)計(jì)中的核心器件。我們一般都選用單片機(jī)來(lái)進(jìn)行控制。下面給出了對(duì)它的選型與功能介紹。 3.2.1 單片機(jī)的選型 單片機(jī)的選型從以下幾個(gè)方面考慮: 1. 單片機(jī)的系統(tǒng)適應(yīng)性 適應(yīng)性指單片機(jī)能否完成應(yīng)用系統(tǒng)的控制功能,它主要從以下幾個(gè)方面體現(xiàn)。 (1) 單片機(jī)的CPU是否有合適的處理能力。 (2) 單片機(jī)是否有系統(tǒng)所需要的I/O端口數(shù)。 (3) 單片機(jī)是否含有系統(tǒng)所需的中斷源和定時(shí)器。 (4) 單片機(jī)片內(nèi)是否有系統(tǒng)所需的外接口。 (5) 單片機(jī)的極限性能是否能夠滿足要求。 2. 單片機(jī)的市場(chǎng)供應(yīng)情況 3. 單片機(jī)的可開(kāi)發(fā)性 本設(shè)計(jì)系統(tǒng)至少需要14個(gè)I/O端口數(shù),其中需要2個(gè)外部中斷源,一個(gè)全雙工串行通信口,需要2K字節(jié)可重擦寫程序存儲(chǔ)器。 結(jié)合上述選型依據(jù),雖然其通用的80C51系列的單片機(jī)具有電源電壓適應(yīng)范圍寬、抗干擾能力和驅(qū)動(dòng)能力強(qiáng)、價(jià)格便宜等特點(diǎn)。然而對(duì)本設(shè)計(jì)來(lái)說(shuō),根據(jù)其系統(tǒng)所要應(yīng)用的需要:主要是其應(yīng)用的引腳、應(yīng)用所需要的容量以及在制作過(guò)程中所要考慮的體積、價(jià)格及供應(yīng)等因素。顯然AT89C2051單片滿足I/O端口數(shù)、所需要的容量等要求。AT89C2051單片機(jī)與80C51單片機(jī)相比具有體積小、價(jià)格低等優(yōu)點(diǎn)。同時(shí)AT89C2051單片機(jī)和80C51單片機(jī)是完全兼容的,它與80C51的顯著區(qū)別在于它內(nèi)部有一個(gè)閃存。另外考慮到在調(diào)試過(guò)程中實(shí)驗(yàn)器材的現(xiàn)實(shí)情況,本設(shè)計(jì)系統(tǒng)將選用AT89C2051單片機(jī)作為主控芯片。 3.2.2 單片機(jī)AT89C2051簡(jiǎn)介 AT89C2051是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含2k bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(Flash)和128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)的技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元。 功能特性概述: AT89C2051提供以下標(biāo)準(zhǔn)功能:2K字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,15個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)蓸O中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,內(nèi)置一個(gè)精密比較器,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C2051克將至0HZ的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式?臻e方式停止CPU的工作,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。
圖3.2是AT89C2051的引腳結(jié)構(gòu)圖,有雙列直插封裝(DIP)方式和方行封裝方式。 3.2.3 晶振與復(fù)位電路的設(shè)計(jì)
單片機(jī)內(nèi)部帶有時(shí)鐘電路,因此,只需要在片處通過(guò)XTAL1、XTAL2引腳接入定時(shí)控制單元(晶體振蕩和電容),即可構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。 振蕩器的工作頻率一般在1.2~12MHz之間,當(dāng)然在一般情況下頻率越快越好。可以保證程序運(yùn)行速度即保證了控制的實(shí)時(shí)性。一般采用石英晶振作定時(shí)控制元件;在不需要高精度參考時(shí)鐘時(shí),也可以用電感代替晶振;有時(shí)也可以引入外部時(shí)脈信號(hào)。 C1、C2雖然沒(méi)有嚴(yán)格要求,但電容的大小影響振蕩器的振蕩的穩(wěn)定性和起振的快速性。在設(shè)計(jì)電路板時(shí),晶振,電容等均應(yīng)盡可能靠近芯片,以減小分布電容,保證振蕩器振蕩的穩(wěn)定性。 在本設(shè)計(jì)中,我們采用的外接晶振頻率約6MHz,因此機(jī)器周期約2μs。 RESET引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩脈沖周期(即兩個(gè)機(jī)器周期)以上。如使用頻率為6MHZ的晶振,則復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò)4μs才能完成復(fù)位操作。產(chǎn)生復(fù)位信號(hào)的電路圖如下所示[5]。 
圖3.3 復(fù)位電路和時(shí)鐘電路 3.3 傳感器的選擇 轉(zhuǎn)化基于傳統(tǒng)水表流量檢測(cè)原理,在本設(shè)計(jì)中采用將傳統(tǒng)的機(jī)械轉(zhuǎn)動(dòng)計(jì)量方式轉(zhuǎn)化為電脈沖信號(hào)的方案。因此,需要找到一種可以將機(jī)械位移為電脈沖信號(hào)的傳感器。 3.3.1 霍爾接近開(kāi)關(guān)傳感器 集成式霍爾開(kāi)關(guān)傳感器是基于霍爾效應(yīng)原理,當(dāng)霍爾效應(yīng)片垂直于磁場(chǎng)時(shí),對(duì)霍爾效應(yīng)片施加控制電流時(shí),在垂直于電流和磁場(chǎng)方向上就產(chǎn)生電動(dòng)勢(shì),稱之為霍爾電動(dòng)勢(shì)。由霍爾片和處理電路構(gòu)成了集成化霍爾開(kāi)關(guān)傳感器,其基本原理是將由霍爾效應(yīng)片所產(chǎn)生的電動(dòng)勢(shì)由內(nèi)部差分放大器進(jìn)行放大,然后被送往施密特觸發(fā)器。當(dāng)外加磁場(chǎng)的強(qiáng)度小于霍爾開(kāi)關(guān)的磁場(chǎng)工作強(qiáng)度時(shí),差分放大器的輸出電壓不足以開(kāi)啟施密特觸發(fā)器,霍爾開(kāi)關(guān)處于關(guān)閉狀態(tài)。當(dāng)外加磁場(chǎng)的強(qiáng)度大于霍爾開(kāi)關(guān)的磁場(chǎng)工作強(qiáng)度時(shí),差分放大器的輸出電壓達(dá)到或大于施密特觸發(fā)器的開(kāi)啟電壓閾值,霍爾開(kāi)關(guān)處于開(kāi)啟狀態(tài)。 集成式霍爾開(kāi)關(guān)傳感器的主要優(yōu)點(diǎn)是:可靠性強(qiáng)、抗干擾性能好、溫度特性優(yōu)良、電源電壓范圍寬、輸出電流能力強(qiáng)、兼容性好、能與CMOS集成電路直接接口,動(dòng)作響應(yīng)時(shí)間短以及體積小巧、壽命長(zhǎng)和使用方便等。 但是,從對(duì)上述對(duì)霍爾開(kāi)關(guān)傳感器的原理描述中可以看出,霍爾開(kāi)關(guān)傳感器中必須對(duì)霍爾效應(yīng)片輸入控制電流、同時(shí)其內(nèi)部還有差分放大器等具有較大功耗的器件,典型的集成式霍爾開(kāi)關(guān)傳感器耗電為mA級(jí),因此,霍爾開(kāi)關(guān)傳感器不適合應(yīng)用在本低功耗設(shè)計(jì)中。 3.3.2 光電檢測(cè)傳感器 當(dāng)光照射在半導(dǎo)體材料的PN結(jié)上時(shí)PN結(jié)的兩側(cè)將產(chǎn)生光生電動(dòng)勢(shì),如外部用導(dǎo)線連接,將有光電流流過(guò),通常的光電檢測(cè)傳感器都是基于這一原理。 目前的光電檢測(cè)傳感器就是利用上述原理,以光電二極管為例,把發(fā)光二極管和光電二極管相對(duì)放置便組成了光電檢測(cè)電路,當(dāng)被檢測(cè)物體通過(guò)二者之間時(shí),由于光電二極管所接受的光的強(qiáng)度發(fā)生變化,其產(chǎn)生的光電動(dòng)勢(shì)也發(fā)生變化,將這種變化進(jìn)行放大和處理,就能產(chǎn)生反映有無(wú)物體通過(guò)二者之間的電壓脈沖信號(hào)。 然而,由于在此結(jié)構(gòu)中必須用到發(fā)光二極管(對(duì)于不需要發(fā)光二極管的光電檢測(cè)傳感器,功耗得到了降低,但是,其容易收到環(huán)境光線變化的影響,可靠性和檢測(cè)精確度較低),因此,其功耗電也較高,不宜用在本低功耗設(shè)計(jì)中。 3.3.3 Wiegand(韋根)傳感器 1. Wiegand傳感器組成 Wiegand傳感器由三部分組成:(1)Wiegand線;(2)檢測(cè)線圈,將其纏繞在Wiegand線上,或放置在Wiegand線附近;(3)磁鐵。常用結(jié)構(gòu)示意如圖3.4所示。 
圖3.4 Wiegand傳感器組成 2. Wiegand傳感器工作原理 Wiegand線是由一根鐵磁材料制成的永磁體,由外殼和內(nèi)芯組成,如圖3.5所示。 在強(qiáng)磁場(chǎng)的作用下,內(nèi)芯與外殼有相同的磁極性。將Wiegand線放在與線芯極性相反的外部弱磁場(chǎng)附近,能使線芯的極性發(fā)生改變,線放在與線芯極性相反的外部弱磁場(chǎng)附近,能使線芯的極性發(fā)生改變,而外殼的極性不變。隨著外磁場(chǎng)強(qiáng)度的增加,外殼的極性也隨之發(fā)生變化,這樣置于Wiegand線附近的線圈就能檢測(cè)出極性的轉(zhuǎn)換,并產(chǎn)生電壓脈沖輸出。通常Wiegand線與檢測(cè)線圈是裝配在一起構(gòu)成Wiegand組件。 3. Wiegand傳感器工作方式 根據(jù)Wiegand線外部磁場(chǎng)引入的方式不同,Wiegand傳感器有兩種驅(qū)動(dòng)方式:非對(duì)稱驅(qū)動(dòng)方式和對(duì)稱驅(qū)動(dòng)方式。非對(duì)稱驅(qū)動(dòng)方式開(kāi)始把Wiegand組件置于一種稱為滲透磁場(chǎng)的強(qiáng)磁場(chǎng)中,此時(shí)Wiegand線的外殼和內(nèi)芯按同一方向極化,如圖3.6(a) 所示;再把組件置于一種稱為復(fù)位磁場(chǎng)的弱磁場(chǎng)中,此時(shí)內(nèi)芯的極性反向,而外殼的極性不變,如圖3.6(b) 所示;然后把組件置于滲透磁場(chǎng)中,Wiegand線內(nèi)芯與外殼的極性又恢復(fù)到圖3.6(a)的情況,由于Wiegand線中磁場(chǎng)的變化,導(dǎo)致在檢測(cè)線圈中一個(gè)周期內(nèi)產(chǎn)生單一方向的電壓脈沖,如圖3.6(c)所示。 
圖3.6 非對(duì)稱驅(qū)動(dòng)方式 在對(duì)稱驅(qū)動(dòng)方式中,采用兩塊磁場(chǎng)強(qiáng)度大小相等但極性相反的磁鐵,一塊磁鐵首先將Wiegand線的外殼和內(nèi)芯按同一方向進(jìn)行滲透,如圖3.7(a)所示;再將Wiegand線切換到第二塊磁鐵,在這過(guò)程中,首先線芯的極性改變,如圖3.7(b)所示;然后外殼的極性發(fā)生改變,這一作用在檢測(cè)線圈中產(chǎn)生一個(gè)方向的電壓脈沖輸出,如圖3.7(c) 所示;接著,再將Wiegand線轉(zhuǎn)回到第一塊磁鐵,首先內(nèi)芯的極性改變?yōu)槠鹗嫉臉O性,如圖3.7(d) 所示;其次外殼的極性也隨之改變?yōu)槠鹗嫉臉O性,這一過(guò)程產(chǎn)生相反方向的電壓脈沖輸出如圖3.7(e) 所示[6]。 
圖3.7 對(duì)稱驅(qū)動(dòng)方式 4. WG系列韋根傳感器原理及其特點(diǎn) WG系列韋根傳感器是利用韋根效應(yīng)制成的一種新型磁敏傳感器。其工作原理是傳感器中磁性雙穩(wěn)態(tài)功能合金材料在外磁場(chǎng)的激勵(lì)下,磁化方向瞬間發(fā)生翻轉(zhuǎn),從而在檢測(cè)線圈中感生出電信號(hào),實(shí)現(xiàn)磁電轉(zhuǎn)換。 它具有以下特點(diǎn): (1) 傳感器工作時(shí)無(wú)須使用外加電源,適用于微功耗儀表,如電子水表、電子氣表和其它智能型儀表。 (2) 使用雙磁極交替觸發(fā)工作方式,觸發(fā)磁場(chǎng)極性變化一周,傳感器輸出一對(duì)正負(fù)雙向脈沖電信號(hào),信號(hào)周期為磁場(chǎng)交變周期。 (3) 輸出信號(hào)幅值與磁場(chǎng)的變化速度無(wú)關(guān),可實(shí)現(xiàn)“零速”傳感。 (4) 無(wú)觸點(diǎn)、耐腐蝕、防水,壽命長(zhǎng)。 (5) 利用電話線、同軸線可實(shí)現(xiàn)電信號(hào)遠(yuǎn)傳。 由于WG系列韋根傳感器具有以上的眾多的特點(diǎn),特別是其幾乎不需要外界能量的輸入。因此,選擇它作為本低功耗設(shè)計(jì)的傳感器。在這里,我們選擇了南京艾馳電子科技有限公司的WG系列韋根傳感器產(chǎn)品,其型號(hào)為WG101。具體使用方法為:在水表的計(jì)量齒輪上安裝小磁鋼,當(dāng)用戶用水,齒輪轉(zhuǎn)動(dòng),小磁鋼將會(huì)轉(zhuǎn)過(guò)Wiegand絲傳感器,這時(shí)傳感器產(chǎn)生一個(gè)高電平脈沖信號(hào),經(jīng)過(guò)整形、放大處理后輸入至單片機(jī)進(jìn)行計(jì)數(shù)計(jì)量。選擇此傳感器作輸入信號(hào)測(cè)量的傳感器,既滿足了準(zhǔn)確計(jì)量的基本要求,又滿足了低功耗設(shè)計(jì)的需要,是本低功耗設(shè)計(jì)的重要組成部分。 3.4 信號(hào)處理模塊的設(shè)計(jì) WG系列WG101韋根傳感器所產(chǎn)生的正向脈沖信號(hào)一般為1V~2V之間。為了保證系統(tǒng)能更加穩(wěn)定的工作,必須對(duì)傳感器所產(chǎn)生的脈沖信號(hào)進(jìn)行放大、整形處理。我們采用下面的一個(gè)簡(jiǎn)單電路(如圖3.8所示)可以很好的達(dá)到脈沖信號(hào)的放大、整形作用。經(jīng)過(guò)處理后的電平信號(hào),送單片機(jī)的外部中斷 (P3.2)進(jìn)行計(jì)數(shù)處理。當(dāng)計(jì)滿N(N表示為設(shè)定的轉(zhuǎn)數(shù)值),用水總量加1,剩余水量減1(“1”在本設(shè)計(jì)中代表0.1m3的水)。 由于WG系列韋根傳感器使用雙磁極交替觸發(fā)工作方式(即對(duì)稱驅(qū)動(dòng)方式),當(dāng)水表葉輪轉(zhuǎn)動(dòng)一周,觸發(fā)磁場(chǎng)極性變化一周,韋根傳感器輸出一對(duì)正負(fù)雙向脈沖電信號(hào)。當(dāng)韋根傳感器輸出為正向脈沖時(shí),NPN管導(dǎo)通,脈沖檢測(cè)信號(hào)W_IN輸出為高電平;當(dāng)韋根傳感器輸出為負(fù)向脈沖時(shí),NPN管截止,脈沖檢測(cè)信號(hào)W_IN輸出為低電平。即水表葉輪轉(zhuǎn)動(dòng)一周,脈沖檢測(cè)信號(hào)W_IN存在一個(gè)由高到低的跳變。由于我們?cè)O(shè)定外部中斷 (P3.2)為跳變觸發(fā)方式,即電平發(fā)生由高到低的跳變時(shí)觸發(fā)。因此,水表葉輪轉(zhuǎn)動(dòng)一周,外部中斷 產(chǎn)生一次中斷[5]。 
圖3.8 信號(hào)處理電路圖 3.5 電磁閥的選擇與設(shè)計(jì) 對(duì)于水表而言,閥門是被控對(duì)象,控制著進(jìn)水的開(kāi)/關(guān)狀態(tài)。目前可控制的閥門主要是電磁閥,但常規(guī)的電磁閥是靠電的通/斷來(lái)控制閥門的開(kāi)/關(guān)的,即要讓閥門一直關(guān)著,就必須一直通電,因此耗電較大,不符合本水表低功耗的要求。因此,必須對(duì)現(xiàn)有電平開(kāi)關(guān)式電磁閥進(jìn)行改進(jìn),采用雙穩(wěn)態(tài)電磁閥,即閥門的開(kāi)/關(guān)控制由電脈沖來(lái)實(shí)現(xiàn)。使得對(duì)閥門開(kāi)/關(guān)只需瞬時(shí)供電,從而減少耗電量。在這里我們選擇:執(zhí)行機(jī)構(gòu)采用繼電器HRS2H-S-DC3V,驅(qū)動(dòng)帶自鎖的脈沖電磁閥MP15A-3V,兩者僅需+3V電源供電。正常供水情況下,電磁閥自鎖于常開(kāi)狀態(tài),驅(qū)動(dòng)機(jī)構(gòu)不消耗電能,只有當(dāng)購(gòu)買的噸位數(shù)用完時(shí),才由固態(tài)繼電器驅(qū)動(dòng)電磁閥關(guān)閉開(kāi)關(guān),并自鎖于常閉狀態(tài),重新購(gòu)水插卡后,再次送電開(kāi)啟。 當(dāng)水量為零時(shí),控制閥自動(dòng)關(guān)閉,水路即被切斷,此時(shí)用戶須重新持卡購(gòu)水。在正常情況下控制閥處于接通狀態(tài),只有當(dāng)特殊事件發(fā)生時(shí),控制閥才從接通狀態(tài)變?yōu)殛P(guān)閉狀態(tài)。三種事件狀態(tài)下控制閥的通斷情況如圖3.9所示[7]。 
圖3.9 控制閥的關(guān)斷情況 值得注意的是,由于繼電器和脈沖開(kāi)關(guān)電磁閥都是較大容量的感性負(fù)載,因而在切斷這些感性負(fù)載時(shí),會(huì)產(chǎn)生很大的電流和電壓變化率,從而形成瞬變?cè)肼暩蓴_,成為系統(tǒng)中電磁干擾的主要原因,引外,繼電器通斷所造成的電火花和很強(qiáng)的電弧也產(chǎn)生了很大的電磁干擾。因此,在系統(tǒng)中必須設(shè)計(jì)相應(yīng)的抗干擾電路來(lái)消除此電磁干擾,本系統(tǒng)所采用的抗干擾措施主要有以下兩點(diǎn): 1. 采用光電耦合器進(jìn)行隔離(如圖3.10所示) 當(dāng)P1.1輸出為高電平時(shí)候NPN管Q1導(dǎo)通,在光電耦合器SW-GD(型號(hào)為4N25)中的發(fā)光二級(jí)管發(fā)光,三級(jí)管導(dǎo)通。此時(shí),電阻R10上就存在一個(gè)高電平使NPN管Q1導(dǎo)通。繼電器即得電產(chǎn)生動(dòng)作。D1為續(xù)流保護(hù)的作用。 
圖3.10 光電耦合器隔離電路 從圖3.10中可以看出,單片機(jī)控制的I/O口和繼電器控制端口之間用光電耦合器進(jìn)行了隔離,這樣,由于繼電器通斷所造成的電火花和電弧就不會(huì)影響到單片機(jī)系統(tǒng)了[8]。 2. 在電磁閥供電端跨接壓敏電阻抗干擾 壓敏電阻是一種非線性電阻性元件,它對(duì)外加的電壓十分敏感,外加電壓的微小變動(dòng),其阻值會(huì)發(fā)生明顯的變化,因此電壓的微增量可引起大的電流增量。 壓敏電阻又分為碳化硅壓敏電阻、硅壓敏電阻、鍺壓敏電阻以及氧化鋅壓敏電阻,其中較為常用的是氧化鋅(ZnO)壓敏電阻,其電氣性能如圖3.11所示。 
圖3.11 氧化鋅壓敏電阻的電氣性能 從圖3.11中可以看出。壓敏電阻具有類似穩(wěn)壓管的非線性特性,在一般工作電壓(外加電壓低于臨界電壓值)下,壓敏電阻呈高阻狀態(tài),僅有uA數(shù)量級(jí)的漏電流流過(guò)壓敏電阻,相當(dāng)于開(kāi)路狀態(tài)。當(dāng)有電壓(當(dāng)電壓達(dá)到臨界值以上)時(shí),壓敏電阻即迅速變?yōu)榈妥杩梗憫?yīng)時(shí)間為毫微秒數(shù)量級(jí)),電流急劇上升,電阻急劇下降,過(guò)電壓以過(guò)電電流的形式被壓敏電阻吸收掉,相當(dāng)于過(guò)電壓部分被短路。當(dāng)浪涌過(guò)電壓過(guò)后,電路電壓恢復(fù)到正常工作電壓,壓敏電阻又恢復(fù)到高阻狀態(tài)?梢岳脡好綦娮璧纳鲜鎏匦詠(lái)吸收各種干擾過(guò)電壓。由于ZnO壓敏電阻特性曲線較陡,具有漏電流很小、平均功耗小、溫升小、通流容量大、伏安特性對(duì)稱、電壓范圍寬、體積小等優(yōu)點(diǎn),可廣泛用于直流和交流回路中吸收不同極性的過(guò)電壓。 在本設(shè)計(jì)中的具體使用方法為將壓敏電阻并聯(lián)到電磁閥的供電電壓上,這樣,電磁閥開(kāi)關(guān)所產(chǎn)生的浪涌過(guò)電壓就被壓敏電阻所吸收了。壓敏電阻的使用大大降低了電磁閥開(kāi)關(guān)所造成的電磁干擾對(duì)單片機(jī)系統(tǒng)的影響。 3.6 片外數(shù)據(jù)存儲(chǔ)器的設(shè)計(jì) 在系統(tǒng)的設(shè)計(jì)過(guò)程中,考慮到智能水表在使用過(guò)程中可能出現(xiàn)失電的情況。當(dāng)這種情況發(fā)生時(shí),系統(tǒng)應(yīng)該保存失電前的一些數(shù)據(jù)。比如,存儲(chǔ)用戶設(shè)定的水量系數(shù)N(轉(zhuǎn)/噸),累計(jì)用水總量和剩余水量等。而這些數(shù)據(jù)如果存儲(chǔ)在單片機(jī)的數(shù)據(jù)存儲(chǔ)器中,單片機(jī)失電重啟動(dòng)后存儲(chǔ)的相關(guān)數(shù)據(jù)已經(jīng)消失了。為了完成此功能,必須在單片機(jī)外部加一個(gè)E2PROM,完成這些數(shù)據(jù)的存儲(chǔ)。本設(shè)計(jì)系統(tǒng)中加入了I2C總線的E2PROM。 I2C總線簡(jiǎn)介:I2C總線由PHILIPS提出,是一種用于IC器件之間連接的二線制總線。它通過(guò)SDA(串行數(shù)據(jù)線)及SCL(串行時(shí)鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識(shí)別每個(gè)器件:不管是單片機(jī)、存儲(chǔ)器、LCD驅(qū)動(dòng)器還是鍵盤接口。采用I2C總線標(biāo)準(zhǔn)的單片機(jī)或IC器件,其內(nèi)部不僅有I2C接口電路,而且將內(nèi)部各單元電路按功能劃分為若干相對(duì)獨(dú)立的模塊,通過(guò)軟件尋址實(shí)現(xiàn)片選,減少了器件片選線的連接 。 其協(xié)議定義的I2C總線數(shù)據(jù)格式如下: | | R/ | | | | | | | |
AT24C01是美國(guó)ATMEL公司的低功耗CMOS串行E2PROM,它是內(nèi)含128×8位存儲(chǔ)空間,具有工作電壓寬(2.5~5.5V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10ms)等特點(diǎn)[2] [9]。在系統(tǒng)中,用AT24C01存儲(chǔ)用戶的設(shè)定水量轉(zhuǎn)數(shù)N、水表檢測(cè)脈沖數(shù)M、累計(jì)用水總量和剩余水量等。當(dāng)系統(tǒng)斷電以后,系統(tǒng)將把有用的信息保存在AT24C01中,使其不被丟失。其實(shí)際電路連接圖如圖3.12所示:電阻R24、R25為上拉電阻。由于我們只用一片E2PROM,所以A2=A1=A0=0。它的工作原理我們將在第四章詳細(xì)介紹。 
圖3.12 AT24C01與單片機(jī)接口電路 3.7 IC卡及其接口電路的設(shè)計(jì) 下面簡(jiǎn)要介紹AT24C0X系列的IC卡的基本特性與引腳功能,并分析AT24C0X與AT89C205l單片機(jī)的在本設(shè)計(jì)中的具體接法。 3.7.1 基于AT24C0X系列的IC卡 AT24C0X系列IC卡是美國(guó)ATMEL公司生產(chǎn)的存儲(chǔ)式IC卡。產(chǎn)品型號(hào)有AT24C01/ 02/04/08/16/32/64,存儲(chǔ)容量分別為1kbits/2 kbits /4 kbits /8 kbits /16 kbits /32 kbits /64 kbits;2.5~5V低電壓供電;雙線串行接口;雙向數(shù)據(jù)傳送;支持ISO/IEC7816-3同步協(xié)議;寫/擦除次數(shù)>1 000 000次;數(shù)據(jù)保存期>100年。它是目前國(guó)內(nèi)使用最多的IC卡之一。 AT24C0X系列IC卡的引出端符合ISO/IEC7816-2標(biāo)準(zhǔn)。C1:VCC,工作電壓;C3:SCL(CLK),串行時(shí)鐘;C5:GND;C7:SDA(I/O),串行數(shù)據(jù)(輸入/輸出);C2,C6:NC,未接。IC卡引腳如圖3.13所示,其中引腳T,P為微動(dòng)開(kāi)關(guān)的兩觸點(diǎn)。此微動(dòng)開(kāi)關(guān)在無(wú)IC卡狀態(tài)時(shí),處于斷開(kāi)狀態(tài);有卡插入時(shí),IC卡卡座上的微動(dòng)開(kāi)關(guān)動(dòng)合,因此,此開(kāi)關(guān)往往是用來(lái)判斷是否插IC卡的傳感器件[2]。 
圖3.13 IC卡示意圖 3.7.2 IC卡的接口電路的設(shè)計(jì) 24系列為低功耗COMS E2PROM 器件,使用單+5v電源,電源電壓范圍為2.5~6V, 內(nèi)有高壓泵電路,寫入、擦除操作由內(nèi)部定時(shí)器自動(dòng)完成,具有擦除/寫入周期10萬(wàn)次壽命和數(shù)據(jù)安全保存100年的有效期,二線串行接口,和各類微處理器接口十分簡(jiǎn)單等特點(diǎn)。本設(shè)計(jì)的AT89C205l單片機(jī)與IC卡240X接口如圖3.14所示。圖中IC-CARD為標(biāo)準(zhǔn)IC卡座,其T、P端用作到位檢測(cè)開(kāi)關(guān),將T端連接89C2051的外中斷輸入腳P3.3( )。由于引腳T,P為微動(dòng)開(kāi)關(guān)的兩觸點(diǎn),所以,當(dāng)有IC卡插入時(shí),微動(dòng)開(kāi)關(guān)閉合,P1.5腳電平被拉低,單片機(jī)通過(guò)判讀P1.5腳,做好讀卡準(zhǔn)備,無(wú)卡時(shí),P1.5腳為高。P1.6、P1.7用作數(shù)據(jù)線(SDA)和時(shí)鐘線(SCL),用軟件模擬時(shí)序的方法來(lái)實(shí)現(xiàn)對(duì)IC卡的讀寫。當(dāng)有IC卡插入時(shí),P1.5腳電平被拉低,單片機(jī)通過(guò)判讀P1.5腳,做好讀卡準(zhǔn)備,無(wú)卡時(shí),P1.5腳為高。R19、R20、R21為限流電阻[2] [10]。 
圖3.14 IC卡接口電路 3.8 人機(jī)交互接口的設(shè)計(jì) 人機(jī)互交接口包括了報(bào)警電路與顯示電路的設(shè)計(jì)。下面具體給出了在本設(shè)計(jì)中采用的報(bào)警電路和顯示電路,并分析了它們的工作原理。另外,還對(duì)顯示電路在本系統(tǒng)中應(yīng)用的顯示原理進(jìn)行了詳細(xì)的分析。 3.8.1 報(bào)警電路的設(shè)計(jì) 根據(jù)系統(tǒng)需要,我們?cè)O(shè)計(jì)了一個(gè)報(bào)警電路。當(dāng)剩余水量不足、電池欠壓等情況下,都需要報(bào)警。本報(bào)警電路很簡(jiǎn)單,我們采用1個(gè)NPN型三級(jí)管,1個(gè)蜂鳴器和1個(gè)電阻組成。如下圖3.15所示,當(dāng)P1.4輸出一個(gè)高電平時(shí),NPN型三級(jí)管Q4導(dǎo)通,蜂鳴器馬上得電發(fā)聲,產(chǎn)生報(bào)警[11]。 
圖3.15 報(bào)警電路 3.8.2 顯示電路的設(shè)計(jì) 顯示電路作為水表的輸出接口,顯示剩余水量、用水總量等信息。它們的有效工作時(shí)間都比較短。用戶看完后,沒(méi)有必要讓它一直顯示;為此,可水表上裝一個(gè)開(kāi)關(guān)按鈕提供信號(hào)。即按一下按鈕時(shí),水表開(kāi)始顯示剩余水量;再次按下按鈕時(shí),水表顯示用水總量;再次按下按鈕時(shí),水表顯示關(guān)閉。如顯示10s后,按鈕沒(méi)有動(dòng)作,亦使它們停止工作,從而達(dá)到節(jié)電的目的。 在小型的控制系統(tǒng)中,通常用LED數(shù)碼管作為顯示器件。LED數(shù)碼管的顯示方式通?煞譃2種:靜態(tài)方式和動(dòng)態(tài)方式。靜態(tài)顯示方式的優(yōu)點(diǎn)是亮度高、沒(méi)有閃動(dòng)、穩(wěn)定,缺點(diǎn)是功耗大、占PCB面積大、成本高。為了在人機(jī)對(duì)話設(shè)計(jì)中降低硬件成本,節(jié)約單片機(jī)的I/O口資源,我們采用將通過(guò)串行動(dòng)態(tài)掃描,即位碼和段碼交替發(fā)送的方式設(shè)計(jì)了一種新穎的顯示模塊,經(jīng)調(diào)試,效果良好。 
圖3.16 串口顯示電路圖 顯示電路的具體電路如圖3.16所示。它由單片機(jī)AT89C2051,2片74HC164,6個(gè)LED數(shù)碼管,6個(gè)220歐姆左右的限流電阻組成。74HC164是8位串入并出移位寄存器。它的每一個(gè)輸出管腳具有+/-20mA的驅(qū)動(dòng)能力。對(duì)于小型LED數(shù)碼管,還要串聯(lián)200~360Ω的限流電阻。本設(shè)計(jì)提出的動(dòng)態(tài)顯示電路采用2片74HC164,可以驅(qū)動(dòng)1~8只共陰極數(shù)碼管,這里我們采用6位顯示。其中一片U3作為段碼驅(qū)動(dòng),另一片U1作為位碼驅(qū)動(dòng)。2片74HC164采用級(jí)聯(lián)方式連接,只占用單片機(jī)AT89C2051的2個(gè)I/O端口。位碼驅(qū)動(dòng)U1的數(shù)據(jù)輸入端口、時(shí)鐘輸入端口分別連接AT89C2051的RXD和TXD端口。段碼驅(qū)動(dòng)U3的數(shù)據(jù)輸入端口、時(shí)鐘輸入端口分別連接位碼驅(qū)動(dòng)U1的Q7和AT89C2051的TXD端口。選擇AT89C2051的串行口方式為0方式,即移位寄存器方式。如果要求在6位LED數(shù)碼管的最低位顯示一個(gè)字符時(shí),首先從DMbufer中取出要顯示的數(shù),通過(guò)譯碼表譯出這個(gè)字符的段碼值并將段碼值寫入U(xiǎn)3中。根據(jù)這個(gè)字符在LED、顯示器的位置(這里為最低位)。確定它的位碼值是FEH(1111 1110)將位碼值寫入WMbuffer中(注意:段碼驅(qū)動(dòng)U3為高電平有效、位碼驅(qū)動(dòng)U1為低電平有效)。在顯示程序中,首先將位碼值寫入串行數(shù)據(jù)寄存器(SBUF)。在AT89C2051TXD端口的時(shí)鐘作用下,AT89C2051RXD端口送出這個(gè)字符的位碼值到段碼驅(qū)動(dòng)U3。當(dāng)AT89C2051送完一個(gè)字節(jié)的位碼值后,發(fā)送中斷標(biāo)志位TI置位。檢測(cè)到TI=1后,清零TI,接著將段碼寫入SBUF,AT89C2051再送段碼值到段碼驅(qū)動(dòng)B,同時(shí)段碼驅(qū)動(dòng)U3的位碼值被送入位碼驅(qū)動(dòng)U1中,延時(shí)2ms,即可顯示這個(gè)字符了。如果要求在低二位顯示第2個(gè)字符,則WMbufer(1111 1110)不帶進(jìn)位位左移一位(1111 1101)并送WMbufer。再通過(guò)譯碼表取得第2個(gè)字符的段碼值送入U(xiǎn)3,重復(fù)上述過(guò)程即可。以上過(guò)程循環(huán)N次,即可完成1~6位字符的顯示工作。在主程序中循環(huán)調(diào)用顯示程序,反復(fù)掃描LED數(shù)碼管,使之達(dá)到近似靜態(tài)的顯示效果[5][12][13]。 3.9 電源的設(shè)計(jì) 電源是電路部分的動(dòng)力源,象是飛機(jī)的發(fā)動(dòng)機(jī),人的心臟。電源的質(zhì)量如何直接決定電路是否能正常工作。在本設(shè)計(jì)中,我們采用的是外接3節(jié)5號(hào)電池供電。為了保證系統(tǒng)的正常工作及其安全性,我們?cè)O(shè)計(jì)了一套可行的電池能量檢測(cè)方案和備用電源方案。下面進(jìn)行了詳細(xì)的介紹。 3.9.1 電池能量的檢測(cè) 如果想要做出合理的電源管理方案,就需要單片機(jī)能夠隨時(shí)檢測(cè)電路中電池的能量(具體表現(xiàn)是實(shí)際的電壓值)。但是在本設(shè)計(jì)中,單片機(jī)判別電池的能量,由于不用象手機(jī)那樣隨時(shí)顯示電池的容量,根據(jù)水表的特殊性,只要檢測(cè)到一個(gè)固定值,給用戶一個(gè)報(bào)警提示就可以了,這個(gè)電量值的選擇需要滿足一個(gè)量,即讓用戶再有三天的余量,加上關(guān)閥電量就可以了。 低電壓檢測(cè)對(duì)單片機(jī)系統(tǒng)來(lái)講是個(gè)十分重要的問(wèn)題,它在某種程度上起到了保障系統(tǒng)可靠運(yùn)行,避免數(shù)據(jù)出錯(cuò)的作用,智能水表的設(shè)計(jì)中同樣如此。具體地講,應(yīng)該在系統(tǒng)掉電到一個(gè)門限電壓(該門限電壓應(yīng)高于CPU的最低運(yùn)行電壓)時(shí),通過(guò)相應(yīng)的電壓檢測(cè)電路把信號(hào)傳遞給CPU,CPU及時(shí)對(duì)系統(tǒng)進(jìn)行軟件復(fù)位。電壓檢測(cè)器可以選用合泰公司的HT70XX系列產(chǎn)品,此產(chǎn)品價(jià)位較低,而且規(guī)格十分齊全。在這里我們選用芯片HT7039來(lái)監(jiān)視系統(tǒng)供電電平Vcc,它對(duì)電壓變化十分敏感,在Vcc大于3.9V時(shí),芯片輸出高電平,當(dāng)Vcc低于3.9V時(shí),芯片輸出馬上變?yōu)榈碗娖,從而可以迅速的判斷系統(tǒng)是否掉電。系統(tǒng)除了有靈敏的電源監(jiān)控之外,還可以采用3.6V的鋰電池作為后備電源來(lái)支持閥的動(dòng)作,在正常工作時(shí),鋰電池不參與供電,僅在掉電后提供閥工作的電源,以保證掉電后的一系列正常動(dòng)作[14]。 3.9.2 超級(jí)電容的應(yīng)用
傳統(tǒng)的智能水表在控制水閥開(kāi)啟和關(guān)斷時(shí),普遍采用的方法是內(nèi)裝鋰電池。鋰電池的優(yōu)點(diǎn)是重量輕、能量大、自放電率低等。雖然如此,由于智能水表都沒(méi)有設(shè)計(jì)再充電電路,鋰電池使用到一定時(shí)間后,將無(wú)法為控制電路提供能量,不得不更換電池。上門為用戶更換電池或水表,這對(duì)于水表生產(chǎn)廠家和自來(lái)水公司來(lái)說(shuō)都是一件繁瑣的事情。更危險(xiǎn)的是,電池電量不足的情況出現(xiàn)是隨機(jī)的,如果不精確和及時(shí)的監(jiān)測(cè)電池電量,將無(wú)法可靠地關(guān)斷水閥,造成無(wú)法計(jì)費(fèi)、逃水現(xiàn)象等情況出現(xiàn)。這是內(nèi)部安裝了鋰電池的智能水表的致命缺點(diǎn),直接影響到它的推廣和使用。針對(duì)這一問(wèn)題,水表生產(chǎn)廠家設(shè)計(jì)了很多方案,如:盡量降低功耗,在靜態(tài)時(shí)控制漏電流在10μA以內(nèi),保證電池可以連續(xù)使用5年以上,這對(duì)電路的設(shè)計(jì)和元器件的選型提出了更高的要求,增加了設(shè)計(jì)難度和成品檢測(cè)的工序,如加上可靠的電池電量監(jiān)測(cè)電路,也會(huì)使成本增加。
為了解決這一制約智能水表發(fā)展的瓶頸問(wèn)題,已有不少?gòu)S家嘗試了一種全新的方案,那就是用超級(jí)電容(Super-Capacitor)代替鋰電池應(yīng)用于智能水表。超級(jí)電容是近幾年才批量生產(chǎn)的一種無(wú)源器件,性能介于電池與普通電容之間,具有電容的大電流快速充放電特性,同時(shí)也有電池的儲(chǔ)能特性,并且重復(fù)使用壽命長(zhǎng),放電時(shí)利用移動(dòng)導(dǎo)體間的電子(而不依靠化學(xué)反應(yīng))釋放電流,從而為設(shè)備提供電源,見(jiàn)圖3.17   以美國(guó)庫(kù)柏(Cooper)超級(jí)電容為例,與鋰離子電池進(jìn)行比較,有如下一些明顯特性:
1. 超低串聯(lián)等效電阻(ESR),功率密度(Power Density)是鋰離子電池的數(shù)十倍以上,適合大電流放電,(一枚4.7F電容能釋放瞬間電流18A以上)為水表控制電機(jī)閥或電磁閥的可靠開(kāi)啟提供了保障。
2. 超長(zhǎng)壽命,充放電大于50萬(wàn)次,是鋰離子電池的500倍,是鎳氫和鎳鎘電池的1000倍,如果對(duì)超級(jí)電容每天充放電20次,連續(xù)使用可達(dá)68年。
3. 可以大電流充電,充放電時(shí)間短,對(duì)充電電路要求簡(jiǎn)單,無(wú)記憶效應(yīng)。
4. 免維護(hù),可密封。
5. 溫度范圍寬-40~+70℃,普通電池是-20~60℃。
與內(nèi)裝鋰電池的智能水表相比,這種方案是用超級(jí)電容替換鋰電池封裝在水表中,同時(shí)外接干電池供電。平時(shí)干電池提供水表電路所需能量和對(duì)超級(jí)電容的充電,在需要開(kāi)啟水閥時(shí),由外接干電池提供能量將水閥開(kāi)啟;在需要關(guān)斷水閥時(shí),如果外接電池不能提供能量將水閥關(guān)斷,那么超級(jí)電容將在此刻提供能量來(lái)關(guān)斷水閥。如同一個(gè)儲(chǔ)水箱,平時(shí)將水存儲(chǔ)起來(lái),在停水時(shí)才起作用。

圖3.18是應(yīng)用示意圖。正常情況下,電池通過(guò)電阻R14、二級(jí)管D1向負(fù)載和超級(jí)電容充電。電阻R14的作用是限制電流過(guò)大,因?yàn)槌?jí)電容內(nèi)阻很小,充電時(shí)電流較大可能造成電池?fù)p壞。二級(jí)管D1防止反向電流。當(dāng)電池電壓過(guò)低,或突然斷電時(shí)(如取下電池),由超級(jí)電容繼續(xù)為電路提供電源,同時(shí),超級(jí)電容存儲(chǔ)的能量足以關(guān)斷閥門。 這種方案明顯優(yōu)于以前的設(shè)計(jì),優(yōu)點(diǎn)如下:將電池從水表中分離出來(lái),從而可以不考慮電池壽命對(duì)水表的影響,大大延長(zhǎng)了水表的使用時(shí)間;另一方面,超級(jí)電容的大電流放電特性保障了水閥關(guān)斷的可靠性,在外接干電池電量不足時(shí),仍能利用存儲(chǔ)在超級(jí)電容上的能量將水閥關(guān)斷;以前一味追求的漏電流指標(biāo),主要是為了保障電池的使用壽命,改用超級(jí)電容后,漏電流指標(biāo)變得不再重要。如果電池電量不足,用戶可以隨時(shí)更換。這樣,不僅使電路設(shè)計(jì)簡(jiǎn)化,減少產(chǎn)品的出廠檢驗(yàn)工序,還使產(chǎn)品的成本降低[15]。
這種方案克服了現(xiàn)階段智能水表的缺點(diǎn),為智能水表的發(fā)展找到了一條新的途徑。目前國(guó)內(nèi)已有多家水表生產(chǎn)廠應(yīng)用該方案,實(shí)踐證明,它是切實(shí)可行的。所以本設(shè)計(jì)亦采用了這種方案。在本設(shè)計(jì)中,我們選用了深圳市索普康電子有限公司的超級(jí)電容,其型號(hào)為5R5H105、產(chǎn)品規(guī)格為3.3V0.22F。 3.10 檢測(cè)模塊的設(shè)計(jì) 檢測(cè)模塊主要對(duì)以下四種情況進(jìn)行檢測(cè) (1) 水表被拆卸;(2) 電池欠壓或取出電池;(3) 有按鍵按下;(4) 有IC卡插入。當(dāng)有以上四種情況之一時(shí),外部中斷 (P3.5)產(chǎn)生中斷。當(dāng)產(chǎn)生中斷后,中斷程序馬上依次檢測(cè)P3.6口(F_KEY)、P3.2口(V_MONI)、P3.3口(OPEN_D)、P1.5口(SW_T),如圖3.19所示,以確認(rèn)是哪種情況產(chǎn)生的中斷后作出相應(yīng)處理。該電路由一個(gè)電壓檢測(cè)器HT7039、兩個(gè)與非門、一個(gè)或非門、一個(gè)常閉開(kāi)關(guān)和一個(gè)常開(kāi)開(kāi)關(guān)組成。例如,當(dāng)電池欠壓或取出電池時(shí),HT7039輸出為低電平,U8輸出為高電平,那么U9輸出為低電平(即P3.5為低電平),產(chǎn)生中斷。其他情況同理可得[11] [14]。   第4章 IC卡智能水表的軟件設(shè)計(jì) 本軟件我們用MCS-51匯編語(yǔ)言編制,采用了結(jié)構(gòu)化,模塊化的程序設(shè)計(jì)方法。它由主程序、外部中斷0子程序、外部中斷1子程序、IC卡與片外數(shù)據(jù)存儲(chǔ)器的讀寫軟件設(shè)計(jì)、顯示子程序等模塊組成。本章還給出了詳細(xì)的流程圖。具體程序見(jiàn)附錄B。 4.1 主程序的設(shè)計(jì) 主程序主要完成系統(tǒng)的初始化,各種情況的判斷如電壓情況、按鍵是否按下、水量判斷等,在適當(dāng)情況下還要進(jìn)行顯示、關(guān)閉閥門等操作,平時(shí)處于睡眠狀態(tài)。當(dāng)表內(nèi)剩余水量小于5 m3時(shí),表內(nèi)蜂鳴器發(fā)出提示報(bào)警,以提醒用戶剩余水量不多,請(qǐng)速購(gòu)水;當(dāng)表內(nèi)剩余水量為0 m3時(shí),切斷閥門,停止供水,直到新的水量被購(gòu)來(lái)為止。從而達(dá)到用水必須預(yù)先交費(fèi)的目的,省去了人工抄表收費(fèi)環(huán)節(jié)。主程序的流程圖如圖4.1所示[16-18]。具體程序見(jiàn)附錄B。 4.2 外部中斷0子程序 外部中斷0子程序也即水表脈沖計(jì)量程序,它只要是對(duì)用戶水量進(jìn)行處理。當(dāng)用戶在進(jìn)行用水操作時(shí),由流量傳感器產(chǎn)生的脈沖信號(hào)使 進(jìn)入中斷響應(yīng)程序。 根據(jù)機(jī)械水表的測(cè)量原理,水的流量與水表齒輪的轉(zhuǎn)速可以近似成一定的線性關(guān)系。顯然,水表齒輪所轉(zhuǎn)的圈數(shù)與傳感器產(chǎn)生的脈沖信號(hào)是一一對(duì)應(yīng)的關(guān)系。根據(jù)這一原理,我們可確定流量的計(jì)算公式為: (4.1) 在式(4.1)中,Q為流量,單位為m3 ;K為基表系數(shù),單位為m3/r;N為轉(zhuǎn)數(shù),單位為r。在這里,由于K(基表系數(shù))是一個(gè)常數(shù)。因此,Q與N是一一對(duì)應(yīng)關(guān)系。我們采用了6位數(shù)據(jù)顯示,其中只含有一位小數(shù)。當(dāng)Q為0.1 m3時(shí),由于K已知,N即可以求出。在本系統(tǒng)編程中,我們?cè)O(shè)定M為測(cè)得脈沖數(shù),N為Q為0.1 m3時(shí)對(duì)應(yīng)的轉(zhuǎn)數(shù)值,“剩余水量-1,用水總量+1”中的“1”表示0.1 m3的水量[3]。其具體流程圖如圖4.2所示。具體程序見(jiàn)附錄B。   
圖4.2 外部中斷 子程序 4.3 外部中斷1子程序 以下四種情況均可以使 產(chǎn)生中斷 (1) 水表被拆卸;(2) 電池欠壓或取出電池;(3) 有按鍵按下;(4) 有IC卡插入。當(dāng)產(chǎn)生中斷后,中斷程序馬上依次檢測(cè)P3.6口、P3.2口、P3.3口、P1.5口(原理圖見(jiàn)總電路圖中檢測(cè)模塊),以確認(rèn)是哪種情況產(chǎn)生的中斷后作出相應(yīng)處理。其具體流程圖如圖4.3所示,具體程序見(jiàn)附錄B。 
圖4.3 外部中斷 子程序 4.4 IC卡的讀寫軟件設(shè)計(jì) 系統(tǒng)軟件設(shè)計(jì)的流程應(yīng)為確認(rèn)有卡插入后,延時(shí),待IC卡供電電路穩(wěn)定,讀IC卡標(biāo)志位,并與系統(tǒng)中保存的標(biāo)志比較,確認(rèn)后,讀數(shù)據(jù)區(qū)。為提高可靠性,IC卡中的數(shù)據(jù)在兩個(gè)不連續(xù)區(qū)作備份,第二組數(shù)據(jù)作校驗(yàn)。為防止有損壞的字節(jié)和其它因素影響數(shù)據(jù)不可靠,建議將每次寫入的數(shù)據(jù)再讀出比較,判斷寫入的數(shù)據(jù)是否正確,從而達(dá)到保證 對(duì)IC書寫操作的無(wú)誤。下面詳細(xì)地介紹了它的工作原理。 4.4.1 SDA和SCL信號(hào) SDA和SCL雙向總線采用I2C-bus(inter-intergrad circuit bus)匯流總線技術(shù),所有的控制命令和數(shù)據(jù)傳輸均由這兩條雙向總線執(zhí)行,采用SDA和SCL,兩條總線就可實(shí)現(xiàn)對(duì)E2PROM進(jìn)行讀寫,并且在讀寫過(guò)程中其信息傳遞的波特率可以從0到100kbps,其數(shù)據(jù)傳輸及時(shí)鐘脈沖時(shí)序圖如圖4.4所示。 
圖4.4 數(shù)據(jù)傳輸及時(shí)鐘時(shí)序圖 IC卡的讀寫其實(shí)也就是對(duì)IC卡片內(nèi)E2PROM進(jìn)行讀寫。所以在AT24CXX系列IC卡的應(yīng)用中,與邏輯控制有關(guān)的引出端線只有2條:SCL和SDA。所有的地址、數(shù)據(jù)及讀/寫控制命令等信號(hào)均從SDA端輸入/輸出。為了區(qū)分SDA線上的數(shù)據(jù)、地址、操作命令以及各種狀態(tài)的“開(kāi)始”與“結(jié)束”,卡片內(nèi)設(shè)計(jì)了多個(gè)邏輯控制單元。其中,啟動(dòng)與停止邏輯單元產(chǎn)生控制讀/寫操作的“開(kāi)始”和“停止”標(biāo)志信號(hào)。 “開(kāi)始”狀態(tài):當(dāng)SCL處于高電平時(shí),SDA從高電平轉(zhuǎn)向低電平,即產(chǎn)生“開(kāi)始”標(biāo)志信號(hào); “停止”狀態(tài):當(dāng)SCL處于高電平時(shí),SDA從低電平轉(zhuǎn)向高電平,即產(chǎn)生“停止”標(biāo)志信號(hào),如圖4.7所示。 
SDA和SCL通常各自通過(guò)一個(gè)電阻拉到高電平。當(dāng)SCL為高電平時(shí),對(duì)應(yīng)的SDA上的數(shù)據(jù)有效;而當(dāng)SCL為低電平時(shí),允許SDA上的數(shù)據(jù)變化。 數(shù)據(jù)輸入/輸出應(yīng)該應(yīng)答邏輯單元產(chǎn)生數(shù)據(jù)輸入/輸出操作應(yīng)答信號(hào)。操作時(shí)所有的地址和數(shù)據(jù)均為8位碼串行輸入/輸出于卡片?ㄆ渴盏揭粋(gè)8位碼長(zhǎng)的地址碼或數(shù)據(jù)字后,都以置SDA線為低電平方式“確認(rèn)”應(yīng)答信號(hào)。其波形如圖4.8所示。 
圖4.8 輸入輸出的確認(rèn)時(shí)序 4.4.2 IC卡的寫操作 在器件地址碼之后,緊跟著的是字節(jié)地址碼。地址碼長(zhǎng)度為8位。時(shí)序中的數(shù)據(jù)為寫字節(jié)時(shí),由IC卡讀/寫器中的單片機(jī)在SDA發(fā)送一個(gè)8位碼長(zhǎng)的數(shù)據(jù);卡片每收到一個(gè)數(shù)據(jù)字節(jié)后,都要通過(guò)SDA回送一個(gè)“確認(rèn)”信號(hào)(ACK)。寫操作時(shí)序如圖4-9所示。 
圖4.9 寫操作時(shí)序 4.4.3 IC卡的讀操作 讀操作有3種:立即地址讀、隨機(jī)地址讀及順序地址讀; 立即地址讀:如果最后1次操作的地址在n,則現(xiàn)行地址為n+1。其時(shí)序如圖4.10中的第2部分; 圖4.10 讀操作時(shí)序
隨機(jī)地址讀:從選定的地址單元開(kāi)始讀,時(shí)序如圖4.10所示。時(shí)序中器件地址和字地址概念同寫操作,不同的是,IC卡讀/寫器中的單片機(jī)在給出數(shù)據(jù)字地址碼之后,不發(fā)任何數(shù)據(jù)字,而是在卡片發(fā)出“確認(rèn)”應(yīng)答之后,又發(fā)出一個(gè)“開(kāi)始”狀態(tài),進(jìn)入“立即地址讀”操作;單片機(jī)讀入1個(gè)數(shù)據(jù)后,使SDA處于高電平,隨后產(chǎn)生一個(gè)“停止”狀態(tài),結(jié)束本次操作。 順序地址讀 :可以從“立即地址讀”和“隨機(jī)地址讀”開(kāi)始。當(dāng)IC卡讀/寫器中的單片機(jī)收到第1個(gè)數(shù)據(jù)字后,不發(fā)“停止”狀態(tài),而是回答一個(gè)“確認(rèn)”信號(hào)。一旦卡片收到單片機(jī)發(fā)出的“確認(rèn)”信號(hào),則將卡片內(nèi)地址計(jì)數(shù)器的地址自動(dòng)加1,并將此地址單元中的數(shù)據(jù)從SDA線上串行輸出。只要單片機(jī)收到數(shù)據(jù)字后回答“確認(rèn)”信號(hào),順序讀操作就繼續(xù)進(jìn)行,直到單片機(jī)送出“停止”信號(hào)為止。 在本設(shè)計(jì)的軟件編程中,我們采用了隨機(jī)地址讀和順序地址讀兩種操作方式。 4.4.4 IC卡芯片的控制字節(jié)和器件尋址 控制字節(jié)的的配置如表4.1與圖4.11所示?刂谱止(jié)是跟隨在主器件發(fā)出的開(kāi)始條件后面,器件首先接收到的字節(jié)?刂谱止(jié)的前四位由4位控制碼組成,當(dāng)控制碼為1010時(shí),表示對(duì)IC卡的和寫操作。 表4.1 控制字節(jié)的配置 | | | 讀/寫(R/ ) | | | | | | | | |
由于對(duì)IC卡而言,A2,A1,A0地址線均為0;因此,綜合上面所敘:寫地址為0A0H,讀地址為0A1H[2] [10]。 
圖4.11 控制字節(jié)的配置 4.4.6 IC卡處理程序流程圖 IC卡的處理程序由外部中斷 觸發(fā)產(chǎn)生的(如圖4.3所示)。該程序首先判斷是管理卡還是用戶卡,再做出相應(yīng)的處理。如果是管理卡,則進(jìn)行清除不良記錄;如果是用戶卡,則必須先核對(duì)用戶名和密碼是否正確,再進(jìn)行IC卡的讀寫操作與開(kāi)閥處理。在本設(shè)計(jì)中,我們是通過(guò)比較IC卡與片外數(shù)據(jù)存儲(chǔ)器E2PROM兩者對(duì)應(yīng)的用戶名信息單元和密碼存儲(chǔ)單元的內(nèi)容是否相同來(lái)實(shí)現(xiàn)的。 其具體程序流程圖見(jiàn)圖4.12所示,具體程序見(jiàn)附錄B。 
圖4.12 IC卡處理程序流程圖 4.5 片外數(shù)據(jù)存儲(chǔ)器讀寫軟件設(shè)計(jì) 片外數(shù)據(jù)存儲(chǔ)器E2PROM讀寫的目的主要是掉電中斷程序使CPU在檢測(cè)到電池失壓后,將RAM 區(qū)的所有數(shù)據(jù)寫入E2PROM中,以保證下次上電時(shí)安全讀出。上面4.4節(jié)所詳細(xì)介紹的IC卡的讀寫其實(shí)也就是對(duì)IC卡片內(nèi)E2PROM進(jìn)行讀寫,即對(duì)IC卡的讀寫和對(duì)E2PROM讀寫的操作原理是一樣的。所以,在這里我們不在重復(fù)介紹E2PROM進(jìn)行讀寫工作原理。 值得注意的是,IC卡和片外數(shù)據(jù)存儲(chǔ)器都是使用的美國(guó)ATMEL公司的低功耗CMOS串行E2PROM,型號(hào)均為AT24C01,但是它們的使用目的和存儲(chǔ)內(nèi)容不同。IC卡是用戶與供水部門之間交易的媒介,它存儲(chǔ)的是用戶的基本信息、效驗(yàn)密碼還有用戶本次所購(gòu)水量等;而片外數(shù)據(jù)存儲(chǔ)器是用來(lái)實(shí)時(shí)地保存用戶的有用數(shù)據(jù),防止系統(tǒng)在運(yùn)行中掉電丟失。 4.6 顯示子程序 要顯示的數(shù)據(jù)有剩余水量、用水總量,分別存儲(chǔ)于連續(xù)的幾個(gè)數(shù)據(jù)存儲(chǔ)器之中。在本設(shè)計(jì)具體編程時(shí),剩余水量存儲(chǔ)于3D-3EH中;用水總量存儲(chǔ)于39-3BH中。由總電路圖(附圖1)可知其采用了串行口方式0,所以要用時(shí)只要將串行口設(shè)置為方式0,然后在脈沖的配合下從高位到低位一個(gè)個(gè)的移入SUBF寄存器中即可[12]。其具體程序見(jiàn)附錄B。 第5章關(guān)于IC卡智能水表的關(guān)鍵問(wèn)題及解決辦法 本章提出了IC卡智能水表兩個(gè)關(guān)鍵的問(wèn)題即低功耗問(wèn)題與安全性問(wèn)題。這兩大問(wèn)題是保證系統(tǒng)能長(zhǎng)久地可靠運(yùn)行并進(jìn)行全面推廣的關(guān)鍵所在,關(guān)系到供水部門和使用者的切身利益。下面給出了可行的解決辦法。 5.1 IC卡智能水表的低功耗問(wèn)題 本設(shè)計(jì)的IC卡智能水表電源部分采用3節(jié)干電池供電。而電池的容量也非常有限,如果需要經(jīng)常更換電池,肯定會(huì)給用戶帶來(lái)很多的不便,勢(shì)必對(duì)該水表的推廣帶來(lái)了很大的麻煩。經(jīng)常更換電池還為竊水提供了可能。因此水表的功耗問(wèn)題成為設(shè)計(jì)的重點(diǎn)和難點(diǎn)。 5.2 低功耗解決方案 IC卡的能耗由3部分構(gòu)成:第一部分是控制器單片機(jī)(CPU)、LED顯示正常運(yùn)行時(shí)的持續(xù)性能耗是主要的功耗;第二部分是卡表招待機(jī)構(gòu)(電磁閥)動(dòng)作時(shí)的瞬時(shí)能耗;第三部分是IC卡表一些輔助功能如聲音報(bào)警等的能耗。 上述IC卡表能耗的第一、二部分占了總能耗的95%以上。由于這兩部分能耗從特征上來(lái)說(shuō)是完全不同的類型,給選擇合適的電源增加了難度。用戶可以通過(guò)定期更換電池,維持IC卡水表正常運(yùn)行,但同時(shí)也給IC卡留下了技術(shù)安全的兩大隱患。第一大隱患是嚴(yán)重的,讓用戶自行更換電池,意味著控制器將有更多機(jī)會(huì)遭受劣質(zhì)電池的侵襲,造成元器件的損壞、控制器失效及大量的維修損失。第二大隱患是致命的更換電池為技術(shù)性竊水提供了可能。我們知道,電控閥依靠電池執(zhí)行開(kāi)/關(guān)閥動(dòng)作。通常設(shè)計(jì)者在電路中都采取了斷電自動(dòng)關(guān)閥的技術(shù)保護(hù)措施。其基本原理就是通過(guò)大容量電容、限流電阻及三極管開(kāi)關(guān)組成一個(gè)儲(chǔ)能電路,電壓正常時(shí),電池向儲(chǔ)能電容充電,一經(jīng)檢測(cè)到電壓不正常,電容放電使閥門關(guān)閉。而更換電池時(shí),控制電路雖發(fā)出關(guān)閉信號(hào),但儲(chǔ)能電容已無(wú)法提供關(guān)閉閥所需的能量,閥門就此處于永久開(kāi)啟的狀態(tài)。不少使用干電池的IC卡,安上述方法試驗(yàn)三四次后,均能將閥門打開(kāi)。解決此問(wèn)題的辦法是前面提到的采用超級(jí)電容方案。 為了盡可能降低IC卡水表運(yùn)行時(shí)的功耗,延長(zhǎng)干電池的使用時(shí)間,本設(shè)計(jì)系統(tǒng)考慮從以下幾個(gè)途徑來(lái)實(shí)現(xiàn)。 1. 選擇低功耗電磁閥 電磁閥是IC卡智能水表的重要部件,我采用了新型雙穩(wěn)態(tài)脈沖式電磁閥,電源電壓低。正常供水情況下,電磁閥處于常開(kāi)狀態(tài),驅(qū)動(dòng)機(jī)構(gòu)不消耗電能;只有當(dāng)購(gòu)買的噸位數(shù)用完時(shí),電磁閥關(guān)閉并自鎖于常閉狀態(tài)。它具有啟動(dòng)水壓低、防堵性能好及關(guān)閉可靠等特點(diǎn)。 2. 選擇低功耗器件 除選用低功耗的微處理器外,其他器件也必須為低功耗型,如CMOS器件,而且參數(shù)的選用也必須注意低功耗。其重點(diǎn)是: (1) 采用低功耗器件。 (2) 采用LED顯示作為顯示接口。采用LED顯示相關(guān)信息,并且平常處于關(guān)閉狀態(tài)。設(shè)置相應(yīng)的控制按鈕,控制按鈕由防水蓋控制。用記需要查詢時(shí),打開(kāi)防水蓋,按鈕閉合,才顯示剩余水量等信息。 (3) 一般情況下,讓芯片處于低功耗睡眠模式(SLEEP MODE)。 3. 選擇低的工作電壓和低的工作頻率 隨著半導(dǎo)體技術(shù)的不斷發(fā)展,集成電路的電源電壓呈現(xiàn)出下降趨勢(shì),F(xiàn)在許多的CMOS電路都提供低電壓設(shè)計(jì)。常用5V的CMOS器件大多都提供3V的使用電壓。低電壓不僅便于使用電池,也可以降低電流消耗。在便攜式設(shè)備設(shè)計(jì)中,為降低功耗大量使用了各種低電壓器件。降低時(shí)鐘頻率,可節(jié)省能源,并使單片機(jī)執(zhí)行速度減慢。 5.3 IC卡智能水表的安全性問(wèn)題 IC卡智能水表的推廣應(yīng)用,取決于以下兩個(gè)主要因素:1.水表的可靠性;2.水表的安全性。水表的可靠性是從水表的功能和性能來(lái)說(shuō)的;水表的安全性主要是從水表的數(shù)據(jù)防盜(即竊水)、IC卡數(shù)據(jù)的防非法復(fù)制等角度來(lái)說(shuō)的。由于水表的安全性可關(guān)自來(lái)水公司的直接利益,進(jìn)而關(guān)系到IC卡水表的推廣應(yīng)用,因此,IC卡水表的安全性問(wèn)題是必須認(rèn)真考慮的一個(gè)問(wèn)題。 5.4 安全性問(wèn)題解決方案 1. 售水用IC卡(用戶卡)的安全性 由于本智能水表采用普通24C01系列IC卡,因此,對(duì)IC卡信息的加密與解密是決定IC卡安全性的關(guān)鍵。具體辦法是:用戶卡在每次購(gòu)水時(shí),均由上位機(jī)根據(jù)剩余水量等信息隨機(jī)生成3B的密碼因子存入IC卡,以此對(duì)IC卡信息進(jìn)行動(dòng)態(tài)加密;卡表內(nèi)的加密與解密程序讀取IC卡信息后,進(jìn)行逆向處理,達(dá)到解密目的,然后對(duì)數(shù)據(jù)進(jìn)行相應(yīng)處理。采用這種方法后,可有效防止IC卡的非法復(fù)制與數(shù)據(jù)非法修改,保證IC卡的安全性。 2. 表內(nèi)信息的安全性 表內(nèi)信息的安全性由以下2種措施來(lái)保證; (1) IC卡的有效認(rèn)證 卡表自動(dòng)識(shí)別有效IC卡,按預(yù)定程序與IC卡進(jìn)行雙向傳輸,1次讀入全部信息,表內(nèi)內(nèi)存的信息1次寫入IC卡。設(shè)置的讀/寫密碼保證1表只有一張用戶卡配對(duì)使用。 (2) 防拆卸功能 若用戶私自拆卸水表,S1閉合, 狀態(tài)由高到低觸發(fā)中斷,中斷服務(wù)程序?qū)㈤_(kāi)蓋行為記錄到表內(nèi)的E2PROM中,并立即關(guān)斷進(jìn)水開(kāi)關(guān)。只有自來(lái)水公司管理人員用管理卡才能消除這種不良記錄。 第6章系統(tǒng)調(diào)試 系統(tǒng)調(diào)試也是一個(gè)關(guān)鍵性的環(huán)節(jié),它是理論設(shè)計(jì)到實(shí)際應(yīng)用的一個(gè)過(guò)渡。本章簡(jiǎn)要地闡述了系統(tǒng)硬件調(diào)試和軟件調(diào)試,及其調(diào)試現(xiàn)象。 6.1 調(diào)試設(shè)備 PC一臺(tái),80C51單片機(jī)實(shí)驗(yàn)臺(tái),萬(wàn)用表,示波器,導(dǎo)線若干等 6.2 硬件調(diào)試 硬件調(diào)試是利用開(kāi)發(fā)系統(tǒng)、基本測(cè)試儀器(萬(wàn)用表、示波器等),檢查用戶系統(tǒng)硬件中存在的故障。由于實(shí)驗(yàn)室沒(méi)有AT89C2051,在這里我們用AT89C51代替。 硬件調(diào)試可分為靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試兩步進(jìn)行。 1. 靜態(tài)調(diào)試 靜態(tài)調(diào)試是在用戶系統(tǒng)未工作時(shí)的一種硬件檢測(cè)。 本系統(tǒng)在靜態(tài)調(diào)試中的步驟如下: 第一步:目測(cè)。檢查外部的各種元件或者是電路是否有斷點(diǎn)。 第二步:用萬(wàn)用表測(cè)試。先用萬(wàn)用表復(fù)核目測(cè)中有疑問(wèn)的連接點(diǎn),再檢測(cè)各種電源線與地線之間是否有短路現(xiàn)象。 第三步:加電檢測(cè)。給板加電,檢測(cè)所有的插座或是器件的電源端是否符合要求的值。 第四步:聯(lián)機(jī)檢查。因?yàn)橹挥杏脝纹瑱C(jī)開(kāi)發(fā)系統(tǒng)才能完成對(duì)用戶系統(tǒng)的調(diào)試。 2. 動(dòng)態(tài)調(diào)試 動(dòng)態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件內(nèi)部故障、器件連接邏輯錯(cuò)誤等的一種硬件檢查。在本設(shè)計(jì)中,由于該系統(tǒng)采用了模塊化的設(shè)計(jì),所以動(dòng)態(tài)調(diào)試采用了分模塊調(diào)試的辦法。調(diào)試過(guò)程中,分為信號(hào)處理模塊、顯示電路模塊、報(bào)警電路模塊、電源模塊模塊、電磁閥驅(qū)動(dòng)電路模塊等進(jìn)行了分別調(diào)試。 6.3 軟件調(diào)試 軟件調(diào)試是通過(guò)對(duì)用戶程序的匯編、連接、執(zhí)行來(lái)發(fā)現(xiàn)程序中存在的語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過(guò)程。在本系統(tǒng)中,軟件的調(diào)試部分包括各類程序的調(diào)試,如主程序、外部中斷0子程序、外部中斷1子程序、顯示子程序等。 6.4 調(diào)試現(xiàn)象 調(diào)試是一個(gè)很痛苦的過(guò)程,起初調(diào)試結(jié)果十分不理想。 例如,硬件調(diào)試方面,在電磁閥驅(qū)動(dòng)電路模塊中,P1.1變?yōu)楦唠娖胶,繼電器不動(dòng)作,開(kāi)關(guān)K1不閉合。通過(guò)檢查程序、接線、各個(gè)元件等均正確無(wú)誤。但是經(jīng)過(guò)多次實(shí)驗(yàn),繼電器依然不動(dòng)作。后來(lái),在曹老師的指導(dǎo)下,發(fā)現(xiàn)可能是電路圖6.1有問(wèn)題。在電路圖6.1中光電耦合器SW-GD應(yīng)該根本就不能驅(qū)動(dòng)繼電器的動(dòng)作。發(fā)現(xiàn)問(wèn)題后,馬上對(duì)圖6.1進(jìn)行了改正,改為第三章中的圖3.10所示。在實(shí)驗(yàn)室經(jīng)過(guò)調(diào)試,改正后的電路效果很好,完全符合本設(shè)計(jì)要求。 
圖6.1 光電耦合器隔離電路 經(jīng)常幾天的努力,在實(shí)驗(yàn)室老師的指導(dǎo)和同學(xué)的幫助下,調(diào)試結(jié)果終于基本達(dá)到了設(shè)計(jì)任務(wù)的要求。 總 結(jié) 基于單片機(jī)的IC卡智能水表控制系統(tǒng),使用邏輯加密IC卡,實(shí)現(xiàn)了用水收費(fèi)的電子化。本設(shè)計(jì)采用89C2051單片機(jī)控制,全自動(dòng)運(yùn)行,成本較低,使用方便,運(yùn)行可靠,管理簡(jiǎn)單,保護(hù)功能齊全。整個(gè)系統(tǒng)結(jié)構(gòu)緊湊、所用芯片少、控制精度高。在IC卡接口電路、片外數(shù)據(jù)存儲(chǔ)器接口電路、顯示電路上都采用了串行方式,從而減小了單片機(jī)口線的使用,也使使用口線小的單片機(jī)成為可能,節(jié)約了成本開(kāi)支,并減小了PCB版的大。浑娫措娐凡捎3節(jié)干電池,外加超級(jí)電容作為備用電源,經(jīng)濟(jì)實(shí)惠而且性能穩(wěn)定,使用年限長(zhǎng)。 本系統(tǒng)最大的優(yōu)點(diǎn)是采用了低功耗的設(shè)計(jì)和采取了很多有效措施來(lái)增強(qiáng)了系統(tǒng)的安全性。在低功耗的設(shè)計(jì)方面,大部分芯片均采用了微功耗COMS芯片;采用低功耗電磁閥,而且閥門的開(kāi)/關(guān)控制由單片機(jī)輸出電脈沖實(shí)現(xiàn),只需瞬時(shí)供電,減少耗電量;選用了工作時(shí)無(wú)須使用外加電源WG系列韋根傳感器,大大降低了使用功耗,等等。在安全性的設(shè)計(jì)方面,使用了邏輯加密IC卡,必須核對(duì)用戶信息和密碼正確才能讀取有效數(shù)據(jù);單片機(jī)控制的I/O口和繼電器控制端口之間用光電耦合器進(jìn)行了隔離,這樣,由于繼電器通斷所造成的電火花和電弧就不會(huì)影響到單片機(jī)系統(tǒng)了;應(yīng)用超級(jí)電容作為備用電源,有效地防止系統(tǒng)掉電時(shí)用戶進(jìn)行偷盜水的操作,等等。 當(dāng)然本系統(tǒng)也存在一些缺點(diǎn)。例如,在顯示方面,沒(méi)有采用液晶顯示,所以該系統(tǒng)不能顯示閥門狀態(tài)、電池狀態(tài)等圖形文字信息,不過(guò)采用LED顯示成本較低,適合大眾要求;在控制方面,沒(méi)有實(shí)現(xiàn)階梯水價(jià)功能,對(duì)用戶的用水收費(fèi)只能按照一個(gè)統(tǒng)一的標(biāo)準(zhǔn)收。辉诎踩苑矫,未能編制出對(duì)IC卡信息進(jìn)行加密與解密的應(yīng)用程序。 總的來(lái)說(shuō),上述設(shè)計(jì)能夠較好的完成設(shè)計(jì)任務(wù),基本實(shí)現(xiàn)了設(shè)計(jì)要求。但是由于本人能力有限,設(shè)計(jì)中難免存在一定的缺陷,還請(qǐng)各位專家批評(píng)指正。隨著水資源的日益緊張,IC卡智能水表因其特有的優(yōu)點(diǎn)(如先“先收費(fèi)后供水”、解決人工抄表的麻煩等),必將成為水表中的主流,有著很大的市場(chǎng)前景。

完整的Word格式文檔51黑下載地址(內(nèi)含源碼):
基于單片機(jī)的IC卡智能水表控制系統(tǒng)設(shè)計(jì)[附程序 圖].doc
(2.32 MB, 下載次數(shù): 149)
2018-5-10 09:40 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|