張 瑜
(日照廣播電視大學(xué),山東 日照 276826)
考勤辦公管理系統(tǒng)是企事業(yè)單位的一個(gè)重要的組成部分,它對提高本單位的工作效率,展現(xiàn)本單位的現(xiàn)代管理風(fēng)貌起了很大的作用.近幾年,隨著射頻識別技術(shù)(Radio Frequency Identification,RFID)的發(fā)展,考勤、公告等辦公系統(tǒng)也需要不斷研發(fā)新的功能才能適應(yīng)企業(yè)發(fā)展的要求.為此筆者設(shè)計(jì)了一個(gè)基于射頻卡的考勤辦公系統(tǒng).該系統(tǒng)易學(xué)易用,權(quán)限分明,數(shù)據(jù)安全.能簡易方便的管理員工考勤、請假等方面的事務(wù).
系統(tǒng)整體框架圖如圖1所示.
圖中基于射頻識別技術(shù)的多個(gè)刷卡器通過刷卡分別獲得卡號,通過485通訊方式上傳給PC,PC正確接收后,發(fā)送確認(rèn)信息給各個(gè)刷卡器,并在刷卡器上出現(xiàn)相應(yīng)的聲光反應(yīng).PC機(jī)將卡號和上班時(shí)間通過考勤系統(tǒng)計(jì)入數(shù)據(jù)庫進(jìn)行考勤信息管理.
圖1 系統(tǒng)總體框架
本系統(tǒng)中刷卡器采用了8052兼容單片機(jī)華邦78E52為控制核心,其功能是讀取ID卡的卡號,并將該卡號通過RS485串口發(fā)送給上位機(jī).刷卡器可以分為電源、晶振、復(fù)位電路、TTL-485轉(zhuǎn)換電路、ID卡讀取電路以及其他電路等單元模塊[1-2].
電源電路設(shè)計(jì)采用了7805電源芯片,該芯片允許的最大輸入電壓為35V,滿足大多數(shù)電源適配器的輸出電壓,適應(yīng)范圍比較廣.只需簡單的外圍電路就能實(shí)現(xiàn)5V的穩(wěn)壓輸出,輸出電壓的誤差不會超過4%,即4.8-5.2V;峰值電流最大為2.2A;內(nèi)置短路電流限制電路和溫度過熱保護(hù)電路,如果出現(xiàn)過熱或者過流,芯片會自動降低輸出電流甚至關(guān)斷輸出以保護(hù)芯片不被燒毀,可靠性比較高,是一款應(yīng)用比較廣泛的電源芯片.7805的封裝類型有TO-220和D-PAK,本設(shè)計(jì)采用的是TO-220封裝形式.為了避免將錯(cuò)誤極性的電源加到7805電源芯片上而燒壞芯片,該設(shè)計(jì)中采用的1N4007是一款快速恢復(fù)整流二極管軸線引線式封裝.保險(xiǎn)絲主要是實(shí)現(xiàn)過流保護(hù).
該設(shè)計(jì)中的電解電容和電感都是濾波的作用.其中的小電容104(0.1μF)是去耦電容,用來消除高頻干擾.電源電路如圖2示.
圖2 電源電路
射頻ID卡與刷卡器的通訊[2-3]設(shè)計(jì)采用長春力得公司的LD001-W射頻讀卡模塊,該模塊讀卡距離在80~120mm;模塊封裝類似DIP28,工作頻率為125kHz,適用的卡片類型為uEM4001及兼容芯片,該卡片采用曼徹斯特編碼,而該模塊與單片機(jī)的通訊接口采用該公司的韋根26協(xié)議[1-3],電路連接如圖3所示.
圖3 射頻卡通訊電路
圖3中引腳1:DATA0和引腳2:DATA1與單片機(jī)通過韋根協(xié)議進(jìn)行通訊,將卡號傳輸給單片機(jī),3號引腳CS與單片機(jī)的INT0引腳相連,每個(gè)位的傳輸都會引起單片機(jī)的外部中斷,并在其中斷服務(wù)程序中將該位的數(shù)據(jù)存到單片機(jī)的緩存區(qū)中.15號和16號引腳接外部的感應(yīng)線圈.
設(shè)計(jì)采用的LD001-W模塊與單片機(jī)的通訊采用的是韋根26協(xié)議,該協(xié)議是長春力得公司在標(biāo)準(zhǔn)韋根26協(xié)議的基礎(chǔ)上改進(jìn)而來.該協(xié)議的基本內(nèi)容為:
(1)韋根數(shù)據(jù)輸出的基本概念
DATA0為低電平,DATA1為高電平時(shí),當(dāng)前傳輸?shù)奈粸?,而DATA0為高電平,DATA1為低電平時(shí),當(dāng)前傳輸?shù)奈粸?.
(2)韋根26位輸出格式
第一位是2-13位的偶校驗(yàn)位;第二十六位是14-25位的奇校驗(yàn)位.
(3)韋根26的接收格式
韋根的接收對時(shí)間的實(shí)時(shí)性要求比較高,如果用查詢的方法接收會出現(xiàn)丟幀的現(xiàn)象:假設(shè)查詢到DATA0為0,DATA1為1時(shí),主程序正在指向其他任務(wù),等主程序執(zhí)行完該任務(wù)時(shí)DATA0變成1,DATA1變成0了,這樣讀出的卡號肯定奇偶校驗(yàn)通不過,所以表現(xiàn)出CPU接收不到ID模塊發(fā)送的卡號了.唯一的辦法是在外部中斷里接收每個(gè)位[4].
(4)奇偶校驗(yàn)
奇偶校驗(yàn)是一種校驗(yàn)代碼傳輸正確性的方法,是所有校驗(yàn)算法中最簡單的方式.根據(jù)被傳輸?shù)囊唤M二進(jìn)制代碼的數(shù)位中“1”的個(gè)數(shù)是奇數(shù)或偶數(shù)來進(jìn)行校驗(yàn).采用奇數(shù)的稱為奇校驗(yàn),反之,稱為偶校驗(yàn).采用何種校驗(yàn)是事先規(guī)定好的.通常專門設(shè)置一個(gè)奇偶校驗(yàn)位,用它使這組代碼中“1”的個(gè)數(shù)為奇數(shù)或偶數(shù).若用奇校驗(yàn),則當(dāng)接收端收到這組代碼時(shí),校驗(yàn)“1”的個(gè)數(shù)是否為奇數(shù),從而確定傳輸代碼的正確性.
ID卡的讀取程序流程如圖4所示.
圖4 ID卡讀卡流程圖
上位機(jī)軟件是本系統(tǒng)的重要實(shí)現(xiàn)平臺,本設(shè)計(jì)采用DELPHI編程環(huán)境實(shí)現(xiàn)上位機(jī)軟件的編寫、調(diào)試.分為兩大部分[2-5]:
(1)監(jiān)控軟件.主要面向系統(tǒng)管理員使用,實(shí)現(xiàn)對刷卡情況的監(jiān)控,并將卡號寫入數(shù)據(jù)庫.
(2)數(shù)據(jù)庫軟件.實(shí)現(xiàn)考勤信息的錄入,修改,刪除,請假管理等.
上位機(jī)軟件從技術(shù)方面主要分為兩大部分.
(1)數(shù)據(jù)庫操作部分.本設(shè)計(jì)采用的數(shù)據(jù)庫是SQL server 2000,主要操作是數(shù)據(jù)庫的連接、查詢、刪除、編輯、請假管理等.
(2)串口通訊部分.這部分實(shí)現(xiàn)與刷卡器的通訊,獲得卡號及考勤時(shí)間.
本文著重介紹與485串口刷卡器的通訊.
由于PC機(jī)是RS232串口,在進(jìn)行RS485通訊時(shí),首先要進(jìn)行RS232與RS485轉(zhuǎn)換,設(shè)計(jì)采用了STM485S型號的轉(zhuǎn)換器.
實(shí)現(xiàn)485通訊的前提是制定通訊協(xié)議,考慮到多個(gè)刷卡器與PC機(jī)通訊的及時(shí)性,因此,在制定通訊協(xié)議時(shí),基于MODBUS協(xié)議進(jìn)行了適當(dāng)?shù)男薷?
主從式485通訊協(xié)議數(shù)據(jù)格式[6]:
長度+分機(jī)號+命令碼+幀數(shù)據(jù)+XOR
長度:1字節(jié),為除校驗(yàn)字節(jié)的所有數(shù)據(jù)長度(包括自身),
分機(jī)號:1字節(jié),分機(jī)的地址;
命令碼:1字節(jié),命令格式:
0x00:從機(jī)沒有數(shù)據(jù);
0xFF:從機(jī)有數(shù)據(jù);
0x01:數(shù)據(jù)接收成功;
0x02:重復(fù)簽退;
0x03:卡號異常;
0x04:未注冊手機(jī);
0x05:無數(shù)據(jù);
0xF1:數(shù)據(jù)地址錯(cuò)誤,結(jié)束;
0xF2:校驗(yàn)錯(cuò)誤,重試;
0xF3:校驗(yàn)錯(cuò)誤,結(jié)束;
幀數(shù)據(jù):n字節(jié),幀數(shù)據(jù)可以為空;
XOR:1字節(jié),異或校驗(yàn)位;
主從式485通訊協(xié)議:
從機(jī)正常狀態(tài)應(yīng)處于接收地址狀態(tài)(SM=1);
主機(jī)發(fā)送地址幀(MARKPARITY);
主機(jī)進(jìn)入數(shù)據(jù)接收狀態(tài)(SP_PARITY);
所有從機(jī)收到地址幀,地址核對正確的從機(jī)進(jìn)入接收數(shù)據(jù)狀態(tài)(SM=0);并根據(jù)數(shù)據(jù)格式,發(fā)送信息到主機(jī);
主機(jī)收到返回?cái)?shù)據(jù)時(shí):
如果校驗(yàn)錯(cuò)誤,返回校驗(yàn)錯(cuò)誤命令(0xF2);
如果校驗(yàn)成功,進(jìn)一步判斷地址是否正確,若地址錯(cuò)誤則返回地址錯(cuò)誤命令(0xF1);否則有數(shù)據(jù)讀取卡號返回(0x01或0x02或0x03或0x04),無數(shù)據(jù)返回(0x05);
從機(jī)收到返回?cái)?shù)據(jù)時(shí):
如果校驗(yàn)錯(cuò)誤,要求重新刷卡.
如果校驗(yàn)正確,當(dāng)命令字為(0xF2)時(shí),保存數(shù)據(jù).否則,本次通訊結(jié)束.
功能測試界面如圖5、圖6所示.
圖5 請假處理界面
圖6 統(tǒng)計(jì)報(bào)表界面
本文設(shè)計(jì)的基于485通訊的射頻卡刷卡考勤系統(tǒng),能與多個(gè)刷卡器通訊,實(shí)現(xiàn)了考勤信息的自動化管理.且該系統(tǒng)具有準(zhǔn)確快捷、易于擴(kuò)展等特點(diǎn).
[1]蔣皓石,張成,樸嘉宇.無線射頻識別技術(shù)及其應(yīng)用和發(fā)展趨勢[J].電子技術(shù)應(yīng)用,2005(5):56-58.
[2]桑靜.基于射頻識別卡的學(xué)生考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].蘇州:蘇州大學(xué),2007.
[3]徐麗華.射頻識別卡讀寫模塊的設(shè)計(jì)與應(yīng)用[D].蘇州:蘇州大學(xué),2005.
[4]李錦濤,郭俊波.射頻識別技術(shù)及其應(yīng)用[J].信息技術(shù)快報(bào),2004,5(11):88-90.
[5]凌國平.如何提高測控系統(tǒng)中RS485通信的可靠性[J].儀器儀表學(xué)報(bào),2005(8):470-471.
[6]劉錚,章兢,劉建漢.非接觸式IC卡在公共汽車自動售票系統(tǒng)中的應(yīng)用[J].微型電腦應(yīng)用,2002,18(5):21-23.