【通讯工程毕业论文】RFID身份识别系统设计.doc

上传人:一*** 文档编号:4164037 上传时间:2019-10-01 格式:DOC 页数:101 大小:6.34MB
下载 相关 举报
【通讯工程毕业论文】RFID身份识别系统设计.doc_第1页
第1页 / 共101页
【通讯工程毕业论文】RFID身份识别系统设计.doc_第2页
第2页 / 共101页
【通讯工程毕业论文】RFID身份识别系统设计.doc_第3页
第3页 / 共101页
【通讯工程毕业论文】RFID身份识别系统设计.doc_第4页
第4页 / 共101页
【通讯工程毕业论文】RFID身份识别系统设计.doc_第5页
第5页 / 共101页
点击查看更多>>
资源描述

1、I 本科毕业论文 (20 届) RFID 身份识别系统设计 所在学院 专业班级 通信工程 学生姓名 指导教师 完成日期 RFID 身份识别系统设计 II 摘 要 【摘要】本文详细说明了一种 RFID 系统的设计。本系统为有源 RFID,采用主从结构,主设备和从设备均以 2.4G 无线收发芯片 nRF24L01+和单片机 C8051F330 为核心,能够实现主机设备对从设备的身份识别,主、从设备间 少量数据的无线传输,且对所传输信息进行了加密,能有效保障信息的安全,同时通过时分多址实现多从机时的防冲 突。本系统为低功耗设计,通信前主、从机进行对时,同步误差在 0.15%以内,保证了系统能在 97

2、.5%以上(10 从机 系统中)时间处于睡眠状态,平均功耗极低,有利于设计为小体积,长期电池供电的便携式应用。 【关键词】有源 RFID;无线数据传输;信息安全;防冲突;低功耗。 III RFID System Design Abstract 【ABSTRACT】This paper details a design of RFID system. The system introduced by this paper can be classified as an active RFID system, which uses master-slave mode, and both maste

3、r and slave devices are based on singlechip C8051F330 and 2.4 G wireless transceiver chip nRF24L01+. In this system, the master device can identify the slave devices, and also can transmit small amounts of wireless data with slave devices. And in order to ensure information security effectively, the

4、 information transmitted between master device and slave devices are encrypted. Meanwhile, multi-slave collision is resisted by using time division multiple address (TDMA). Whats more, low power is also took into account. Before communication, the master device will send syn-signals to make all the

5、slave devices in synchronism with it, and the synchronization error can be less than 0.2%, what insures that the system can be in sleep mode more than 97.5% of time (in 10 slave devices system), and has very low average power, so it can be used in small volume, long-term battery powered applications

6、. 【KEYWORDS】active RFID; wireless data transmission; information security; anti-collision; low power. RFID 身份识别系统设计 IV 目 录 1 绪论 1 1.1 设计目的与意义 1 1.2 设计要求 1 2 RFID 简介 2 2.1 RFID 基础 2 2.1.1 分类和特点 2 2.1.2 技术难点 3 2.2 RFID 类型选择 3 3 系统设计 4 3.1 系统总体设计 4 3.1.1 器件选择 4 3.2 系统功能实现方法 5 4 数据传输和身份识别与认证 6 4.1 数据传输

7、6 4.2 身份识别与认证 6 4.3 数据加密 6 4.3.1 实现方法 7 4.3.2 随机数发生模块 8 5 多从设备防冲突设计 10 5.1 冲突类型 10 5.2 多从设备防冲突方法 10 5.2.1 同步 10 5.2.2 时分多址 13 6 能量控制 15 6.1 能量控制方法 15 6.2 缺陷 15 7 降低功耗 16 7.1 不同状态下系统功耗 16 7.2 降低功耗方法 16 8 功能测试与结果 18 8.1 测试方法 18 8.2 nRF24L01+无线模块通信距离测试 .19 8.2.1 空旷地通信距离测试 20 8.2.2 穿墙能力测试 20 8.3 身份识别认证和

8、加密数据传输测试 21 8.4 随机数发生模块测试 24 8.5 同步误差测试 25 8.6 时分多址测试 27 8.7 低功耗测试 28 9 总结 30 参考文献 31 V 致谢 1 附录(程序代码) 2 1 1 绪论 1.1 设计目的与意义 近年来“无线输电”正渐渐成为一项热门的研究,在人们普遍享受到无线通信的方便后,希望 更多的从“有线”中解放出来,可以肯定, “无线输电”技术的发展将为人们的生活带来巨大方便。 电器无线化的实现或许并不遥远,但相比线路可见的“有线输电” , “无线输电”即使在技术成熟后, 在实际应用中还会遇到特殊的困难。 其中最主要的就是如何进行能量控制。由于“无线输电

9、”能量传输的空间开放性,在一定空间 范围内的所有相匹配设备都能从输电方获得能量,并且其能量传输路径不可见,这就给能量传输控 制和盗电检测带来了很大困难。 本设计旨在通过 RFID 的方法,对“无线输电”进行一定的监测,确定是否存在盗电的设备, 并在有盗电的情况下进行报警,为进一步控制提供帮助。 本系统在身份识别的同时还能进行少量其他信息的无线传输,且对通信内容进行了加密,可以 抵御多种攻击,防止信息外泄和身份伪造。另外,本系统可以快速对多设备进行身份识别和控制而 不产生冲突,可直接应用于近距离无线输电的识别和控制,比如最近出现的“无线充电”设备。亦 可稍加改造应用于其它需要身份识别和控制的场合

10、,比如实验室的电源无线门禁系统。本系统为低 功耗设计,可以用于需要长期电池供电的应用。 1.2 设计要求 本课题旨在设计一套 RFID 系统,能够在单个无线输电设备和多个无线用电设备(110 个)的 情况下,在几米的范围内(010 米) ,进行安全有效的电器身份识别和能量传输监控。 要求: 1.实现无线身份识别和认证; 2.实现无线数据传输; 3.通信系统具有一定的抗攻击能力,能防止所传输信息的泄露,并能抵御多种方式的欺骗认证; 4.有防冲突功能,能协调多个子设备的识别、认证和控制; 5.以一定方式进行“无线输电”的能量控制,能对非认证电器盗电给出反应; 6.低功耗设计,能应用于需要长期电池供

11、电的场合。 RFID 身份识别系统设计 2 2 RFID 简介 2.1 RFID 基础 RFID(Radio Frequency Identification) ,即射频识别技术,是一种新型的非接触式的自动识别技 术 1。 RFID 技术的基本工作原理主要可分为两类:对无源标签或被动标签(Passive Tag) ,标签进入 阅读器电磁场范围后,凭借电磁感应从阅读器发出的射频信号中获得启动工作所需的能量,发送出 存储在芯片中的信息;对有源标签或主动标签(Active Tag) ,则主动的以某一频率发送信号。阅读 器接收到这些信号后,读取信息并解码,然后将数据送往上位机进行进一步处理 2。 RF

12、ID 现已广泛应用于物流、生产、交通、运输、防伪、跟踪、医疗、设备和资产管理等需要收 集和处理数据的应用领域 3。与传统的识别方式相比,RFID 技术的先进之处在于不需要直接接触、 不需要光学可视、不需要人工干预就能完成信息输入和处理,并且操作极为方便和快速 3。 2.1.1 分类和特点 RFID 按使用频率不同可分为低频(LF) (135KHz 以下)、高频(HF)(13.56MHz) 、超高频(UHF) (860M960MHz)、微波(MW)(2.4G 、5.8G) 2。一般来说,频率越高,标签识别速度越快,同样供能 方式下标签体积越小,但对环境越敏感。 RFID 按供能方式不同又可分为无

13、源 RFID,有源 RFID,和半有源 RFID6 无源 RFID 标签内部没有电源,在阅读器的读取范围之外时,标签处于无源状态无法工作,进 入阅读器的读取范围之内时,标签能从阅读器发出的射频信号中获得工作所需的能量 2-5,11-12。无源 电子标签一般采用反射调制的方式将标签信息向阅读器的传送 2-5。无源 RFID 读写距离近,但价格 低,体积小,生命周期长。 有源 RFID 标签的工作能量完全由内部电源供给,标签电源还为标签与阅读器通讯提供射频能 量 2-5。有源 RFID 读写距离远,但需要电源(一般使用小电池)供电,成本更高,体积更大,且标 签生命周期受电池的限制十分有限(一般为几

14、年或更短) 。 半无源 RFID 标签内含有电源,但电源仅用于对需要维持数据的电路进行供电或者对标签芯片 工作所需电压进行辅助,这些部分本身耗电极少 5。标签在不工作时,一直处于睡眠状态,这时标 签内部能量消耗极少,与无源标签可相比拟,一般使用电池能维持数年,甚至长达 10 年 5。当标签 进入阅读器的读取区域时,能被阅读器发出的射频信号激活,进入工作状态,标签与阅读器之间通 信的能量主要来自阅读器提供的射频能量。标签内部电源一般不提供射频能量,主要用于弥补标签 所处位置的射频场强不足 5。 3 2.1.2 技术难点 RFID 主要的技术难点有信息安全和防冲突。 RFID 标签在某些场合会携带

15、具有重要价值的信息,但由于 RFID 标签的特点,标签中的信息面 临巨大安全隐患。一方面,RFID 通过射频进行通信,传送的信息会散播到整个空间范围内,同时 RFID 设备又会接收空间范围内所有接收频率范围内的射频信号,这就为不法分子的监听、欺骗甚至 对信息进行更改带来了方便。具体的说,RFID 系统可能受到的攻击主要有物理攻击、假冒攻击、伪 造攻击、重放攻击、复制攻击和服务后抵赖等 7。但另一方面,出于成本的考虑,RFID 标签内的芯 片处理能力十分有限,不允许进行如计算机网络通信那样相对安全但十分复杂的运算。这些都对 RFID 系统的软硬件设计提出了更高的要求。虽然目前已有很多适合 RFI

16、D 标签处理能力的算法提出, 但这些协议都存在一定的问题 8-10。设计一个安全、高效、低成本的 RFID 协议成为十分重要的研究 方向。 另一方面,多标签快速识别成为另一个应用要求。但由于所有的标签和阅读器都用同一个频率, 又缺少一种对多址访问的控制( 没有 MAC介质访问控制层) 13-14,就会不可避免地产生冲突问题。 在 RFID 系统中 , 由于标签和阅读器之间的数据传输导致的冲突问题可以分为三类:标签-标签冲突、 读取器- 标签冲突和读取器-读取器冲突 15。已有多种适合不同应用的防冲突算法被提出,这些协议 思想对设计 RFID 系统有重要的参考价值。 2.2 RFID 类型选择

17、在本系统的设计中,考虑到数据传输、信息安全和低功耗的要求,一方面需要对 RFID 所传送 的数据进行快速、频繁的更改,且需要对通信时间和顺序进行严格的控制,这些是无源 RFID 难以 做到的;另一方面,系统对成本和体积的要求并不是太苛刻。因此,选择有源 RFID 的方式来设计 本系统。 RFID 身份识别系统设计 4 3 系统设计 3.1 系统总体设计 本系统每个单体设备均以 C8051F330 单片机和 nRF24L01+无线模块为核心,并配以适当的外围 电路为功能补充。C8051F330 单片机和 nRF24L01+无线模块间通过 SPI 方式通信。单片机对外留有 接口以便连接到上位机进行

18、控制或数据传递。单体框图见 图 1。 图 1 单体框图 整体系统由多个上述单设备组成,其中一个为主设备(阅读器) ,其余为从设备(RFID 标签) 。 主、从设备通过射频通信,需实现身份识别、口令认证、数据传输、数据加密和多从设备防冲突。 整体系统框图如 图 2。 图 2 整体设计 3.1.1 器件选择 nRF24L01+是 NORDIC 公司的一款 2.4G 无线收发芯片,功能较强,集成度高,功耗较低且价格 低廉,十分适合用来设计有源 RFID。因此本系统设计选用该款芯片作为无线收发芯片。 nRF24L01+芯片介绍详见 NORDIC 公司官方网站: /* 无符号 8 位整型变量 */ ty

19、pedef signed char int8; /* 有符号 8 位整型变量 */ typedef unsigned int uint16; /* 无符号 16 位整型变量 */ typedef signed int int16; /* 有符号 16 位整型变量 */ typedef unsigned long uint32; /* 无符号 32 位整型变量 */ typedef signed long int32; /* 有符号 32 位整型变量 */ typedef float fp32; /* 单精度浮点数(32 位长度) */ typedef double fp64; /* 双精度浮点

20、数( 64 位长度) */ #endif /* CPU_CFG.h */ #ifndef _CPU_CFG_h_ #define _CPU_CFG_h_ #include “Type.h“ #define CPU_FRE 25000000 / 系统时钟频率 #define ZLG7289_FRE 4000000 / ZLG7289 时钟频率 #define ZLG7289_DELAY (5 * CPU_FRE / ZLG7289_FRE + 50) / t = 5 * f1 / f2 #define AD_REF 245 / 2.45V #define TIMER_1MS (CPU_FRE/1

21、000) #define TIMER_1MS_TL (65536-TIMER_1MS)%256) #define TIMER_1MS_TH (65536-TIMER_1MS)/256) #define SDELAY_10US (CPU_FRE/200000) /#define SDELAY_5US (CPU_FRE/400000) 3 #define FRAME_NUM 10 #define SYN_NUM 9 #define ALL_TIME 5000 / 5s void CPU_Init(void); / 系统初始化 void TIMER_Init(void); / 定时器初始化 void

22、 AD_Init(void); / AD 初始化 #endif /* CPU_CFG.c */ #include #include “CPU_CFG.h“ void CPU_Init(void) / 系统初始化 /OSCLCN = 0x82; / 设置内部 L-F 振荡器为 40kHZ /CLKSEL = 0x02; / 内部低频振荡器 /while(OSCLCN / 内部 L-F 振荡器频率未稳定 CLKSEL = 0x00; OSCICN = 0x83; / 内部 H-F,不分频 while(OSCICN / 内部 H-F 振荡器频率未稳定 PCA0MD / 禁止看门狗定时器 IE = 0

23、x80; /总中断允许 /其他关闭 /EA = 1; /总中断允许 PT2 = 1; / 定时器 2 中断优先级高 /P0MDOUT = 0xf7; / P0.3 漏极开路 P0MDOUT = 0x27; / P0.3,P0.4,P0.6,P0.7 漏极开路 P0MDIN = 0xfc; / 1 数字输入,P0.0,P0.1 模拟输入 /P1MDOUT = 0xaf; / P1.4 漏极开路 ,P1.6 漏极开路 /P1MDOUT = 0xff; P1MDOUT = 0xbf; / P1.6 漏极开路 P1MDIN = 0xff; /P0SKIP = 0x0f; P0SKIP = 0x03;

24、/XBR0 = 0x08; / 交叉开关使能 /clock XBR0 = 0x00; / 交叉开关使能 RFID 身份识别系统设计 4 /XBR1 = 0x40; XBR1 = 0xc0; /弱上拉禁止 /XBR1 = 0x48; / ECI 连到端口引脚 /XBR1 |= 0x08; / PCA0 外部计数输入使能 /P0 |= 0x08; / P0.3,P1.4,写1作读准备 /P1 |= 0x10; P0 |= 0xd8; / P0.3,P0.4,P0.6,P0.7,P1.6 写1作读准备 P1 |= 0x40; /IT01CF |= 0x03; / INT0 为低电平,引脚: P0.3

25、 IT01CF |= 0x73; / INT0 为低电平,引脚: P0.3;INT1 为低电平,引脚: P0.7 /TCON |= 0x01; / EX0 边沿触发 TCON = 0x04; / EX1 边沿触发 /IE |= 0x81; / 外部中断 0 允许 void TIMER_Init(void) /定时器初始化 /配置定时器 0 TMOD = 0x02; /定时器 0,8 位自动重装 CKCON = 0x04; /定时器 0,系统时钟 TL0 = 0x00; /计数值 TH0 = 0x00; /重装值 /配置定时器 2 TMR2CN = 0x00; /定时器 2,16 位自动重装 C

26、KCON = CKCON|0x10; /定时器 2,系统时钟 TMR2H = TIMER_1MS_TH; /定时器 2,高位起始值 TMR2L = TIMER_1MS_TL; /定时器 2,低位起始值 TMR2RLH = TIMER_1MS_TH; /定时器 2,高位重装值 TMR2RLL = TIMER_1MS_TL; /定时器 2,低位重装值 ET2 = 1; /定时器 2,中断允许 /注意 :TF2H 需软件清 0 void AD_Init(void) / AD 初始化 REF0CN = 0x03; / 使用内部 VREF AMX0P = 0x01; / AD 正端 P0.1 AMX0N

27、 = 0x11; / AD 负端 GND ADC0CF = 0xc8; / AD 时钟为(sysclk/25-1),右对齐 5 ADC0CN = 0xc0; / AD 使能,低功耗模式,向 AD0BUSY 写 1 启动跟踪,持续 3 个 SAR 时钟后开始转换 /* CRYPT_CFG.h */ #define PASS_NUM 4 extern uint8 password_tempPASS_NUM; extern uint8 code PasswordPASS_NUM; extern uint8 code Random_Num_Table256; void Crypt(uint8 key)

28、; uint8 Crypt_data(uint8 key,uint8 one_byte_data); /* CRYPT_CFG.c */ #include “Type.h“ #include “CRYPT_CFG.h“ uint8 password_tempPASS_NUM = 0; uint8 code PasswordPASS_NUM = 0xaa,0xbb,0xcc,0xdd; uint8 code Random_Num_Table256 = 195, 202, 177, 246, 247, 233, 179, 105, 235, 216, 35, 30, 126, 142, 174,

29、20, 80, 172, 12, 76, 223, 132, 148, 177, RFID 身份识别系统设计 6 69, 120, 151, 44, 122, 141, 119, 121, 98, 186, 79, 126, 231, 124, 137, 215, 88, 93, 235, 220, 8, 246, 92, 85, 2, 224, 62, 244, 189, 84, 252, 173, 90, 165, 74, 200, 135, 38, 210, 13, 86, 134, 74, 69, 105, 7 126, 95, 217, 238, 102, 98, 245, 62,

30、189, 185, 3, 126, 12, 8, 185, 218, 27, 116, 104, 128, 76, 57, 46, 78, 181, 15, 60, 111, 17, 105, 72, 143, 76, 128, 179, 98, 14, 122, 9, 208, 142, 244, 33, 112, 149, RFID 身份识别系统设计 8 216, 124, 105, 123, 53, 155, 251, 185, 244, 85, 57, 164, 123, 49, 95, 103, 207, 7, 19, 54, 5, 186, 26, 81, 58, 167, 162

31、, 69, 23, 112, 211, 161, 145, 220, 92, 217, 127, 243, 11, 196, 119, 50, 2, 89, 134, 9 223, 122, 173, 254, 116, 139, 239, 106, 214, 242, 98, 227, 13, 236, 115, 46, 94, 70, 90, 173, 213, 9, 102, 88, 86, 208, 75, 173, 212, 239, 107, 97, 112, 76, 140, 249, 166, 66, 233, 4, 171, 218, 70, 92, 133, RFID 身份

32、识别系统设计 10 56, 81, 248, 19, 191, 147, 173, 171, 242, 118, 248, 254, 64, 185, 147, 31, 43, 34, 200, 71, 233, 35, 189, 68, 163, 220, 163, 3, 30, 33, 159, 190, 201, 123, 168, 110, 50, 35, 26, 242, 121, 143, 193, 92, 82, 11 68, 23, 52, 224, 43, 117, 157 ; void Crypt(uint8 key) uint8 i; for(i=0;i 2; ad_re

33、al_data_temp = ad_real_data_temp * AD_REF / 255; ZLG7289_Download(1,7,0,(ad_real_data_temp%10); / 个位 ad_real_data_temp /= 10; ZLG7289_Download(1,6,0,(ad_real_data_temp%10); / 十位 ZLG7289_Download(1,5,1,(ad_real_data_temp/10); / 个位 else if(tar_datadisplay_num.connect_sta = 0) / 不在 13 ZLG7289_Download(

34、0,4,0,0x0a); ZLG7289_Download(0,5,0,0x0f); ZLG7289_Download(0,6,0,0x0f); ZLG7289_Download(0,7,0,0x0f); else if(master_flag = 1) / 主机数据显示 ZLG7289_Download(0,0,0,0x0f); ZLG7289_Download(0,1,0,0x0f); ZLG7289_Download(0,4,0,0x0f); ad_real_data_temp = AD_data 2; ad_real_data_temp = ad_real_data_temp * AD

35、_REF / 255; ZLG7289_Download(1,7,0,(ad_real_data_temp%10); / 个位 ad_real_data_temp /= 10; ZLG7289_Download(1,6,0,(ad_real_data_temp%10); / 十位 ZLG7289_Download(1,5,1,(ad_real_data_temp/10); / 个位 void KEY(void) interrupt 2 key_temp = ZLG7289_Key(); / 读入键值 /* MAIN.h */ #include “Type.h“ #include “CPU_CF

36、G.h“ extern xdata struct Tar_Data_Container tar_dataFRAME_NUM; / 从机数据 extern uint16 AD_data; / 主机数据 /* MAIN.c */ #include #include “Type.h“ #include “CPU_CFG.h“ #include “CRYPT_CFG.h“ #include “nRF24L01.h“ #include “ZLG7289.h“ #include “DISPLAY_KEY.h“ /sbit alarm = P07; RFID 身份识别系统设计 14 sbit alarm =

37、 P17; sbit led = P02; /sbit led = P17; /sbit seed_RC = P15; /sbit seed_time = P16; sbit seed_RC = P05; sbit seed_time = P04; uint16 timer2_num = 0; / 定时器 2 溢出次数 uint8 OX_sta=0; / 8 分频标记 struct Tar_Data_Container /uint8 command; / 0 重连接, 1 连接中 uint8 key; /uint8 passwordPASS_NUM; uint16 ad_data; uint8

38、 connect_sta; / 0 不在,1 正常, 2password 异常 xdata tar_dataFRAME_NUM=0; / 从机数据 uint8 tar_passwordPASS_NUM=0; uint16 AD_data_All = 0; uint16 AD_data = 0; /主机 AD 数据 void main() uint8 seed=0; uint8 count=0; uint8 time_slice=0; uint8 syn=0; uint8 tar_num=0; uint8 rf_int=0; uint8 i; CPU_Init(); nRF24L01_Init(

39、); TIMER_Init(); AD_Init(); led = 0; seed_time=1; / 准备读端口 /* 获取种子 * 15 seed_RC = 1; / RC 充电 TL0 = 0x00; / 重置定时器 TF0=0; / 定时器溢出重置 Long_Delay(60000); while(seed_time=0); / 等待充电完成 TR0=1; / 开启定时器 seed_RC = 0; / RC 放电 while(seed_time=1) / 等待放电完成 if(TF0=1) / 定时器 0 溢出 count+; TF0=0; TR0=0; / 关闭定时器 seed=TL0

40、; / 读取定时值 /Long_Delay(60000); alarm = 0; / 种子成功获取 /* 7289 初始化 * ZLG7289_Init(ZLG7289_DELAY); / 全亮 for(i=0;i30 ? (AD_data-30) : 0 ) alarm = 0; else alarm = 1; /警报 /* 获得种子 */ /led=1; /* led 亮 * count=0; /seed_RC = 1; / RC 充电 TL0 = 0x00; / 重置定时器 TF0=0; / 定时器溢出重置 /Long_Delay(60000); while(seed_time=0);

41、/ 等待充电完成 / 大约 5ms TR0=1; / 开启定时器 seed_RC = 0; / RC 放电 while(seed_time=1) / 等待放电完成 if(TF0=1) / 定时器 0 溢出 count+; TF0=0; TR0=0; / 关闭定时器 seed=TL0; / 读取定时值 /led=0; /* led 灭 * /Long_Delay(60000); /* 显示数据 */ Display(); /* 空闲帧 */ PCON |= 0x01; / CPU 进入空闲 PCON = PCON; OSCICN = OSCICN / 内部 H-F,8 分频 OX_sta=1;

42、/ 8 分频标记 ZLG7289_Delay_t /= 8; IE1 = 0; / 清楚外部中断 1 标记 EX1 = 1; / 外部中断 1 开启 RFID 身份识别系统设计 20 while(timer2_num = 5 * f1 / f2,其中 f1 表示 80C51 的 晶振频率,f2 表示 ZLG7289 的晶振频率 */ void ZLG7289_Init(unsigned char t) unsigned char x; 37 /I/O 口初始化 ZLG7289_pinCS = 1; ZLG7289_pinCLK = 0; ZLG7289_pinDIO = 1; ZLG7289_

43、pinINT = 1; /延时初始化 ZLG7289_Delay_t = t; /点亮所有数码管 for ( x=0; x1; / 高位准备接收数据 if(ID_IN = 1) id_data+=128; CLK = 1; Long_Delay(LDELAY_500US); return id_data; /* MAIN.c */ #include #include “Type.h“ #include “CPU_CFG.h“ #include “CRYPT_CFG.h“ #include “nRF24L01.h“ #include “ID_IN.h“ sbit led = P17; /sbit

44、 seed_time = P16; uint16 timer2_num = 0; / 定时器 2 溢出次数 uint16 timer0_num = 0; / 定时器 0 溢出次数 uint8 T2_Syn_H = 0; uint8 T2_Syn_L = 0; uint16 T2_Syn_Temp = 0; struct Tar_Data_Container /uint8 command; / 0 重连接, 1 连接中 uint8 key; /uint8 passwordPASS_NUM; uint16 ad_data; uint8 connect_sta; / 0 不在, 1 正常,2pass

45、word 异常 RFID 身份识别系统设计 48 tar_data = 0; / 从机数据 uint8 tar_passwordPASS_NUM=0; /uint8 tar_dataFRAME_NUM = 0; / 从机数据 /uint8 up_dataTX_PLOAD_WIDTH=0; / 要上传到主机的数据 void main() uint8 seed=0; /uint8 count=0; uint8 time_slice=0; uint8 time_slice_temp=0; uint8 syn=0; uint8 tar_num=0; / 从机号下面可配置 uint8 rf_int=0;

46、 uint8 i=0; CPU_Init(); nRF24L01_Init(); TIMER_Init(); AD_Init(); led = 1; /* led 亮 * tar_num=ID_Data_IN(); tar_num=tar_num % FRAME_NUM; / *配置从机号 led = 0; /* led 灭 * / seed_time=1; / 准备读端口 led = 0; while(1) /* 同步 * TR2 = 0; / 关闭定时器 2 time_slice=0; timer2_num=0; timer0_num=0; SYN_Mode(); / 转换到同步模式 rf_int=SPI_Read_Reg(STATUS); / 读取状态寄存器参数 SPI_RW_Reg(WRITE_REG+STATUS,rf_int); / 清除中断标志 flag=0; EX0 = 1; / 外部中断 0 开启 ET2 = 1; /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。