基于CORTEXM3及RFID技术的图书管理系统设计.docx
《基于CORTEXM3及RFID技术的图书管理系统设计.docx》由会员分享,可在线阅读,更多相关《基于CORTEXM3及RFID技术的图书管理系统设计.docx(41页珍藏版)》请在冰点文库上搜索。
基于CORTEXM3及RFID技术的图书管理系统设计
基于CORTEX-M3及RFID技术的图书管理系统设计
1引言
“我们必须适应国内外形势的新变化,顺应各族人民过上更好生活的新期待;必须注重实现基本公共服务均等化,使人民基本文化权益得到更好保障。
”----胡锦涛在十七大对文化建设提出的新要求
图书馆做为专为领导服务的专业图书馆,目前存书已达20万册,新馆规划建筑面积为2000平方米。
新馆的建设无论从硬件条件还是软件条件都需要整体提升,需要以全新的服务理念和文献管理模式为领导提供一流的服务。
在积极引进先进的智能图书馆管理技术基础上,同时针对图书馆服务工作和文献管理的实际需要以及存在的问题,具体建设“图书管理系统”(以下简称“系统”),以全面实现图书馆管理智能化、切实提高工作效率和服务水平,真正满足领导在图书、文献借阅读求,同时促进图书馆形象大改观。
1RFID技术
无线射频识别技术(RadioFrequencyIdentification,RFID),是非接触式自动识别技术的一种。
与传统条形码依靠光电效应方式不同,RFID标签无须人工操作,通过阅读感应可以自动向阅读器发送所包含资料的信息,从而实现图书信息处理的自动化。
RFID可以自动识读标签内容,高度集成数据,因而可以记载更多关于商品的信息。
RFID支持的可读写功能,可以在图书流通中发挥更大的作用。
图书馆使用RFID后,可实现图书的藏、借、阅一体化。
RFID系统在实际应用中,电子标签附着在待识别物体的表面,电子标签中保存有约定格式的电子数据。
阅读器可无接触地读取并识别电子标签中所保存的电子数据,从而达到自动识别物体的目的。
阅读器通过天线发送出一定频率的射频信号,当标签进入磁场时产生感应电流从而获得能量,发送出自身编码等信息,被读取器读取并解码后送至电脑主机进行相关处理。
在图书馆的应用中,RFID标签可为一本书籍或一张光盘存储一个唯一的标识符号,并且可以通过这个符号进行快速高效的流通处理和库存管理。
由于科技的发展与应用的普及,RFID的原理可简化为基于资料存储在一个透过无线电能够被读写器读取资料的标签。
如图所示,一个RFID系统包含三个主要部分:
RFID标签(tag或称为transponder应答器)、RFID读写器(reader或称为interrogator)、运用于管理两者之间传输资料的应用系统。
标签通常是由一组耦合原件与一个电子晶片,提供天线的功能。
一个读写器包含射频模块(提供传送与接收信号的处理)和控制模块,以及一组耦合原件,通过输入/输出接口,如串口、USB接口等,与应用系统设备(如PC)连接。
2RFID标签的优点
RFID是Radio Frequency Identification的缩写,即射频识别。
RFID技术是一种非接触式自动识别技术,它是通过射频信号自动识别目标对象并获取相关数据。
RFID是一项易于操控,简单实用且特别适合用于自动化控制的灵活性的应用技术,识别工作无须人工干预,它既可支持只读工作模式也可支持读写工作模式,且无需接触或瞄准。
条码识别技术是集光、机、电和计算机等技术为一体的高新技术,是国民经济信息化的基础。
通过条码识别技术,可以确保物流、信息流的同步,提高供应链管理的效率。
目前条码识别技术已经渗透到了各个行业领域,无论在制造业、商品零售等行业领域,还是在近年迅速崛起的物流供应链及电子商务交易中,条码识别技术都担当着不可缺的重要角色。
条码根据不同的表现方式分为:
一维条码和二维条码。
条形码是一种已经应用非常广泛的自动识别技术,但RFID与之相比优势非常明显。
RFID的主要优势及特性有以下几个方面:
Ø读取方便快捷:
数据的读取无需光源,甚至可以透过外包装来进行。
有效识别距离更长,采用自带电池的主动标签时,有效识别距离可达到30米以上;
Ø识别速度快:
标签一进入磁场,阅读器就可以即时读取其中的信息,而且能够同时处理多个标签,实现批量识别;
Ø穿透性和无屏碍阅读:
条形码扫描机必须在近距离而且没有物体阻挡的情况下,才可以辨读条形码。
RFID能够穿透纸张、木材和塑料等非金属和非透明的材质,进行穿透性通信,不需要光源,读取距离更远。
但不透过金属等导电物体进行识别。
Ø数据容量大:
一维条形码的容量是50Bytes,二维条形码最大容量可储存2到3000字符,RFID最大的容量则有数MegaBytes。
随着记忆载体的发展,数据容量也有不断扩大的趋势。
未来物品所需携带的资料量会越来越大,对标签所能扩充容量的需求也相应增加。
Ø使用寿命长,应用范围广:
其封闭式包装使得其寿命大大超过印刷的条形码;传统条形码的载体是纸张,因此容易受到污染,但RFID对水、油和化学药品等物质具有很强抵抗性。
RFID卷标是将数据存在芯片中,因此可以免受污损,RFID抗污染能力和耐久性强。
Ø标签数据可动态更改:
利用编程器可以向电子标签里写入数据,从而赋予RFID标签交互式便携数据文件的功能,而且写入时间比打印条形码更短;
Ø更好的安全性:
RFID电子标签不仅可以嵌入或附着在不同形状、类型的产品上,而且可以为标签数据的读写设置密码保护,从而具有更高的安全性;:
由于RFID承载的是电子信息,其数据内容可经由密码保护,使其内容不易被伪造及变编造,安全性更高。
Ø动态实时通信:
标签以每秒50~100次的频率与阅读器进行通信,所以只要RFID标签所附着的物体出现在解读器的有效识别范围内,就可以对其位置进行动态的追踪和监控。
Ø体积小型化、形状多样化:
RFID不需要为读取精确度而配合纸张的固定尺寸和印刷品质,更适合往小型化与多样形态发展,以方便嵌入或附着在不同形状、类型的产品上。
3RFID技术在图书馆自动化管理中的应用
3.1在借还书中的应用
目前图书馆的文献除以光学条形码作为辨识码之外,为安全还加贴磁条,以防文献未经许可携出。
应用RFID技术后,RFID标签可取代条形码和磁条,借还书免除消磁及上磁的麻烦。
由于RFID技术是非接触式自动识别技术,在借还书时无需人工操作,而是使用无线频率通信进行自动识别、追踪和管理。
使用该系统后,读者只要将自己的借阅证和文献放在借阅设备下方,RFID借阅系统就会自动扫描并识别读者个人信息和文献标签信息。
在完成借阅过程后,打印机会自动打印出借阅清单,由读者保存。
归还时,读者将文献送到回收设备,设备安装的RFID读写器能自动对书籍标签进行扫描记录。
文献由一条传送带送至回收车中,统一整理后上架,以备再次借阅。
3.2在图书清点作业中的应用
由于条形码阅读机必须在近距离且没有物体阻挡的情况下才能辨别条形码,因此,清点时需要将每本书从书架上取下。
RFID标签以无线电波传递信号,且可一次读取多个RFID标签的资料,简化了清点工作。
3.3在图书盘点工作的应用
利用无线电波感应设备,图书寻找工作变得非常容易。
只需要用手持阅读器在书架上横扫一遍即可读取全部图书数据,盘点时间将大大缩短。
3.4在安全防盗管理中的应用
RFID无线电波式防盗侦测门禁系统具备EAS(电子防盗)功能,将RFID阅读器整合在内,让图书馆防盗系统更容易处理。
未经许可的馆藏被带离图书馆将自动报警。
除报警器外,还将触发摄影系统;这样也避免了磁条检测设备因存在盲区,造成图书被带出馆而检测不到的弊端。
4RFID技术在图书馆的应用前景展望
新加坡国立图书馆是世界上第一个使用RFID标签的图书馆。
实施之后效果显著。
在经费上,每年可节省2800万美元;在管理上,每年可节省2000名人力成本;借阅次数,一年由1000万人次提升到了3100万人次。
现在已经有澳大利亚、印度、荷兰和马来西亚等十余个国家的近100家机构采用了这项技术。
可见,RFID技术在图书馆应用的前景还是很光明的。
限制RFID技术在图书馆应用的主要因素是标签价格高。
标签因组成部分不同价格也不同。
有内存芯片的主动射频标签价格在2美元以上,每个被动射频标签的价格也在1美元以上。
没有内置芯片的标签价格1个只有几美分,但其功能不如有内存的芯片。
不过可以用于对数据信息要求不太高的情况,而且也具有条形码不具备的防伪功能。
笔者认为,随着技术的进步和使用数量的不断增加,芯片的价格会不断下降,而体积会不断变小,存储量会不断增长。
据最新报道,新加坡InstituteofMicroelectron.ics(IME)已成功开发出了尺寸不足1毫米的天线内置型RFID标签,并且配备有信息改写和防碰撞(阻塞控制)等功能。
随着图书馆管理自动化和信息数字化进程的不断加快,RFID技术会得到更广泛的应用,并最终取代条形码。
2方案设计
2.1系统功能概述
我们所开发的手持RFID读写器基于CORTEX-M3微处理器,能对一定区域内频率为915MHz的超高频标签进行读写,携带方便,采用触摸屏作为人机界面,操作方便,可应用于以下几个方面:
•智能巡更设备,单机即可进行目前小区保安的巡更管理。
•应用于图书馆,帮助读者对查找资料。
•可用于协助邮件包裹的管理,提高工作效率。
•应用于各旅游景点,帮助游客了解各景点信息,作为导游工具。
•移动考勤,如活动、培训等的签到等,在不易进行布线的办公场所,有一定的优势。
•在交通管理系统以及公共安全等方面的稽查等,有着非常广阔的应用。
•用于公交、轮渡、地铁、加油站、停车场、高速公路收费站等自动收费系统。
系统应用:
2.2总体方案设计
2.3系统工作流程
阅读器通过天线发送出一定频率的射频信号,当标签接近阅读器时产生感应电流从而获得能量,发送出自身编码等信息被读取器读取并解码后送至ROM或RAM中处理,然后通过无线网络将信息传至数据库服务器中。
2.4模块功能描述
控制模块功能:
(1)与数据管理系统软件进行通信,并执行动作指令;
(2)控制与射频标签的通信过程;
(3)信号的编码与解码;
(4)执行防碰撞算法;
(5)对读写器与标签之间的数据进行加密解密;
(6)进行读写器与标签之间的身份验证。
射频模块功能:
(1)产生高频发射能量,激活射频标签并为其提供能量;
(2)对发射信号进行调制,用于将数据传输给射频标签;
(3)接收并解调来自射频标签的无线电信号。
3硬件设计
本设计方案主芯片采用意法半导体(ST)公司的STM32系列微处理器和CC1100。
STM32系列32位闪存微控制器使用来自ARM公司具有突破性的Cortex-M3内核,该内核是专门设计与满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。
CC1100是Chipcon公司一款单片低成本低能耗RF收发芯片,主要应用于315、433、868和915MHz的ISM(工业、医学和科学)和SRD(短距离设备)频率波段。
RF收发器集成了一个高度可配置的调制解调器,该调制解调器支持不同调制格式,其数据传输率可达500kbps。
通过开启集成在调制解调起上的前向误差校正选项,能使性能得到提高。
3.1STM32系列Cortex-M3内核微控制器简介
STM32系列微控制器采用32位的ARMCortex-M3内核。
Cortex-M3内核主要是应用于低成本、小管脚数和低功耗的场合,并且具有极高的运算能力和极强的中断响应能力。
Cortex-M3处理器采用纯Thumb2指令的执行方式,使得这个具有32位高性能的ARM内核能够实现8位和16位的代码存储密度。
ARMCortex-M3处理器是使用最少门数的ARMCPU,核心门数只有33K,在包含了必要的外设之后的门数也只有60K,使得封装更为小型,成本更加低廉。
Cortex-M3采用了ARMV7哈佛架构,具有带分支预测的3级流水线,中断延迟最大只有12个时钟周期,在末尾连锁的时候只需要6个时钟周期。
同时具有1.25DMIPS/MHZ的性能和0.19mW/MHZ的功耗。
Cortex-M3中央内核基于哈佛架构,指令和数据各使用一条总线。
与Cortex-M3不同,ARM7系列处理器使用冯·诺依曼(VonNeumann)架构,指令和数据共用信号总线以及存储器。
由于指令和数据可以从存储器中同时读取,所以Cortex-M3处理器对多个操作并行执行,加快了应用程序的执行速度。
内核流水线分3个阶段:
取指、译码和执行。
当遇到分支指令时,译码阶段也包含预测的指令取指,这提高了执行的速度。
处理器在译码阶段期间自行对分支目的地指令进行取指。
在稍后的执行过程中,处理完分支指令后便知道下一条要执行的指令。
如果分支不跳转,那么紧跟着的下一条指令随时可供使用。
如果分支跳转,那么在跳转的同时分支指令可供使用,空闲时间限制为一个周期。
Cortex-M3存储器映射:
bit-band技术
Cortex-M3处理器是一个存储器映射系统,为高达4GB的可寻址存储空间提供简单和固定的存储器映射,同时,这些空间为代码(代码空间)、SRAM(存储空间),外部存储器/器件和内部/外部外设提供预定义的专用地址。
另外,还有一个特殊区域专门供厂家使用。
借助bit-banding技术,Cortex-M3处理器可以在简单系统中直接对数据的单个位进行访问。
存储器映射包含两个位于SRAM的大小均为1MB的bit-band区域和映射到32MB别名区域的外设空间。
在别名区域中,某个地址上的加载/存储操作将直接转化为对被该地址别名的位的操作。
对别名区域中的某个地址进行写操作,如果使其最低有效位置位,那么bit-band位为1,如果使其最低有效位清零,那么bit-band位为零。
读别名后的地址将直接返回适当的bit-band位中的值。
除此之外,该操作为原子位操作,其他总线活动不能对其中断。
传统的位处理方法和Cortex-M3bit-banding的比较:
嵌套向量中断控制器(NVIC):
末尾连锁技术
NVIC是Cortex-M3处理器中一个完整的部分,最多可支持240个外部中断,每个外部中断最多可具有256个可重新动态划分的不同优先级别。
它支持优先级别中断源和脉冲中断源。
当进入中断时,处理器状态会自动保存在硬盘中,NVIC还支持末尾连锁技术Cortex-M3处理器使用一个可以重复定位的向量表,表中包含了将要执行的函数的地址,可供具体的中断处理器使用。
中断被接受之后,处理器通过指令总线接口从向量表中获取地址。
向量表复位时指向零,编程控制寄存器可以使向量表重新定位。
嵌套向量中断控制器(NVIC)
Cortex-M3支持的Thumb-2指令
ARM公司在其Cortex-M3内核中嵌入新的Thumb-2指令集。
新的Thumb-2内核技术保留了紧凑代码质量并与现有ARM方案的代码兼容性,提供改进的性能和能量效率。
Thumb-2是一种新型混合指令集,融合了16位和32位指令,用于实现密度和性能的最佳平衡。
在不对性能进行折中的情况下,节省许多高集成度系统级设计的总体存储成本。
Thumb-2指令的优势:
•免去Thumb和ARM代码的互相切换,对于早期的处理器来说,这种状态切换会降低性能。
•Thumb-2指令集的设计是专门面向C语言的,且包括If/Then结构(预测接下来的四条语句的条件执行)、硬件除法以及本地位域操作。
•Thumb-2指令集允许用户在C代码层面维护和修改应用程序,C代码部分非常易于重用。
•Thumb-2指令集也包含了调用汇编代码的功能:
Luminary公司认为没有必要使用任何汇编语言。
Cortex-M3另一大优势:
Cortex-M3处理器的集成调试功能可以实现快速验证,而无需使用ICE元件。
系统可以通过JTAG端口或者两脚串行线(SerialWireDebug)端口进行观察。
此外,支持多种开发工具:
其中一种解决方案如下:
选择ARM处理器,ARM7还是Cortex-M3
内核功耗与ARM7TDMI的对比
Cortex-M3模块的内部方框图
主要特点如下:
(1)最高工作频率为72MHz;
(2)具有单周期硬件乘法器和除法器;
(3)32Kb~128Kb闪存程序存储器,6Kb至20Kb的SRAM;
(4)多重自举功能;
(5)2.0至3.6伏供电和I/O管脚;
(6)上电/断电复位(POR/PDR)、可编程电压监测器(PVD)、掉电监测器;
(7)内嵌4~16MHz高速晶体振荡器;
(8)内嵌经出厂调校的8MHz的RC振荡器;
(9)内嵌40KHz的RC振荡器;
(10)内嵌PLL为CPU提供时钟;
(11)2个12位模数转换器,1μs转换时间(16通道);
(12)串行线调试(SWD)和JTAG接口;
(13)7通道DMA控制器,支持的外设:
定时器、ADC、SPI、I2C和USART;
(14)所有I/O口可以映像到16个外部中断。
STM32的整体结构框图
STM32的整体结构框图
本系统使用的Cortex-M3是一个32位的内核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求。
它的优势有:
1、先进的内核结构:
ARM最新的、架构先进的Cortex-M3内核;
2、优秀的功耗控制:
高效率的动态耗电机制;性能出众而且功能创新的片上外设;
3、高度的集成整合:
电源监控器、上电复位等;ST公司的STM32固件函数库;
主要模块包括时钟发生器、实时时钟RTC、中断、DMA控制器、A/D转换器、TIM定时器、USART模块等。
这里重点介绍复位和时钟控制模块、内置“看门狗”模块。
STM32共有3种形式的复位:
系统复位、电源复位和备份区复位。
系统复位将复位除时钟控制寄存器(CSR)中的复位标志和备份区域的寄存器外所有的寄存器。
通常,系统复位由外部复位、看门狗复位、软件复位和低功耗管理复位信号触发。
电源复位由上电/掉电复位(POR/PDR复位)触发。
发生电源复位后,除备份区域外的所有寄存器均复位。
备份区域由主电源和备用电池供电。
当供电正常时,备份区域仅由其控制寄存器(RCC_BDCR)的BDRST位触发软件复位。
当主电源和备用电池均不供电时,其中一个电源的突然上电也会引起备份区域的复位。
STM32的系统时钟可来自3个不同的时钟源:
HIS振荡器时钟、HSE振荡器时钟、PLL时钟。
每个时钟源都可以在不需要时关闭,以降低系统整体功耗。
外部设备还具有下面两个二级时钟源:
32kHz的低速内部RC振荡器(LSI_RC)用来驱动独立的看门狗和选择性的驱动用于从停止/待机模式自动唤醒的RTC;32.768kHz的低速外部晶振(LSE)来选择性驱动实时时钟RTC。
HSE时钟为高速外部时钟信号,既可以通过控制器的OSC_IN和OSC_OUT引脚跨接4~16MHz的无源晶体振荡器,也可以只通过OSC_IN接入一个最高为25MHz占空比为50%的外部时钟信号。
HSE是否稳定靠时钟控制寄存器(RCC_CR)中的HSERDY标志位指示。
启动时,时钟直至硬件置位该位后才能释放。
HSE振荡器也可以通过控制寄存器RCC_CR中的HSEON位来打开或禁用。
HIS时钟信号由控制器内部的RC振荡产生,频率为8MHz,既可作为系统时钟,也可以2分频后作为PLL的输入。
HIS时钟不需要任何外围器件即可实现,不过其频率精度较低,需要校验。
系统复位后,出厂的校验值会装载到时钟控制寄存器(RCC_CR)的HSICAL[7:
0]位中。
与HSE类似,HIS在RCC_CR寄存器中也有HISRDY标志位指示其是否稳定。
同时,也有HISON位来控制HIS的打开或禁用。
微控制器的内部有PLL可将HIS时钟或HSE时钟倍频。
PLL在使用前必须配置好,当PLL启动之后,配置好的参数将不能被修改。
LSE振荡器是一个32.768kHz的低速外部晶体,它是实时时钟的高精度专用时钟源。
通过设置备份区域控制寄存器(RCCBDCR)的LSEON位可以打开或禁用LSE。
同时,在RCC_BDCR寄存器中也有LSERDY标志可以指示LSE晶体是否稳定。
LSIRC振荡器是一个低功耗的时钟源,可以为独立看门狗(IWDG)和自动唤醒单元(AWU)运行在停止和待机模式时提供时钟。
它可以通过设置控制/状态寄存器(RCC_CSR)的LSION位来打开或者禁用。
与LSE类似,RCC_CSR寄存器中也有一个LSIRDY位指示LSI是否稳定。
系统复位后,HIS振荡器被选择为系统时钟。
更改系统时钟的选择必须遵循“先设置,后切换”的原则,即当一个时钟被选择为系统时钟时,它必须处于准备好的状态。
如果尚未准备好,那么切换必须等待时钟准备好才能进行。
STM32处理器内置2个看门狗,这两个看门狗(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断或产生系统复位。
两者适用情况:
独立看门狗(IWDG)最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。
窗口看门狗(WWDG)最适合那些要求看门狗在精确计时窗口起作用的应用程序。
1、独立看门狗(IWDG)
独立看门狗(IWDG)由专用的32kHz的低速时钟为驱动;因此,即使主时钟发生故障它也仍然有效。
窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的行为。
在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。
当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。
无论何时,只要键寄存器IWDG_KR中被写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。
2、窗口看门狗(WWDG)
窗口看门狗通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。
除非递减计数器的值在T6位变成0前被刷新,此看门狗电路在达到可编程的时间周期时,会产生一个MCU复位。
在递减计数器达到窗口寄存器值之前,如果递减计数器值的第7位(在控制寄存器中)被刷新,那么也将产生一个MCU复位。
这表明递减计数器需要在一个有限的窗口中被刷新。
主要特性:
●可编程的自动运行递减计数器
●条件复位
−当递减计数器的值小于0x40,(若看门狗被启动)则产生复位。
−当递减计数器在窗口外被重新装载,(若看门狗被启动)则产生复位。
●如果启动了看门狗,且允许中断,当递减计数器等于0x40时产生早期唤醒中断(EWI),它可以被用于重装载计数器以避免WWDG复位。
功能:
如果看门狗被启动(WWDG_CR寄存器中的WDGA位被置1),并且当7位(T[6:
0])递减计数器从0x40翻转到0x3F(T6位清零)时,则产生一个复位。
如果软件在计数器值大于窗口寄存器中的值时重新装载计数器,将产生一个复位。
正常情况下,WWDG从设置的计数值递减到窗口寄存器的值(这个要被储存在WWDG_CR寄存器中的值必须在0xFF和0xC0之间)时,会产生一个中断,应在中断程序中对WWDG_CR寄存器进行写操作,以防止MCU发生复位。
系统从功能上主要分为5个部分:
控制部分、数据发送接收部分、串行通信部分、用户显示及输入部分和无线通信部分。
控制部分由微控制器STM32微处理器和晶振构成,控制整个系统工作。
数据发送接收部分由CC1100、晶振和天线组成。
其中,CC1100由数字和模拟部分组成。
数字部分通过并口和中断与微控