当前位置:首页 > 通信技术 > 通信技术
[导读] 引导加载器支持产品固件的现场更新。引导加载器可使用UART、I2C、SPI或USB等常见通信接口更新固件,而引导加载器主机和目标之间通常采用有线连接方式。在蓝牙到串行适配器的帮助下,这个引导加载操作能通过无线方式

 引导加载器支持产品固件的现场更新。引导加载器可使用UART、I2C、SPI或USB等常见通信接口更新固件,而引导加载器主机和目标之间通常采用有线连接方式。在蓝牙到串行适配器的帮助下,这个引导加载操作能通过无线方式实现。如果目标所处的位置难以物理地访问,或者目标位于密封设备内,那么这种无线连接功能就会特别有用。

使用引导加载器的第一步就是配置产品,让引导加载器(而不是应用)去执行。一旦引导加载器运行,主机就会通过通信通道发送“start bootload”命令。如果引导加载器发出“OK”回应,那么就会开始引导加载。在引导加载期间,主机读取新应用文件,将其解析为闪存写入命令,并发送命令到引导加载器。在整个文件发送后,引导加载器会确认文件完整性,并发送控制到新应用。

采用蓝牙到串行适配器的无线引导加载过程可在任何支持UART引导加载器的目标上进行,无需使用蓝牙串行端口配置文件(SPP)对运行在目标设备上的主机或引导加载器固件进行任何修改。蓝牙配置文件是指定蓝牙设备一般行为的蓝牙核心规范上额外的协议,可用于支持蓝牙设备与其它具有相同配置文件的设备进行通信。

SPP基于仿真RS-232串行端口的射频通信(RFCOMM)协议,它定义了如何设置两个设备之间的虚拟串行端口,如何利用蓝牙互联。支持蓝牙功能的PC能连接到目标侧的蓝牙串行适配器,并进行引导加载操作。引导加载命令可通过发送串行命令到当前运行在目标器件上的应用而实现无线触发。

引导加载器

引导加载过程会通过标准通信接口更新嵌入式系统的固件。主机可以是带引导加载器主机应用工具的PC,也可以是另一个微控制器。引导加载器是加电启动或系统重设后将要执行的第一行代码。引导加载器会预编程到微控制器中,与主机通信,并获得新的应用镜像,将其写入微控制器的内部闪存。在引导加载操作成功后,微控制器会开始执行新的应用固件。如果没有从主机接收到新的应用,那么引导加载器会执行微控制器中现有的应用。

应用固件镜像的格式取决于使用的微控制器。举例来说,PSoC控制器使用.cyacd(应用代码和数据)作为引导加载应用的格式。如果采用标准的蓝牙到串行适配器,那么我们可在支持UART引导加载器的目标器件上无线执行同样的引导加载操作。

在利用蓝牙到串行适配器进行无线引导加载的情况下,基本的引导加载操作保持不变。不过,我们需要在主机和目标器件之间建立虚拟串行连接,通过蓝牙无线发送应用镜像。SPP定义了如何设置虚拟串行端口和两个蓝牙设备的互联,随后允许设备进行RS232(或类似的)串行线缆仿真。这种配置文件涵盖的情境能支持传统应用,这里蓝牙作为线缆连接的替代,使用虚拟串行端口抽象。利用SPP,互联设备发送和接收数据就像互联的RX和TX线路一样。

图1显示了SPP中使用的协议和实体。基带、LMP和L2CAP是OSI 中的第1层和第2层蓝牙协议。RFCOMM是蓝牙版GSM TS 07.10标准,GSM手机用它在一个物理串行线缆上多路复用多个流,为串行端口仿真提供通信协议。SDP是蓝牙服务发现协议,支持蓝牙设备发现其它蓝牙设备提供的服务和相关参数。

图1:配置文件协议栈包括SPP使用的不同协议和实体。

就使用SPP的无线引导加载而言,两侧运行的应用为PC上的引导加载器主机应用或主机微控制器上的UART接口以及目标系统上的UART引导加载器。

Bluefruit EZ-Link模块或JY-MCU模块等标准蓝牙到串行适配器能配对具备蓝牙功能的计算机,并显示为串行COM端口。将蓝牙模块和PC配对后,设备管理器中会列出两个串行COM端口。之所以会出现这种情况,是因为蓝牙串行端口是基于RFCOMM,与物理串行端口不同,它在建立蓝牙虚拟连接时同时需要服务器和客户端。

设备管理器中列出的一个端口是入站端口(服务器),另一个则是出站端口(客户端)。然而,用其中一个串行端口建立连接后,它就是双向的。如果PC发起与蓝牙模块的连接,则使用出站端口。如果蓝牙模块发起连接,则使用入站端口。对于目标系统的无线引导加载而言,必须使用出站端口,因为PC是主机,它必须发起与蓝牙模块的连接。

蓝牙模块必须连接到运行UART引导加载器的目标系统上的UART接口。举例来说,在关闭电路板的USB到串行部分以无线引导加载PSoC 4的情况下,蓝牙模块可连接到CY8CKIT-049 PSoC 4原型设计套件。PSoC 4原型设计板易于使用,成本较低,能在主板兼容报头上提供PSoC 4微控制器的所有I/O引脚,从而支持快速原型设计,而且配套提供预编程的UART引导加载器。

蓝牙模块的波特率应匹配目标系统上引导加载器配置的波特率。大多数蓝牙模块支持AT命令来配置模块的波特率,这需要用到USB-UART桥接器或配备UART接口的微控制器。PSoC 4原型设计板的USB-串行器件部分也可利用AT命令配置蓝牙模块的波特率。引导加载器主机应用工具则用蓝牙虚拟串行端口来无线执行引导加载操作。图2给出了主机和目标系统的系统级方框图。

图2:系统级方框图显示主机和目标系统的不同组件。

如果引导加载器主机是另一个微控制器,那么无线引导加载程序仍会在其它蓝牙到串行适配器(连接到主机微控制器UART接口)的帮助下进行。对于不支持蓝牙的PC而言,标准的USB蓝牙收发器可用来建立蓝牙模块连接。

成功引导加载后,目标系统会开始执行新的应用。如果需要引导加载另一个新应用,那么目标系统必须重启,以再次启动引导加载器。如果应用调用引导加载器,就能避免这一过程。引导加载的应用响应于某种外部事件,如按下按键或主机发出的具体数据命令,从而再次启动引导加载操作,在目标系统上载入新的应用。

此外,低功耗蓝牙(BLE)模块也可用于无线引导加载。与传统蓝牙不同的是,低功耗蓝牙不使用SPP。不过,对于低功耗蓝牙而言,所有配置文件和服务支持全部位于应用空间内。产品开发人员能在通用属性配置文件(GATT)基础上开发自己的串行端口服务,满足BLE模块需求,并将其用于无线引导加载。

引导加载器的设计考虑因素:

稳健可靠的引导加载器应当能够检测、报告并有效处理无线引导加载过程中出现的错误,如传输过程中的数据包丢失、数据损坏和闪存写入错误等。通过存储应用的校验和或循环冗余码(CRC),可以执行闪存错误校验。在引导加载操作开始后,位会被清空。如果应用成功下载并安装,就会更新。举例来说,如果在引导加载时断电,那么在重启时引导加载器应检测无效的校验位,而且不会让部分加载的应用获得控制权,而是等待主机启动新的引导加载操作。

一旦新应用实现引导加载,那么引导加载器必须确认引导加载镜像是否有效,并让新应用获得控制权。引导加载器还应当能检查闪存中的自身镜像,判断其是否有效。另一个重要考虑因素是避免应用覆盖引导加载器本身。如果引导加载器损坏或被应用覆盖,那么系统就无法工作,需要对系统的引导加载器进行重新编程。为了避免这种情况,闪存的引导加载器区域必须进行保护,避免引导加载器代码被意外覆盖。

引导加载器设计的另一个重要考虑因素就是何时开始与主机通信。在确认应用有效后,引导加载器可等待一定时间让主机开始新的引导加载操作。如果等待时间过短,主机可能还无法可靠启动通信。如果等待时间过长,产品的整体启动时间就会太长。与引导加载新应用时避免设备重启的解决方案类似,这个时序问题可通过让应用调用引导加载器进行解决。

为了确保目标系统无错误,我们可用多应用引导加载器在闪存中存储多个应用镜像。如果引导加载器检测到某个应用镜像被损坏,那么引导加载器能跳到另一个应用镜像。能够保存的应用数量取决于目标系统的闪存大小。

此外,引导加载器中还可包含简单的调试功能,可用UART接口和Tera Term等终端仿真程序实现,从而在PC上显示调试信息。调试信息还能用相同的蓝牙到串行调试器无线发送。

定制引导加载器主机工具:

不同微控制器可直接使用标准的引导加载器主机工具应用,无需对SPP的无线引导加载进行任何修改。然而,引导加载器主机工具可以进行定制,从而更好地满足无线引导加载需求,并嵌入终端仿真器窗口,以查看调试信息,甚至能通过SPP无线发送具体数据来从应用中调用引导加载器。图3显示了具有嵌入式终端仿真器窗口的定制引导加载器主机工具应用实例。为充分利用终端仿真器,引导加载到目标系统的任何新应用都必须包含UART接口,并能在主机向目标系统发送具体数据时调用引导加载器。UART接口可在引导加载器和应用之间共享。

图3:具有嵌入式终端仿真器窗口的定制引导加载器主机工具应用实例。

如果采用稍微复杂的多应用引导加载器设计,我们也能利用SPP从主机向目标系统无线发送不同消息,从而在闪存中切换存储的多个应用,这就能节约新应用引导加载所需的时间。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京,2024年5月7日——负责监管蓝牙技术的行业协会蓝牙技术联盟(Bluetooth Special Interest Group,SIG)发布年度报告《2024年蓝牙市场最新资讯》。该报告介绍了蓝牙技术在各个行业和市...

关键字: 蓝牙 物联网 智能家居

专设LPWAN、Matter、蓝牙和Wi-Fi四大主题中文培训,助力开发人员将物联网创新提升到新的水平

关键字: LPWAN Matter 蓝牙

蓝牙技术,以其独特的名字和广泛的影响力,已经成为现代生活中不可或缺的一部分,它改变了我们连接设备的方式,极大地促进了各种电子设备间的无线通信。然而,“蓝牙”这一名称并非随意而定,而是深深植根于欧洲的历史之中,背后蕴含着深...

关键字: 蓝牙 Bluetooth

CEM102 模拟前端(AFE)为生物化学、空气质量、气体和有害化学物质的测量提供超高精度和超低功耗

关键字: 电化学传感器 蓝牙

在德国纽伦堡举行的嵌入式世界展览会上,R&S将在 R&S CMW500 宽带无线通信测试仪上进行该技术演示。蓝牙® 信道探测功能将为消费者和商业应用带来前所未有的定位精度。支持芯片和设备研发的信号测量功能是业界翘首以盼的...

关键字: 蓝牙 无线通信 芯片

2024年3月14日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 即日起开售Laird Connectivity的Sera NX040超宽带 (UWB)...

关键字: IoT UWB 蓝牙

该环境物联网研究报告预测了物联网的发展演变和市场增长趋势

关键字: 物联网 蓝牙

RivieraWaves 蓝牙5.4 IP 结合 SKAIChips 自主研发射频/电源/模拟/AI 专业技术,以实现最低功耗,对于ESL 和相关工业应用至关重要

关键字: 蓝牙 AI 集成电路

2024年2月19日 – 专注于推动行业创新的知名新品引入 (NPI) 代理商™贸泽电子 (Mouser Electronics) 即日起供应Qorvo的QPG6105DK Matter™和蓝牙开发套件。借助QPG610...

关键字: IoT设备 蓝牙 物联网

Holtek新推出HT32F67575 Arm® Cortex®双内核(M33 & M0+)低功耗蓝牙MCU,通过蓝牙技术联盟(Bluetooth SIG) BT5.3认证,具备超低功耗的接收器,在1Mbps的数...

关键字: MCU 接收器 蓝牙
关闭
关闭