(內(nèi)蒙古科技大學(xué)信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
時(shí)間控制閥是按照未來(lái)具體時(shí)刻對(duì)安裝在管道中閥門的開(kāi)度進(jìn)行控制的一種裝置。通過(guò)對(duì)閥門開(kāi)度的控制,可以直接控制管道中介質(zhì)的流量。目前,工業(yè)和民用領(lǐng)域所使用的控制閥的控制方式大多采用人工手動(dòng)操作或自動(dòng)操作方式。自動(dòng)操作方式為4~20 mA直流信號(hào)或按照某種通信協(xié)議采用RS- 485數(shù)字信號(hào)的遠(yuǎn)距離傳輸控制方式。這些控制方式適合工業(yè)生產(chǎn)中的控制系統(tǒng)實(shí)現(xiàn)自動(dòng)化生產(chǎn),其開(kāi)度控制一般需要控制儀表或包含計(jì)算機(jī)板卡在內(nèi)的工業(yè)計(jì)算機(jī)。
目前,我國(guó)在許多領(lǐng)域廣泛存在著需要用具體時(shí)間進(jìn)行控制的控制閥。在這些領(lǐng)域,采用工業(yè)4~20 mA或遠(yuǎn)程控制實(shí)現(xiàn)定時(shí)控制時(shí),必須構(gòu)建一個(gè)以計(jì)算機(jī)為中心的控制系統(tǒng)。這不僅提高了初期成本投入,還需要專業(yè)的工程技術(shù)人員進(jìn)行定期維護(hù),在一些使用場(chǎng)合用戶往往是不能接受的。采用人工按照固定時(shí)間手動(dòng)操作方式必然增加人力成本且工作效率低下,已不能滿足時(shí)代的發(fā)展要求。非接觸IC卡時(shí)間控制閥采用刷卡方式將閥門打開(kāi)時(shí)間、關(guān)斷時(shí)間及閥門開(kāi)度寫(xiě)入控制器。當(dāng)控制器上的時(shí)鐘運(yùn)行到設(shè)定好的時(shí)刻時(shí),控制器發(fā)出指令驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),將閥門打開(kāi)(關(guān)閉)到某一開(kāi)度,達(dá)到控制流量的目的。
控制器采用TI公司的MSP430F4152低功耗單片機(jī)作為控制芯片,使用復(fù)旦微電子公司的FM1702作為非接觸IC卡讀寫(xiě)芯片、NXP的低功耗芯片PCF8563作為實(shí)時(shí)時(shí)鐘,其結(jié)構(gòu)如圖1所示。
圖1 時(shí)間控制閥控制器結(jié)構(gòu)圖
整個(gè)系統(tǒng)由一塊1 000 mA的3.3 V鋰電池供電。正常情況下,為節(jié)省功耗MSP430F4152處于掉電工作模式。用戶刷卡操作時(shí)通過(guò)靠近殼體的震動(dòng)開(kāi)關(guān)可喚醒MSP430F4152,喚醒后轉(zhuǎn)換為標(biāo)準(zhǔn)工作方式,完成對(duì)應(yīng)IC卡讀寫(xiě)后重新進(jìn)入掉電工作模式。當(dāng)PCF8563運(yùn)行到設(shè)定好的閥門打開(kāi)時(shí)間(關(guān)斷時(shí)間)時(shí),PCF8563將產(chǎn)生一個(gè)中斷信號(hào)。該信號(hào)也可喚醒MSP430F4152為標(biāo)準(zhǔn)運(yùn)行狀態(tài)??刂浦绷麟姍C(jī)運(yùn)行一定的時(shí)間段,將閥門驅(qū)動(dòng)到指定開(kāi)度。電機(jī)的運(yùn)行時(shí)間與閥門設(shè)定開(kāi)度成正比。系統(tǒng)上電后將對(duì)電機(jī)的最長(zhǎng)運(yùn)行時(shí)間(對(duì)應(yīng)最大開(kāi)度)進(jìn)行測(cè)試并記錄。測(cè)試信號(hào)由閥門的最大行程限位開(kāi)關(guān)與最小行程限位開(kāi)關(guān)返回。這兩個(gè)限位開(kāi)關(guān)動(dòng)作的時(shí)間差被控制器記憶作為開(kāi)度控制的參考值。MSP430F4152檢測(cè)到最大行程限位,開(kāi)關(guān)閉合后使電機(jī)停止運(yùn)行。在用戶進(jìn)行刷卡操作時(shí),定制的LCD向操作人員提示閥門的打開(kāi)時(shí)間、關(guān)閉時(shí)間及開(kāi)度信息。如果低電壓檢測(cè)芯片檢測(cè)到電源電壓降到2.5 V,控制器會(huì)驅(qū)動(dòng)蜂鳴器連續(xù)發(fā)出三聲?shū)Q叫,提示用戶更換電池。
目前,市場(chǎng)上通用的非接觸IC卡分為13.56 MHz的高頻卡和125 kHz的低頻卡。高頻卡NXP全稱為Mifare1系列,常用的有S50和S70兩種型號(hào),即智能卡行業(yè)所說(shuō)的M1卡,目前都有國(guó)產(chǎn)芯片與其兼容[1]。低頻卡采用了多功能的非接觸式R/W辨識(shí)集成電路,該電路需要連接一個(gè)天線線圈作為卡上電路與讀卡器直接耦合的接口,天線和芯片一起構(gòu)成感應(yīng)卡片或標(biāo)簽。由于M1卡與低頻卡相比具有數(shù)據(jù)存儲(chǔ)量大、讀卡速度快、感應(yīng)天線不需要單獨(dú)制作等優(yōu)點(diǎn),目前逐漸占據(jù)了市場(chǎng)上的主要份額。
目前,市場(chǎng)上使用的Mifare1卡容量為8 kB EEPROM,卡上數(shù)據(jù)按照16個(gè)扇區(qū)組織,每個(gè)扇區(qū)劃分為4個(gè)塊,每塊可存儲(chǔ)16 B[2]。數(shù)據(jù)的讀寫(xiě)操作以塊(0~63)為單位進(jìn)行。M1卡的組織結(jié)構(gòu)如圖2所示。
圖2 Mifare1卡數(shù)據(jù)結(jié)構(gòu)圖
每個(gè)扇區(qū)可獨(dú)立設(shè)置一組密碼進(jìn)行訪問(wèn)控制。每張卡出廠后具備了唯一的32位序列號(hào),利用該序列號(hào)可區(qū)分多張不同的卡片。每個(gè)扇區(qū)的塊0~塊2用于存儲(chǔ)用戶數(shù)據(jù),塊3用于存儲(chǔ)讀寫(xiě)該扇區(qū)數(shù)據(jù)所用的密碼。需要注意出廠時(shí)扇區(qū)0的塊0用于存放廠商的代碼,該代碼已經(jīng)固化,用戶是不可更改的。
時(shí)間控制閥的工作方式是按照預(yù)先設(shè)定好的未來(lái)時(shí)間對(duì)其開(kāi)度進(jìn)行操作的,其工作方式分為5種,如表1所示。
表1 時(shí)間控制閥的工作方式
在非重復(fù)工作方式下,只有時(shí)鐘運(yùn)行到具體某年的某月某日某時(shí)某分時(shí),控制閥才開(kāi)始動(dòng)作,屬于非周期工作方式。其他4種工作方式為周期工作方式,工作周期根據(jù)應(yīng)用場(chǎng)合的不同可設(shè)置為每年、每月、每日或每小時(shí)。如果設(shè)定每日的開(kāi)閥時(shí)間為上午7:00到9:00,必須將該時(shí)間段的工作方式設(shè)置為日重復(fù)工作方式,這樣可以保證閥每24 h動(dòng)作一次??刂崎y的動(dòng)作時(shí)間與工作方式通過(guò)用戶卡對(duì)閥進(jìn)行設(shè)定。IC卡上的數(shù)據(jù)事先由設(shè)置軟件通過(guò)讀卡器將設(shè)置數(shù)據(jù)寫(xiě)入IC卡,控制閥完成IC卡數(shù)據(jù)讀取后,其工作方式、閥打開(kāi)(關(guān)閉)時(shí)間及開(kāi)度也就隨之確定。Mifare1卡上的1~15扇區(qū)用于定義控制閥不同時(shí)間段的打開(kāi)時(shí)間、關(guān)斷時(shí)間、對(duì)應(yīng)開(kāi)度及工作方式。扇區(qū)0的塊1定義保證一卡一閥對(duì)應(yīng)操作的閥序列號(hào),塊2定義設(shè)置時(shí)間。扇區(qū)1~15的塊0定義閥打開(kāi)時(shí)間,塊1定義閥關(guān)閉時(shí)間,塊2定義開(kāi)度及工作方式及卡片類型。由于每個(gè)塊的存儲(chǔ)容量為16 B,開(kāi)閥時(shí)間與關(guān)閥時(shí)間可按照時(shí)間格式的年、月、日、時(shí)、分、秒順序進(jìn)行存儲(chǔ)。假如塊0以ASCII碼的格式存儲(chǔ)了“20140323232323”字符串,該字符串則定義了閥的打開(kāi)時(shí)間為2014年3月23日23時(shí)23分23秒。開(kāi)度占用3個(gè)字符,其范圍為“000”到“100”,分別代表開(kāi)度為0%和100%,字符串“050”代表了開(kāi)度為50%。工作方式代碼用1個(gè)字符來(lái)描述,即字符“1”到“5”代表了5種不同的工作方式??愋鸵灿?個(gè)字符來(lái)描述,1代表時(shí)間卡,2代表設(shè)置卡,3代表用戶卡。假如某一扇區(qū)的塊2存儲(chǔ)了“0502300000000000”字符串,即該卡為一張控制開(kāi)度為50%、工作方式為月重復(fù)工作方式的一張用戶卡??刂崎y刷完該卡后,時(shí)鐘每月運(yùn)行到設(shè)定的開(kāi)閥(關(guān)閥)時(shí)刻(日、時(shí)、分、秒)時(shí)將按照相應(yīng)開(kāi)度進(jìn)行操作。鑒于目前Mifare1卡可供使用的扇區(qū)為1~15,時(shí)間控制閥的開(kāi)閥與關(guān)閥時(shí)間段最多可設(shè)置為15個(gè)。
時(shí)間控制閥采用了TI的MSP430F4152單片機(jī)作為控制器,其供電范圍為1.8~3.6 V,在正常模式下其功耗為220 μA,標(biāo)準(zhǔn)模式下功耗為0.9 μA,掉電模式下功耗為0.1 μA。該芯片采用16位RISC架構(gòu),內(nèi)部具有1個(gè)16位定時(shí)器,(16 kB+256 B)的Flash存儲(chǔ)器,7個(gè)數(shù)字I/O端口和一個(gè)能驅(qū)動(dòng)144段的LCD驅(qū)動(dòng)器[3-5]。MSP430F4152的外圍電路包括IC卡讀寫(xiě)電路、實(shí)時(shí)時(shí)鐘電路、LCD及電機(jī)驅(qū)動(dòng)電路。
IC卡讀取芯片采用基于ISO 14443標(biāo)準(zhǔn)的非接觸卡讀卡機(jī)專用芯片F(xiàn)M1702SL。該芯片與MSP430F4152的接口采用SPI總線方式,通過(guò)其內(nèi)部64 B的FIFO對(duì)IC卡上的數(shù)據(jù)進(jìn)行讀寫(xiě)操作。MSP430F4152通過(guò)FM1702SL提供的13條指令對(duì)IC卡上的數(shù)據(jù)進(jìn)行讀寫(xiě)操作[6]。FM1702SL對(duì)IC卡的讀寫(xiě)過(guò)程包括尋卡、抗沖突、選卡、密碼驗(yàn)證、讀寫(xiě)操作幾個(gè)步驟。M1卡的具體讀寫(xiě)電路如圖3所示。
圖3 Mifare1卡讀寫(xiě)電路
時(shí)鐘電路采用NXP的PCF8563T作為計(jì)時(shí)單元。MSP430通過(guò)IIC總線設(shè)定PCF8563的初始時(shí)間和報(bào)警時(shí)間,并在任何時(shí)刻讀取當(dāng)前時(shí)間。當(dāng)時(shí)鐘運(yùn)行到設(shè)定好的報(bào)警時(shí)間時(shí)會(huì)產(chǎn)生中斷信號(hào)。MSP430在該中斷信號(hào)的觸發(fā)下驅(qū)動(dòng)電機(jī)將閥打開(kāi)到一定開(kāi)度(或關(guān)閉)。MSP430每次打開(kāi)或關(guān)閉閥門后需重新設(shè)定控制閥下一次動(dòng)作的報(bào)警時(shí)間。實(shí)時(shí)時(shí)鐘電路如圖4所示。
圖4 時(shí)間控制閥的實(shí)時(shí)時(shí)鐘電路
控制閥的電機(jī)驅(qū)動(dòng)電路如圖5所示。
圖5 電機(jī)正反轉(zhuǎn)驅(qū)動(dòng)電路
用單片機(jī)的兩個(gè)I/O口作為正轉(zhuǎn)和反轉(zhuǎn)控制,通過(guò)三極管Q1~Q4可以驅(qū)動(dòng)小功率直流電機(jī)的正反轉(zhuǎn)。當(dāng)正轉(zhuǎn)引腳輸出低電平、反轉(zhuǎn)引腳輸出高電平時(shí),電機(jī)正轉(zhuǎn);反之如果正轉(zhuǎn)引腳輸出高電平、反轉(zhuǎn)引腳輸出低電平時(shí),電機(jī)反轉(zhuǎn)。一旦時(shí)鐘運(yùn)行到設(shè)置好的開(kāi)閥(或關(guān)閥)時(shí)刻,控制器從休眠態(tài)轉(zhuǎn)換到正常工作狀態(tài),驅(qū)動(dòng)直流電機(jī)運(yùn)行,帶動(dòng)減速器旋轉(zhuǎn),驅(qū)動(dòng)球閥旋轉(zhuǎn)一定角度[7]??刂崎y開(kāi)度可通過(guò)控制電機(jī)的運(yùn)行時(shí)間來(lái)確定,具體計(jì)算方法可以按式(1)進(jìn)行:
控制閥運(yùn)行時(shí)間=全程運(yùn)行時(shí)間×控制閥開(kāi)度
(1)
控制閥的全程運(yùn)行時(shí)間指的是電機(jī)從控制閥的開(kāi)度為0運(yùn)行到開(kāi)度為100%的時(shí)間。系統(tǒng)上電后,處理機(jī)給電機(jī)一個(gè)全程運(yùn)行命令,全程運(yùn)行時(shí)間等于電機(jī)運(yùn)行過(guò)程中由前后兩個(gè)限位開(kāi)關(guān)信號(hào)返回的時(shí)間差[8-9]。
系統(tǒng)上電后處理器首先發(fā)出命令使控制閥全程運(yùn)行一個(gè)周期,記錄全程運(yùn)行時(shí)間并使控制閥處于全關(guān)狀態(tài),然后進(jìn)入掉電休眠狀態(tài)以節(jié)省功耗。只有刷卡操作或PCF8563產(chǎn)生報(bào)警信號(hào)時(shí)系統(tǒng)才能被喚醒并進(jìn)入標(biāo)準(zhǔn)工作模式,相應(yīng)操作完成后處理機(jī)重新進(jìn)入休眠狀態(tài)[10]。處理器由IC卡喚醒后執(zhí)行流程如圖6所示。刷卡后處理器首先對(duì)卡的類型進(jìn)行識(shí)別,如果是時(shí)間設(shè)置卡,則通過(guò)該卡對(duì)系統(tǒng)時(shí)間進(jìn)行設(shè)置;如果是序列號(hào),設(shè)置控制閥的唯一序列號(hào);如果是用戶卡,則將卡上存儲(chǔ)的開(kāi)閥時(shí)間、關(guān)閥時(shí)間、對(duì)應(yīng)開(kāi)度及工作方式寫(xiě)入自身Flash等待讀取。PCF8563喚醒處理器時(shí),處理器從Flash中讀取該時(shí)刻的開(kāi)度;然后驅(qū)動(dòng)電機(jī)運(yùn)行對(duì)應(yīng)該開(kāi)度所對(duì)應(yīng)的運(yùn)行時(shí)間;電機(jī)運(yùn)行結(jié)束后重新設(shè)置PCF8563的下一個(gè)報(bào)警時(shí)間。時(shí)間控制閥流程如圖6所示。
圖6 時(shí)間控制閥軟件流程
時(shí)間控制閥功能設(shè)置軟件主要通過(guò)計(jì)算機(jī)完成非接觸IC卡的讀寫(xiě)操作,采用VB 6.0+Access 2007來(lái)完成。讀卡器選用明華公司的RF330,RF330通過(guò)USB接口與計(jì)算機(jī)連接。所有控制閥操作所需的IC卡初始設(shè)置由該軟件完成。設(shè)置項(xiàng)目包括IC卡加密、時(shí)間卡初始時(shí)間的設(shè)置、序列號(hào)卡的序列號(hào)設(shè)置、用戶卡工作方式及開(kāi)(關(guān))閥時(shí)刻、開(kāi)度設(shè)置等。
時(shí)間控制閥采用以MSP430F415為核心,通過(guò)驅(qū)動(dòng)FM1702SL讀卡專用芯片,實(shí)現(xiàn)了所有功能,使整個(gè)系統(tǒng)達(dá)到了很高的性價(jià)比。從長(zhǎng)時(shí)間運(yùn)行來(lái)看,該控制閥能夠滿足一般工業(yè)條件下的使用要求,具備了一定的實(shí)用性和可靠性,達(dá)到了預(yù)計(jì)效果。
[1] 陸永寧.非接觸IC卡原理與應(yīng)用[M].北京:電子工業(yè)出版社,2006.
[2] 廖志鵬,黃俊,雷杏.基于RFID超低功耗射頻標(biāo)簽的研究與實(shí)現(xiàn)[J].壓電與聲光,2012,34(6):951-954.
[3] 潘盛輝,郭毅鋒.基于MSP430的手持式RFID讀寫(xiě)器的設(shè)計(jì)[J].內(nèi)蒙古大學(xué)學(xué)報(bào),2010,41(3):346-350.
[4] 陳義平.基于MSP430單片機(jī)的智能IC卡水表控制器[J].現(xiàn)代電子技術(shù),2012,35(6):123-125.
[5] 潘學(xué)海.基于MSP430單片機(jī)射頻IC卡讀寫(xiě)系統(tǒng)研究[J].煤炭技術(shù),2012,31(1):217-218.
[6] 黎洪生,文浩,舒懷.基于FM1702的非接觸式讀寫(xiě)模塊設(shè)計(jì)[J].電子元器件應(yīng)用,2007,9(1):16-18.
[7] 李開(kāi)元.基于STC單片機(jī)的溫控?zé)嵊?jì)費(fèi)采暖閥門的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2011,37(5):56-59.
[8] 李揚(yáng)宏,李秉智.非接觸IC卡讀卡器的開(kāi)發(fā)與研究[J].計(jì)算機(jī)工程與應(yīng)用,2005(32):106-108.
[9] 趙燦,劉園勝,孫后中.基于MSP430F4152單片機(jī)的超聲波熱量表的設(shè)計(jì)[J].儀器儀表與分析測(cè)試,2013(1):1-3.
[10]佟云峰,李光輝.基于PCF8563時(shí)鐘芯片的單片機(jī)控制聲光提示器設(shè)計(jì)[J].昆明冶金高等??茖W(xué)校學(xué)報(bào),2012,28(9):26-31.