嵌入式系统远程软件更新技术
- 格式:pdf
- 大小:605.51 KB
- 文档页数:12
嵌入式开发中的固件升级嵌入式开发中的固件升级在物联网时代扮演着至关重要的角色。
随着物联网设备数量的迅速增加,为了确保设备的功能和安全性,固件升级成为必不可少的环节。
本文将介绍嵌入式开发中固件升级的重要性、常用的固件升级方法,以及一些建议和注意事项。
一、固件升级的重要性随着科技的发展和物联网行业的快速崛起,嵌入式设备所涉及的功能变得越来越复杂。
为了保持设备的功能性和性能,软件开发人员需要不断更新和优化固件。
固件升级不仅能够修复设备中存在的漏洞和问题,还可以提供新功能和改进现有功能。
此外,固件升级还可以增强设备的安全性,防止恶意攻击。
二、常用的固件升级方法1. OTA(Over-The-Air)升级OTA升级是一种通过无线网络进行固件升级的方法。
它具有高效、灵活、快速的特点,无需物理接触设备,可以远程升级。
OTA升级通常使用的通信协议有HTTP、MQTT等。
对于大规模的设备部署,OTA 升级是非常有效的方法,可以同时升级多个设备,提高生产效率。
2. USB升级USB升级是一种通过USB接口将固件加载到设备中的方法。
它相对于OTA升级而言需要物理接触设备,但也具有稳定的传输速度和较低的传输风险。
USB升级适用于一些对安全性要求较高的设备,例如银行自动取款机、监控摄像头等。
3. SD卡升级SD卡升级是一种将固件保存在SD卡中,然后将SD卡插入设备进行升级的方法。
这种方法简单易用,只需将SD卡插入设备即可完成升级。
SD卡升级适用于一些资源有限、需要离线升级的设备。
三、固件升级的建议和注意事项在进行固件升级时,有一些建议和注意事项需要软件开发人员和系统管理员牢记于心:1. 定期升级:固件升级是一项持续不断的工作,需要定期进行。
随着技术和安全问题的发展,新的漏洞和问题总是不断出现。
因此,定期升级是保持设备的安全和稳定的关键。
2. 测试和验证:在进行固件升级之前,务必进行充分的测试和验证。
固件升级可能对设备的正常运行产生影响,未经充分测试的升级可能导致设备故障或不稳定。
嵌入式系统远程监控系统的设计与实现一、绪论嵌入式系统远程监控系统(以下简称远程监控系统)是一种利用嵌入式系统技术实现的远程监控系统。
它采用嵌入式操作系统作为平台,通过网络远程访问设备,实现设备状态实时监控、报警等功能。
本文将介绍远程监控系统的设计与实现,以帮助读者了解嵌入式系统在实际应用中的具体应用。
二、远程监控系统的需求分析1、实时监控远程监控系统需要实时监控设备状态,及时发现设备故障并做出相应的处理。
同时,系统需要记录设备状态数据,以便后续分析和处理。
2、远程访问远程监控系统需要提供远程访问功能,以便用户可在任意时间、任意地点对设备进行监控。
3、报警功能远程监控系统需要实现设备状态异常时的报警功能,以便及时发现设备故障。
三、远程监控系统的设计与实现1、硬件设计(1)选择合适的嵌入式系统开发板本文选择基于ARM处理器的嵌入式系统开发板,可提供良好的性能和可靠的稳定性。
同时,开发板支持多种外设接口,方便扩展和应用。
(2)设计传感器接口远程监控系统需要接入多种传感器,对设备状态进行实时监控。
本文采用I2C接口连接传感器,可实现多路传感器同时接入,对设备多种状态进行监控。
2、软件设计(1)选择合适的嵌入式操作系统本文选择基于Linux内核的嵌入式操作系统,具有开放源代码、可移植性强等优点。
同时,Linux提供丰富的应用软件支持,方便系统开发。
(2)系统框架设计本文采用MVC(Model-View-Controller)架构设计,将远程监控系统拆分为视图层、控制层、模型层三个部分,各部分独立实现。
视图层负责显示用户界面,控制层负责处理用户输入和业务逻辑,模型层负责处理系统数据和状态,三个部分之间通过接口实现数据交互和消息传递。
(3)网络通讯实现本文采用Socket编程实现远程访问,将设备状态数据通过网络传输给监控中心。
同时,系统支持多用户访问和数据压缩传输,实现高效的远程监控功能。
(4)报警功能实现本文采用邮件和短信两种方式实现报警功能。
嵌入式广告机解决方案一、概述嵌入式广告机是一种集成为了嵌入式系统和广告播放功能的设备,通过在公共场所、商业场所等展示广告内容,实现品牌推广和宣传效果。
本文将介绍嵌入式广告机的解决方案,包括硬件配置、软件开辟、网络连接等方面的内容。
二、硬件配置1. 主控板:嵌入式广告机的主控板采用高性能的处理器,如ARM Cortex-A系列,以保证广告内容的流畅播放和高效运行。
2. 存储器:广告机需要具备足够的存储容量,用于存储广告素材、播放列表和系统软件等。
建议采用高速、大容量的固态硬盘或者嵌入式闪存。
3. 显示屏:广告机的显示屏应具备高清晰度、高亮度和广视角的特点,以确保广告内容的清晰展示和吸引力。
4. 触摸屏(可选):如果需要实现交互式广告,可以选择带有触摸功能的显示屏,以提供用户与广告内容的互动体验。
5. 网络接口:广告机需要具备网络连接功能,以便远程管理和更新广告内容。
常见的网络接口包括以太网、Wi-Fi和蓝牙等。
三、软件开辟1. 操作系统:嵌入式广告机通常采用基于Linux的操作系统,如Android或者嵌入式Linux。
这些操作系统具备稳定性、安全性和开放性的特点,方便开辟人员进行软件定制和功能扩展。
2. 广告播放软件:广告机需要配备专业的广告播放软件,用于管理和播放广告内容。
该软件应具备良好的用户界面、广告排期管理、统计分析等功能。
3. 远程管理软件:为了方便运维人员对广告机进行远程管理和监控,可以开辟相应的远程管理软件。
该软件应支持远程更新广告内容、监控广告机状态、采集统计数据等功能。
4. 定制开辟:根据实际需求,可以进行定制开辟,如添加人脸识别功能、智能推荐算法等,以提升广告机的交互性和个性化。
四、网络连接1. 以太网:通过有线以太网连接,可以实现稳定、高速的网络传输,适合于需要大量数据传输的场景。
2. Wi-Fi:通过无线Wi-Fi连接,可以实现灵便、便捷的网络接入,适合于需要挪移性和灵便性的场景。
专利名称:一种嵌入式操作系统的远程更新方法专利类型:发明专利
发明人:高明晋,赵紫旭,石晶林,杜一民,黄帅棋申请号:CN201911364112.4
申请日:20191225
公开号:CN111190623A
公开日:
20200522
专利内容由知识产权出版社提供
摘要:本发明公开了一种嵌入式操作系统的远程更新方法,通过在线加载外部函数库和操作系统内核的方法,解决了无线传感器网络的嵌入式操作系统在远程更新代码时的局限问题。
该方法包括:对应用程序进行编译,生成二进制文件,并将所述二进制文件加载到嵌入式系统的内存空间;在所述编译时针对操作系统内核只提供该符号的接口;根据预先设定好的索引表寻找所述符号对应的内核模块内偏移或是外部函数库内偏移;根据所述内核模块内偏移或是外部函数库内偏移,向服务器请求下载所述符号对应的代码和数据;将所述代码和数据加载到所述嵌入式系统的内存空间中。
申请人:北京中科晶上超媒体信息技术有限公司
地址:101399 北京市顺义区顺强路1号1号楼2层(科技创新功能区)
国籍:CN
代理机构:北京理工大学专利中心
代理人:高燕燕
更多信息请下载全文后查看。
嵌入式系统技术方案背景随着科技的不断发展,嵌入式系统在日常生活中的应用越来越广泛。
嵌入式系统是一种特定功能的计算机系统,通常被嵌入到其他设备中,以完成特定的任务。
本文将介绍嵌入式系统技术方案,包括其定义、应用领域和开发过程等。
定义嵌入式系统是一种以特定功能为目标的计算机系统,通常由一块或多块芯片组成,具有高度集成、低功耗和可靠性强的特点。
这种系统通常是通过软件和硬件的紧密结合来实现特定的功能,例如家电控制、智能手机等。
应用领域嵌入式系统广泛应用于各行各业。
以下是一些常见的应用领域:1. 汽车电子系统:嵌入式系统在汽车中起到关键作用,例如发动机控制、车载娱乐等。
2. 医疗设备:许多医疗设备都采用嵌入式系统,用于监测病人的生命体征、进行诊断和治疗等。
3. 工业控制:嵌入式系统在工业自动化领域中广泛应用,用于监控和控制生产过程。
4. 智能家居:嵌入式系统使得家庭设备能够通过网络连接和互联网进行远程控制和智能化管理。
开发过程嵌入式系统的开发过程通常包括以下几个步骤:1. 系统设计:在系统设计阶段,确定系统的功能需求和硬件架构,选择适合的处理器和嵌入式操作系统。
2. 软件开发:根据系统设计的需求,进行软件开发,包括编写驱动程序、应用程序和用户界面等。
3. 硬件设计:根据系统设计的要求,设计和开发硬件部件,包括电路板、传感器和执行器等。
4. 集成和测试:将软件和硬件组合在一起,进行集成测试和功能验证。
5. 量产和维护:一旦系统通过测试,可以进行量产,并继续进行维护和升级工作。
总结嵌入式系统是一种具有特定功能的计算机系统,广泛应用于不同行业。
开发嵌入式系统需要进行系统设计、软件开发、硬件设计、集成测试和量产等步骤。
随着科技的不断进步,嵌入式系统将在各行各业继续发挥重要作用。
嵌入式系统远程软件更新技术目前远程升级方式主要有:采用Boot加双Loader的结构式设计实现系统的完整升级、基于TFTP(Trivial File Transfer Protocol)协议的ARM软件远程更新系统等。
对基于LM3S6965微控制器的嵌入式系统软件远程在线升级技术进行研究,提出了一种在线升级实现方法,该方法对减少嵌入式设备的维护成本、提高设备的工作效率具有很重要的现实意义。
一: 嵌入式系统功能及在线升级嵌入式系统的功能嵌入式系统的运行主要分为工作模式和升级模式,其中工作模式为默认模式,工作模式指设备正常工作状态,嵌入式系统按预定的程序完成相应的测控任务,并且通过internet、GPRS等方式向监控管理中心上报监测参数。
升级模式是指嵌入式处于升级状态,包括接收服务器发送的程序代码,以及在flash区域固化程序代码等[1]。
远程在线升级原理整个升级系统主要由服务器和远程终端组成,其中远程终端包括基于ARM内核的嵌入式控制芯片和Modem模块。
二者之间通过RS232总线连接,服务器与远程终端通过Internet进行通信。
系统结构如图1所示。
服务器作为软件升级任务的主动发起者,首先向嵌入式系统发送升级命令,嵌入式系统在硬件启动后,首先执行引导程序Bootloader进行一系列的初始化操作,同时选择执行升级控制程序,待服务器接收到嵌入式系统的确认升级回复后即开始发送升级程序代码,在发送升级程序代码前,服务器会将这些代码拆分成固定长度的多个数据单元,以每个数据单元为核心组成数据包(数据包内容包含数据包头标志、命令头、包序列、数据单元、CRC校验码、数据包尾标志、总包数等)[2],嵌入式系统每接收到一个数据包,都将返回确认信息,若数据包校验无误,则在规定的FLASH区域进行旧程序的擦除以及新程序的复制,从而达到远程终端的嵌入式系统软件的在线升级目的。
1 系统原理系统结构如图1所示。
该单位有若干分部,每个分部独立管辖所属的车辆,每个车辆装载一套终端,用于记录车辆行驶信息。
当车辆外出执行任务及返回经过车场门口时,与车场门口的数据采集设备通过WiFi进行数据交互。
各分部数据采集设备连接至互联网与总部进行数据交互。
终端设备MCU采用STM32F107芯片,该芯片是意法半导体公司基于ARM Cortex—M3的32位嵌入式处理器,主频达72 MHz、90DMIPS。
它具有256 KB闪存程序存储器、20KB 的数据存储器及64 KB RAM。
外围接口丰富,价格仅与8位单片机相当,性价比极高。
WiFi模块采用RedPine公司的RS9110-N-11-02模块,该模块通过SPI接口与MCU通信。
RS9110-N11-02模块为IEEE 802.11b/g/n WLAN设备,集成MAC、基带处理器、幅值可调RF收发器、频率参考和天线等。
硬件模块嵌入了网络协议栈、WLAN协议和配置功能,构成一个完整的802.11n WLAN解决方案。
系统软件升级工作过程如下:①通过以太网把编译好的新软件传输到各分部数据采集设备上;②车辆外出或返回时途经车场门口数据采集设备WiFi网络覆盖区域;③车辆终端设备通过WiFi网络连接到数据采集设备,如需要则进行新软件下载;④车辆终端执行新软件。
2 软件升级方法及流程STM32F107内部FLASH存储器地址以0x08000000开始,共256K。
为了在线升级,将该FLASH存储器如图2所示划分为BOOT区、应用程序区、临时区、参数存储区。
其中BOOT区用于存放系统自举程序,应用程序区用于存放用户应用软件,临时区用于临时存储正在下载的软件,参数存储区用于存储程序升级时所使用的标志及其他系统参数。
软件升级标志定义如下:正常模式、升级模式及拷贝模式。
正常模式标志着无需进行软件升级,直接跳转到应用程序区执行;升级模式标志着终端需要下载新的应用程序;拷贝模式用于在软件下载完毕后拷贝到应用程序区,将该部分功能独立出来是为了在软件下载完毕后拷贝到应用程序区时出现突然断电等故障时进行故障恢复。
终端处于WiFi信号范围时,接入WiFi网络与数据采集设备进行信息交互。
如图3所示,软件升级流程如下:①接收到版本号查询指令,回复本终端软件版本号给数据采集设备;②若版本号为最新,流程结束,否则会接收到数据采集设备发来的软件升级指令;③修改参数存储区存储的软件升级标志为升级模式,复位MCU;④MCU从BOOT区启动;⑤读取软件升级标志,如是“正常模式”,判断应用程序区是否有应用程序,若有则跳转到应用程序区执行,若无则置软件升级标志为“升级模式”,复位MCU,跳转到步骤④;⑥若软件升级标志是“拷贝模式”,拷贝临时区软件到应用程序区,修改软件升级标志为正常模式,复位MCU,跳转到步骤④;⑦若软件升级标志是“升级模式”,则扫描并接入WiFi网络;⑧使用TFTP协议下载新软件到临时区;⑨校验新软件是否正确,若不正确则跳转到步骤⑧,若正确则执行下一步;⑩修改软件升级标志为“拷贝模式”,复位MCU,跳转到步骤④。
二: CAN网络在线升级基于CAN总线节点的远程在线升级在实现CAN总线报文数据收发的基础上,参考TCP/IP协议中的TFTP协议规范,设计了一个简单实用的系统在线升级应用层协议,并结合微控制器的IAP功能,实现待升级节点软件升级的目的。
1IAP技术及升级系统总体结构1.1IAP技术及其编程实现IAP (In Application Programming,在应用中编程) 是指用户在运行应用程序过程中通过程序控制实现对片上Flash存储器的擦除和读/写等操作。
IAP技术是实现系统在线升级的必要前提,本系统中待升级节点采用NXP公司的基于Cortex—M4内核的微控制器LPC4357。
该芯片集成了功能强大的IAP技术,可以单次最多向目标Flash中写入4 KB 数据。
IAP的功能函数被固化在ROM的Boot中。
以LPC4357为例,ROM的地址0x 1040 0100作为指针指向IAP功能函数入口地址IAP_entry,因此当使用C语言编写调用函数时,首先定义IAP入口地址。
在进行IAP函数调用时,通过寄存器R0 作为指针来传递命令代码和参数。
IAP命令的返回结果通过寄存器R1作为指针来传递。
实现节点软件升级的关键一步就是将CAN总线接收的代码数据通过IAP编程到指定的片上Flash的扇区。
IAP通过以下几个步骤实现编程操作:IAP初始化、准备扇区、擦除扇区、准备扇区、编程扇区和数据校验。
1.2 在线升级系统总体结构系统由检测节点、CAN总线网络和升级服务器组成。
其中检测节点和CAN总线网络是特种纤维检测控制系统的组成部分,因此,只要将升级服务器接入CAN总线网络,就可以搭建在线升级系统的硬件平台。
升级系统总体框图如图所示。
升级系统的软件由节点端软件和服务器端软件组成,节点端和服务器端通过CAN总线进行数据交互,在此基础上,设计CAN应用层协议。
本文通过分析TCP/IP协议中的TFTP 协议规范,设计了一款简单实用而且适用于CAN总线网络的系统升级协议。
升级系统协议分层结构如图所示。
2 系统升级协议设计2.1 TFTP协议及文件传输基本流程TFTP (Trivial File Transfer Protocol,简单文件传输协议) 是TCP/IP协议族中的应用层协议,基于UDP传输协议。
最初用来引导无盘系统,主要用于传输小文件。
TFTP 协议报文分为:读/写请求报文、数据包报文、确认信息报文以及差错报文。
TFTP报文格式如图所示。
TFTP客户端首先向服务器的端口69发送文件下载/上传请求,请求的相应报文格式如图 (a) 所示。
服务器接收请求后打开一个新的端口与客户端进行通信,服务器端口69则继续等待其他客户端的请求,从而实现同时响应多个客户端的文件传输请求。
当客户端发送的文件下载请求得到服务器ACK确认后,开始发送编号为1的数据包,数据包的报文格式如图 (b) 所示。
每个数据包的大小为固定的512字节,服务器每次发送数据包之前都必须得到客户端的ACK确认。
当客户端接收到小于固定字节的数据包时,则认为文件传输结束。
TFTP协议也提供了相应的错误处理机制。
服务器端和客户端都可实现超时重传,只要有一端出现超时,就将重传丢失的报文,从而有效的提高文件传输的正确率。
在传输过程中出现错误时,服务器端向客户端发送差错报文。
2.2 系统升级协议的报文格式CAN总线协议定义了5种类型的帧:数据帧、遥控帧、错误帧、过载帧、间隔帧。
其中,数据帧用于发送单元向接收单元传送数据。
数据帧格式分为标准格式和扩展格式,两者区别在于标识符分别占11位和29位,这里仅使用标准格式的数据帧作为节点和升级服务器通信的基本单位。
由于一个数据帧最多只能携带8字节数据,而在一般文件传输应用中数据以数据块的形式进行传输,因此在文件传输时需要进行数据拆分、重组的操作。
在应用层的数据报文中对这一操作进行屏蔽,具体操作通过底层协议实现,因此这里仅需关心数据帧的数据段。
升级协议的报文分为:升级命令、数据包、确认信息、错误信息,相应的报文格式如图所示。
升级命令由升级服务器发出,ID号用于确认待升级节点,升级模式分为单节点升级模式和多节点同时升级模式。
数据包用于服务器向节点传输升级所需的二进制文件,每个数据包携带固定的1024字节数据,这是因为节点利用IAP技术进行软件升级时,每次对片上Flash编程的字节数是固定的,可选512字节、1024字节、4096字节3个选项,这里选用1024字节。
确认信息和错误信息参考TFTP协议的相应报文格式。
2.3 系统升级协议及文件传输流程系统升级命令由升级服务器发出,节点在接收到升级命令后通过校验ID号判断升级模式,进入相应的升级状态,并向服务器发送确认信息ACK。
升级服务器接收到ACK确认后,开始发送编号为1的数据包,节点接收到数据包就立即将1024字节数据编程到片内Flash中,编程成功后返回ACK 1,以此类推。
如果最后一个数据包N的数据长度小于1024字节,则自动向数据包添加0,使数据包长度正好为1024字节。
升级服务器接收到节点确认信息ACK N,表明节点升级完成。
这里,节点端采用边接收边升级的方案。
如果将升级文件全部接收后再进行升级,则需要大量的RAM空间,一旦升级文件过大,节点升级就会失败。
系统升级流程如图所示。
2. 4 系统升级中的错误处理在系统升级过程中,可能会出现发送数据包丢失、连接中断的情况。
当服务器端发送的数据包丢失或节点端接收该数据包失败时,节点端向服务器端发送错误信息。
服务器端接收错误信息,根据错误内容判断是否需要重新发送数据包。
如果服务器端在一定时间内没有接收到节点端的确认信息或错误信息,则认为系统升级失败,服务器端会向节点端发送升级失败的错误信息ERROR,节点端接收该信息后进入升级失败状态。