版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于arm的IC卡读写模块设计“这个实验是基于我在做的项目电动车辆智能交流充电堆中负责的部分。”实验名称基于ARM的IC卡读写模块设计课程嵌入式系统名称是关南班级控制项目1202学习编号实验目的使用ARM内核的MCU实验原理使用基于ARM内核的MCU芯片和RFID卡完成非接触式IC卡读写模块设计。使用计时模拟的SPI通信实验环境和设备编程语言环境:keil MDK Vision V4.21.0.0MCU芯片:基于ARM核心的STM32F103VET6芯片(Heart103V开发版)RFID卡:RFID-MFRC522模块除错工具:JTAG模拟器实验内容1.RFID-MFR c522模块1.1结
2、构非接触式IC卡的薄膜结构卡内部结构1.2功能功能方块图读卡器通过天线发出激励信号(固定频率的电磁波集),IC卡进入阅读器工作区,并受到阅读器信号的激励。在电磁波的激励下,卡内的LC串联谐振电路产生共振,使电容器内部产生电荷,该电容器的另一端连接了单向传导电子泵,将电容器内的电荷存储在另一电容器中,积累的电荷达到2 V,该电容器就可以通过电源为另一电路提供工作电压,提供卡内集成电路工作所需的电压。(1)ATR模块:Answer To Request(“请求的响应”)当MIFARE 1卡在阅读器的天线工作范围内时,程序员向卡发出Request all(或Request STD)命令时,卡的ATR
3、将启动,将卡块0中2字节的卡类型号(TagType)传递给读者以创建卡如果不执行第一阶段的ATR操作,则不会对读卡器(读/写操作等)执行其他操作。(2)AntiCollision模块: (卡)防碰撞功能当多个MIFARE 1卡在阅读器的天线操作范围内时,AntiCollision模块的防碰撞功能将启用。阅读器首先与每个卡通信,读取每个卡的序列号。由于每个MIFARE 1卡都有唯一的序列号,因此程序员开始使用卡的防止重复功能模块,该模块允许根据卡序列号选择其中一个卡。选定的卡被激活,以便与读取器进行数据交换。未选中的卡正在等待,准备与读取器通信。AntiCollision module(防止重复
4、功能)启动此操作后,读取器将收到卡的序列号。序列号存储在卡的Block 0中,共5字节,实际上有用的是4字节,其他字节是序列号的确认字节。(3)选择应用程序模块:选择卡如果卡和读取器完成上述两个步骤,则必须对卡执行“选择”操作,以便读取器可以对卡执行读/写操作,从而实际选择卡。选定的卡将卡的块0中存储的卡容量“大小”字节传递给读者。读取器收到此字节后,才能对卡执行其他操作,如密码验证。(4)身份验证访问控制模块:身份验证和访问控制模块完成上述三个步骤后,读取器在对卡执行读/写操作之前,必须验证卡上设置的密码,如果匹配,则允许进一步的读/写操作。MIFARE 1卡有16个扇区,每个扇区可以单独设
5、置自己的密码,不会徐璐干涉,必须单独验证才能继续该扇区的下一步。因此,每个扇区可以独立应用于一个应用程序,整个卡可以设计为卡多用途(卡)。密码认证采用三种相互认证方法,安全性很高。如果事先不知道卡的密码,密码更改可能会使事情变得非常复杂,因此,猜测密码打开卡的上一扇区的可能性很小。(5)控制静态单位:控制和算术运算单位这个单元是整个卡的控制中心,卡的“头”。主要通过操作卡上的每个设备来调整卡上的每个步骤。此外,针对各种接收/发送数据的算术运算处理、增减处理、CRC运算处理等也是卡中内置的中央微处理器(MCU)单元。(6)RAM/ROM单元RAM主要与控制单元和算术计算单元一起临时存储计算结果(
6、例如,控制要存储的数据并将数据从算术计算单元中删除到EEPROM内存中)。需要传输到读取器的数据从控制单元和算术计算单元中取出,通过RF无线接口电路进行处理,然后通过卡上的天线发送给读取器。RAM中的数据丢失(如果卡超出读卡器天线的有效工作范围)。同时,ROM固化了操作卡所需的程序指令,将其从控制单元和算术计算单元中删除,从而允许对每个设备进行命令控制,从而使卡能够与读取器数据有序地通信。(注:ROM、ROM、ROM、ROM、ROM、ROM、ROM、ROM、ROM、ROM、ROM)(7)加密单元:数据加密单元此设备完成数据加密和密码保护。加密算法可以是DES标准算法,也可以是其他算法。(8)E
7、EPROM内存和接口电路:EEPROM接口/EEPROM内存此设备主要用于存储用户数据,即使卡断电(卡超出阅读器天线的有效工作范围),数据也保持不变。1.3读取和写入数据的方法由于项目内部板SPI接口已被其他外围设备使用,因此在此实验中,RFID卡和板数据之间的读取和写入是通过常规IO端口计时模拟获得的。分配1.4针如上图所示,RFID卡模块总共有8个针脚,其中5个为空。另一个1、2、3、4和7个端口分别将通用IO端口PD8、PD9、PD10、PD11和PD12分配给主板作为通信线。6脚和8脚分别位于主板的接地线和3.3V电源端口。1.5 Mifare 1 S50卡存储EEPROMMifare
8、 1卡内部有1的EEPROM,共分为0到15个16个扇区,每个扇区分为0到3个总4个,每个16个字节。1,扇区0中的块0是存储只读卡信息和供应商信息(如AFA 7 3e 00 36 08 04 00 99 44 30 43 31 34 36 16)的供应商徽标字节。前4字节AF A7 3E 00 36是卡序列号,08是卡容量,04 00是卡类型,后面是供应商自定义的信息。2,每个扇区的块0存储该块的键A键B和该块的访问条件。第一个扇区有自己的一组密钥和访问条件。其中4字节访问条件是每个扇区4个块的读写定义。格式如下:字节9替换默认值为0x69,_b为反向。分为C10C13、C20C23、C30
9、C33对于块0、块1、块2访问控制x (0到2):块3访问控制:例如,块3的16字节如下:00 00 00 00 00 00 ff 07 80 69 ff ff ff ff ff ff ff ff ff ff ff前6个字节是密钥a。读取是0x00,最后6个字节是密钥b,因为Read总是Never。值1为0x ff 0 xff 0 xff 0 xff 0 xff 0 xff 0 xff 0 xff 0 xff,中间4个字节是访问条件。C1x 0.2C2x 0.2C3x 0.2000C1X3C2X3C3X3001与上表相对应,可以获得该扇区块的访问控制条件。2.实现读写使用RFID卡制造商准备的
10、头文件将其添加到项目中。IC卡的读写需要经验。决定卡是否进来。进入多卡时的防碰撞处理卡操作前的密钥验证操作,以及后续操作类型(注册、读卡、消费、充电、注销等)的密钥验证操作汇入图块2以储存资料。扇区区块说明156315扇区尾块62数据块61数据块60数据块145914扇区尾块58数据块57数据块56数据块.17第一扇区尾块6数据块5数据块4数据块030扇区尾块2数据块1数据块0供应商徽标块RC522卡存储库的组织图扇区111密钥a权限代码密钥b64610交易金额1交易额2交易金额3序号1序号2序号32222229交易时间1交易时间2交易时间3状态交易次数444228使用者馀额用户名(位置代号存
11、储)用户卡号484此程序的备用设计卡上存储的用户信息作为位置代码存储在用户名3354个字符以内,因此下一步连接到触敏屏幕模块时,可以通过字体支持来显示。用户帐户馀额信息旨在存储为4字节。每个IC卡都指定了由4字节8位数字和字母组合表示的编号。此时,所需的存储空间将正确地用于一个数据块,名称部分(汉字的位置代码为2个字节)共8个字节,其馀部分为4个字节,编号部分为4个字节,共16个字节。扇区0存储大量供应商信息,因此使用扇区1中的块4存储用户信息数据。卡的各种类型的操作通过为卡的状态变量OprationCard赋值来实现。包含自定义状态单词列表:0x11有卡0x22冲突预防处理已完成0x33卡选
12、择已完成0x44密钥认证通过#defineREGCARD0xa1 /注册状态#defineCONSUME0xa2 /冲减状态#define READCARD0xa3 /卡读取状态#define ADDMONEY0xa4 /充电状态#define LOGOFFCARD0xa5 /注销状态Void On_NormalCall()/if(主舞台=1)/ShowStartPage();/主舞台=2;/主舞台=1;Signed char Status,I:Signed long money _ value/,money _ value2Float f _ money _ value/,f _ money
13、 _ value2状态=pcdrequest (PICC _ reqidl,rev buffer0);/在天线区域找到非休眠卡,并返回卡类型2个字节If(状态!=MI _ OK)return;状态=pcdanticoll(rev buffer2);/避免冲突,返回卡的序列号4字节If(状态!=MI _ OK)return;Gpio _ resetbits (gpio _ beeper,beeper _ pin);/*打开蜂鸣器*/delay(0x 2 ffffff);Gpio _ setbits (gpio _ beeper,beeper _ pin);/*关闭蜂鸣器*/Delay(0x 2
14、ffffff);Memcpy (mlastselectedsnr,rev buffer 2,4);/RevBuffer2将起始地址的4个字节复制到MLastSelectedSnr起始地址的区域状态=PCD select(mlastselectedsnr);/选择卡If(状态!=MI _ OK)return;If(OprationCard=REGCARD)/注册0status=PC dauthstate(PICC _ authent 1a,11,newkeya,mlastselectedsnr);/地址11如何确定?(扇区2尾块序列号)If(状态!=MI_OK)Error(Error _ RC
15、522);ReturnStatus=PcdWrite(11,new key0);If(状态!=MI_OK)Error(Error _ RC 522);Returnfor(I=0);I16I )/?write _ First _ DataI=0x aa;Memset (write _ first _ data,0,size of(write _ first _ data);/Write_First_Data将起始地址的sizeof(Write_First_Data)字节替换为0Money _ value=8000Memcpy (write _ first _ data,(u8 *) money _ value,4);状态=pcdwrite (8,write _ first _ data0);/如何确定地址4?(扇区1块1块序列号)If(状态!=MI_OK)Error(Er
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防跌倒坠床护理程序
- 液化气体生产工达标知识考核试卷含答案
- 丁基橡胶装置操作工QC管理模拟考核试卷含答案
- 砖瓦烧火工测试验证评优考核试卷含答案
- 26年居家监测内容清单
- 26年PR疗效判定实操要点手册
- 26年注册研究操作指引
- 26年胸膜间皮瘤评估实操指引
- 探索旅游业新篇章-全球视野下的亚太增长机遇
- 汽车金融变革之路-深度解析行业发展趋势及策略
- 2026下半年湖南益阳市资阳区事业单位招聘工作人员16人易考易错模拟试题(共500题)试卷后附参考答案
- 2026浙江杭州市西湖区人民政府西溪街道办事处招聘编外合同制工作人员2人笔试模拟试题及答案解析
- 2026年科目1驾驶技术模拟题库及完整答案详解
- 六化建设培训
- 2026年甘肃省平凉市辅警人员招聘考试真题解析含答案
- TSG08-2026《特种设备使用管理规则》全面解读课件
- 《2026年化学制药企业安全风险防控专项工作方案》解读
- 四川绵阳科技城发展投资(集团)有限公司招聘笔试题库2026
- PDCPD材料可行性研究报告
- 药品信用档案管理制度
- 【答案】《以案说法》(中南财经政法大学)章节作业慕课答案
评论
0/150
提交评论