中国必须建立自己的认知智能大模型!人大代表刘庆峰提出6条关键路径
06-18
引导加载程序支持产品固件的现场更新。
引导加载程序可以使用通用通信接口(例如 UART、I2C、SPI 或 USB)更新固件,并且引导加载程序主机和目标之间通常使用有线连接。
此引导加载操作可以借助蓝牙至串行适配器以无线方式完成。
如果目标位于难以物理访问的位置,或者目标位于密封设备内,则这种无线连接特别有用。
使用引导加载程序的第一步是配置产品,以便引导加载程序(而不是应用程序)执行它。
一旦引导加载程序运行,主机就会通过通信通道发送“启动引导加载”命令。
如果引导加载程序响应“OK”,则引导加载开始。
在引导加载期间,主机读取新的应用程序文件,将其解析为闪存写入命令,并将该命令发送到引导加载程序。
发送整个文件后,引导加载程序会确认文件完整性并将控制发送到新应用程序。
使用蓝牙转串口适配器的无线引导加载过程适用于任何支持 UART 引导加载程序的目标,无需对目标设备上运行的主机或引导加载程序进行蓝牙串行端口配置文件 (SPP) 的任何修改固件。
蓝牙配置文件是蓝牙核心规范上的附加协议,指定蓝牙设备的一般行为,可用于支持蓝牙设备与具有相同配置文件的其他设备进行通信。
SPP 基于用于模拟 RS 串行端口的射频通信 (RFCOMM) 协议,该协议定义了如何在两个设备之间设置虚拟串行端口以及如何使用蓝牙互连。
具有蓝牙功能的PC可以连接到目标端蓝牙串行适配器并执行引导加载操作。
通过向目标设备上当前运行的应用程序发送串行命令,可以无线触发引导加载程序命令。
引导加载程序 引导加载过程通过标准通信接口更新嵌入式系统的固件。
主机可以是带有引导加载程序主机实用程序的 PC,也可以是另一个微控制器。
引导加载程序是上电或系统重置后将执行的第一行代码。
引导加载程序被预编程到微控制器中,与主机通信,并获取新的应用程序映像,并将其写入微控制器的内部闪存。
成功引导加载操作后,微控制器开始执行新的应用程序固件。
如果没有从主机接收到新的应用程序,引导加载程序将执行微控制器中的现有应用程序。
应用程序固件映像的格式取决于所使用的微控制器。
例如,PSoC 控制器使用 .cyacd(应用程序代码和数据)作为引导加载应用程序的格式。
使用标准蓝牙转串口适配器,我们可以在支持 UART 引导加载程序的目标设备上无线执行相同的引导加载操作。
在使用蓝牙转串行适配器进行无线引导加载的情况下,基本引导加载操作保持不变。
然而,我们需要在主机和目标设备之间建立虚拟串行连接,以通过蓝牙无线发送应用程序映像。
SPP 定义了如何设置虚拟串行端口以及两个蓝牙设备的互连,随后允许设备模拟 RS(或类似)串行电缆。
该配置文件涵盖了支持遗留应用程序的场景,其中蓝牙使用虚拟串行端口抽象来替代电缆连接。
通过 SPP,互连设备可以像互连 RX 和 TX 线路一样发送和接收数据。
图 1 显示了 SPP 中使用的协议和实体。
Baseband、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 接口。
例如,蓝牙模块可以连接到 CY8CKIT-PSoC 4 原型开发套件,同时在关闭电路板的 USB 转串口部分的情况下无线引导加载 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模块的需求,并将其用于无线引导加载。
Bootloader设计注意事项: 一个健壮可靠的Bootloader应该能够检测、报告和有效处理无线Bootloader过程中出现的错误,例如传输过程中的丢包、数据损坏、闪存写入错误等闪存错误检查可以通过存储应用程序的校验和或循环冗余码 (CRC) 来执行。
引导加载操作开始后,该位被清除。
如果应用程序下载并安装成功,它将被更新。
例如,如果在引导加载期间断电,则在重新引导时,引导加载程序应检测无效的检查位,并且不允许部分加载的应用程序获得控制权,而是等待主机启动新的引导加载操作。
一旦新应用程序实现引导加载,引导加载程序必须确认引导加载映像是否有效并允许新应用程序获得控制权。
引导加载程序还应该能够检查闪存中自己的映像以查看其是否有效。
另一个重要的考虑因素是避免应用程序覆盖引导加载程序本身。
如果引导加载程序损坏或被应用程序覆盖,系统将无法工作,并且系统的引导加载程序将需要重新编程。
为了避免这种情况,必须保护闪存的引导加载程序区域,以避免引导加载程序代码被意外覆盖。
引导加载程序设计中的另一个重要考虑因素是何时开始与主机通信。
在确认应用程序有效后,引导加载程序可以等待一段时间,以便主机开始新的引导加载操作。
如果等待时间太短,主机可能还无法可靠地发起通信。
如果等待时间太长,产品的整体上市时间就会太长。
与引导加载新应用程序时避免设备重新启动的解决方案类似,可以通过让应用程序调用引导加载程序来解决此计时问题。
为了确保目标系统没有错误,我们可以使用多应用引导加载程序将多个应用程序映像存储在闪存中。
如果引导加载程序检测到应用程序映像已损坏,则引导加载程序可以跳转到另一个应用程序映像。

可保存的应用程序数量取决于目标系统的闪存大小。
此外,引导加载程序中还可以包含简单的调试功能,可以通过UART接口和Tera Term等终端仿真程序来实现,以在PC上显示调试信息。
还可以使用相同的蓝牙到串行调试器以无线方式发送调试信息。
定制Bootloader主机工具: 不同的微控制器可以使用标准的Bootloader主机工具直接应用,无需对SPP的无线Bootload进行任何修改。
然而,引导加载程序主机工具可以进行定制,以更好地满足无线引导加载需求,并嵌入终端仿真器窗口来查看调试信息,甚至通过 SPP 无线发送特定数据以从应用程序调用引导加载程序。
图 3 显示了带有嵌入式终端仿真器窗口的自定义引导加载程序主机工具应用程序的示例。
为了充分利用终端仿真器,引导加载到目标系统的任何新应用程序都必须包含 UART 接口,并且能够在主机向目标系统发送特定数据时调用引导加载程序。
UART 接口可以在引导加载程序和应用程序之间共享。
图 3:带有嵌入式终端仿真器窗口的自定义引导加载程序主机工具应用示例。
如果采用稍微复杂的多应用Bootloader设计,我们还可以利用SPP从主机向目标系统无线发送不同的消息,以在闪存中存储的多个应用之间进行切换,这样可以节省花费的时间引导加载新应用程序。
所需的时间。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-17
06-18
06-21
06-18
最新文章
PCBA质检员的日常工作内容
美国法院裁定VoIP不属于电信服务,需征税
雷达嵌入式工控主板如何使用?工控主板故障分析
摩托罗拉在西班牙促销Z8手机
中宇买下了一台三星机型,品牌和规模是合作的主要原因
舰载军用加固计算机热设计
谷歌开始对仍由HTC生产的谷歌手机进行内部测试
英国EE分享LTE发展经验教训,面临终端-语音-回传三大挑战