《微处理器IAP技术中是如何融合rfid技术的.docx》由会员分享,可在线阅读,更多相关《微处理器IAP技术中是如何融合rfid技术的.docx(6页珍藏版)》请在第一文库网上搜索。
1、微处理器IAP技术中是如何融合rfid技术的设备的运行维护在嵌入式系统生命周期中占有绝大部分时间,因此研究一种能使现场工B画方便快捷地升级软件而又绝不破坏设备可用性的技术方案是十分必要的。随着物流网及相关领域的技术发展,十ID技术己经得到广泛应用C1O本文针对应用高频RFID技术的嵌入式设备设计了一种基于IAP技术的运行时软件升级方案,利用高频大容量RF1D对系统进行软件升级。软件架构上设计引导程序、应用程序、升级程序。该方案确保系统无论升级是否成功都可以维持正常工作。该技术在基于IAP11F62X单片机和FM1702S1非接触卡读写控制f的水控器硬件平台,以及基于STM32F-103RC单片
2、机和FM1701非接触卡读写控制器的加油机控制板硬件平台上进行验证。投入批量运行两年多来,极大降低了现场维护成本。本文首先介绍基于高频RFID系统的IAP方案软件架构、引导程序设计及应用程序设计,然后在硬件平台上进行了验证。IIAP方案设计为了不破坏设备的可用性,又可以便捷地对系统进行升级,方案设计时将软件系统划分为引导程序、应用程序、升级程序、用户数据和IAP参数区,如图1所示。引导程序应用程序(当前隹定版本)升级程序(新版本应用程序)用户数据(可选)IAPft图1IAP软件系统引导程序负责检查应用程序和升级程序的数据完整性,决定是否升级软件或者恢复旧版本软件,最后运行应用程序。应用程序和升
3、级程序都是当前设备的应用软件,两者仅版本不同:一个为当前版本,一个为待升级版本。在应用程序和升级程序中包含IAP功能,从RFID中读取升级数据写入相应升级程序区域。1.1引导程序设计设备上电或复位时首先运行引导程序,工作时不依赖任何外部功能。程序进行硬件自检,设置中断向量,检查应用程序和升级程序的数据完整性,并根据IAP参数的设置决定是需要升级程序还是回滚恢复旧版本应用程序,再判断升级过程是否被中断并决定是否继续升级。引导程序流程如图2(a)所示。I硬件自勺初始化I读IAP参数T按Kg用用IY1(b)复制次序(a)引导程序流程图2引导程序流程及升级过程中的复制次序为了确保系统可用型,升级过程中
4、先要备份当前版本应用程序,通过一个缓存页面,升级程序和应用程序按FIaSh页块进行交换,复制次序如图2(b)所示,确保升级过程既不破坏原有版本程序代码,也不丢失新版本程序。根据FIaSh按页擦除、字节写入的特性,在IAP参数区,用8B共64bit代表64个页面,初始化时为Oxff,完成一页则依次清除一位,这种写模式下不需要擦除页面即可记录升级进度。一旦升级过程发生断电等意外,开机重启后可以检测到升级断点,继续升级。如果升级后应用程序功能不稳定,还可以在应用程序中通过管理卡设置,回滚恢复到原来版本。这个过程和升级新版本软件过程一样,只是不需要读取升级卡,仅需通过管理卡设置回滚标志,通知引导程序“
5、升级”(恢复)到原来版本应用程序。1. 2应用程序设计应用程序完成所需设备功能后,还需要实现读取升级卡写入升级程序区,或者通过管理卡设置回滚标志,在应用程序的卡处理过程中增加升级卡处理,应用程序流程如图3(a)所示。应用程序初始化C卡事件处理入口)事件处理I循环入口I消费卡?示键位显按液佚学的1ICATIONHNIQ1EIWWW-Chi.co卡事件处理II(事件循环出口)(a)应用程序流程I读卡,校验,写升级程序I(卡事件处理出口(b)卡事件处理濠程图3应用程序流程及卡事件处理流程在应用程序检测到有卡时,执行卡事件处理流程中,如图3(b)所示,识别卡的类型如果是消费卡或管理卡,则进入相应功能处
6、理。管理卡与程序版本相关的只有版本选择参数,置位时写入IAP参数区,由引导程序交换应用程序和升级程序,主要用于升级后的版本回退。识别到升级卡时,读取升级卡格式数据块。如果当前已经读取过升级卡并写过升级程序区,则升级卡版本信息必须与已经写入的升级卡版本一致才能继续读入。确认校验数据完整性后,根据数据地址信息写入升级程序区,否则提示拒绝该卡,确保升级卡版本一致。如果尚未读取过升级卡,则先读取并判断升级卡版本。如果与应用程序或升级程序版本重复,则提示已经升级;如果为新版本软件,则需要先擦除升级程序区F1aSh,再根据升级卡头信息写入升级程序区。如果本套升级卡已经全部读取并写入升级程序区,则更新IAP
7、参数,软件复位跳转到引导程序。2IAP硬件平台设计目前支持IAP的星_里左机有STC的IAP11F系列以及新茂、新唐(华邦)和SST等很多型号,而基于侬的单片机基本都支持IAP功能,这里以两种典型应用为例介绍IAP系统设计。2. 151单片机系统水控器是应用于饮用水或浴室等用水管理的设备,通过控制电磁阀管理出水,通过定时器计时收费,通过脉冲式流量传感凝计量收费,或者通过RTC时钟包时收费。系统采用STC公司的IAPIIF60X单片机,具有62KB程序空间,引导程序占1KB,应用程序和升级程序各占28KB,IAP参数占1KB(2页),其余为用户数据区2。射频模块为FM1702S1,单片机通过逊1
8、SP1与之连接,可以读取ISO14442A标准系列非接触卡。具体功能模块见图4。图4水控器硬件框图在项目设置中需要设置应用程序起始地址,例如在本系统中起始地址设为0x0400,此外需要特别处理中断向量。51单片机的中断向量为固定地址,此时中断向量都在引导程序中,而中断服务函数均在应用程序中,因此需要在引导程序中设置中断跳转到应用程序中,举例如下:定时中断0ORGOOOBH1JMPAPADDROBH;-一定时中断1-ORGOO1BH1JMPAP_ADDR+1BHAPADDR定义为应用程序起始地址,而在应用程序中依然通过以下语法实现中断函数:voidtimerISR(void)interrupt1
9、using1voidtimer1_ISR(void)interrupt3using1使用IAPIIF62X单片机,在处理完升级卡后可以通过给IAP_CONTR赋值0x20强制软件复位跳转到引导程序,引导程序完成升级。然后通过1JMPAP_ADDR指令跳转到应用程序,完成IAP过程并继续运行。2. 2STM32单片机系统IAP某型非接触卡加油机控制板采用STM32F103RC处理造,具有256KBIFM1701天线模块I1CD车号识别S501963拍照模块44按键矩阵MX25I3:串行FhJ隔达林校磁阀炎动Ii、pWWW.W妆冲流量传感器F1ash,读卡电路采用性价比更高的FM1701,由软件实
10、现FM1208些卡的加密认证读取,通过车号识别模块识别车辆,并可以通过串口摄像模块拍照,与加油记录一起保存在大容量串口F1ash中,其结构框图如图5所示。起始地址数据长度图5加油机控制板框图STM32位处理器IAP功能与51单片机系统大体相似,需要设置程序起始位置,引导程序必须设置为F1aSh基地址(0x08000000),而应用程序地址则是0x0800-2000o不同之处在于STM32的中断向量表可以通过NVIC_Set-VcctorTab1e函数设置到0x08002000,而不必通过引导程序跳转。此外,STM32F103RC具有48KBSRAM,可以读入升级卡全部数据,校验正确后写入F1a
11、sho引导程序完成升级程序代码复制交换后,通过绝对地址跳转语句即可跳转到指定地址的应用程序执行。应用程序也通过相同语句跳转到引导程序执行,仅地址不同。3主机写升级卡软件主机写卡软件读取HEX格式或者BIN格式程序文件,按退卡容量分割后写入升级卡。由于RF1D卡数据容量有限,升级程序可能需要写入多张升级卡。规划卡数据的存放时,必须考虑升级时的卡类型识别以及版本控制、数据完整性等,因此需要设计格式头,如图6所示。致裾栽脸图6升级卡识别格式数据块识别码用于确认该卡为本设备所用;类型码用于判定识别卡类型属于消费卡、管理卡或升级卡;版本为本卡内应用程序版本号;起始地址和数据长度为卡内数据在升级程序空间内
12、的起始地址和数据字节数;卡数说明升级程序共包含多少张卡;卡序则是说明当前卡为第几张卡;数据校验用于验证卡内数据的完整性。主机写卡软件根据应用程序大小计算所需升级卡数量,并依次写入升级卡格式以及数据4。4功能验证该升级方案应用于某型非接触卡水控器,采用4KB数据容量的FMIIF32卡作为升级介质,单片机为IAPI1F62X。一套升级卡一直控制在7张卡以内。某型非接触卡加油机控制板也采用这一方案,采用8KB数据容量的FM1208CPU卡作为升级介质,单片机为STM32-F103RCo由于加油站现场环境限制,这种升级方式更易于接受50在设备运行的近2年时间时,由于修复BUG、调整功能等需求,设备进行了十多次升级,正因为采用这种方式,没有给用户和维护人员带来额外负担。本设计采用大容量RFID卡作为升级介质,无须下载线,更不必拆开设备,就可以进行现场升级,极大降低了维护难度。虽然由于目前非接触卡存储容量有限,可能需要多张IC卡才能完成升级,但由于设备读卡速度快,整个软件升级过程也不过两三分钟时间。实际应用证明,这种升级方式无论用户还是现场维护人员都易于接受,具有较高的应用价值。责任编辑:Ct