基于STM32F103局域网远程更新技术的实现黄海宝
- 格式:pdf
- 大小:952.19 KB
- 文档页数:2
基于STM32F103的433MHz频段无线数传模块的设计作者:严冬张森何镜来源:《科技视界》2014年第01期【摘要】本文设计了一种可工作在433.00-434.79MHz,中心频率为433.00MHz,输出功率可调的无线数传模块。
模块采用STM32F103RB单片机和射频芯片CC1101设计,利用 EDA 软件ADS2008仿真优化了射频电路的输出匹配网络。
最后对无线模块输出功率,通信距离等参数进行了测试和验证。
【关键词】物联网;RF;ADS;CC1101The Design of the 433MHz Wireless Module Base on STM32F103YAN Dong ZHANG Sen HE Jing(Chongqing University of Posts and Telecommunications Key Laboratory of Industrial Wireless Network & Network Control,Ministry of Education, Chongqing 400065, China)【Abstract】This paper designed a wireless data transmission module working on 433.00MHz-434.79MHz(the center frequency of 433.00MHz), whose output power is adjustable.STM32F103RB microcontroller and RF module CC1101 chip are applied in this design. And the simulation is done by using EDA software ADS2008 to optimize the ouput matching network of the RF circuit. Finally, the wireless module output power, communication range and other parameters were tested and verified.【Key words】IOT;RF;ADS;CC11010 引言随着近些年无线通信技术的发展,越来越多的无线技术开始涌现,GSM/GPRS、Wlan、Zigbee等,为了更方便人们生产生活,以及改变现有的无线频道变得越来越拥挤的现状,不同国家相继开通了一些用于免费的ISM频段,其中430M~510M的频段在中国最为常用。
80 引言纸张计数显示装置涉及的主要就是测频率值,通过CD4069非门构成的非对称式多谐振荡器,频率不会出现范围跳动,相对稳定,非门构成的非对称式多谐振荡器的振荡频率理论上可以高达4M,实际我们测的话能达到2M左右,频率越高,最后测纸数越多的时候它的区分度越好。
通过主控芯实现计数功能、计时功能和频率换算,之后进行算法编程,计算出纸张数量,最终实现人机交互,并由1602显示[1]。
1 总体方案设计本系统主要由电容式传感器模块、测量方案的论证与选择、压力式结构、控制系统组成,以STM32F103单片机为核心,利用单片机的计数定时功能实现频率计数,并且采用加权平均算法,借鉴于卡尔曼滤波算法。
其次,在模糊控制中有多重解模糊的方式:面积平分法、加权平均法(重心法)、平均最大隶属度法等。
根据系统的特性,我们选用平均最大隶属度法进行解模糊运算。
结合这两个算法减小误差,最终计算出纸张数量并送到显示电路显示。
2 硬件电路设计本系统装置系统结构框图如图1所示,装置STM32模块、电容极板(采集纸张数量模块)、CD4069、驱动层、LCD 显示模块组成。
以STM32F103单片机作为主控芯片来完成该信标智能检测系统。
2.1 测量和压力式结构模块用放置重物压紧,四周打定位孔用螺栓插入,使其相对面积基本保持不变。
这种方式制做稍微繁琐,但两个极板之间的受力较为均匀,调试方便,稳定性较好[2]。
CD4069非门构成的非对称式多谐振荡器,频率不会出现范围跳动,相对稳定,非门构成的非对称式多谐振荡器的振荡频率理论上可以高达4M,实际测能达到2M左右,频率越高,最后测纸数越多的时候它的区分度越好。
2.2 控制系统模块系统使用ST公司的STM32F103,STM32系列是一款基于Cortex-M3内核的中低端的32位ARM微控制器,最高工作频率可达72MHz。
内部带有高速、高精度定时器,将其时钟源配置为外部时钟,就可以对外部脉冲信号进行脉冲计数,还带有单周期乘法和硬件除法。
1引言随着科技的快速发展,煤矿资源已成为我们生活必不可少的部分。
然而在开采煤矿资源时,煤矿瓦斯浓度、水、火等灾难事故时有发生,尤其是瓦斯爆炸、瓦斯中毒等事件,已成为我国煤矿生产安全的第一大祸首。
这不仅造成较大的经济损失和社会影响,而且也会给煤矿生产带来灾难性的破坏和严重威胁着人员的安全。
为了进一步满足我国煤矿生产的需要,设计一种稳定、精确、可实时监测和无线数据传输的瓦斯浓度测量仪是不可少的。
显然,与传统的有线传输测量系统相比,无论是在覆盖范围、运行成本和系统维护,还是监测煤矿瓦斯浓度的实时性和精确性上,采用STM32F103单片机控制和GPRS DTU 的远程无线传输系统都具有更大的优势。
该系统由STM32F103单片机控制的瓦斯浓度测量仪外接GPRS DTU ,利用TCP/IP 协议进行无线传输,将所测得瓦斯浓度发送到地面监控中心,远程实时监测各个节点的瓦斯浓度,有效降低了瓦斯爆炸事故发生的风险。
2系统的总体设计监测系统主要由瓦斯浓度测量仪节点和网络监控中心两个部分组成,其总体的设计框图如图1所示。
该系统包括STM32F103微处理器、MQ-4气体传感器、低通滤波电路、A/D 转换电路、报警电路和GPRS DTU 模块等组成,如图2所示。
其工作原理如下:(1)由气体传感器实时获得井下瓦斯浓度数据,通过低通滤波电路过滤掉所采集数据中的高频噪音,然后通过A/D 转换将电信号转化为数字信号,最后用放大电路将该信号放大后送到STM32F103主控器中。
(2)由主控器内部对输入的瓦斯信号进行处理、加工和分析等,然后将结果与预设值进行比较,判断是否发生声光报警。
(3)将生成的报警信号和瓦斯浓度通过GPRS DTU ,利用其内部的TCP/IP 协议,以无线传输的方式发送到监控中心。
(4)从监控中心实时监测各井下的瓦斯浓度。
图1总体设计框图基于STM32F103单片机的远程无线瓦斯浓度监测系统王沛雪张水利崔佳萌任卓李江闫子瑜张波(延安大学物理与电子信息学院,陕西延安716000)摘要:针对传统瓦斯浓度监测系统的不足,设计了一种基于STM 32F 103单片机的远程无线瓦斯浓度监测系统。
基于STM32F103的双轴交流伺服系统
黄智聪;宋宝;唐小琦
【期刊名称】《机电工程》
【年(卷),期】2012(029)011
【摘要】针对传统单轴交流伺服系统存在体积大和成本高的问题,为满足工业自动化行业对结构紧凑型伺服驱动的需要,设计了一种全数字双轴永磁同步电机伺服系统.在分析了伺服系统实现原理和软硬件方案的基础上,该系统充分利用了
STM32F103的2个高级定时器、3个高速AD、2个正交编码器接口等丰富的片上资源,采用了单个STM32F103为主控制器,以两块智能功率模块(IPM)为功率电路,使系统结构紧凑.实验结果表明,该双轴驱动器的性能能够满足实际使用的需求.【总页数】4页(P1290-1293)
【作者】黄智聪;宋宝;唐小琦
【作者单位】华中科技大学机械科学与工程学院,湖北武汉430074;华中科技大学机械科学与工程学院,湖北武汉430074;华中科技大学机械科学与工程学院,湖北武汉430074
【正文语种】中文
【中图分类】TP23;TH39
【相关文献】
1.基于TMS320F2812的双轴交流永磁同步电机伺服系统设计 [J], 雷力;李院生;易亚军;
2.基于MCGS和FX2N-20GM的双轴伺服系统的研究与开发 [J], 梁生龙
3.双轴交流同步电机伺服系统设计 [J], 赵云;李叶松
4.基于DSP的双轴交流伺服系统的研究 [J], 姜泽;严伟灿;刘峙飞
5.基于CANopen协议的双轴伺服系统控制研究 [J], 宋朝健;吴明昌;赵立宏
因版权原因,仅展示原文概要,查看原文内容请购买。
STM32串⼝IAP在线升级IAP即在线应⽤编程,平时我们写好的程序都是通过下载器去下载的,但是对于组装好的产品在想更新底层硬件代码是很⿇烦的事情,如果在公司情况还没那么糟糕,要是发出去的产品出现bug,你不可能要⽤户给你下载程序的。
IAP这种技术,我们就可以像软件⼀样,可以实现远程更新了。
我们需要做的就是,写单⽚机FLASH的读写接⼝,程序可以通过上位机进⾏下发,然后单⽚机程序调⽤FLASH写函数,把下发的代码写到对于FLASH进⾏覆盖,即实现更新。
当然这只是⼀个⼤概思路,具体实现还是要注意很多细节的东西。
⽹上也有好多关于这⽅⾯的教程,但是能⽤到项⽬中的却很少,我写这边⽂章就是想和⼤家分享我在实际项⽬中应⽤。
刚好项⽬中⽤到了在线升级功能,趁着还有设计思路,就以我实际开发过程来写吧,这⾥对新⼈来说也可以当作⼀篇教程来学习。
⼀、FLASH读写接⼝的实现这⾥⼤家可以参考原⼦哥的FLASH模拟EEPROM实验来写。
因为我们做的是程序更新,数据流很⼤,需要做⼀些优化,以加快写⼊速度。
⾸先我们来了解⼀下STM32F1的FLASH,如下图,我们要看的只有主存储区,可以看到单⽚机内部FLASH是按2K⼀页来区分的,⽽且对其读写是有如下⼏点要求:1. 每次写⼊必须为2个字节。
2. 写⼊地址为2的倍数。
3. 写⼊之前必须是被擦除的(即其值为0xFFFF),也可以理解为,写⼊数据只能把位写0,不能置1。
4. 写⼊速度≤24MHz。
5. 擦除⽅式:页擦除和整⽚擦除(这个要注意,如果你是做数据保存,就必须先把这⼀页的数据读取到缓存中,然后修改缓存⾥的值,再整页写⼊)。
FLASH写⼊过程如下:1. 解锁2. 读页数据到缓存3. 页擦除4. 修改缓存数据5. 把缓存数据页写⼊6. 上锁⾸先我们得有⼀些基本的读写函数,写函数官⽅库已经为我们提供,我们要写的就是读函数,代码如下://读1个字节{return *(vu8 *)Addr;}//读2个字节uint16_t FLASH_ReadHalfWord(uint32_t Addr){return *(vu16 *)Addr;}//读N个字节void FLASH_ReadNByte(uint32_t Addr,uint8_t *pBuff,uint32_t Len){uint32_t i;for(i = 0;i < Len;i++){pBuff[i] = FLASH_ReadByte(Addr);Addr += 1;}}然后就是在基本函数的基础上⾯扩展我们需要的函数,因为升级过程中,我们需要保存⼀些标志,需要⽤到读某⼀页的函数。
基于STM32f103的太阳能路灯统一管理平台搭建作者:阳郁为胡仕刚张志远王改义杨昊唐志军来源:《数码设计》2020年第07期基金项目:国家自然科学基金资助项目(61674056,61875054)。
摘要:论文基于STM32f103微控制器搭建太阳能路灯统一管理平台,对太阳能路灯的各项指标进行监测,来判断路灯是否受损,同时结合物联网技术和我国最新的北斗卫星对受损路灯进行精准定位,从而实现太阳能路灯的监测维护与回收利用。
关键词:监测系统;蓄电池回收;物联网;北斗卫星定位中图分类号:TM923文献标识码:A文章编号:1672-9129(2020)07-0082-01Abstract:the paper is based on STM32f103 microcontroller to build a unified management platform, solar street lamps of the indicators for monitoring of solar street lamps, judge whether the street light damage, at the same time combined with Internet technology and the latest beidou satellite precise positioning for the damage to the street lamp, so as to realize the monitoring of solar street lights maintenance and recycling.Key words:monitoring system;Battery recovery;The Internet of things;Beidou satellite positioning1引言现如今太阳能路灯的普遍推广与使用,使得太阳能路灯几乎遍布道路的每一个角落,其分布范围之广泛也给太阳能路灯的统一管理与维护带来了困难,受损的路灯不能正常照明,给来往车辆的行驶带来不便,甚至会造成交通事故。
基于STM32的充电桩系统远程升级设计作者:张思聪胡社教来源:《软件导刊》2017年第07期摘要:随着嵌入式设备的广泛应用,对嵌入式设备程序升级的要求也越来越高。
在探讨应用编程(IAP)原理的基础上,设计一种基于STM32的充电桩系统远程升级方案。
系统阐述了在应用中编程的技术原理以及升级流程,并通过TFTP方案实现了充电桩固件远程升级。
实际应用表明,该方案具有较高的应用价值和推广价值。
关键词:STM32;Flash;在应用中编程(IAP);远程升级;充电桩DOIDOI:10.11907/rjdk.162697中图分类号:TP319文献标识码:A 文章编号:1672-7800(2017)007-0077-040 引言随着新能源电动汽车的推广与普及,电动汽车配套设施充电桩正在蓬勃发展。
当前充电桩的布设往往采取建立充电站的形式,各充电站之间距离远,充电桩数量多。
充电桩设备投入使用后,由于程序本身的漏洞或者用户新的需求,需要对桩程序进行升级。
传统的升级方法是相关技术人员到现场用代码烧写工具对设备进行升级,工作量大,升级过程复杂。
本文提出的基于STM32的充电桩远程升级方案,可以让用户通过以太网实现对目标充电桩系统程序的实时更新,提高充电桩系统的可拓展性和可维护性。
1 设计原理1.1 STM32存储原理STM32是一种32位微处理器[1],共有4GB线性地址空间,分为8个存储块,每个存储块512MB。
第一块为代码区,用来存储程序的代码文件以及常量,主要分为嵌入式闪存、系统存储区、选项字节等。
第二块内部包含嵌入式SRAM区等,程序的变量以及堆栈存储在这一块。
不同型号的STM32芯片,闪存存储器(Flash)容量也不同[2],最小的只有16K字节,最多的能达到1 024K字节[3]。
本方案采用的STM32F207微控制器具有1 024K的Flash,起始地址为0x80000000,终止地址为0x080FFFFF,总共分为12个扇区,其中0~3号扇区大小为16K,4号扇区大小为64K,5~11号扇区大小为128K,Flash模块组织如表1所示。
·134· 《测控技术 ̄2016年第35卷第2期 基于STM32的远程消息管理系统 杨继森 ,赵立鑫 ,杨长才 ,张静 (1.重庆理工大学机械检测技术与装备教育部工程研究中心,重庆400050; 2.重庆理工大学电子信息与自动化学院,重庆400050)
摘要:针对目前办公外出留言方式不规范、不整洁的问题,提出了一种利用sTM32微控制器构建远程消 息管理系统的设计方案。远程消息管理系统采用液晶显示留言消息,配置了红外热释电传感器、 SIM900A无线通信、VS1053B语音控制等功能模块;能够以短消息、无线通信等多种方式与手机移动终 端、计算机相连接实现远程消息留言,并同步实时更新消息显示系统;具有自动感知人体,自动开启屏幕 的节能模式以及快速录音播放的功能。该远程消息管理系统使办公外出留言智能化、快捷化,整体规 范、整洁,具有一定的市场应用前景。 关键词:远程消息管理系统;办公留言;STM32;SMS 中图分类号:TP391 文献标识码:A 文章编号:1000—8829(2016)02—0134—05
Remote Message Management System Based on STM32 YANG Ji.sen ,ZHAO Li—xin。,YANG Chang—cai2 7 ZHANG Jing (1.Engineering Research Center of Mechanical Testing Technology and Equipment of Ministry of Education, Chongqing University of Technology,Chongqing 400050,China;2.College of Electronic Information and Automation, Chongqing University of Technology,Chongqing 400050,China)
Computer Science and Application 计算机科学与应用, 2023, 13(10), 1882-1888Published Online October 2023 in Hans. https:///journal/csahttps:///10.12677/csa.2023.1310186基于STM32的宠物远程投喂和监测系统设计陈典,涂晔*,沈映涛,成霜,方愉,段如意玉溪师范学院物理与电子工程学院,云南玉溪收稿日期:2023年9月16日;录用日期:2023年10月16日;发布日期:2023年10月23日摘要随着人们生活和精神追求的不断提高,养宠物成了更多家庭的选择,为了帮助主人们在不影响工作的同时更好的照顾宠物,本文提出了一种基于STM32的宠物智能投喂装置,该装置将远程定时定量喂食、喂水与环境监测功能相结合,包括时钟模块、温湿度传感器模块、大气传感器模块、Wi-Fi模块、录音模块、执行器模块等,结合云平台,实现通过手机端远程投喂和实时查看环境信息,帮助用户更优质的照顾宠物,培养宠物合理的饮食习惯。
关键词嵌入式,自动投喂器,远程控制,智能家居Design of Embedded Pet Remote Feedingand Monitoringsystem Based on STM32Dian Chen, Ye Tu*, Yingtao Shen, Shuang Cheng, Yu Fang, Ruyi DuanSchool of Physics and Electronic Engineering, Yuxi Normal University, Yuxi YunnanReceived: Sep. 16th, 2023; accepted: Oct. 16th, 2023; published: Oct. 23rd, 2023AbstractWith the continuous improvement of people’s life and spiritual pursuit, pets have become the choice of more families, in order to help owners better take care of pets while not affecting work, this paper proposes a pet intelligent feeding device based on STM32, which combines remote timing quantitative feeding, water feeding and environmental monitoring functions, including clock module, temperature and humidity sensor module, atmospheric sensor module, Wi-Fi module, recording module, actuator module, etc., combined with cloud platform, Realize remote*通讯作者。
基于STM32F103的SVPWM算法实现袁野;程善美;胡仙【摘要】简要介绍了电力电子控制系统中常用脉宽调制(PWM)技术在STM32F103中的实现机制,并根据STM32F103的特色分析了其在SVPWM算法实现上的优势,给出了基于STM32F103控制的三相逆变器实验结果.实验结果证实所提出的实现方法是正确可行的.【期刊名称】《电气传动自动化》【年(卷),期】2012(034)004【总页数】4页(P1-3,14)【关键词】STM32F103;PWM;SVPWM算法【作者】袁野;程善美;胡仙【作者单位】华中科技大学,湖北武汉430074;华中科技大学,湖北武汉430074;华中科技大学,湖北武汉430074【正文语种】中文【中图分类】TM383.51 引言Cortex-M3处理器的核心是基于哈佛结构和三级流水线的32位内核。
该内核集成了分支预测、单周期乘法和硬件除法等众多强大的功能,其出色的计算性能、对时间快速响应能力以及高度的可配置,使其支持应用范围广泛地实现。
STM32F103以32位的CortexM3为核心,最高主频为72MHz。
STM32F103不仅价格便宜,而且外设资源丰富,尤其具有适合电力变换器控制的PWM模块,使其在电力电子控制系统中具有广阔的应用前景。
2 STM32F103定时器STM32F103的PWM产生是由定时器模块完成的。
STM32F103具有2个高级控制定时器(TIM1、TIM8)和4 个通用定时器(TIM2、TIM3、TIM4、TIM5),每个定时器都具有16位向上、向下、上/下自动装载计数器,有4个独立的通道。
不同的是高级控制定时器(TIM1、TIM8)的前3个通道(通道1、2、3)可以输出互补的PWM波形,并且可以进行死区编程,第4个通道为单脉冲输出,高级控制定时器还具有刹车功能,使能该功能后,在刹车输入引脚捕获到一个有效的刹车电平之后就可以禁止该定时器所有通道的比较输出。
《工业控制计算机》2012年第25卷第12期在传统嵌入式系统中,代码在做成产品时已经用烧写器写入系统,如果需要日后维护或升级,工作人员必须到现场进行固件代码更新。有些用户希望产品在实际应用期间通过某种远程通信方式自动的更新程序内容,显然,现场烧入代码并不能满足这样的需求。IAP技术的出现为产品代码的远程更新提供了有
效手段。本文以STM32F103ZE为平台,在TCP/IP通信协议的基础上,实现IAP技术。
1STM32F103处理器
STM32F103系列处理器是意法半导体(ST)发布的基于
Cortex-M3内核的增强型系列处理器,工作频率最高达到
72MHz,带有片内RAM和丰富的外设。完善的外设固件库更缩
短了开发周期。Cortex-M3存储系统采用统一寻址方式,程序存储器、数据
存储器、寄存器和输入输出端口被组织在同一个4GB的线性地
址空间内,存储空间被分成8个主要块,每个块为512MB。以STM32F103ZE处理器为例,图1为代码块和片内SRAM的地
址映射图。
图1Flash、SRAM地址映射代码块包括了Flash主存储块、信息块和启动区。主存储块地址从0x08000000开始的512K字节,信息块分为两个部
分:①系统存储器是用于存放在系统存储器自举模式下的启动程序,这个区域只保留给ST使用,启动程序使用USART1串行接口实行对闪存存储器的编程;②选项字节。启动区地址从0x00000000开始,在系统复位后,就从这
个地址开始执行代码,在STM32F103里,通过BOOT[1:0]引脚
值将对应的存储器物理地址映射到启动区。本为使用的启动模
式为从主闪存存储器启动。表1启动模式
2IAP技术原理
在程序中编程(IAP)是用户自己的程序在运行过程中对Flash部分区域进行烧写,实现固件代码的更新。一般来说,IAP驱动程序要完成两个工作:一是通过通信接口接收编译好的应用程序代码到RAM;二是将应用程序代码编程到Flash中。因此系统中固件分为两段代码:第一段是IAP驱动程序,程序复位后首先执行IAP程序,此段代码必须通过JTAG、ISP或其他方法烧入;第二段是应用程序,是真正的功能代码,由IAP程序执行完后跳转至此段代码才开始执行。两段代码都烧写在内部FLASH中,值得注意的是两段代码的存放区域不能重叠,否则
后果将无法预测。3IAP技术的实现
3.1通信方式
在本文,有更新功能的产品终端通过集线器与电脑相连,组成一个局域网。由于STM32F103系列处理器没有以太网控制模块,因此处理器外接一个ENC28J60网络模块与局域网相连。鉴于TCP/IP的复杂度,传输层使用用户数据协议UDP。服务器通过设
定目标端的IP地址和UDP端口号来选择需要更新的产品终端。
3.2烧写文件格式
在启动更新之前,需要准备应用代码的Hex烧写文件,使用MDK编译器可以直接编译生成HEX文件。Hex全称(IntelHEX)
文件,是有一行行符合IntelHEX文件格式的文本所构成的ASCII文本文件。在IntelHEX文件中,每一行包含一个HEX记
录。这些记录由对应机器语言和/或常量数据的十六进制编码数字组成。每一行HEX记录包含5个域,它们按以下的格式排列:1字节数据长度域+2字节偏移地址域+1字节记录类型+数据域+1字节校验和域每行都是由冒号开头,数据长度域的数值为数据域的字节数,偏移地址为32位地址的低16位,记录类型为以下几种中的一种:00-数据记录
基于STM32F103局域网远程更新技术的实现ImplementationofRemotelyUpdateTechnologyinLANBasedonSTM32F103黄海宝吴学杰高艳艳(西南交通大学牵引动力国家重点实验室,四川成都610031)
摘要在阐述STM32F103微处理器和在应用中编程(IAP)原理的基础上,使用RealViewMDK编译的Hex烧写文件,实现
了局域网内的固件在线更新,提高了固件维护的方便性,缩短了终端系统的开发周期。关键词:STM32F103,IAP,局域网,Hex
AbstractThispaperelaboratesSTM32F103microcontrollerandInApplicationProgram(IAP)technology.UpdatingthefirmwareintheLANusingHexprogrammingfilecompiledbyRealViewMDK.Itbringsconvenienceoffirmwaremaintenanceandshort-enthedevelopmentcycleoftheterminalsystem.Keywords:STM32F103,IAP,LAN,Hex
97基于STM32F103局域网远程更新技术的实现01-文件结束记录
02-扩展段地址记录
04-扩展线性地址记录
其中04为用于32位单片机中,表示随后数据烧写的Falsh基地址,基地址为32位地址的高16位;校验和域用于校
验当前行记录的正确性。3.3软件实现
IAP驱动程序和应用程序存放区域不能重叠,所以得先设
置两段代码在Flash中的起始地址。按照编译好的IAP驱动程
序大小,设置应用程序的起始地址为0x08004000,即IAP放在
0x08000000开始的20KB空间范围内。在IAP代码中设置为:
#defineApplicationAddress0x8004000编写应用程序代码时,需要在MDK编译器的Targetop-tions→Target标签下的IROM1的起始地址设置为
0x8004000,以及Targetoptions→Utilities→settings→FlashDownload标签下FLASH下载地址设置为0x8004000。在程序
中,还需设置中断向量表的地址:NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x4000)。
图3是整个软件实现的流程图:
图3软件实现流程系统复位后,首先查看备份寄存器中的BKP_DR1,看更新标志位是否被置位,STM32系列单片机都有若干字节的数据后
被寄存器,这些备份寄存器由板上的纽扣电池供电,在系统电源掉电的情况下,也可以保存备份寄存器中的内容。软件读备份寄存器代码:if(BKP_ReadBackupRegister(BKP_DR1)==0x0001);如果BKP_DR1中的值不为0x0001,则通过下列代码进行
判断是否已下载应用程序:if(((觹(__IOuint32_t觹)ApplicationAddress)&0x2FF80000)==0x20000000);
判断0x8004000地址中的值是否为有效地SRAM地址:0x20000000~0x2007FFFF,从而判断是否为有效的应用代码,若
是,跳转至用户代码,否则,将BKP中的更新标志位置1,并进行
软件复位,在执行应用程序时,如果上位机请求更新程序,也会进行标志位置1,并复位的操作。复位后,首先解除对Flash的写保护,之后在上位机界面显示IAP主功能界面,如图4所示。
图4IAP主功能界面发送1执行下载程序功能,选择要烧写的HEX文件,在发送HEX文件时,上位机用UDP协议每次打包一行记录发送,下
位机处理器接收本行记录,并计算本行的校验码域值是否正确,若正确,则发送一个正确应答,上位机接收应答后继续发送下一行,若是错误的,则请求上位机重发当前行,直到文件发送完毕。根据接收到的数据大小,擦除需要用到的Flash页,再把数据编程到Flash中。至此,已完成对应用程序的更新。对下位机发送
命令3或者重启就可进入应用程序进行执行。4结束语
在嵌入式系统大范围应用的今天,IAP技术为远程更新提供了方法。本文介绍的基于STM32F103处理器的局域网内IAP固件的更新技术实用、方便,只需稍加修改,即可应用于STM32系列的其他处理器。
参考文献[1]张舞杰,南亦民.基于STM32F103VB的应用编程技术的实现[J].计算机应用,2009,29(10):20-23[2]陈峰峰,胡毅,许艳.STM32F10x在应用中编程的实现方法[J].技术纵横,2009(9):25-31[3]STMicroelecrtonics.STM32F10xxxFlashprogramming[EB/OL].[2011-10].http://www.st.com[收稿日期:2012.9.13]
98