专家分析 蓝牙引导加载程序运行全过程

2015-05-29 09:44 来源:电源网 作者:柚子

使用蓝牙进行文件的配置引导,是国内工程师在无线条件下升级程序的主要方式。那么,这种方法是怎样实现引导加载程序正常运行的呢?就让我们跟随专家老师的分析,来看一下无线条件下程序加载和升级的全过程。

引导加载是一个公国标准通信接口来升级嵌入式系统固件的过程。主机可以是具有引导加载程序主机应用程序工具或其他微控制器的电脑。引导加载程序是通电或系统重置后要执行的第一个代码。

预编程到微控制器的引导装载程序与主机通信,以获得新的应用程序图像并将其写入微控制器的内部闪存。引导加载操作成功之后,微控制器开始执行新的应用固件。如果新的应用程序未被主机接收,微控制器中的引导加载程序会执行现有的应用程序。

应用程序固件图像的格式取决于所使用的微控制器。例如,一个PSoC控制器使用cyacd(应用程序代码和数据)作为可引导加载应用程序的格式。通过使用标准的蓝牙到串行适配器,在支持UART引导程序的目标上,可以使用无线方式执行相同的无线加载操作。

基本的引导加载操作是相同的,只不过无线引导加载使用的是蓝牙到串行适配器。然而,虚拟串行连接必须建立在主机和目标之间,通过蓝牙无线发送应用图像。

SPP定义了如何设置虚拟串行端口,以及如何连接两个拥有蓝牙功能的设备。之后,它可以让这些设备执行RS-232(或类似的)串口线仿真。被该配置文件覆盖的脚本用蓝牙代替电缆,通过虚拟串口抽象化来处理旧有应用程序。使用SPP,所连接的设备可以发送和接收数据,就好像在它们之间有Rx和Tx线连接一样。

基频、LMP和L2CAP是OSI(开发互联系统)第1层和2个蓝牙协议。RFCOMM是一个基于欧洲电信标准协会ETSI07.10规程的串行线性仿真协议。SDP是蓝牙服务发现协议,它允许蓝牙设备发现其他蓝牙设备所提供的服务及其相关参数。

在使用SPP无线引导加载的情况下,应用程序运行在两方,一方是在PC上的主机自举程序或者是在主机微控制器上的UART接口和目标系统上的UART引导加载程序。

标准蓝牙到串行适配器,如Bluefruit EZ-Link模块或JY-MCU模块,可以与任何具有蓝牙功能的电脑进行配对,并出现串行COM端口。在蓝牙模块与计算机配对后,在设备管理器列表中会出现两个串行COM端口。这是因为蓝牙串口是基于RFCOMM的,它与物理串口不同,在建立蓝牙串行连接时,它既需要服务器,也需要客户端。

在设备管理器中列出的两个端口,一个是入站端口,也就是大家经常说的服务器;一个是出站口,即客户端。但是,一旦通过其中任何一个端口建立了连接,它就会变成双向的。出站端口用于PC发起与蓝牙模块的连接时,而入站端口用于蓝牙模块启动连接的时候。目标系统的无线引导加载必须使用出站端口,因为PC是主机,必须用来启动与蓝牙模块的连接。

蓝牙模块必须连接到UART端口,运行UART引导加载程序。例如,在关掉USB串行部分,用无线方式引导加载PSoC4后,蓝牙模块必须连接到CY8CKIT-049的PSoC4原型工具包。

蓝牙模块的波特率应该与目标系统引导加载程序的波特率相匹配。大多数蓝牙模块支持AT命令配置模块的波特率,通常是使用USB-UART桥接器或是具有UART接口的微控制器。在PSoC4原型基板的USB串行设备部分,也可用AT命令配置蓝牙模块的波特率。之后,主机自举程序工具就可以使用蓝牙虚拟串口以无线方式进行引导加载操作。

如果引导加载程序是另一个微控制器,使用一个额外的蓝牙到串口适配器连接到主机微控制器的UART接口,这样仍然能够实现无线引导加载。对于不支持蓝牙的PC,标准USB蓝牙软件保护器可以用来与蓝牙模块建立连接。

成功引导加载之后,目标系统将开始执行新的应用程序。如果另一个新的应用程序需要被引导加载,那么目标系统必须重置,再一次启动引导加载程序。这可以通过应用程序调用引导加载程序来避免。被引导加载应用程序可以响应某些外部事件,例如按下按钮或从主机接收到特定数据的命令,并重新开始引导加载操作,把新的应用程序上载到目标系统。

结语

在使用蓝牙无线引导加载程序的过程中,工程师需注意的一点事,在建立连接时要保障蓝牙设备与服务器和客户端两个端口的同步接通,必要情况下可以使用USB蓝牙保护器进行对接。

加载程序 蓝牙协议 蓝牙串口

相关阅读

暂无数据

一周热门