国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PIC16F877A的S50射頻卡讀寫電路的設(shè)計(jì)*

2016-09-28 10:21蔡卓恩郭志成
甘肅科技 2016年15期
關(guān)鍵詞:IC卡扇區(qū)刷卡

蔡卓恩,郭志成

(蘭州工業(yè)學(xué)院,甘肅 蘭州730050)

基于PIC16F877A的S50射頻卡讀寫電路的設(shè)計(jì)*

蔡卓恩,郭志成

(蘭州工業(yè)學(xué)院,甘肅蘭州730050)

主要闡述了基于PIC16F877A單片機(jī)的S50射頻卡讀寫電路的設(shè)計(jì),介紹了PIC16F877A最小應(yīng)用系統(tǒng)及其與讀卡芯片RC522的接口電路,并重點(diǎn)介紹了S50中所儲(chǔ)存數(shù)據(jù)用作電子錢包的軟件實(shí)現(xiàn),可作為類似系統(tǒng)的應(yīng)用參考。

PIC16F877A;RC522;S50;電子錢包

1 概述

射頻卡即非接觸式IC卡,將射頻識(shí)別技術(shù)和IC卡技術(shù)結(jié)合起來,在大小和普通信用卡相同的PVC卡片內(nèi)嵌置IC芯片和感應(yīng)天線,無任何外露部分。S50是采用NXPMF1ICS50制作的非接觸IC卡,符合ISO14443A標(biāo)準(zhǔn),可以和低成本的射頻卡基站RC522構(gòu)成完整的射頻卡應(yīng)用系統(tǒng),目前國(guó)內(nèi)有很多公司可向用戶提供S50射頻卡的服務(wù)。由于S50具有很高的性價(jià)比,操作方便,加密性能好。因此在公交系統(tǒng)、餐飲服務(wù)系統(tǒng)等領(lǐng)域得到了廣泛的應(yīng)用[1]。

2 硬件電路設(shè)計(jì)

2.1PIC16F877A介紹

控制系統(tǒng)選用由美國(guó)Microchip公司生產(chǎn)的8位單片微控制器PIC16F877A作為核心控制單元,PIC16F877A具有獨(dú)特的精簡(jiǎn)指令集(RISC)結(jié)構(gòu),數(shù)據(jù)總線和指令總線分離的哈佛總線結(jié)構(gòu),使器件性能和運(yùn)算速度大大提高。片內(nèi)集成有8k的Flash可重復(fù)編程存儲(chǔ)器,368Byte的數(shù)據(jù)存儲(chǔ)器,256Byte 的EEPROM數(shù)據(jù)存儲(chǔ)器,3個(gè)定時(shí)/計(jì)數(shù)器,2個(gè)CCP模塊,同步串行通信端口,8通道10位A/D轉(zhuǎn)換器,以及時(shí)鐘、看門狗等,具有上電復(fù)位、PWM輸出、LCD驅(qū)動(dòng)等功能,有40只引腳。由于片內(nèi)集成的外圍設(shè)備種類和數(shù)量多,使其外圍電路大大簡(jiǎn)化。此外,此芯片還具有低功耗睡眠(SLEEP)模式,易于實(shí)現(xiàn)低功耗設(shè)計(jì)[2]。

圖1所示為單片機(jī)最小應(yīng)用系統(tǒng),包括復(fù)位電路﹑晶振﹑編程接口電路。C19﹑R46﹑R53﹑D4構(gòu)成上電復(fù)位電路,系統(tǒng)使用20M晶振,J3為ICD2編程接口,連接ICD2仿真器可實(shí)現(xiàn)程序的在線仿真及下載。

圖1 單片機(jī)最小應(yīng)用系統(tǒng)

2.2RC522接口電路

圖2所示為單片機(jī)與讀卡芯片RC522的接口電路,S50卡通過發(fā)射機(jī)應(yīng)答器振蕩線圈與基站振蕩線圈的耦合取得能量,通過必要的通信軟件配合,保證卡與基站間實(shí)現(xiàn)雙向數(shù)據(jù)交換。RC522需要3.3V供電,通過穩(wěn)壓芯片AS2830將5V電壓轉(zhuǎn)換為3.3V。

圖2 RC522讀寫系統(tǒng)接口電路

3 S50非接觸式IC卡的應(yīng)用舉例

3.1S50的存儲(chǔ)結(jié)構(gòu)

S50非接觸式IC卡容量為8K位 (bits)=1K字節(jié)(bytes)EEPROM,分為16個(gè)扇區(qū),每個(gè)扇區(qū)為4塊,每塊16個(gè)字節(jié),以塊為存取單位,每個(gè)扇區(qū)有獨(dú)立的一組密碼及訪問控制;每張卡有唯一序列號(hào),為32位;具有防沖突機(jī)制,支持多卡操作;無電源,自帶天線,內(nèi)含加密控制邏輯和通訊邏輯電路;數(shù)據(jù)保存期為10年,可改寫10萬次,讀無限次;工作頻率為13.56MHZ;通信速率為106KBPS;讀寫距離一般在10cm以內(nèi)(與讀寫器有關(guān))[3]。

S50存儲(chǔ)結(jié)構(gòu)如圖3所示,M1卡分為16個(gè)扇區(qū),每個(gè)扇區(qū)由4塊(塊0、塊1、塊2、塊3)組成,(我們也將16個(gè)扇區(qū)的64個(gè)塊按絕對(duì)地址編號(hào)為0~63;第0扇區(qū)的塊0(即絕對(duì)地址0塊),它用于存放廠商代碼,已經(jīng)固化,不可更改。每個(gè)扇區(qū)的塊0、塊1、塊2為數(shù)據(jù)塊,可用于存貯數(shù)據(jù)。每個(gè)扇區(qū)的塊3為控制塊,包括了密碼A、存取控制、密碼B。

圖3 S50存儲(chǔ)結(jié)構(gòu)

3.2S50的電子錢包應(yīng)用

數(shù)據(jù)塊可作兩種應(yīng)用:(1)用作一般的數(shù)據(jù)保存,可以進(jìn)行讀、寫操作。(2)用作數(shù)據(jù)值,可以進(jìn)行初始化值、加值、減值、讀值操作,即電子錢包。以下為數(shù)據(jù)塊作電子錢包應(yīng)用的函數(shù),這種方式可直接對(duì)數(shù)據(jù)進(jìn)行增減。

//電子錢包函數(shù)

voidmoneyset(unsignedintmon,unsignedchar adr)

{mon=mon*100;

money[1]=mon/256;

money[0]=mon%256;

money[2]=0;

money[3]=0;

money[4]=~money[0];

money[5]=~money[1];

money[6]=~money[2];

money[7]=~money[3];

money[8]=money[0];

money[9]=money[1];

money[10]=money[2];

money[11]=money[3];

money[12]=adr;

money[13]=~adr;

money[14]=adr;

money[15]=~adr;

3.3刷卡自動(dòng)扣款系統(tǒng)

非接觸式射頻卡讀寫系統(tǒng)應(yīng)用于刷卡自動(dòng)扣款系統(tǒng),采用射頻卡作為電子貨幣載體。刷卡功能有定值預(yù)扣模式和在線消費(fèi)兩種模式,在線消費(fèi)模式根據(jù)實(shí)際用量扣去射頻卡內(nèi)相應(yīng)金額。用戶刷卡后,主控機(jī)檢測(cè)刷卡信息,配置默認(rèn)用量,扣除對(duì)應(yīng)金額;若在中途停止并再次刷卡,則根據(jù)實(shí)際用量返還金額。刷卡子程序流程圖如圖4所示,再次刷卡返還金額流程中減值操作變?yōu)樵鲋挡僮骷纯桑?]。

圖4 刷卡子程序流程圖

扣款和充值子程序:

//參數(shù)說明:dd_mode[IN]:命令字

//0xC0=扣款

//0xC1=充值

//addr[IN]:錢包地址

//pValue[IN]:4字節(jié)增(減)值,低位在前

charPcdValue(unsignedchardd_mode,unsigned

charaddr,unsignedchar*pValue)

charstatus;

unsignedintunLen;

unsignedchari,ucComMF522Buf[MAXRLEN];

ucComMF522Buf[0]=dd_mode;

ucComMF522Buf[1]=addr;

CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf

[2]);

status=PcdComMF522(PCD_TRANSCEIVE,uc-

ComMF522Buf,4,ucComMF522Buf,&unLen);

if(status!=MI_OK)||(unLen!=4)||

(ucComMF522Buf[0]&0x0F)!=0x0A))

{status=MI_ERR;}

if(status==MI_OK)

//memcpy(ucComMF522Buf,pValue,4);

for(i=0;i<16;i++)

{ucComMF522Buf[i]=*(pValue+i);}

CalulateCRC(ucComMF522Buf,4,&ucComMF522Buf

[4]);

unLen=0;

status=PcdComMF522(PCD_TRANSCEIVE,uc-

ComMF522Buf,6,ucComMF522Buf,&unLen);

if(status!=MI_ERR)

{status=MI_OK;}

if(status==MI_OK)

ucComMF522Buf[0]=PICC_TRANSFER;

ucComMF522Buf[1]=addr;

CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf

[2]);

status=PcdComMF522(PCD_TRANSCEIVE,uc-

ComMF522Buf,4,ucComMF522Buf,&unLen);

if(status!=MI_OK)||(unLen!=4)||

(ucComMF522Buf[0]&0x0F)!=0x0A))

{status=MI_ERR;}

returnstatus;

4 結(jié)論

S50中所儲(chǔ)存數(shù)據(jù)可用作數(shù)據(jù)值即電子錢包,這種方式可直接對(duì)數(shù)據(jù)進(jìn)行增減。本文討論了S50非接觸式IC卡在刷卡自動(dòng)扣款系統(tǒng)中的應(yīng)用,提供了作為電子錢包使用的一種軟硬件實(shí)現(xiàn)方法,由于S50在多個(gè)領(lǐng)域得到廣泛應(yīng)用,本文可作為類似系統(tǒng)的應(yīng)用參考。

[1] 張曉紅.自動(dòng)售水機(jī)的研究與實(shí)現(xiàn)[D].東華理工大學(xué)碩士學(xué)位論文,2012.

[2] 朱兆優(yōu),陳堅(jiān),王海濤,鄧文娟.單片機(jī)原理及應(yīng)用[M].電子工業(yè)出版,2010.9.

[3] 吳滌,射頻IC卡讀寫系統(tǒng)設(shè)計(jì)[D].西南交通大學(xué)碩士學(xué)位論文,2005.

[4] 陸永寧.IC卡應(yīng)用系統(tǒng)[M].南京:東南大學(xué)出版社,2005.5.

TP273.5

甘肅省高??蒲许?xiàng)目資助2015B-126。

猜你喜歡
IC卡扇區(qū)刷卡
分階段調(diào)整增加扇區(qū)通行能力策略
工商業(yè)IC卡控制器改造為物聯(lián)網(wǎng)控制器實(shí)踐
在用電梯加裝外接式IC卡運(yùn)行控制系統(tǒng)設(shè)計(jì)改進(jìn)
管制扇區(qū)復(fù)雜網(wǎng)絡(luò)特性與抗毀性分析
U盤故障排除經(jīng)驗(yàn)談
基于貝葉斯估計(jì)的短時(shí)空域扇區(qū)交通流量預(yù)測(cè)
刷卡
長(zhǎng)春開通公交IC卡充值平
刷臉就可以購物
湖北省高速公路IC卡管理系統(tǒng)淺談
清镇市| 佛教| 永修县| 明溪县| 富蕴县| 札达县| 太仓市| 永川市| 德令哈市| 固始县| 清原| 兴国县| 鹤山市| 营山县| 洪湖市| 志丹县| 正安县| 蒲江县| 黄梅县| 株洲市| 东阳市| 乌海市| 尚义县| 中宁县| 会理县| 遵义县| 宁波市| 水城县| 海淀区| 贵港市| 乐安县| 陆河县| 屏东县| 鄂托克旗| 临西县| 五常市| 尚志市| 军事| 郴州市| 阿尔山市| 温宿县|