RFID接收器的驱动程序撰写

2011-04-22 17:16:23来源: 互联网

目前市面上以使用条形码,将物品的相关信息多记录在条形码上,而再以扫描仪扫瞄条形码取得信息,而RFID只需在一定范围内感应,并可一次读取大量讯息。射频识别系统(RFID)最早在1948年即被提出,利用无线电波传送识别数据,达到身分识别的目的。无须接触即可自动读取及收集资料的一种科技,乃属于自动资料搜集(Automated Data Collection, ADC)技术之一种,可无线读取卷标信息。传输频率分为低频(LF:125~134KHz),高频(HF:13.56MHz),超高频 (UHF: 400~ 1000MHz),微波(Microwave; 1GHz以上),其中以超高频之技术较先进且其稳定度与应用效果较佳。

于本文将介绍如何以MCU简单的设计一个RFID的接收器,所使用的是为高频(13.56 MHz)的频域,于本文中的程序模块是采用Holtek MCU HT49R50A-1的汇编语言来撰写,希望透过程序模块的分享以达到共同讨论的目的。
 

RFID的特性

(一) 数据的读写(Read Write)机能:只要通过RFID Reader即可不需接触,直接读取讯息至数据库内,且可一次处理多个标签,并可以将物流处理的状态写入标签,供下一阶段物流处理的读取判断之用。
(二) 容易小型化和多样化的形状:RFID在读取上并不受尺寸大小与形状之限制,不需为了读取精确度而配合纸张的固定尺寸和印刷品质。此外,RFID TAG更可往小型化与多样型态发展,以应用在不同产品。
(三) 耐环境性:纸张一受到脏污就会看不到,但RFID对水、油和药品等物质却有强力的抗污性。RFID在黑暗或脏污的环境之中,也可以读取数据。
(四) 可重复使用:由于RFID为电子数据,可以反复被覆写,因此可以回收标签重复使用。如被动式RFID,不需要电池就可以使用,没有维护保养的需要。
(五) 穿透性:RFID若被纸张、木材和塑料等非金属或非透明的材质包覆的话,也可以进行穿透性通讯。不过如果是铁质金属的话,就无法进行通讯。
(六) 数据的记忆容量大:数据容量会随着记忆规格的发展而扩大,未来物品所需携带的资料量愈来愈大,对卷标所能扩充容量的需求也增加,对此RFID不会受到限制。
 

RFID所使用的频率介绍

为避免各国无线电频率使用标准不一,造成使用上的混乱与困扰,国际上大多遵守国际电信联合会(ITU)的规范。目前RFID使用的频率有6种,分别为135KHz以下、13.56MHz、433.92MHz、860M~930MHz(即UHF)、2.45GHz以及5.8GHz,其各有特色和缺陷。135KHz以下传输距离短约10公分左右,通讯速度慢。此频段在绝大多数的国家属于开放,不涉及法规开放和执照申请的问题,因此使用最广,主要使用在宠物、门禁管制和防盗追踪。 13.56MHz薄化的效果最佳传输距离为1公尺以下,代表性应用为会员卡、识别证、飞机机票和建筑物出入管理,通讯距离10公分左右的近距离非接触式IC卡发展快速。
 


RFID系统的基本架构

RFID的基本组成组件及其主要的功能为:
•读取器:负责读/写电子卷标上的数据。
• 电子卷标/卡(Transponder; Tag):分为被动与主动两种结构如图1所示,如表1所示主要负责除存被识别物的相关资料,如品号,品名,规格等等,可以藉由读取器来侦测,另外于表2所示则为频率与Tag的关系及被使用的特性。
•计算机:负责系统平台的操作,将RFID的读取器与计算机系统集成就可以侦测到物品的移动状况和信息。
 

图1 Tag的基本结构

 

 

等级(Class)
内存
电源
特性
应用领域
Class 0
被动式的感应偶合
1位的Tag
EAS商品防窃
Class 1
只读式
被动式的感应偶合
只能写入一次
EPC识别码
Class 2
读/写式
被动式的感应偶合
可编密码
EPC识别码
Class 3
读/写式
半被动式内建有电源
接收能量才读写
环境感应型
Class 4
读/写式
主动式内建有电源
多任务Tag读写
智能型
Class 5
读/写式
主动式内建有电源
具有上述的综合
远距无线网络

表1 Tag的等级分类表

 

 


频率
 
低频(LF 125 KHz)
高频
(HF; 13.56 MHz)
超高频(UHF; 860-930 MHz)
微波(2.45- 5.8 MHz)
性统型态
被动式
14443
15693
被动式
主动式
被动式
主动式
读取距离
<0.5m
<0.5m
<1.5m
3-10m
>10m
3-10m
>10m
内存bytes
64-1k
8k-128k
256k-512k
64k-512k
-
16k-64k
-
传输功率
72dBμA/m
42dBμA/m
10mW-4W
4W(USA),0.5W
读取方法
感应线圈
感应线圈
电容式电场效应
电容式电场效应
读取速度
慢 ←→ 快
环境适应性
佳 ←→ 差
尺寸
大 ←→ 小
表2 Tag与频率的关系

 
 


RFID的应用领域

RFID之应用相当广泛,最常见的应用为:
* 门禁管制:人员出入门禁监控、管制及上下班人事管理
* 回收资产:栈板、货柜、台车、笼车等可回收容器管理
* 货物管理:航空运输的行李识别,存货、物流运输管理
* 物料处理:工厂的物料清点、物料控制系统
* 废物处理:垃圾回收处理、废弃物管控系统
* 医疗应用:医院的病历系统、危险或管制之生化物品管理
* 交通运输:高速公路的收费系统
* 防盗应用:超市的防盗、图书馆或书店的防盗管理
* 动物监控:畜牧动物管理、宠物识别、野生动物生态的追踪
* 自动控制:汽车、家电、电子业之组装生产
* 联合票证:联合多种用途的智能型储值卡、红利积点卡

以下对几个应用作深入的介绍说明:

一般消费品
实务应用:从仓储到商品架的有效管理长久以来,消费品制造商一直苦于如何将适切的产品,在适当的时间运交给适当的零售商。而藉由 RFID 解决方案,制造商可以有效追踪货品,管理库存水准,并维持适当的库存量以满足零售商的需求。导入 RFID 解决方案后,工厂内的货品栈板无需人工检视可直接运出,取货疏失的情形减少,退货管理的效率提升,又免了实际的存货盘点作业,厂商可以降低人事成本。

零售业
实务应用:协助提升获利能力,在零售业,竞争惨烈、资本成本高,消费者的反复无常也是众所周知,想要维持获利率,特别艰难。从增加销售额、改善促销活动到降低失窃率,零售业者必须全心全力寻找创新的方式才能提升利润。

制药业
实务应用:在严格管制的环境中提高生产效率,制药业者除了在发展及配销药品等方面。

物流业
实务应用:发挥货运及配送流程的最高效率除了仓储,货柜场也可以利用 RFID 方案来建立高效率的配送及货运流程。将商品从消费性产品业者运交到零售商的流程,是供应链中绝不可缺少的一环。

运输业
实务应用:密切监控运输中的资产,RFID 可用来追踪载货卡车与轨道车辆的位置,也可以收集在特定地点的货运车辆上最新存货数字。实际出货期间,RFID
可以根据货车所在的最新地点追踪商品,并监督这些货运车辆所载送的商品明细
实务应用:密切监控运输中的资产,RFID 可用来追踪载货卡车与轨道车辆的位置,也可以收集在特定地点的货运车辆上最新存货数字。实际出货期间,RFID 可以根据货车所在的最新地点追踪商品,并监督这些货运车辆所载送的商品明细。

接收器的制作及程序
于图2所示为RFID接收器的结构图,是由Holtek MCU HT49R50A-1所控制,由于RFID的技术目前尚处于商业保密期,故于短时间内可能无法公开时感抱歉,有关系统的程序模块,主要有三大部分所成如图3所示,分别为主程序是为负责:键的扫描,LCD显示,声响,LED指示,以及RFID中的Tag数据的核对。外部中断子程序为负责计数的管理;最后主中断子程序的控制主要负责计数移位,数据接收等工作。相关的处和语言的详列及说明如图4。

 

 


本文中所举RFID接收器范例的实际电路图,程序使用一组Timer及一组External Interrupt来搭配接收RFID Data,其中应特别注意的是所使用的外部Clock Sounce需要精准,以达到接收数据的稳定性及正确性。于图3所示为程序的设计流程,所设计的程序如图4所示。

 

ODE .SECTION AT 00H 'CODE'
;------------------
;--- START 开始子程序 ---
ORG 00H
JMP START
;------------------
;--- INT0 中断0子程序 ---
ORG 04H
JMP EXTERNAL_INTERRUPT0
;------------------
;--- INT1 中断1子程序---
ORG 08H
JMP EXTERNAL_INTERRUPT1
;------------------
;--- TIMER 0 定时器0子程序 ---
ORG 0CH
JMP TIMER0_INT
;------------------
;--- TIMER 1 定时器1子程序 ---
ORG 010H
JMP TIMER1_INT
;------------------
;--- TB ---
ORG 014H
RETI
;------------------
;--- RTC ---
ORG 018H
RETI
ORG 020H
;================================
;=
;= INT PROGRAM
;=
;===============================
;=
;= TIMER 0 INTERRUPT 100uS
;=
;===============================
TIMER0_INT:
MOV S_ACC,A ;SAVE ACC&STATUS TO MEMORY
MOV A,STATUS ;push pop
MOV S_STA,A
;---------------------------
RL M_DATA_BUFFER ;EVERY 100uS SHIFT LEFT ONCE
SNZ P_RFID_DATA
JMP RFIDGETDATA0
RFIDGETDATA1:
CLR M_DATA_BUFFER.0 ;RECEIVER DATA "1"
JMP CHECK_RFID_LEADING_CODE
RFIDGETDATA0:
SET M_DATA_BUFFER.0 ;RECEIVER DATA "0"
CHECK_RFID_LEADING_CODE:
SZ F_RFID_1ST_OK
JMP BIT8_RECEIVER
MOV A,098H ;FIRST ID 98H
XOR A,M_DATA_BUFFER ;CHECK LEAD CODE
SNZ Z
JMP RESET_TIMER0
SET F_RFID_1ST_OK
MOV A,12
MOV M_RFID_BYTES_COUNT,A ;TOTAL DATA 12 BYTES
MOV A,0F3H
MOV MP0,A
SAVE_RF_ID_DATA:
INC MP0
MOV A,M_DATA_BUFFER
MOV R0,A
CLR M_DATA_BUFFER
SDZ M_RFID_BYTES_COUNT
JMP RESET_TIMER0
CLR F_RFID_1ST_OK
;
CALL CRC_CHECK_PROCESS ;CHECK CRC
SNZ ACC.0 ;ACC=FFH DATA OK
JMP TIMER0_INT_END
SET F_RFID_RX_OK
JMP TIMER0_INT_END
BIT8_RECEIVER:
SDZ M_ROTATE_COUNT
JMP RESET_TIMER0
MOV A,08
MOV M_ROTATE_COUNT,A
JMP SAVE_RF_ID_DATA
;
RESET_TIMER0:
CLR TMR0C.4 ;TIMER0 COUNTING 100uS
MOV A,154 ;TIMR0 100uS TIMEOUT FOR RFID
MOV TMR0,A
;---------------------------
TIMER0_INT_END:
MOV A,S_STA ;RELOAD ACC&STATUS
MOV STATUS,A ;Pop acc Status Regiter
MOV A,S_ACC
RETI
;===============================
;=
;= EXTERNAL_INTERRUPT 0
;=
;===============================
EXTERNAL_INTERRUPT0:
SNZ F_RFID_RX_OK
SET TMR0C.4 ;Enable TIMER0 START COUNTING 100uS
RETI
;=============================================================
;=
;= MAIN PROGRAM
;=
;=============================================================
START:
;--- POWER ON RESET ---
MOV A,11111111B ;I/O port initial
MOV PA,A
MOV A,11111111B
MOV PB,A
MOV A,11111111B
MOV PC,A
;--- TIMER 0 ---
MOV A,159 ;Initial TIMR0 100uS TIMEOUT FOR RFID Receiver
MOV TMR0,A
MOV A,10100000B
MOV TMR0C,A

;--- TIMER 1 ---
MOV A,56 ;TIMR1 FOR MAIN LOOP
MOV TMR1,A
MOV A,10110000B
MOV TMR1C,A

;--- INT 0,1 ---
MOV A,00001001B
MOV INTC0,A ;Enable Mcu interrupt founction
MOV A,00000101B
MOV INTC1,A
;--------------------------------------------------
;---- CLEAR WORK RAM ----
CALL CLEAR_RAM ;CLEAR MCU RAM
;==========================
;= MAIN
;==========================
MAIN:
;------- MAIN LOOP 20MS ---------
SNZ F_20MSTIMEOUT
JMP MAIN
CLR F_20MSTIMEOUT ;MAIN LOOP 20MS FOR CYCLE
;*********************************
;----- Make some function --------
;ex:
; CALL KEY_SCAN
; CALL SHOW_LCD
; CALL BEEP_SOUND
; CALL SHOW_LED
JMP MAIN
;===============================================

[1] [2]

关键字:接收  接收器  驱动  驱动程序

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2011/0422/article_7513.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
接收
接收器
驱动
驱动程序

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved