RFID世界網(wǎng) >
技術(shù)文章 >
制造 >
正文
基于W78E516 的射頻讀卡器實現(xiàn)
作者:羅士棟 白長清 汪峰
來源:RFID世界網(wǎng)
日期:2007-12-12 15:13:43
摘要:以射頻識別技術(shù)的實際應(yīng)用為背景,采用北京遠(yuǎn)興時代科技有限公司的低功耗RF射頻感應(yīng)式收發(fā)模塊MFP-K4,結(jié)合帶ISP功能的Flash EPROM的低功耗8位微處理W78E516,設(shè)計一個門禁控制系統(tǒng)。給出了各部分的硬件電路設(shè)計原理圖,描述了各個功能的實現(xiàn)方法,同時給出了部分程序代碼。
1.引言
手持式IC 卡讀寫器廣泛應(yīng)用于需要現(xiàn)場進(jìn)行IC 卡收費及驗證的各個領(lǐng)域,是很多IC卡應(yīng)用系統(tǒng)的重要組成部分。由于它具有體積小巧、輕便易攜帶、數(shù)據(jù)存貯量大、通信能力強等優(yōu)點,所以已在越來越多的應(yīng)用系統(tǒng)中充當(dāng)著越來越重要的角色。
射頻卡是一種非接觸式的智能IC卡,和接觸式的智能IC卡相比,射頻卡沒有電器觸點,它與讀卡器之間信息的傳遞采用電磁感應(yīng),以無線電波的方式進(jìn)行。射頻識別是非接觸式的自動識別技術(shù),它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù),識別工作無需人工干預(yù),可工作于各種惡劣環(huán)境[1]。因此,相對于傳統(tǒng)的接觸式智能IC卡,具有可靠性高、壽命長等明顯優(yōu)點。
2.系統(tǒng)設(shè)計
本系統(tǒng)為一種刷卡門禁系統(tǒng),每個用戶對應(yīng)一個唯一的卡號。射頻讀卡器系統(tǒng)讀入用戶的卡號,經(jīng)由處理器W78E516處理,處理器再將處理結(jié)果傳送給門禁控制系統(tǒng),門禁控制系統(tǒng)根據(jù)結(jié)果控制門的開關(guān)。另外本系統(tǒng)專門使用了擴展EPROM系統(tǒng)配合RS232對處理器進(jìn)行ISP編程,這樣我們就不需要購買專門的編程器就可以隨時對處理器進(jìn)行ISP編程。系統(tǒng)框圖如圖1所示。
根據(jù)需要完成的功能,該讀卡器實現(xiàn)電路由W78E516單片機電路﹑MTP-K4射頻讀卡器電路﹑ISP編程電路﹑門禁控制系統(tǒng)電路組成。
3.1 W78E516單片機系統(tǒng)電路
W78E516是具有帶ISP功能的Flash EPROM的低功耗8位微處理器;ISP功能的Flash EPROM可用于固件升級。它的指令集同標(biāo)準(zhǔn)8052指令集完全兼容。W78E516包含64K字節(jié)的主ROM﹑4K字節(jié)的輔助ROM。(位于4K字節(jié)輔助ROM中的裝載(loader)程序,可以讓用戶更新位于64K主ROM中的類容。)512字節(jié)片內(nèi)RAM;4個8位雙向﹑可位尋址的I/O口;一個附加的4位I/O口P4;3個16位定時/計數(shù)器及一個串行口。這些外圍設(shè)備都有8個中斷源和2級中斷能力的中斷系統(tǒng)支持。為了方便用戶進(jìn)行編程和驗證,W78E516內(nèi)含的ROM允許電編程和電讀寫。一旦代碼確定后,用戶就可以對代碼進(jìn)行保護(hù)[2]。
W78E516有兩種節(jié)電模式,空閑模式和掉電模式,2種模式均可由軟件來控制選擇??臻e模式下,處理器時鐘被關(guān)閉,但外設(shè)仍繼續(xù)工作。在掉電模式下晶體振蕩器停止工作,以將功耗降至最低。外部時鐘可以在任何時間及狀態(tài)下被關(guān)閉,而不影響處理器運行。
本系統(tǒng)復(fù)位電路使用MAX6317作為復(fù)位芯片,MAX6317具有用戶自定義的復(fù)位門限、輸出結(jié)構(gòu)、復(fù)位時間延遲、“看門狗”定時延遲等功能?!翱撮T狗”功能用于當(dāng)軟件陷入死循環(huán)時中斷微處理器,如果在“看門狗”定時周期內(nèi),“看門狗”檢測器輸入端WDI沒有收到觸發(fā)信號,則產(chǎn)生復(fù)位脈沖中斷微處理器,內(nèi)部“看門狗”定時器不斷地由復(fù)位脈沖或WDI端的觸發(fā)脈沖清零重新計時,復(fù)位期間“看門狗”定時器保持零狀態(tài),不計數(shù)。 復(fù)位采用按鈕的形式,當(dāng)復(fù)位按鈕被按下時,單片機的RST端處于低電平狀態(tài),只需要低電平保持2個機器周期以上的時間,單片機就能夠正確地復(fù)位。在復(fù)位按鈕正常狀態(tài)(沒有按下),則RST端一直處于高電平,單片機正常工作。
W78E516的P1.1,P1.2各接了一個發(fā)光二極管,P1.3接了一個蜂鳴器,作為各種提示用。W78E516系統(tǒng)電路如圖2所示。
射頻卡的讀寫以無線電波的方式進(jìn)行,當(dāng)卡片移到電磁場的有效作用范圍時,卡片里的線圈將感應(yīng)到讀寫器模塊天線發(fā)送的電磁波,從而獲得電源并進(jìn)行數(shù)據(jù)傳送。在本系統(tǒng)中我們采用了MTP-K4系列射頻卡。MTP-K4射頻卡具有體積小、引腳少、功耗低等特點。它的主要技術(shù)性能參數(shù)如下[3]:
● 尺 寸:26.5 x 16.5 x 6.9 mm
● 電 源:5V@44mA nominal
● 工作頻率:125KHz
● 卡片格式:EM4001/4102 或兼容卡
● 譯碼方式:Manchester 64bit,modulus 64
● I/O 輸出電流 : 25mA sink/source
● 天線電壓: 150Volt PKPK
● 感應(yīng)距離:max. 30cm
● 感應(yīng)速度:約0.3 秒
● 工作溫度:-15℃~75℃
● 儲存溫度:-25℃~85℃
● 儲存濕度:5-95﹪RH
● 輸出格式:韋根26位/RS232 TTL (ASCII)
MTP-K4有兩種輸出格式:韋根26位/RS232 TTL(ASCII)。在這里我們使用RS232 TTL(ASCII)輸出格式。MTP-K4總共有9個引腳,引腳3接高為RS232 TTL(ASCII)輸出格式,接低為韋根26位輸出格式。故Pin3在這里接高。天線接在引腳1和引腳2之間。引腳4可接蜂鳴器或者LED,這里把它懸空。引腳5為TX非反相輸出,在這里把它接到CPU的P3.0/RxD管腳上,引腳6為TX反相輸出,這里把它懸空。引腳7低電平復(fù)位,引腳8接地,引腳9接VCC,VCC范圍可從4.6V至5.5V。MTP-K4讀卡器電路如圖2所示。
3.3 ISP 編程電路
W78E516 內(nèi)建一個64K 字節(jié)的主ROM 區(qū),來存儲應(yīng)用程序(APROM),和一個4K的輔助ROM 區(qū)用于存儲裝載程序(LDROM)。在正常運作方式下,控制器執(zhí)行APROM中的代碼。如果要更改APROM 中的代碼,W78E516 允許用戶通過硬件連接方式,來使控制器進(jìn)入在線下載模式即跳轉(zhuǎn)到4K 區(qū)程序執(zhí)行。進(jìn)入在線下載模式硬件條件如下表1:
把在線下載程序燒寫到4K LDROM 后,拔掉外置EPROM, 把EA 跳到VCC,使P4.3為低,復(fù)位處理器讓處理器進(jìn)入在線下載模式,在線下載程序通過串口配合上位機程序從上位機獲取要執(zhí)行的程序?qū)懭?4K APROM。這樣我們就完成了對64K APROM 的ISP 編程。圖3 為擴展EPROM 插座電路圖。圖4 為外置EPROM 電路圖。圖5 為串口的電路連接。
采用此種編程方法可以使我們不用購買專門的編程器就可以隨時對CPU 進(jìn)行編程,而不用對CPU 進(jìn)行插拔。這樣我們就可以使用無鉛封裝QFP44 的W78E516, 減小了板子的大小。另外一塊外置EPROM 板子可以對多塊電路板編程,而且只需使用一次即可,具有簡單,實用,成本低廉的特點。
3.4 門禁控制系統(tǒng)電路
本系統(tǒng)采用專門用來驅(qū)動繼電器的芯片ULN2003,它的內(nèi)部結(jié)構(gòu)是達(dá)林頓的,甚至在芯片內(nèi)部做了一個消線圈反電動勢的二極管。ULN2003 的輸出端允許通過IC 電流200mA,飽和壓降VCE 約1V 左右,耐壓BVCEO 約為36V。用戶輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。采用集電極開路輸出,輸出電流大,故可以直接驅(qū)動繼電器或固體繼電器(SSR)等外接控制器件,也可直接驅(qū)動低壓燈泡。繼電器使用DS2Y-S-DC6V。電路連接上把處理器的P1.4 接到ULN2003 的1 腳上,ULN2003 的2 腳和自己的16 腳相連,ULN2003的15 腳接到DS2Y-S-DC6V 的1 腳。這樣把P1.4 置低就可以使繼電器吸合。
4.系統(tǒng)軟件設(shè)計
簡單地說微 處理器對MTP-K4 的控制事實上就是對非接觸式智能射頻卡的控制。每當(dāng)有卡刷入時,單片機通過串口從讀卡器芯片讀入數(shù)據(jù),對它進(jìn)行處理,然后根據(jù)結(jié)果控制門的開關(guān)。軟件設(shè)計的主要工作是初始化串口,從串口讀入數(shù)據(jù)并對它進(jìn)行處理。本系統(tǒng)軟件設(shè)計時大量采用自定義函數(shù),在主程序中調(diào)用不同的函數(shù)完成相應(yīng)的接口功能。采用這種方式,該系統(tǒng)軟件也可以很容易移植到其他類似系統(tǒng)。本系統(tǒng)軟件在Keil uVision2 下編寫,以下給出部分C 語言程序。
4.1串口初始化函數(shù)
void initUart()
{
TMOD=0x20; /*定時器1,方式2*/
TL1=0xfd;
TH1=0xfd; /*9600 波特11.0592MHz*/
TCON=0x40; /*啟動定時器1*/
PCON=0x00; /*電源控制寄存器設(shè)初值*/
SCON=0x50; /*允許接收*/
EA=1; /*允許總中斷*/
ES=1; //允許串口中斷
}
4.2讀數(shù)據(jù)函數(shù)
Uart()interrupt 4 using 1
{
if(RI&&~r_full)
{
rs_buf[r_in]=SBUF;
RI=0;
r_in++;
if(r_in==13)
{
r_full=1;
ES=0;
r_in=0;
P1&=GLED_ON;
P1&=BELL_ON;
delay100ms(2);
P1|=GLED_OFF;
P1|=BELL_OFF;
}
}
}
4.3看門狗“喂狗”函數(shù)
void watchdog(void)
{
P1&=0x7f;
NOP();
NOP();
P1|=0X80;
NOP();
NOP();
P1&=0x7f;
}
4.4 延時函數(shù)
void delay100ms(unsigned char n)
{
unsigned char k;
for(k=0;k<n;k++)
{
unsigned char i=100;
unsigned char j;
do
{
j=7;
do{ j+=2;j--; }
while(j);
j=1;
}
while(--i);
}
watchdog();
}
5.總結(jié)
本文設(shè)計的門禁系統(tǒng)其讀卡器在9600 bps 通信速率下普通卡讀卡距離為18cm,遠(yuǎn)距離卡可以達(dá)40cm,可以實現(xiàn)考勤功能,整個系統(tǒng)采用低功耗器件,使系統(tǒng)的功耗降至最低。另外本文介紹了W78E516 的一種ISP 方法,使得我們不用專門的編程器就可以隨時對MCU進(jìn)行編程,具有簡單,實用,成本低廉的特點。
參考文獻(xiàn)
[1]Klause Finkenuller.射傾識別(RFID)技術(shù)[M],北京:電子工業(yè)出版社,2001.6。
[2] WinBond Electronics Corp。W78LE516 Data Sheet。
[3] 北京遠(yuǎn)興時代科技有限公司。MTP-125K4 Series Low Cost Proximity Reader。
手持式IC 卡讀寫器廣泛應(yīng)用于需要現(xiàn)場進(jìn)行IC 卡收費及驗證的各個領(lǐng)域,是很多IC卡應(yīng)用系統(tǒng)的重要組成部分。由于它具有體積小巧、輕便易攜帶、數(shù)據(jù)存貯量大、通信能力強等優(yōu)點,所以已在越來越多的應(yīng)用系統(tǒng)中充當(dāng)著越來越重要的角色。
射頻卡是一種非接觸式的智能IC卡,和接觸式的智能IC卡相比,射頻卡沒有電器觸點,它與讀卡器之間信息的傳遞采用電磁感應(yīng),以無線電波的方式進(jìn)行。射頻識別是非接觸式的自動識別技術(shù),它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù),識別工作無需人工干預(yù),可工作于各種惡劣環(huán)境[1]。因此,相對于傳統(tǒng)的接觸式智能IC卡,具有可靠性高、壽命長等明顯優(yōu)點。
2.系統(tǒng)設(shè)計
本系統(tǒng)為一種刷卡門禁系統(tǒng),每個用戶對應(yīng)一個唯一的卡號。射頻讀卡器系統(tǒng)讀入用戶的卡號,經(jīng)由處理器W78E516處理,處理器再將處理結(jié)果傳送給門禁控制系統(tǒng),門禁控制系統(tǒng)根據(jù)結(jié)果控制門的開關(guān)。另外本系統(tǒng)專門使用了擴展EPROM系統(tǒng)配合RS232對處理器進(jìn)行ISP編程,這樣我們就不需要購買專門的編程器就可以隨時對處理器進(jìn)行ISP編程。系統(tǒng)框圖如圖1所示。
根據(jù)需要完成的功能,該讀卡器實現(xiàn)電路由W78E516單片機電路﹑MTP-K4射頻讀卡器電路﹑ISP編程電路﹑門禁控制系統(tǒng)電路組成。
3.1 W78E516單片機系統(tǒng)電路
W78E516是具有帶ISP功能的Flash EPROM的低功耗8位微處理器;ISP功能的Flash EPROM可用于固件升級。它的指令集同標(biāo)準(zhǔn)8052指令集完全兼容。W78E516包含64K字節(jié)的主ROM﹑4K字節(jié)的輔助ROM。(位于4K字節(jié)輔助ROM中的裝載(loader)程序,可以讓用戶更新位于64K主ROM中的類容。)512字節(jié)片內(nèi)RAM;4個8位雙向﹑可位尋址的I/O口;一個附加的4位I/O口P4;3個16位定時/計數(shù)器及一個串行口。這些外圍設(shè)備都有8個中斷源和2級中斷能力的中斷系統(tǒng)支持。為了方便用戶進(jìn)行編程和驗證,W78E516內(nèi)含的ROM允許電編程和電讀寫。一旦代碼確定后,用戶就可以對代碼進(jìn)行保護(hù)[2]。
W78E516有兩種節(jié)電模式,空閑模式和掉電模式,2種模式均可由軟件來控制選擇??臻e模式下,處理器時鐘被關(guān)閉,但外設(shè)仍繼續(xù)工作。在掉電模式下晶體振蕩器停止工作,以將功耗降至最低。外部時鐘可以在任何時間及狀態(tài)下被關(guān)閉,而不影響處理器運行。
本系統(tǒng)復(fù)位電路使用MAX6317作為復(fù)位芯片,MAX6317具有用戶自定義的復(fù)位門限、輸出結(jié)構(gòu)、復(fù)位時間延遲、“看門狗”定時延遲等功能?!翱撮T狗”功能用于當(dāng)軟件陷入死循環(huán)時中斷微處理器,如果在“看門狗”定時周期內(nèi),“看門狗”檢測器輸入端WDI沒有收到觸發(fā)信號,則產(chǎn)生復(fù)位脈沖中斷微處理器,內(nèi)部“看門狗”定時器不斷地由復(fù)位脈沖或WDI端的觸發(fā)脈沖清零重新計時,復(fù)位期間“看門狗”定時器保持零狀態(tài),不計數(shù)。 復(fù)位采用按鈕的形式,當(dāng)復(fù)位按鈕被按下時,單片機的RST端處于低電平狀態(tài),只需要低電平保持2個機器周期以上的時間,單片機就能夠正確地復(fù)位。在復(fù)位按鈕正常狀態(tài)(沒有按下),則RST端一直處于高電平,單片機正常工作。
W78E516的P1.1,P1.2各接了一個發(fā)光二極管,P1.3接了一個蜂鳴器,作為各種提示用。W78E516系統(tǒng)電路如圖2所示。
射頻卡的讀寫以無線電波的方式進(jìn)行,當(dāng)卡片移到電磁場的有效作用范圍時,卡片里的線圈將感應(yīng)到讀寫器模塊天線發(fā)送的電磁波,從而獲得電源并進(jìn)行數(shù)據(jù)傳送。在本系統(tǒng)中我們采用了MTP-K4系列射頻卡。MTP-K4射頻卡具有體積小、引腳少、功耗低等特點。它的主要技術(shù)性能參數(shù)如下[3]:
● 尺 寸:26.5 x 16.5 x 6.9 mm
● 電 源:5V@44mA nominal
● 工作頻率:125KHz
● 卡片格式:EM4001/4102 或兼容卡
● 譯碼方式:Manchester 64bit,modulus 64
● I/O 輸出電流 : 25mA sink/source
● 天線電壓: 150Volt PKPK
● 感應(yīng)距離:max. 30cm
● 感應(yīng)速度:約0.3 秒
● 工作溫度:-15℃~75℃
● 儲存溫度:-25℃~85℃
● 儲存濕度:5-95﹪RH
● 輸出格式:韋根26位/RS232 TTL (ASCII)
MTP-K4有兩種輸出格式:韋根26位/RS232 TTL(ASCII)。在這里我們使用RS232 TTL(ASCII)輸出格式。MTP-K4總共有9個引腳,引腳3接高為RS232 TTL(ASCII)輸出格式,接低為韋根26位輸出格式。故Pin3在這里接高。天線接在引腳1和引腳2之間。引腳4可接蜂鳴器或者LED,這里把它懸空。引腳5為TX非反相輸出,在這里把它接到CPU的P3.0/RxD管腳上,引腳6為TX反相輸出,這里把它懸空。引腳7低電平復(fù)位,引腳8接地,引腳9接VCC,VCC范圍可從4.6V至5.5V。MTP-K4讀卡器電路如圖2所示。
3.3 ISP 編程電路
W78E516 內(nèi)建一個64K 字節(jié)的主ROM 區(qū),來存儲應(yīng)用程序(APROM),和一個4K的輔助ROM 區(qū)用于存儲裝載程序(LDROM)。在正常運作方式下,控制器執(zhí)行APROM中的代碼。如果要更改APROM 中的代碼,W78E516 允許用戶通過硬件連接方式,來使控制器進(jìn)入在線下載模式即跳轉(zhuǎn)到4K 區(qū)程序執(zhí)行。進(jìn)入在線下載模式硬件條件如下表1:
把在線下載程序燒寫到4K LDROM 后,拔掉外置EPROM, 把EA 跳到VCC,使P4.3為低,復(fù)位處理器讓處理器進(jìn)入在線下載模式,在線下載程序通過串口配合上位機程序從上位機獲取要執(zhí)行的程序?qū)懭?4K APROM。這樣我們就完成了對64K APROM 的ISP 編程。圖3 為擴展EPROM 插座電路圖。圖4 為外置EPROM 電路圖。圖5 為串口的電路連接。
采用此種編程方法可以使我們不用購買專門的編程器就可以隨時對CPU 進(jìn)行編程,而不用對CPU 進(jìn)行插拔。這樣我們就可以使用無鉛封裝QFP44 的W78E516, 減小了板子的大小。另外一塊外置EPROM 板子可以對多塊電路板編程,而且只需使用一次即可,具有簡單,實用,成本低廉的特點。
3.4 門禁控制系統(tǒng)電路
本系統(tǒng)采用專門用來驅(qū)動繼電器的芯片ULN2003,它的內(nèi)部結(jié)構(gòu)是達(dá)林頓的,甚至在芯片內(nèi)部做了一個消線圈反電動勢的二極管。ULN2003 的輸出端允許通過IC 電流200mA,飽和壓降VCE 約1V 左右,耐壓BVCEO 約為36V。用戶輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。采用集電極開路輸出,輸出電流大,故可以直接驅(qū)動繼電器或固體繼電器(SSR)等外接控制器件,也可直接驅(qū)動低壓燈泡。繼電器使用DS2Y-S-DC6V。電路連接上把處理器的P1.4 接到ULN2003 的1 腳上,ULN2003 的2 腳和自己的16 腳相連,ULN2003的15 腳接到DS2Y-S-DC6V 的1 腳。這樣把P1.4 置低就可以使繼電器吸合。
4.系統(tǒng)軟件設(shè)計
簡單地說微 處理器對MTP-K4 的控制事實上就是對非接觸式智能射頻卡的控制。每當(dāng)有卡刷入時,單片機通過串口從讀卡器芯片讀入數(shù)據(jù),對它進(jìn)行處理,然后根據(jù)結(jié)果控制門的開關(guān)。軟件設(shè)計的主要工作是初始化串口,從串口讀入數(shù)據(jù)并對它進(jìn)行處理。本系統(tǒng)軟件設(shè)計時大量采用自定義函數(shù),在主程序中調(diào)用不同的函數(shù)完成相應(yīng)的接口功能。采用這種方式,該系統(tǒng)軟件也可以很容易移植到其他類似系統(tǒng)。本系統(tǒng)軟件在Keil uVision2 下編寫,以下給出部分C 語言程序。
4.1串口初始化函數(shù)
void initUart()
{
TMOD=0x20; /*定時器1,方式2*/
TL1=0xfd;
TH1=0xfd; /*9600 波特11.0592MHz*/
TCON=0x40; /*啟動定時器1*/
PCON=0x00; /*電源控制寄存器設(shè)初值*/
SCON=0x50; /*允許接收*/
EA=1; /*允許總中斷*/
ES=1; //允許串口中斷
}
4.2讀數(shù)據(jù)函數(shù)
Uart()interrupt 4 using 1
{
if(RI&&~r_full)
{
rs_buf[r_in]=SBUF;
RI=0;
r_in++;
if(r_in==13)
{
r_full=1;
ES=0;
r_in=0;
P1&=GLED_ON;
P1&=BELL_ON;
delay100ms(2);
P1|=GLED_OFF;
P1|=BELL_OFF;
}
}
}
4.3看門狗“喂狗”函數(shù)
void watchdog(void)
{
P1&=0x7f;
NOP();
NOP();
P1|=0X80;
NOP();
NOP();
P1&=0x7f;
}
4.4 延時函數(shù)
void delay100ms(unsigned char n)
{
unsigned char k;
for(k=0;k<n;k++)
{
unsigned char i=100;
unsigned char j;
do
{
j=7;
do{ j+=2;j--; }
while(j);
j=1;
}
while(--i);
}
watchdog();
}
5.總結(jié)
本文設(shè)計的門禁系統(tǒng)其讀卡器在9600 bps 通信速率下普通卡讀卡距離為18cm,遠(yuǎn)距離卡可以達(dá)40cm,可以實現(xiàn)考勤功能,整個系統(tǒng)采用低功耗器件,使系統(tǒng)的功耗降至最低。另外本文介紹了W78E516 的一種ISP 方法,使得我們不用專門的編程器就可以隨時對MCU進(jìn)行編程,具有簡單,實用,成本低廉的特點。
參考文獻(xiàn)
[1]Klause Finkenuller.射傾識別(RFID)技術(shù)[M],北京:電子工業(yè)出版社,2001.6。
[2] WinBond Electronics Corp。W78LE516 Data Sheet。
[3] 北京遠(yuǎn)興時代科技有限公司。MTP-125K4 Series Low Cost Proximity Reader。