曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析Word下载.docx
- 文档编号:19573060
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:25
- 大小:72.94KB
曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析Word下载.docx
《曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析Word下载.docx》由会员分享,可在线阅读,更多相关《曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
;
位中间电平从低到高跳变表示"
2、在一些《计算机网络》书籍中:
位中间电平从高到低跳变表示"
在清华大学出版的《计算机通信与网络教程》《计算机网络(第4版)》也是这么说的,就以此为标准,我们就叫这为标准曼彻斯编码。
至于第一种,我们在这里就叫它曼彻斯特编码。
但是要记住,在不同的情况下懂得变通哦,否则会被老师扣分数的哦。
这两者恰好相反,千万别弄混淆了。
现在我们要讲的就是差分曼彻斯特编码:
在信号位开始时不改变信号极性,表示辑"
在信号位开始时改变信号极性,表示逻辑"
;
【注意】:
如果在最初信号的时候,即第一个信号时:
如果中间位电平从低到高,则表示0;
如果中间位电平从高到低,则表示1;
后面的(从第二个开始)就看每个信号位开始时有没有跳变来决定:
下面我们来举个例子,来比较标准曼彻斯特编码、曼彻斯特编码、差分曼彻斯特编码:
EM4100系列用的是:
曼彻斯特编码!
125K;
EM4100系列RFID卡解码源程序分析
1.
我们知道了曼彻斯特编码原则,那么反过来的过程就是解码了。
2.传统只读射频卡读卡器的设计一般采用U2270B或EM4095读写基站芯片加MCU模式,其成本高、功耗大。
本文介绍一种采用一片74HC4060+LM258/358加少量普通元件构成的读卡器电路和处理的程序设计方案,电路简单、功耗小、成本低。
74HC4060+LM258/358电路为市面上已非常成熟RFID-125KHZ-I卡且广泛采用的低功耗、低成本方案。
该方案在门禁、保安、考勤、展览会、公园、旅店、餐厅等公共场所的门票、优惠卡以及生产过程、邮政包裹、航空铁路运输、产品包装、交通等部门的物流、电子标签、防伪标志、一次性票证等众多领域上占据半壁江山。
3.推挽式放大电路输出後接LC串联谐振电路,当回路固有谐振频率与输入讯号频率相等时,电路发生串联谐振。
本文只要求对125kHz频率的讯号放大,所以根据串联谐振公式
计算电路中元件参数,可得L=737uH,C=2200pF。
4.包络检波电路
感应线圈产生谐振电压约有20V,所以载波讯号的电压也约为20V。
对输入电压高於500mV检波,称为「大讯号检波」,利用二极体单向导电特性及检波负载RC充放电过程实现。
RC参数的确定需要满足两个条件:
1.不产生隋性失真,一般工程上按
计算,f为载波频率。
2.不产生负峰切割失真,即
,m为调幅系数,R1是交流阻值,R0是直流阻值。
联立上述两个条件,确定检波电路中R12、C36分别为470kΩ、4700pF。
5.波形整形电路
在单晶片处理之前,整形电路将检波後的讯号变成单片机可以识别的高低电平。
LM358(LM258)内部整合两个运放,经过两次整形後可以得到很好的方波讯号。
电路中R16、R17、R18、R19起到分压作用,确定输出翻转门限为2.5V;
R15、R21将同向输入的电压叠加在反向输入端;
C54、C55为耦合电容,能够隔离直流分量,传递交流讯号。
当U+大於U-+2.5V时,输出高电平;
当U+小於U-+2.5V时,输出低电平。
6.读卡程序是根据EM4100、EM4001系列射频卡的特点量身定做的一段程序,射频卡以曼彻斯特编码,传输一个资料的时间t=64/125kHz=512μs。
实际使用中,一般传输时间为,230μs<
0.5t<
280μs。
280μs<
定时器取样时间<
512μs。
所以本文中取样波形时,定时器时间设定为400μs,保证为取样留有足够的时间。
原程序分析:
1.定时器时间设定为400μs
#defineTH0_H0xfe//定时器0取样定时值设定为400us
#defineTL0_L0x8f//8f
2.定时器0中断优先级最高:
PT0=1;
3.//曼彻斯特码同步头检测,9个1采用逐个前移检测法
//逐个前移检测法,即每检测到一个数据,如果是"
并向数据库写入1,
//如果是"
就放弃当前检测的数据,并向当前数据流方向移动一位,
//这样一来,就保证了不管数据流是在何种状态下,都能正确无误地抓取9个1,
//同步头9个1的提取成功,曼彻斯特码译码器即和当前的数据流保持了同步,
//并把余下的55位数据全部译完。
4.ucharREM_Buffer[14];
//曼彻斯特码解码后得到最终数据的缓存0~13
/*曼彻斯特码解码后的数据放在REM_Buffer[0~13];
REM_Buffer[0]=0xff数据格式:
11111111同步头,8个1
REM_Buffer[1]=0x8x数据格式:
1xxxxxxx同步头,1个1,x表示无意义
REM_Buffer[2]=数据格式:
D00D01D02D03P0xxx八个版本位或厂商信息的前四位,x表示无意义;
P0为行效验位
REM_Buffer[3]=数据格式:
D10D11D12D13P1xxx八个版本位或厂商信息的后四位,x表示无意义;
P1为行效验位
REM_Buffer[4]=数据格式:
D20D21D22D23P2xxx三十二个数据,x表示无意义;
P2为行效验位
REM_Buffer[5]=数据格式:
D30D31D32D33P3xxx三十二个数据,x表示无意义;
P3为行效验位
REM_Buffer[6]=数据格式:
D40D41D42D43P4xxx三十二个数据,x表示无意义;
P4为行效验位
REM_Buffer[7]=数据格式:
D50D51D52D53P5xxx三十二个数据,x表示无意义;
P5为行效验位
REM_Buffer[8]=数据格式:
D60D61D62D63P6xxx三十二个数据,x表示无意义;
P6为行效验位
REM_Buffer[9]=数据格式:
D70D71D72D73P7xxx三十二个数据,x表示无意义;
P7为行效验位
REM_Buffer[10]=数据格式:
D80D81D82D83P8xxx三十二个数据,x表示无意义;
P8为行效验位
REM_Buffer[11]=数据格式:
D90D91D92D93P9xxx三十二个数据,x表示无意义;
P9为行效验位
REM_Buffer[12]=数据格式:
PC0PC1PC2PC30xxx四个列效验位,x表示无意义;
0为停止位
原程序:
//2008.10.15
//125K;
EM4100系列RFID卡解码
//#include<
reg52.h>
//使用AT89S51/52等系列单片机头文件
#include<
STC12C5410AD.h>
//stc系列单片机专用头文件
intrins.h>
#defineuintunsignedint//定义
#defineucharunsignedchar//定义
#defineulongunsignedlong//定义
sbitREM=P2^1;
//曼彻斯特编码输入端
sbitCLK=P3^3;
//产生125KHZ时钟信号端
sbitLED=P2^5;
//红灯
sbitSPP=P1^0;
//喇叭
bitREM_BIT;
//曼彻斯特码高、低边沿跳变标志位,
bitEfficacy_BIT;
//待效验标志位,
bitP_PC_BIT;
//行,列效验标志位
bitYES_NO_BIT;
//效验正确,或效验错误标志位,
//YES_NO_BIT=1表示效验正确;
//YES_NO_BIT=0表示效验错误。
//350~420us
//375~450us
ucharU_D_Buffer[5];
//User_Data//用户数据缓存,
ulonglong_D;
//方法1,卡号在long_D中,不足10位,则在高位前面加0
ucharchar_D;
//方法2,前两位卡号在char_D中,
uintint_D;
//方法2,卡号后4位卡号在int_D中,
ucharvolue;
//volue为曼彻斯特码译码时的临时运算缓存
ucharREM_Buffer[14];
*/
ucharcodeDispTab[]={'
0'
'
1'
2'
3'
4'
5'
6'
7'
8'
9'
A'
B'
C'
D'
E'
F'
};
ucharcodeData[]={"
Data:
"
//数据
ucharcodeUserData[]={"
UserData:
//用户数据
ucharcodeCard_1[]={"
Methods1DecimalCardNumber:
//方法1:
掐头留尾法提取10位十进制卡号:
ucharcodeCard_2[]={"
Methods2DecimalCardNumber:
////方法2:
前两位+后4位的微根格式,段间以小数点或豆号隔开
ucharcodeDispTab_2[]={'
'
H'
voidinit()//
{
TMOD=0x21;
TH1=0xfd;
//11.0592MHz波特率:
9600
TL1=0xfd;
PCON&
=0x80;
SCON=0x40;
//AUXR=0x40;
//波特率倍增//11.0592MHz115200
TH0=0x00;
//
TL0=0x00;
EA=1;
ET0=1;
TR0=0;
TR1=1;
ES=0;
REN=1;
PT0=1;
//PT0H=1;
//定时器0中断优先级最高:
第三
//PT0H是stc单片机特有的寄存器
REM=1;
CLK=1;
SPP=1;
LED=1;
REM_BIT=1;
}
voiddelay1(uintz)//delay(10);
10次为1ms
{ucharx;
for(;
z>
0;
z--)
{
for(x=0;
x<
160;
x++)
}
/*
voiddelay()//
_nop_();
voidTime_interrupt(void)interrupt1//定时器0中断
//关闭定时器0,为曼彻斯特码提取数据定时器
voidRS232_in(void)interrupt4//串口中断
EA=0;
if(RI==1)//接收
RI=0;
//SBUF_RI_Buffer[0]=SBUF;
//RS2323接收缓冲区
//////////////////
else//if(TI==1)//发送
TI=0;
voidRS232()//通信转输数据,发给PC
uchari;
ulongmm;
//ES=0;
if((REM_Buffer[0]==0xff)&
&
(REM_Buffer[1]==0x80))//同步头9个1的判断,同步头正确,进入数据发送,否则退出
for(i=0;
i<
6;
i++)
SBUF=Data[i];
//"
while(TI==0);
13;
{
SBUF=DispTab[(REM_Buffer[i]/16)];
//SBUF=REM_Buffer[i];
//给PC发送REM_Buffer[0~13]个数据
//TI=1,表示数据发送完毕,
//TI清零,并把余下的数据继续发送,直到13个数据全部发送完。
SBUF=DispTab[(REM_Buffer[i]%16)];
SBUF=DispTab_2[1];
//'
SBUF=DispTab_2[0];
94;
//U_D_Buffer[5];
11;
SBUF=UserData[i];
5;
SBUF=DispTab[(U_D_Buffer[i]/16)];
SBUF=DispTab[(U_D_Buffer[i]%16)];
120;
31;
SBUF=Card_1[i];
//10位十进制卡号Card_1
SBUF=DispTab[long_D/1000000000];
//10
mm=long_D%1000000000;
SBUF=DispTab[mm/100000000];
//9
mm=long_D%100000000;
SBUF=DispTab[mm/10000000];
//8
mm=long_D%10000000;
SBUF=DispTab[mm/1000000];
//7
mm=long_D%1000000;
SBUF=DispTab[mm/100000];
//6
mm=mm%100000;
SBUF=DispTab[mm/10000];
//5
mm=long_D%10000;
SBUF=DispTab[mm/1000];
//4
mm=long_D%1000;
SBUF=DispTab[mm/100];
//3
mm=long_D%100;
SBUF=DispTab[mm/10];
//2
SBUF=DispTab[mm%10];
//1
//////////////////////////////////Card_2
106;
SBUF=Card_2[i];
SBUF=DispTab[char_D/100];
char_D=char_D%100;
SBUF=DispTab[char_D/10];
SBUF=DispTab[char_D%10];
SBUF=DispTab_2[2];
//////////////////////
SBUF=DispTab[int_D/10000];
int_D=int_D%10000;
SBUF=DispTab[int_D/1000];
int_D=int_D%1000;
SBUF=DispTab[int_D/100];
int_D=int_D%100;
SBUF=DispTab[int_D/10];
SBUF=DispTab[int_D%10];
109;
//}
voidREM_init()//射频接口初始化
CLK=0;
//为74HC4060提供+5V电源,74HC4060得电后输出125KHZ信号
voidREM_Processing()//曼彻斯特码数据提取
uchari,ii;
loop:
volue=0;
9;
i++)//曼彻斯特码同步头检测,9个1采用逐个前移检测法
while(REM==1)
if(TR0==0)
gotoloop;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析 曼彻斯特 解码 原则 125 EM4100 系列 RFID 源程序 分析