




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的IC卡读写器设计目录TOC\o"1-2"\h\u4041第一章前言 4113801.1IC卡简介 4105241.2IC读写器发展分类 566211.3IC读写器发展现状 6141751.4论文研究的主要内容 625524第二章系统方案论证 750162.1系统总体设计 7242322.2单片机方案选型 8269672.3显示单元选择 1224179第三章硬件电路设计 14318323.1供电电源设计 14135473.2SLE442卡 14303623.3IC卡接口电路 1618632第四章系统软件设计 16164494.1编译环境的选择 16134964.2主程序的流程: 1761094.3通信接收发送子程序: 1831045第五章论证与测试 1938975.1硬件模块测试: 19201715.2软件模块测试: 2015353第六章结论 208238参考文献 22第一章前言1.1IC卡简介集成电路卡IC卡的发展经历了一个个的时代时机,根据主控MCU与IC卡之间的相互配合与逻辑,成为基于处理器的IC卡读卡器。在不同的地域有不同的称呼。总而言之称其为微芯片卡(MicroCard)或微电路卡(MicrocircuitIC)。它与我们认知的如出一辙,通过PCB板能够批量生产。首先我们通过存储芯片进行对关键信息的保留,因此奠定了互联网和电子信息技术的发展,从而正向反馈至读写器。它能够很好的解决军事和企业、政府出入境所对应的安保问题,以及银行个人用户的数据隐私存储。这颠覆了传统的记录方式。越来越多的行业选择与此,并且迅速铺开来。因此它的发展只能伴随着时代进步而越来越好。伴随着物联网的发展,嵌入式行业的迅速进步,会进一步推进IC卡行业和IC卡读写器行业的迅速进步。这是一个正向循环的过程。读写器从接触方式分:读写器分为接触式读写器,非接触式读写器,单界面读写器和双界面读写器以及多卡座接触式读写器。从接口分主要有:并口读写器、串口读写器材、USB读写器、PCMICA卡读写器和IEEE1394读写器REF_Ref13621\r\h[4]。其IC卡主要分为两种:(1)接触式IC卡由读写设备的触点和卡片上的触点相接触进行数据读写,国际标准ISO7816系列对此类IC卡进行了规定REF_Ref13621\r\h[4]。(2)其内嵌芯片除了控制逻辑外,增加了射频收发电路REF_Ref13621\r\h[4]。使用STM32F103VET6单片机作为MCU,通常接触式IC卡读、写器的硬件结构,它应包括卡座(IC卡适配插座)、输入接口电路、存贮器、微处理器、外围接口电路及密码运算、处理单元.其中卡座具有与卡接触的8个触点,是检测“插卡到位”的一对状态开关;固定和弹出卡的机械装置,与输入接口电路相接的电气终端和安装基座REF_Ref20185\r\h[10]。而且它工作的辅助性与配合性依旧很强。它能够与IC卡电表,相应类型的水表,银行ATM机,以及商场收款机等等。第二、普适性民用IC读卡器,能够多设备协同联网工作,覆盖范围十分广泛,应用领域十分广。通过单片机的输入输出GPIO充分的拓展,或者通过通信接口(如USART、RS232等)与上位机配合。第一、专门应用于IO设备的读卡器,其内部的控制的MCU单元为单片机。其型号又根据时代的不同和需求的不同不断迭代进步。脱离计算机是它的本质特征,而且又能够充分利用IC卡的存储空间。能够自主工作和超长时间与脱机。而且它工作的辅助性与配合性依旧很强。1.2IC读写器发展分类读写器是IC卡的出现与普及过程中不可缺少的环节。IC卡最早由法国人发明,逐渐由不可编程的固化刻化技术逐渐转变成可编程技术,逐步扩大使用范围,再次通过横向扩展将其应用至各个领域。它将微电子技术和计算机技术结合在一起。IC卡读写器有人也称读卡器。IC卡具有存储容量大、保密性好、体积小、便于携带等特点。可广泛用于金融、交通、税务、社会保险、工商管理、医疗、电讯、旅游、餐饮、公共事业和保安等领域。IC卡读写器读写器采用高品质的表面封装工艺。擦卡自检(判断卡的正反向和卡片类型)。通讯时自动选择波特率。1.3IC读写器发展现状智能型基于STM32的IC卡读写器:单片机是读写器的大脑,能够有效控制IC卡的读写操作。根据不同的需求,还能开发拓展远程通信功能。相比较于曾经的IC卡读写器,基于STM32的读写器能够更加精确和高精度读写才做,而且能够通过程序进行优化,能够使得错误发生的概率大幅度降低。1.4论文研究的主要内容这个主题分析了基于单片机的IC卡读写器的原理操作和程序流程的具体环节,并开发一个基于STM32F103VET6的IC卡读写器。STM32可以作为核心控制环节,在短时间内迅速进行计算,通信和交流,完成对IC卡的读写。具有一定的价值。基本要求:以基于Cortex-M3系列STM32F103VET6单片机为核心设计一种IC卡读写器。对IC卡在各种应用场景下的辅助操作流程,同时要求能够在系统应在1分钟反应时限内进行计算动作。系统要具有一定的抗干扰措施。具有LED故障显示和报警功能。备用接口备用接口IC卡适配插座LED显示电路IC卡适配插座LED显示电路STM32F103STM32F103MAX232MAX232RS232RS232电源电路按键模块电源电路按键模块图1-1系统流程图系统方案论证2.1系统总体设计本设计的整体设计方案框如下图所示,主要包括STM32F103VET6单片机,LED显示模块,IC卡插座模块和按键模块等。IC卡是通过触点与外界的接触实现电气连接进行数据的读写,适用于用卡次数不多且环境较好的场合。接口电路简单,成本低廉而且其读写器的制造成本较低REF_Ref28123\r\h[6]。基于此前提,IC卡接口电路作为IC卡与IFD内的CPU进行通信的唯一通道,为保证通信和数据交换的安全与可靠,本文基于存储IC卡模块和单片机控制MCU为例进行介绍REF_Ref28123\r\h[6]。时钟电路电源STM32F103VET6IC卡插座通信模块LED显示模块时钟电路电源STM32F103VET6IC卡插座通信模块LED显示模块按键电路按键电路图2-1系统组成结构2.2单片机方案选型方案一:89C52单片机是STC公司最新推出的一种新型51内核的单片机。片内含有Flash程序存储器、SRAM、UART、SPI、PWM等模块。封装图如下:图2-2STC89C52单片机引脚图主要特性如下:
C52单片机,相比较之前的新一代产品工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)工作频率范围:1~39MHz。可达56MHz
4.用户应用程序空间为8K字节
5.片上集成512字节RAM6.44个输入输出端口,通过焊接与外电路连接。
7.下载程序和仿真方式种类较多,可根据实际情况去选择。8.具有EEPROM功能
9.具有看门狗功能
10.共3个16位定时器/计数器。即定时器T0、T1、T2
11.唤醒方式较为简单12.3个串口通信组13.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)任何老的编译器/汇编器均可使用KeilC51中:Device选择标准的Inte18052头文件包含标准的<reg52.h>新增特殊功能寄存器如要用到,则用“sfr”及“sbit”声明地址即可汇编中用“dSTCa'或“EQU"关于仿真及仿真器:1.任何老的仿真器均可使用2.老的仿真器仿真他可仿真的基本功能3.新增特殊功能用ISP直接下载程序看结果即可5.其实现在大部分STC用户不用仿真器,用ISP就可调通64K程序图2-3STC89C51原理图方案二:STM32F103系列单片机STM32系列单片机是arm系列单片机,被广大开发人员和电子爱好者广泛使用。STM使用的Cortex-M3内核具有强大的内部资源,可以在不同的环境中处理微信号。特殊处理芯片的选择使多个模块同时高效地工作和反应,同时具有高效的故障保护和高性能的特点稳定性功能强大,价格低廉,市场环境广阔。在实习实习生存手册生存手册从在实习实习生存手由于各种智能设备的迅速发展,STM32系列单片机具有利用率高的优点,具有非常丰富的开发信息和经验,非常适合学生设计不同的系统和开发。同时STM32F103系列单片机具有下列功能:STM32F103系列单片机的外部快速I/O多达21个,而且所有的I/O口都可以进行其内部16个外部中断的映像,虽然STMF103系列单片机的工作电压范围为2.0V~3.6V,但5V的信号可以从其几乎所有的端口进行输入。通过软件的设计,可以将其每一个端口都能够配置成推挽输出、开漏输出、上拉电阻输出、上拉电阻输入、下拉电阻输出、下拉电阻输出等其他外设功能,能够从软件层面上优化外部电路,使得其I/O无需在外部电路上进行有关于输出能力的设置。这些特性使STM32F103高密度性能线微控制器系列适用于各种应用,例如电机驱动器,应用控制,医疗和手持设备,PC和游戏外围设备,GPS平台,工业应用,PLC,逆变器,打印机,扫描仪,报警系统可视对讲机和HVAC。由于STM32F103VET6的出色性能和表现,本次设计将采用。方案三:使用MSP430单片机作为处理控制的核心芯片。MSP430单片机是一款十六位的单片机,具有低功耗的功能。MSP430单片机一般用于需要对功耗进行严格控制的电路上。MSP430单片机具有精简指令集,性能高,使用简单的优点。一般运用于需要严格控制功耗的仪表行业中。但是MSP430单片机的价格相对会比较高,并且本次设计中对于功耗的控制是可以有要求,但不是特别的高,所以并不采用此方案。综上所述,采用STC89C51为本次的MCU。图2-4STM32F103原理图2.3显示单元选择对于显示模块的选择,有以下三种方案可供选择:方案一:LED数码管。数码管是人们在进行数字显示时最常用的模块之一,其内部集成8段发光二极管,这8段二极管可以通过共阳极连接或者共阴极连接,用户可以通过操控这8段发光二极管进而组成自己想要显示的字符,操作简单,且电流消耗小,缺点是其显示位数较少,想要增加显示字符数比较浪费单片机的I/O口资源,或者选择采用锁存器等数据处理单元,增加系统的成本。但是其方便的使用性深的广泛使用。方案二:LCD。LCD是一种液晶显示屏,目前常见的种类有LCD1602,LCD12864等,它的优点在于显示能力强大,可以根据软件编程对每个字符的显示位置进行更改,这一特点使得用户能够充分利用LCD的显示资源,同时LCD一般采用并行串口通讯方式,能够显示通过取模软件所生成的大部分字符,而且LCD还可以通过外围电路手动控制显示的对比度、亮度等,是目前使用比较广泛的显示器。LCD液晶显示屏优点:1.液晶在节能方面可谓优势明显。2.其辐射指标普遍比数码管要低一些。3.由于其原理问题不会出现任何的几何失真,线性失真。4.液晶显示器可视面积大。5.高精细的画质(部分低价的缩水显示器除外)。方案三:OLED显示屏。OLED是一种新型的显示方案,在显示时无需使用背光源、其具有对比度高、体积轻薄等先进优点,是目前平面显示器的新兴技术,一般通过IIC或者SPI通讯方式进行数据的传输,具有更新速度快、温度范围广等优良特性,而且OLED是十分省电的。缺点就是在进行OLED显示设计时,由于其并不具备背光功能,所以其在没有任何程序进行驱动的时候是没有任何显示的,所以在进行基于OLED显示系统设计时,很容易遇见OLED不显示内容的情况,而对于这种情况又不能清楚的排查是其硬件或者软件原因,有可能会导致开发进度的缓慢进行。在对以上三种方案进行对比之后,决定使用LED数码管显示作为本系统的显示模块。图2-4数码管显示电路原理图硬件电路设计供电电源设计IC卡读写器电路如下所示,图中R1、C1、R2和C2组成了读写检测,D1~D4组成桥式整流电路,C3为滤波电容,T为光电耦合器。当电机正常运行未缺相时,a、b、c三个节点中的任意两点的电位相位相反、大小相等,电压值为零,因此检测单元中光电耦合器不工作,输出为高电位。当读写完成时,三个节点中的任意两点的电位大小不相等,且电压值不为零,检测单元中光电耦合器工作,输出低电位。STM32的GPIO的引脚为检测信号输入端,当单片机检测到为低电位时,表示读写完成,显示电路同时工作。图3-1供电和检测模块SLE442卡通常接触式IC卡读、写器的硬件结构,它应包括卡座(IC卡适配插座)、输入接口电路、存贮器、微处理器、外围接口电路及密码运算、处理单元.其中卡座具有与卡接触的8个触点,是检测“插卡到位”的一对状态开关。固定和弹出卡的机械装置,与输入接口电路相接的电气终端和安装基座.本设计卡座为外购件,现着重介绍其硬件电路设计。REF_Ref20185\r\h[10]如图所示为引脚序号:如图所示为封装尺寸:图3-2读写过程时序对比图IC卡接口电路对于读写器而言,接口电路时一个十分重要的环节和联系规范。在电源电路的协同工作下,首先对读写器进行供电,满足便携性较好的要求。IC卡接口电路主要是IC卡槽和单片机相连的部分,具有显示功能,指示功能。图3-2IC卡接口电路如图,LED灯是对是否有卡存在进行检测,灯亮时有卡插入,灯灭时无卡插入或拔卡。其中,数据信号传输线7口我接在了单片上的PB1。时钟控制线3口则接在了PC2。I/O口接了一个上拉电阻,来提高电位。其中E2、E1是用来检测是否有卡插入的,当有卡插入时,E2和E1间就会导通,我将E1口接在了P3.2上用来实现插拔卡中断申请。C卡读写器的卡信号输入接口采用双卡座结构,分别由此承担卡座2.双卡座设计有两个好处,当有用户通过闪灯对IC卡进行查寻等操作时,另一卡座仍可由通过直接对插入的IC卡进行操作管理,提高了工作效率REF_Ref20185\r\h[10]。系统软件设计4.1编译环境的选择目前我们正处于电子信息时代,厂商推出了很多编译环境以供开发人员对不同的微处理器进行编程。我们采用KEIL5作为本系统的编译软件。在本系统的设计过程中,我们需要把整个的软硬件系统变为流程工作,KEIL集成了多种编译器以及多种芯片的芯片包的本地下载,能够快速的实现相应的函数库调用,能够大幅度的缩短开发效率、减少开发时间,这也是我选择KEIL5软件作为编译软件的原因。KEIL5软件在网上资料多,可选择最新版本进行下载安装,在安装过程中需注意安装路径不能存在中文,否则在编译的过程中会出来未知错误,影响开发效率,在使用软件时需要对软件的设计过程做出以下几条原则规定,便于系统后期的问题排查以及模块与整体的调试工作。1.系统按从零到整的顺序进行设计。首先要对各个模块的驱动程序进行设计,当此模块的工作正常后再进行下一部分的设计,当所有的模块都能够工作正常后我们再进行系统的整体程序编写。2.对关键语句进行注释。在进行系统编程的过程中,要对每个模块中的所有子函数以及关键语句进行注释,注释能够大大的提高程序的可读性,因为系统的设计过程并非在短暂的时间内完成,如果一些重要的语句或者算法由于长时间不去使用可能会导致使用方法的遗忘,进而影响系统的开发效率。3.模块化编程。将对各个模块的设计程序都进行模块化,然后再最后的系统整体工作设计中进行子函数的调用工作。这种模块化编程的方式是目前系统软件开发的主流的方式,通过各个子函数中的参数的调用来完成某一个功能的完成,可以大大的减小系统开发过程中所出现的语法错误,增强程序的可读性,而且能够在后期的工作中快速排查问题所在。本系统在选择编程语言进而实现硬件功能的时候,选择了C语言以及汇编语言作为预选方案。对于单片机这种小容量的处理器,通常需要使用编译出来占存储空间小的语言进行编程设计,常用的语言是汇编语言和C语言。汇编语言最为接近机器语言,编译出来的效率十分高,所占用的存储空间也最小,但是汇编语言的缺点就是复杂程度特别高,没有多年的写汇编程序的经验很难将一个较为复杂的程序写好。汇编语言的可移植性也十分差,项目有些许的更改,或者更换其他平台的单片机,这个程序就得进行大规模的改写。汇编语言写出来的程序可读性也相对很差,没有很好的注释,一般很难看懂别人写的汇编程序。C语言相对汇编语言而言,它的执行效率只比汇编语言略低,却远远大于其他的编程语言。C语言相对汇编语言而言,极为容易上手,C语言有很多实用编写好的语言库,可以直接进行使用,十分方便,而且C语言的移植十分强,项目稍作更改只需要在程序中进行简单的更改即可。编译出来的效率十分高,所占用的存储空间也最小,但是汇编语言的缺点就是复杂程度特别高,没有多年的写汇编程序的经验很难将一个较为复杂的程序写好。汇编语言的可移植性也十分差,项目有些许的更改,或者更换其他平台的单片机,这个程序就得进行大规模的改写。汇编语言写出来的程序可读性也相对很差,没有很好的注释,一般很难看懂别人写的汇C语言在编写逻辑控制代码时,有者通俗易懂的关键词提示,更有利于用户与开发者的代码编写以及数据流的观察,而且C语言强大的兼容性能够使得用户在不同平台下进行调试工作,我们作为学生,目的是以最方便、最简单的途径完成系统的开发,使用C语言进行开发能够在满足系统要求的前提下实现逻辑的工作选择,能够方便快捷的进行系统的整体开发,而且在后期的调试工作中有着十分便捷的使用,所以本系统采用C语言进行开发。4.2主程序的流程:(1)先是程序初始化,等待是否有IC卡插入,如果没有则继续等待,直到检测到有卡插入为止。(2)当有卡插入时报警器发出报警提示音。并显示SLE4442卡内上次读写时的余额。(3)当有串口中断时,检测输入的是何种命令,如果是读卡命令,进行读卡并显示余额,同时送上位机一个返回值;如果是写卡命令,先进行密码校验,校验成功则用写入值代替。最后调用数码显示更新子函数,数码管显示,这里我设计的是一个每过100us进行一次中断,数码管显示更新。更新数据由主程序里的读写来的数据决定。主程序设计中的缺陷:(1)读卡命令时看不出数码管有明显变化,数值不改变,只能根据返回值来看是否正确执行。(2)因为硬件设计前考虑不周全,没有完成任务书里所要求的读写卡时有声光提示。(3)虽然设有IC卡插入检测,但是确不能识别非IC卡的插入,当插入一个非IC卡时也能发出报警声音,但是不能读写。图4-1主程序流程图4.3通信接收发送子程序:当上位机下发数据时,需要下位机响应,故设置响应中断。在中断子程序中,当接收中断标志位置1时,表示有数据传送。图4-2通信子程序流程图论证与测试在前面的第四个章节,阐述了硬件的选择,硬件的可使用的价值分析,每一个模块的分析、每一个模块所起到的实际作用等等。在第四个章节之中,主要设计软件方面的内容,包括了程序如何实现、开发平台的详细介绍、各个模块之间的程序构架等一系列的功能如何通过程序来实现等等。在此章节中主要进行IC卡读写器综合应用结合在软件硬件方面的组合调试。完善的软件模块方面的电路布局,实现模块——模块之间电路的互联互通,在程序上逐步的完善所需要的功能,之后将功能进行组合,全面的检测每一个环节、每一个功能的具体构建,以测试的结果作为依据。同时也可作为后面需要完善的时候进行参考的结果。5.1硬件模块测试:将每一个模块之间的电路构架摸索清楚,采用电路检测仪器(万用表)逐步排查电路中存在的漏洞,在排查的过程中,已经检测出几个漏洞,包括语音识别模块部分的电路不稳定,经过排查后排除了焊接松动、引线布局不美观、微小的原件选型错误等等现象。单片机工作时的核心电路包括复位电路、时钟电路和晶振,将单片机不一个完整的人作比较,要想单片机能够实现多种多样的功能,需要单片机有一个核心的部件——晶振,晶振是单片机工作的心脏,给它安装一个可以正常工作的心脏,才可以执行相关的功能。发展至今,单片机“心脏”种类较多,可以是12MHZ,也可以是24MHZ,甚至更高的也可选择;以晶振为核心设计出的电路为时钟电路,时钟电路的功能是给实现相关功能的系统提供一个完整的时钟源头,操作简便但起到的作用是较为重要的。此环节的操作排除了硬件模块之间搭建存在的漏洞,也排除了较多的隐患。在检测完成后再次进行检查两到三遍,对其中的电流电阻电压达到“耳熟能详”的地步。5.2软件模块测试:在设计基于单片机的IC卡读写器软件编程环节的实际工作过程中,软件测试主要检测的是其中的程序构架是否达到了预先设计的功能且能够有序稳定的运行。每一个环节的信号对接与程序构架在执行之后有无存在漏洞,若存在漏洞则及时的进行调整、修改和完善。测试的方式在此采用逐个排查的方式进行优化,将单个的功能单元所需要的程序烧录进单片机之中,再逐个的排查优化,检测程序的严谨和程序的逻辑,将其中的相关逻辑拟清晰。综合程序的检测的方式相同,逐个排查逻辑问题,检测漏洞,逐步完善。系统相关功能在上述的章节中已经做了详细的介绍,在此即开始进行功能的测试。相关参数的检测包括声控数值的检测等等。整理出的测试方法包括模块仿真法、信号分析法、观察法,为确保参数的有效读取和操作的简便,此处的检测采用直接观察法进行功能的测试。测试的内容是将程序按照功能分别烧录单独的程序进入,在将检测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 9900-2025橡胶或塑料涂覆织物导风筒
- 2025年中国工程咨询行业市场分析及投资价值评估前景预测报告
- 2025年新能源行业企业绿色生产与环保标准执行报告
- 2025年新能源汽车智能座舱车载信息娱乐系统研究报告:发展趋势与竞争格局
- 1.1 鸦片战争 说课稿 2024-2025学年统编版八年级历史上册
- 2025年氢能重卡商业化运营对传统运输行业的颠覆性影响报告
- 2025年制造业数字化转型数据治理:数据治理与智能制造设备智能升级的实践案例研究
- 2.2气候(第2课时) 说课稿2023-2024学年人教版地理八年级上册
- 2025年中国高纯度铅行业市场分析及投资价值评估前景预测报告
- 2025年中国刚性防水材料行业市场分析及投资价值评估前景预测报告
- 2025海康威视视频安全门禁系统使用手册
- 安检流程课件
- 2025综合能力测试真题题库及答案
- 2025-2026学年沪教牛津版(深圳用)小学英语五年级上册教学计划及进度表
- 带状疱疹后神经痛护理查房
- 保密文印管理办法
- 慢性病患者的安全用药监护
- 肝癌的中医护理
- 【公开课】+动物细胞(教学课件)生物人教版2024七年级上册
- 高血糖健康宣教
- 【城市道路监理大纲】市政一级主干道路工程监理大纲
评论
0/150
提交评论