icode射频卡的通信原理与读卡方案.doc_第1页
icode射频卡的通信原理与读卡方案.doc_第2页
icode射频卡的通信原理与读卡方案.doc_第3页
icode射频卡的通信原理与读卡方案.doc_第4页
icode射频卡的通信原理与读卡方案.doc_第5页
免费预览已结束,剩余30页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1原理简介无线射频识别技术(Radio Frequency Identification , RFID)是一种非接触的自动识别技术,其基本原理是利用射频信号和空间耦合(电感或者电磁耦合)传输特性,实现对被识别物体的自动识别。图1 基本的 RFID 系统一个最基本的 RFID 系统有以下几部分组成:标签(Tag):由耦合元件及芯片组成,每个标签具有唯一的电子编码,附着在物体上标识目标对象;阅读器(Reader):读取(有时还可以写入)标签信息的设备,可设计为手持式或固定式;天线(Antenna):在标签和阅读器间传递射频信号;在RFID的实际应用中,电子标签附着在被识别的物体上(表面或者内部),当带有电子标签的被识别物体通过其可识读范围时,阅读器自动以无接触的方式将电子标签中的约定识别信息读取出来,从而实现自动识别物体的功能。读头系统又包括读头和天线。无线射频识别技术的不同分类方法:1 按标签的供电形式分为有源系统和无源系统。有源标签传输距离远,稳定性好,但是体积大,不易做成薄片卡,价格高。无源标签传输距离短,但是体积小,寿命长,便宜。2 按标签的数据调制方式可以分为主动式、被动式和半主动式根据调制方式的不同,可以分为主动式、被动式和半主动式。一般来讲,无源系统为被动式,有源系统为主动式。主动式的射频系统用自身的射频能量主动地发送数据给读写器(读头),调制方式可以为调幅、调频和调相。被动式的射频系统,使用调制散射方式发送数据,它必须利用读写器的载波来调制自己的信号,其读写器只能确保激活一定范围内的射频系统。一般来讲,无源被动式的标签为我们射频系统中常用的标签。3 按标签的工作频率可以分为低频、高频和超高频系统读头发送无线信号时所使用的频率被称为RFID系统的工作频率,基本上划分为五个工作主要范围:低频(30300KHz)、高频(330MHz)和超高频(300MHz3GHz)。低频系统一般工作在100500KHz,常见的低频工作频率为125KHz、134.2KHz;高频系统工作频率为1015MHz,常见的高频工作频率为13.56MHz;超高频工作频率850960MHz,常见的工作频率为915MHz;4 按标签的可读写性分为只读、读写和一次写入多次读写卡根据射频标签内部使用存储器类型的不同可分为三种:可读写卡(RW)、一次写入多次读出卡(WORM)和只读卡(RO)。可读可写标签内部的存储器除了ROM、RAM和缓冲存储器之外,还有非活动可编程记忆存储器(例如EEPROM)。我们打算设计电子标签基于 ISO15693 标准,工作频率为 13.56MHz。这种标签所属的射频识别系统是一种典型的电感耦合射频系统。下面将介绍这个系统的工作原理。13.56MHz 系统因频率较低,所以只能采用电感耦合作为通讯。电感耦合电子标签由一个电子数据作载体,通常是由单个微型芯片以及用作天线的大面积的线圈等组成。电感耦合电子标签几乎都是无源工作的。这意味着:微型芯片工作所需要的全部能量必须由阅读器供应。高频的强电磁场由阅读器的天线线圈产生,这种磁场穿过线圈横截面和线圈周围的空间。因为使用频率范围(13.56MHz:22.1m)内的波长比阅读器天线和电子标签之间的距离大好多倍,可以把电子标签到天线的距离间的电磁场当作简单的交变磁场来对待。发射磁场的一小部分磁力线穿过距阅读器天线线圈一定距离的电子标签天线线圈。通过感应,在电子标签的天线线圈上产生一个电压 Ui。将其整流后作为数据载体(微型芯片)的电源。电容器与天线线圈的电感一起,形成谐振频率与阅读器发射频率相符的并联振荡回路。该回路的谐振使得阅读器天线线圈产生非常大的电流,这种方法也可用于产生供远距离电子标签工作所需要的场强。电子标签的天线线圈和电容器 C1构成振荡回路,调谐到阅读器的发射频率。通过该回路的谐振,电子标签线圈上的电压 U 达到最大值。这两个线圈的结构也可以解释作变压器(变压器的耦合),变压器的两个线圈之间只存在很弱的耦合。阅读器的天线线圈与电子标签之间的功率传输效率与工作频率 f、标签线圈的匝数 n、被标签线圈包围的面积 A、两个线图的相对角度以及它们之间的距离成比例。简单的概括如下:1、读写器上电工作以后,在一个区域内发出射频信号。2、电子标签进入该区域后,接收到读写器的射频信号,其芯片内部的数据解调电路从该信号中解调出命令和数据并送到逻辑控制部分,完成数据存储、发送或其他操作。3、读写器接收到返回的数据后,对其进行解码以及错误校验等操作来决定数据的有效性,然后进行处理,处理完毕的数据可以通过RS232、RS485、RJ45或是无线接口上传至计算机中。2读写器与ICODEI射频卡的通信协议设计为完成本次嵌入式设计大赛的主要任务是设计能够对符合ICODE1规范协议的射频卡进行各种操作的读写器。因此本章主要介绍这两种射频卡的特性及读写器和射频卡之间的通信协议。 根据工作距离的不同,中低频段的射频卡又可以分为以下三种,国际标准化组织己经对其建立了相应的标准。 密耦合卡(Closed Coupled Cards):支持ISO/IEC10536协议,读写距离小于1 cm; 近耦合卡(Proximity Cards):支持ISO/IEC 14443协议,读写距离小于10cm; 疏耦合卡(Vicinity Cards):支持ISO/IEC 15693协议,读写距离小于100cm;本机所支持的ICODE1射频卡均为疏耦合卡,基于ISO/IEC 15693协议,工作频率为13.56MHz。2. 1 ICODE1卡的特点和基本结构 ICODE1卡是一款远距离读写射频芯片,主要适用于航空包裹和行李识别、邮件分选、商品流通控制以及电子防盗等领域。配合适当的天线其有效作用距离可以达到75cm,具备防冲突功能,使得读写器能同时处理多张卡片。 ICODE1卡内部具有512位的EEPROM,其数据存储结构如表2.1所示。其中,X表示数据待定。表2.1 ICODEI卡的数据存储结构数据块字节0字节1字节2字节3第0块SNR0SNR1SNR2SNR3第1块SNR4SNR5SNR6SNR7第2块F0FFFFFF第3块XXXX第4块FCAPIXX第5块XXXX第15块XXXX由表2.1可见,EEPROM被分为16块,每块4个字节,块是最小的可读写单位。(1)第0块和第1块存放射频卡的唯一序列号SNR(Serial Number),它在芯片制作过程中写入,并且不能被改写。(2)第2块用于标示各数据块的写保护状态,这32位被分为16个2比特控制组,每个比特控制组对应一个数据块,其映射关系如表2.2所示。一旦进入写保护状态,就不能再恢复可写状态了。比特控制组为l|l时表示可写,为0|0时表示写保护。这种特性使其可以适应不同用户的需求。表2.2写保护位与第2块之间的映射关系第二块的字节Byte3Byte2Byte1Byte0对应数据块1514131211109876543210(3)第3块的Byte0控制着特殊功能的设置。其中Bit1和Bit0用于电子商品防盗EAS功能的设置,当Bit1,0=l|l时,EAS功能被激活,在此状态下射频卡响应EAS命令。Bit2和Bit3用于休眠QUIET功能的设置,当Bit3,2=1|1时,QUIET功能被激活,在此状态下,射频卡只响应Reset Quiet Bit和EAS命令。(4)第4块的Byte0, Bytel分别用于存储家族代码FC(Family Code)和应用类型标识符API(Application Identifier)。当读写器发送的命令中包含FC和API信息且不为全零时,射频卡会核对自己的FC和API是否和命令中指定值相同,如果相同则执行,否则不进行任何操作。利用这一特性可以对射频卡进行分类,具有相同的FC或API值的卡称之为同一族。FC和API的值是相互独立的,这意味着如果其中之一为全零时,只有与另一标示符相匹配的卡才做出响应。(5)第5块至第15块存放用户自定义的数据。对于ICODE1射频卡,用户可使用44字节来存储信息,可以满足大多数的应用场合。而且当指令中的FC和API相应参数为全零时,表明不使用该特性,则第4块也可以作为普通的用户数据块使用。2.2 射频通讯格式 (1)数字调制方法在实际的通信系统中,很多信道都不能直接传送基带信号,必须用基带信号对载波波形的某些参量进行控制,使载波的这些参量随基带信号的变化而变化。由于正弦信号形式简单,便于产生及接收,大多数数字通信系统中都采用正弦信号作为载波,即正弦载波调制。数字调制技术是用载波信号的某些离散状态来表示所传送的信息,在接收端也只要对载波信号的离散调制参量进行检测。数字调制信号,在二进制时有振幅键控(ASK)、移频键控(FSK)和移相键控(PSK)三种基本信号形式,如图2.1所示。图2.1正弦载波的键控波形 由图2.2可见,在二进制振幅键控方式下,当基带信号的值为1时,载波幅度为u1;当基带信号的值为0时,载波幅度为u2。定义调制系数为m=(ul-u2)/(ul+u2)。当u2为0时,调制系数m=100%,如图2.1(a)所示。图2.2 ASK调制波形 移频键控是载波频率随二进制基带信号在两种频率f1和f2之间进行切换。 相移键控是将二进制状态0和1转换成载波相对基准相位的相应相位状态,即在0度和180度之间切换。 (2)采用副载波的调制方法 就射频识别系统而言,用副载波的调制法主要用在频率范围为6.78MHz, 13.56MHz或27.125MHz的电感耦合系统中从电子标签到读写器的数据传输。其实现方法是:用基带编码的数据信息首先调制低速率的副载波,可以选择ASK,FSK或PSK。副载波是通过对最高载频分频得到的,如对于13.56MHz系统,采用的副载波可以是847KHz(13.56MHz/16)、424KHz(13.56MHz/32)或212KHz(13.56MHz/64)。 为什么采用副载波调制,可以通过分析副载波的频谱来得出结论:副载波调制后,在最高载频F两边f(副载波频率)处产生两条谱线。基带数据信息随着基带编码的数据流对副载波的调制被分散到两条副载波的谱线中。通过这种频谱搬移,读写器可以对两个副载波调制信号的任意一个进行滤波解调,选用F+f或者F-f都可以,因为两个边带中都包含了所需信息,这就体现了副载波调制的优点。图2.3说明了ASK副载波调制生成示意图。图2.3 ASK副载波调制生成示意图(3)下行数据编码(读写器向射频卡传输数据)ICODEI射频卡所采用的载波频率为13.56MHz。由于数字信号调制在高频载波上,才能在空间中传播。调制系数(调制度)是一个重要的指标。过高的调制度,将使载波幅度减少,使无源射频卡无法获得足够的能量工作。过低的调制度,又会使数字信号淹没在噪声中,使射频卡无法在载波中恢复数字信号。Phil毕s公司的ICODEI卡的解调电路能够检测到载波幅度10%的调幅信号。考虑到接收天线的高Q值(通常为Q =100)和片上解调电路的抗干扰能力,经验证明,调制度为14%是效果最好的数据既能克服噪声干扰,被射频卡所识别,又能为卡提供足够的能量。ICODEI卡的基带信号编码方式有两种:标准模式和快速模式。标准模式标准模式采用的是一种称为“256选1” (1 out of 256)的脉冲位置编码方式。如图2.4所示,用256个时隙表示8bit数据,通过控制调制脉冲出现的位置来表示0255范围内的数据。图中在第225个位置出现调制脉冲(9.44us高电平和9.44us低电平),表示所传输的数据为十六进制数EI,9.44us低电平处表示对载波进行调制,一个字节帧长为4.833ms。其中传输数据0时,不进行任何调制,即整个4.833ms内为未经调制的载波;因此第256个位置是不用的。每个命令帧的第一个字节都有一个起始脉冲,长度为18.88us,在其后半部分9.44us进行调制。快速模式快速模式需要更少的辐射功率,它适用于读写距离更短或者是对响应时间要求短的场合。快速模式采用的是RZ归零编码,编码按比特位进行,低位在前。图2.5给出了起始位、逻辑1和逻辑0的编码方式。其中逻辑0为全高,不调制载波。图2.6所示为快速模式下E1的编码格式。图2.5快速模式下起始位、逻辑1、逻辑0的编码图2.6快速模式编码举例在这两种模式下,起始脉冲只在每个命令帧的首字节出现,射频卡根据起始脉冲的宽度来识别两种编码模式。快速模式下,从读写器到射频卡的数据传输率为26.5K波特,比标准模式要快16倍。(4)上行数据编码(射频卡向读写器传输数据)由射频卡返回的数据采用13.56MHz载波加上423.75KHz副载波的曼彻斯特编码调制,如图2.7所示。对于快速模式和标准模式,上行数据的格式是一致的。图2.7上行数据编码方式2. 3 状态图和指令集ICODE1系统工作在“读写器先发言”RTF (Reader Talks First)的机制下。首先读写器发送一个命令,射频卡执行该指令并向读写器返回响应。如果射频场内有多个射频卡,那么就需要一种机制对响应进行分离。ICODEI系统通过时隙机制实现这种分离。进入射频场后,ICODEl卡共有非选定、选定、终止和休眠四种状态,其状态转换关系见图2.8。表2.3所示为ICODE1卡支持的指令说明,对于某些命令读写器需要发送确认信号QUIT帧。表2.3 ICODEI射频卡的指令集指令名称功能说明Anticollision/Select选择场内的射频卡Selected Read从非选定状态下的射频卡中读取一个或多个连续的数据块Unselected Read从选定状态下的射频卡中读取一个或多个连续的数据块Write Block向选定状态下的射频卡中写入一个数据块Halt将射频卡置为终止模式,使其不再响应任何命令Reset QUIET Bit将QUIET位清零,QUIET功能置为无效EAS使EAS功能被激活的射频卡发送256位特征响应QUIT帧对每个时隙的卡分别发送,适于nticollision/Select, Write Block和Halt在非选定状态下,射频卡通过一种伪随机算法计算时隙位置。当多张卡在同一时隙发送响应时,读写器可检测到冲突,但无法正确接收响应。 通过防冲突/选择命令将射频卡转换为选定状态,每个处于选定状态的射频卡都在固定的时隙发送响应。只有处于选定状态的卡才响应Selected Read Write Block和Halt指令。 对于Write Block和Halt指令,选定状态下的射频卡在收到命令后返回各自的序列号,但是只有收到读写器在相应时隙发送的确认信号QUIT帧以后才真正执行操作。 对于EAS指令,所有EAS功能被激活的射频卡在同一个时间以相同的格式返回256位特征数据。处于休眠状态的射频卡在收到Reset QUIET Bit命令后并不向读写器发送响应,只是将QUIET位清零。由于需要对EEPROM进行写操作,因此在发送下一个命令之前需要大约6000us的延时。图2.8 ICODE1射频卡的状态图2. 4 指令帧格式ICODEl卡收到读写器发送的指令后,对指令代码进行分析并作出相应的响应。下面分别介绍各指令的帧格式,假定总的时隙个数为n,括号中为快速模式下所用时间。(1) Anticollision/Select,Write Block和Halt指令的帧格式。图2.9 防冲突/选择指令的帧格式Anticollision/Select(AC/S),Write Block和Halt指令的帧格式完全相同。首先读写器发送命令,射频卡在相应的时隙发送其序列号以及2字节CRC 16值,在各自的响应时隙收到读写器发送的正确QUIT帧后,真正执行命令中规定操作(置为选定状态,写数据或置为终止状态)。其中命令与第一个时隙的响应之间,上一个时隙的QUIT帧和下一个时隙的响应之间都有326us的时间间隔(以下命令类似);同一个时隙的响应和QUIT帧之间的间隔在标准模式下为278us,快速模式下为269us。因此,执行每一个命令的总时间如下: 标准模式:38.7ms+n*(326us+3.02ms+278us+ 4.83ms)=38.7ms+n*8.454ms 快速模式:2.44ms+n*(326us+3.02ms+269us+311.52us)=38.7ms+n*3.927ms(2) Unselected Read和Selected Read指令帧格式图2.10选择读指令的帧格式 Unselected Read和Selected Read指令的帧格式完全相同。首先读写器发送命令,然后射频卡在相应的时隙发送X个数据块的内容以及2字节CRC 16值。其中两个时隙的响应之间有302us的时间间隔。执行每个命令的总时间如下: 标准模式:38.7ms+326us+n*(X*1.208ms+0.604ms+302us) =39.026ms+n*(X*1.208+0.906)ms 快速模式:2.44ms+326us+n*(X* 1.208ms+0.604ms+302us) = 2.766ms +n*(X*1.208+0.906)ms(3) EAS的指令帧格式图2.11 EAS指令的帧格式EAS的指令帧格式比较简单,当读写器发送命令后,EAS功能被激活的所有射频卡都在同一个时隙发送256位EAS特征响应。执行EAS命令的总时间如下: 标准模式:38.7ms+326us+9.677ms=48.703ms 快速模式:2.44ms+326us+9.677ms=12.443ms(4) Reset QUIET Bit的指令帧格式图2.12唤醒指令的帧格式读写器发送Reset QUIET Bit后,射频卡并不发送任何响应,只是处于休眠状态的射频卡将QUIET位清零。在开始一个新的命令或关闭射频场之前,应给写EEPROM留出至少5154.24us的延时。执行Reset QUIET Bit命令的总时间如下:标准模式:38.7ms+5154.24us=43.854ms快速模式:2.44ms+5154.24us=7.594ms2. 5 防冲突的实现在射频识别系统中,为了防止多个射频卡同时与读写器交换数据所引起的冲突,需采用一定的防冲突算法,这也是RFID技术的重点与难点。ICODE1卡采用一种基于时隙的防冲突算法:读写器利用分配时隙给每个射频卡来为它们分别建立逻辑通道,采用信息级冲突检测,可直接由软件控制,并且能够达到较快的识别速度。 (1)防冲突算法的基本原理 由前面所述可知,处于选定状态的ICODEI卡在己分配好的时隙内响应读写等命令,如果每个射频卡的时隙各不相同,则可以实现无冲突的操作。 AC/S命令用于给每个射频卡分配时隙并置为选定状态。当射频场内所有处于非选定状态的射频卡收到AC/S命令后,计算各自的响应时隙并在该时隙发送64位序列号作为响应。由于每个射频卡的序列号各不相同,而且返回的数据采用曼彻斯特编码。因此当两个或多个射频卡同时返回其唯一的序列号时,一定会在某一位或某儿位上有不同的值,叠加之后上升沿和下降沿相互抵消,以至无电平跳变,读写器据此判断该位出现冲突。读写器在无冲突的时隙发送一个确认信号,为处于该时隙的卡分配唯一的时隙号并且将其由非选定状态转换为选定状态,以此实现无冲突操作。 (2)防冲突算法的实现流程 根据上述原理,本文设计并实现了读写器端对ICODE1卡操作的防冲突算法。其基本流程如图2.13所示。为了减小通信时间,每当开始执行防冲突功能时,都将时隙指数预置为1,根据每次AC/S命令后冲突的次数自动调整。 射频卡进入读写器天线的作用范围后,被置为非选定状态。读写器发送AC/S命令,用于为场中的射频卡分配不同的时隙。 射频卡响应AC/S指令,计算出响应时隙并在该时隙返回各自的序列号。在每个时隙都会有下述三种情况之一发生:A.无卡响应;B.有唯一卡响应;C.有多个卡响应,读写器检测到冲突。 读写器在发送完命令后的每个时隙从接收端译码,并根据该时隙的响应情况进行相应操作。A.无卡响应,则继续判断下一个时隙;B.有唯一卡响应,如果该时隙被占有则继续判断下一个时隙,否则发送QUIT帧后再继续判断下一个时隙;C.有多个卡响应,则记录冲突次数然后判断下一个时隙。 将每个射频卡固定在不同的时隙后,执行选定状态下的读写数据等其它操作。对处于选定状态的卡操作完毕后,将它们置为终止状态,释放时隙号。然后继续循环执行防冲突/选定读写数据终止等操作。图2.13基于时隙的防冲突算法的流程图3 读写器硬件系统设计本设计采用STR912FW44X6控制专用射频读写芯片,构成一台完整的13.56MHz近距离非接触式IC卡手持读写设备。读写器支持Philips公司的ICODEl射频卡,具有多卡寻卡以及单卡读写能力,支持标准卡的全部用户读写命令。3.1 读写器的性能及工作原理介绍读写器的技术规范一般包括工作频率、支持标签类型、通信接口与速率等,本机的详细技术规范指标如表3.1所示。表3.1手持式读写器的技术规范指标序号技术项目手持式读写器指标1工作频率13.56MHz2读写距离50mm3通讯接口与速率RS-232串行通讯接口,57600bps4读写芯片TI公司的RI-R6C-001A芯片5支持的Tag类型Philips公司1CODE 1卡6防冲突功能有,可用于寻卡操作7天线有8蜂鸣器有(用于检测EAS标签和提示特定工作状态等)9显示TFT真彩显示屏(TFT6758)10电源电压充电电池供电,电压5V(芯片工作电压为3.3V)11外设存储器2M NOR Flash存储器(SST39VF1601)和4M PSRAM存储器(IS61LV25616)根据表3.1中所要求的性能指标,设计了本机的硬件电路,其系统组成框图见图3.1,由主控制器、射频收发电路、显示器、键盘、实时钟、RS-232通信接口、电源及稳压电路、大容量存储器及辅助电路组成。图3.1读写器组成框图主控制器是系统的核心部分,它负责接收用户命令、对发送信号进行编码和对接收信号进行解码,主控制器与应答器的通信过程经由射频收发模块实现。JTAG(Joint Test Action Group)接口主要用于在线调试以及设置主控制器的熔丝位等。通过串行通信接口可以实现与计算机的通信,进行数据上传以及更新程序和字库等操作。由于串口是Windows系统下编程控制最简单的通讯端口,因此可以极大节省二次开发时耗费在通讯编程上的时间。存储模块用于保存字库以及用户对射频卡进行操作的结果,适合移动式应用。实时钟模块为系统提供准确时间,用于记录特定事件和操作的发生时刻,这使得手持机的功能更加完善。电池组用于给上述各模块供电,由于电池刚充满电和接近放电中止时的端电压相差较大,因此采用需要进行稳压。本系统支持的射频卡均为无源式射频卡,它需要从读写器天线形成的磁场中接收能量,因此读写距离也受到了一定的限制。本系统的基本工作流程如下: 主控制器通过用户按键与LCD显示信息获得用户指令并对其进行编码; 编码后的命令被射频读写芯片调制为频率在13.56MHz的射频信号,然后通过天线发射出去; 当射频卡进入天线的有效工作区域时产生感应电流,射频卡获得能量被激活; 射频卡分析收到的命令,并将相应的信息通过卡内置天线发送出去; 从射频卡发送来的载波信号被读写器的天线接收,经射频读写芯片解调送回主控制器; 读写器从射频读写芯片读出响应,进行解码,然后在LCD上显示操作结果。此外,读写器的软件系统需要根据逻辑运算判断该卡的合法性,针对不同的设定做出相应的处理和控制,发出指令信号控制执行机构的动作。3. 2 系统硬件电路设计本节详细介绍每个模块的原理及功能。3. 2. 1微控制器的选择我们选用的芯片是ST公司出品的基于ARM966E-S内核的新型多功能芯片STR912FW44X6,这款芯片的主要性能指标有: 采用了系统级封装(SiP)技术。 有多种封装选择形式:128-pin (14 x 14 mm) 80-pin (12 x 12 mm)LQFP 和LFBGA144 (10 x 10 mm) 封装。 包含Burst Flash 内存接口。 包含许多时钟控制单元如: CPU, fCPUCLK Advanced High-performance Bus (AHB), fHCLK Advanced Peripheral Bus (APB), fPCLK Flash Memory Interface (FMI), fFMICLK External Memory Interface (EMI), fBCLK UART Baud Rate Generators, fBAUD USB, fUSB STR91xF系列芯片需要两套不同的电压供应,CPU和内存操作时,在VDD引脚上供应电压为1.65V 到 2.0V;I/O操作时,在VDDQ引脚上供应电压为2.7V 到 3.6V。 含有IEEE-1149.1标准的JTAG接口,基于ISP,可以观测内存,测试引脚,调试CPU。 提供基于IEEE-802.3-2002标准的MAC,用于以太网的连接,通过工业级标准MII接口进行连接。STR91xF系列芯片需要一个额外的PHY设备来连接physical LAN bus。 包含USB2.0接口,支持USB低速和高速运行。 包含CAN2.0B接口,可以进行CAN通讯的研发。 STR91xF系列芯片提供三个独立的UART串行接口,UART0,UART1,和UART2,最大比特率可以到1.5 Mbps。 含有两个独立的I2C串行接口,I2C0和I2C1。 提供了两个同步串行SSP接口,SSP0和SSP1。每一个SSP接口都支持SPI协议。 在128针和144针封装的设备中,含有多达80个GPIO引脚,一共分为10个I/O口,每一个引脚都是高阻抗输入模式,所有的GPIO引脚都是5V耐压。 包含8通道,10位精度的A/D转换器。 集成了一个三相的电磁电机控制器,用10位的PWM计数器来产生三路PWM,分别控制U、V、W,含有可编程的6位的死区来控制PWM的延迟。 EMI接口总线,用来扩展存储器,含有4个片选信号(EMI_CS0n .EMI_CS3n)。图3.2 STR91xF系列芯片功能框图3. 2. 2电源及稳压电路图3.3 +5V电源输出图3.4 +3.3V电源输出图3.5 +1.8V电源输出系统的5V电源电路的稳压芯片使用的是LM2576开关电源芯片,如图,LM2576能够为开发提供足够的电流。SPX1117系列的LDO芯片输出电流大,输出电压精度高,稳定性好。其输出电流可达800mA,输出精度在正负1以内,还具有电流限制和热保护功能,广泛应用于手持式设备、数字家电和工业控制等领域。3. 2. 3射频收发电路射频收发电路由天线、射频读写芯片及其相应外围电路组成,它是实现控制器与射频卡通信的桥梁。具体电路如图3.6所示。图3.6射频收发电路原理图本机使用TI公司的RI-R6C-001 A作为专用射频读写芯片,它是TI公司最新开发的针对非接触式IC卡读写的多协议收发器,支持的协议包括ISO/IEC 15693-2,ISO/IEC14443-2(TYPE A)。其标准工作频率为13.56MHz。芯片与MCU之间通过SCLOCK, M ERR, DIN, DOUT共4条数据线进行通信。芯片的XTAL CLK为晶体振荡器缓冲端,它可以输出13:56MHz的时钟信号,由此提供MCU工作所需要的时钟。RI-R6C-001 A由发送器、接收器、电源供应、参考时钟和内部振荡器、默认的复位设置和电源管理,串行通信接口等几部分组成。该芯片通常是SV供电,内部封装有发送编码器,调制器,接收器和解调器,SV电源供电时发送的射频功率可达200mW , 3 V电源供电时为80mW,有IDLE, POWER DOWN, FULL POWER三种电源管理功能。它提供给用户数字接口的信号线为DIN, DOUT, SCLOCK,通过这三根线可以完成控制器与RI-R6C-OOlA芯片之间的数据传输。当RI-R6C-001 A要发送数据时,时钟由STR912FW44X6控制,当它要接收数据时,时钟由该芯片控制。DOUT除了在接收数据期间有把接收到的数据输出给STR912FW44X6的功能外,还用来表征RI-R6C-001A内部FIFO的情况。DOUT具有内部下拉电路,平时为低电平。输入数据过程中,当RI-R6C-001 A的16位FIFO寄存器满时,DOUT线会自动跳变为高电平,直到FIFO寄存器空,DOUT线又会跳变为低电平。由于在DOUT为高电平期间,输入数据无效,因此软件设计时STR912FW44X6每发一位数据都要检测DOUT的状态。由于电路中的发射器一直工作,因此,应增大集成电路散热片的尺寸以增加散热面积。设计电路时,应避免过大的分布电容,当电路板分布电容过高时,可配合晶振调整电容CS的值,以减少时钟的不稳定性。推荐CS值为22pF。通过软件处理可使收发器的调制度为100%或者10%。 ISO/TEC15693协议规定标签允许执行10%30%之间的调制度(除100%之外),通过改变R_MOD端所连电阻R2的值可以达到这个要求,R2的阻值和调制深度之间的关系如表3.2所示。 表3.2调制度和R2之间的关系调制度m(%)R2()说明1012最小调制度2018推荐调制度3025最大调制度RI-R6C-001A芯片支持多种工作模式:直接模式、寄存器模式和正常模式。其中寄存器模式支持直接读取TI公司的射频卡;在直接模式下,通过MCU直接操作DIN线对13.560MHz载波进行调幅(ASK),芯片同时可对收到的ASK信号解调,从DOUT线输出给MCU,输入输出信号均为曼彻斯特编码的基带信号。因此采用直接模式可以间接读取Philips公司的ICODE 1射频卡。RI-R6C-001 A芯片具有射频和基带处理电路,支持简单的无源读写天线,芯片的射频输出引脚到读写天线之间需要外接一组LC谐振和滤波网络,电路形式与芯片手册上提供的典型应用电路完全相同,LC元件参数依据PCB参数不同。本机要求使用ICODE 1卡,用一只简单的单绕组天线实现数据的发送和接收。ICODE 1的调制方式是ASK,带宽接近1 MHz,对这种ASK调制,天线带宽十分重要。3. 2. 4 外扩存储器电路(1)锁存电路图3.7 锁存电路因为STR912FW44X6芯片的数据位和地址位是复用的,对于16位的数据传输来说,应该将复用的信号锁存来传输地址位。(2)扩展存储电路图3.8 外扩存储电路本系统扩展了4M的PSRAM(芯片型号为IS61LV25616)和2M的FLASH(芯片型号为SST39LF160)。电路如图 ,分配Bank0地址为FLASH的地址空间,Bank1地址为PSRAM的地址空间。用FLASH来引导程序的运行。由于SST39LF160和IS61LV25616都是16位总线接口,所以使用经过锁存器锁存的地址信号与它们相连。为了能对IS61LV25616的字单元进行单独的字节操作,将STR912FW44X6芯片的EMI_WRHn 和EMI_BWR_WRLn 信号与EMI_RDn信号分别与操作以后接到IS61LV25616的LB和UB引脚。3. 2. 5 按键电路考虑到本机要实现的功能,应该具备09十个数字键和一些必须的功能键,因此采用7*3的矩阵式薄膜按键。采用10根I/O口线实现了21个按键,与独立式按键结构相比节省了一半的I/O口。键盘原理图及其与STR912FW44X6之间的接口分布图如图3.9所示。在图3.9中,行线(P6.0P6.7)、列线(P2.2P2.4)分别连接到按键开关的两端,列线作为扫描输出,行线作为扫描输入。由于STR912FW44X6的P6和P2端口都有与电压无关的上拉电阻,因此行线无需外接上拉。根据为低电平的行线和当前扫描列即可判断出哪个键被按下。图3.9 薄膜按键电路3. 2. 6 RS-232串行通信接口电路作为一个手持式的设备,所存储的数据需要定期上传到PC机中进行保存或者进一步的处理;此外,本手持机还可以更新程序或者字库等。这些操作都需要在手持机和PC机之间进行数据传输。本文选用RS-232作为手持机与PC机之间的接口方式。 在本文的设计中,手持机与外界采用RS-232串行接口进行数据传输。其电路图如图3.10所示。STR912FW44X6具有全双工的串行通讯接口,通过它与PC机实现数据通信。本机采用MAX3232芯片实现RS-232电平与TTL电平之间的转换。图3.10 串行通讯电路SP3232E是Sipex公司生产的一种RS232接口芯片,使用单一电源电压供电,电源电压在3.0V5.5V范围内都可以正常工作,其额定电流为300uA。只需外接四个0.1uF的电容,保证数据传输速率在120kbps下保持RS232输出电平。可以很方便地完成TTL电平与RS232电平之间的转换。3. 2. 7 USB接口电路图3.11 USB接口电路 为了以后开发USB功能先将USB口设置出来。3. 2. 8 LCD显示模块图3.12 LCD显示模块3. 2. 9 SPI总线与串行存储电路图3.13 SPI总线与串行存储电路3. 2. 10 基于I2C总线的EEPROM芯片电源复位电路由于ARM芯片的高速、低功耗和低工作电压导致其噪声容限低,对于电源的波纹。瞬态响应性能、时钟源的稳定性和电源监控可靠性等诸多方面也提出了更高的要求。本文设计了基于I2C总线的EEPROM芯片CAT1025的电源复位电路,提高了系统的可靠性,也可以为以后I2C编程打下硬件基础。图3.14 EEPROM芯片电源复位电路3. 2. 11 蜂鸣器电路本手持机中蜂鸣器主要用于在检测到EAS激活时发出报警指示音,或者在各项操作成功/失败及其它特定状态时鸣响。图3.15蜂鸣器驱动电路图由于STR912FW44X6芯片IO口的驱动能力有限,不能直接驱动压电式蜂鸣器,因此选用PNP型三极管组成驱动电路,利用芯片的P4.7口(T3.OCMP2 / P4.7) 输出经驱动电路放大后即可驱动蜂鸣器。通过T3.OCMP2 / P4.7高低电平的变化控制蜂鸣器的发声次数及频率。4 读写器软件系统设计本文设计的手持机需要支持ICODEl卡的所有用户命令,能够实现在应用编程IAP功能,具有键盘、LCD、外部存储、实时钟、蜂鸣器等外部设备。因此可将软件设计分为三部分:主程序、射频卡读写程序以及外部设备的驱动程序。4. 1编程思想及编程语言的选择 一个好的程序要有一个好的编程思想。本论文采用模块化编程和结构化编程的思想,二者是相辅相成的。模块化编程:完全实现本机所有的技术指标需要大量而有效的程序来实现,烦琐的程序需要采用模块化编程的方法,即将一个大的程序分成若干小的模块,各个模块保持相对的独立性,模块之间只靠少量的出入口参数相联系。这样各个程序模块分别设计,从而使程序的调试、修改和维护都变得比较容易。结构化编程:各个子程序之间使用结构良好的转移和调用,这样各个模块可有效地组合成一个整体,使流程明确地从一个程序模块转移到下一个程序模块。在这个过程中,要注意严格控制使用任意转移语句。 单片机开发所使用的语言通常为汇编语言和C语言。汇编语言的代码生成效率很高,程序执行速度快,但是不同系列的单片机支持的汇编语言指令差别很大,程序的可读性和可移植性都较差、程序开发周期比较长。C语言则是比较通用的程序设计语言,既可用来编写计算机的系统程序,也可用来编写一般的应用程序。C程序最大的优点就是可读性强,移植性很好,但是与汇编语言相比,其代码生成效率要低1020。从本机要实现的具体功能考虑,采用C语言和汇编语言嵌套的方式。由于对射频卡以及实时钟、串行Flash, LCD等外设进行操作时,需要遵守严格的时序关系,因此与之相关的程序采用汇编语言编写;主程序实现功能较多,而且对时间要求不太严格,因此采用可读性和移植性很强的C语言编写。4. 2主程序STR912FW44X6具有在应用编程IAP(In-Application Programming)和在系统编程ISP(In-System Programming)的能力。ISP和IAP技术是未来仪器仪表的发展方向。ISP是指电路板上的空白器件可以通过编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。IAP则是指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。ISP的实现比较简单,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。 IAP的实现相对要复杂一些,在实现IAP功能时,单片机内部一定要有两块存储区,一般被称为引导区和应用区。单片机上电在引导区运行,如果有外部改写程序的条件满足,则对应用区的程序进行改写操作。如果外部改写程序的条件不满足,程序指针跳到应用区,开始执行放在应用区的程序,这样便实现了IAP功能。 STR912FW44X6的程序存储器由两部分构成,应用区Application Section(简称APP区)和引导区Boot Loader Section(简称BOOT区),两个区的存储空间大小由熔丝位进行配置。BOOT区为通过MCU本身来下载和上载程序代码提供了一个真正的同时读写RWW(Read While-Write)自编程机制。这一特点使得系统可以在MCU的控制下,通过驻留于程序存储器的BOOT区,灵活地进行应用软件升级。本机为用户提供二次开发的功能,并且可以更新字库。根据STR912FW44X6所具有的优点,将下载程序和下载字库的功能放在BOOT区实现,对射频卡的所有操作等放在APP区实现。下面对两个程序区的主程序分别作以介绍。4. 2. 1引导区程序通过对熔丝位BOOT1, BOOT0和BEN的设置可以确定BOOT区的大小,以及复位向量的位置。当BOOTT为1时,从应用区启动;当BOOTT为0时,从BOOT区启动。本机中将熔丝位设为BEN=0,BOOT1=0,BOOT0=0。图4.1 BOOT区主程序流程图上电后执行BOOT区的程序,其流程图如图4.1所示。首先显示开机界面,然后等待按键。如果在1秒内按下菜单键“Menu”;,那么显示下载界面并再次等待用户按键;否则跳转到APP区执行程序。在显示下载界面状态下,按下键“1”则执行下载字库操作,按下键“2”;则执行下载程序操作,按下键“3”则返回APP区执行应用程序。 (1)下载字库 常用的汉字库大约有266Kbytes,本设计中将其最后544页作为字库区,其余作为进行读卡操作时的存储区。下载字库时,通过串口与上位机进行数据交换,流程如图4.2所示。考虑到STR912FW44X6内部RAM的大小,下载字库时按帧进行操作,每帧包含128个字节数据,其帧格式如表4.2所示,前两个字节为帧头AAH,55H,第三个字节为本帧所包含的数据内容长度L,然后是数据内容,最后为校验和,这里采用求和校验的方式。图4.2下载字库流程图表4.1下载字库的帧格式帧头数据长度数据内容校验和AAH,55H=128L个字节1字节表4.2下载字库时的通信协议符号数据内容(十六进制)含义ZK_DOWN_HANDSHAKE5A,4B,44,4F,57,4E下载字库时,上位机发送的握手信号ZK_UP_HANDSHAKE5A,4B,52,45,41,44,59下载字库时,下位机发送的握手信号ZK_TOO_LARGEAA,55,46字库长度太大ZK_LENGTH_OKAA,55,44字库长度符合要求ZK_WT_OKAA,55,00当前帧写入完毕,要求发送下一帧ZK_CAL_ERRORAA,55,01字库接收错误,需要重新发送当前帧ZK_OVERFLOWAA,55,FF字库区以满,停止下载ZK_DOWN_OKAA,55,02字库下载完毕(2)下载程序对BOOT区程序的设计是实现IAP的关键所在。它必须能够通过一个通信接口,采用某种协议正确地接收数据,再将完整的数据写入到APP程序区中。本机通过串口接收待更新的程序代码,然后通过SPM指令写入APP区中。程序流程见图4.3,返回0表示下载成功,返回0xFF则表示下载失败。其余子程序流程图略。下载程序时的数据传输同样按帧进行,根据Intel hex文件格式的特点,设计帧格式如表4.3所示。校验和是从数据长度字节开始

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论