您的位置 首页 数字

使用蓝牙串行端口配置文件(SPP)完成无线引导加载

引导加载器支持产品固件的现场更新。引导加载器可使用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从主机向方针体系无线发送不同音讯,然后在闪存中切换存储的多个运用,这就能节省新运用引导加载所需的时刻。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/296639.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部