STM32双核板的应用设计与ISP的从机软件升级

2015-07-02 00:17綦声波刘英男王圣南刘群
单片机与嵌入式系统应用 2015年6期
关键词:双核上位总线

綦声波,刘英男,王圣南,刘群

(中国海洋大学 工程学院,青岛266100)



STM32双核板的应用设计与ISP的从机软件升级

綦声波,刘英男,王圣南,刘群

(中国海洋大学 工程学院,青岛266100)

针对单片机应用设计中的资源不足、可靠性差和软件升级问题,设计了一款基于Cortex-M3内核的双核板。该双核板在不增加开发难度的情况下使单片机资源翻倍;通过两个MCU之间的任务合理分工和相互监督,提高了整体系统的可靠性;利用CAN总线完成主机与上位机的通信和升级程序的下载,并通过控制引脚实现基于ISP功能的从机软件升级。

STM32;双核板;CAN;软件升级

引 言

在单片机的应用设计中,常常会遇到如下问题:其一,某一熟悉类型的单片机功能可用,性价比也很好,但限于某种内部资源(如串口数、A/D路数等)不足,不得不选用更高档或不太熟悉的单片机,造成资源的浪费和开发周期的延长。其二,在海洋远程监测等重要领域,对控制器的可靠性要求较高,而单片机存在死机的可能性,即使可以通过配备看门狗来避免这种情况,但这种“粗暴”的复位方式并不合理(首先,复位打乱了正常的数据采集和处理工作,导致重要数据丢失;其次,即便能记录下复位时间和次数,但复位原因和复位前状态等信息无法侦测,一些本该解决的BUG被掩盖,导致频繁复位)。其三,由于开发周期不足或测试不充分,导致设备投入运行后出现故障,而这些故障往往通过软件升级的方式可以解决,但由于设备的应用场所比较特殊(如水下),导致软件升级的成本很高[1]。

针对上述3种情况,在实际的项目应用中设计了基于STM32的双核板,较好地解决了资源不足、稳定性差和基于CAN总线的远程升级等问题,具有性价比高、开发周期短等优点。

1 双核板设计

STM32系列单片机具有高性能Cortex-M3内核和外设,功耗低,集成度高,性价比高。另外,ST公司还提供了外设的标准库函数,屏蔽了底层硬件细节,能够使开发人员轻松完成产品的开发,缩短系统开发时间[2]。正因为如此,STM32系列单片机得到了开发者的青睐,其应用领域和客户群不断扩大。其中的STM32F107属于互联型系列,具有以太网和CAN总线接口,在数据通信方面具有独特的优势。一种基于STM32F107的双核板如图1所示。

图1 双核板结构图

图2 A-CORE和M-CORE的状态转换图

图1中,两个STM32F107最小系统模块分别称为A-CORE和M-CORE,A-CORE具有外看门狗,为主机模块;M-CORE不具有外看门狗,但其RST/BOOT0引脚受A-CORE的控制,可以通过串口实现ISP总线升级,为从机模块。由于A-CORE和M-CORE均具有电源系统、复位电路和下载接口等调试所需的基本要素,因此可以预先焊接和调试好。在具体项目的开发应用中,将双核板作为一个独立的元件嵌入,一些软件可以提前验证和编写,大大缩短了产品的开发周期。

在正常工作时,主从机两个模块独立工作,两者通过SPI总线相互通信。SPI接口传输速率可达到18 Mbps,比I2C和UART通信要快得多。由于采用双核,通用I/O引脚显著增多,不仅可以完成更加复杂的设计,而且降低了布局布线的难度。对于熟悉STM32的开发者来说,开发难度基本不变,而可使用的资源却几乎成倍增加。

在该双核板的设计中,还考虑了A-CORE对M-CORE的在线升级问题。图1中M-CORE的RST、BOOT0两个引脚受A-CORE控制,来实现M-CORE的复位和复位地址选择;而ISP-AT-MR和ISP-AR-MT两个引脚则是作为USART接口,实现对M-CORE的ISP升级。

2 可靠性设计

在本文的应用中,A-CORE和M-CORE分工合作。A-CORE主要完成系统的管理工作,如人机交互、数据存储、通信等;M-CORE主要完成信息采集、外部设备控制等功能,这样设计的优点是功能分明、负荷分担。负责采集控制的M-CORE可以集中精力完成数据采集和辅助的控制工作;而负责管理的A-CORE除了完成人机交互、数据存储和通信外,还需要定期发起与M-CORE的通信,以保证相互监督。

M-CORE收到A-CORE的指令后,会将当前的工作状态报告给A-CORE,再由A-CORE通过CAN总线等手段上传给更高层的通信主机。如果A-CORE发现M-CORE不能正常回复信息,则说明M-CORE处于不正常状态,必要时可实现对M-CORE的“危机干预”。例如,在连续多次均不能正常通信的情况下,可以认为M-CORE已处于死机状态,A-CORE将复位M-CORE。A-CORE和M-CORE的状态转换图如图2所示。

显然,这种双核结构和定时通信机制,可以使每个MCU知道对方的工作情况。虽然在结构上分出了A-CORE和M-CORE,但由于每个MCU都有CAN总线与通信主机相连,因此每个MCU都可以单独通向主机汇报工作状态,汇报的内容都可以通过CAN总线接收到,因此起到了相互监督的作用。

3 基于CAN总线的软件升级

具备远程软件升级的设备具有更广泛的适用性,可以在设备安装到位后,通过软件升级在线修复一些问题,不但节省人力物力,也可以使设备的功能逐步完善[3]。

双核板具有CAN总线,该总线不但是数据交换的通道,也是软件升级的通道。上位机可以通过CAN总线将需要升级的程序代码下传到A-CORE,A-CORE控制M-CORE的RST/BOOT0引脚,使M-CORE复位并进入ISP状态,从而完成在线升级。由此可见,要实现基于CAN总线的在线软件升级,需要3个条件:一是待升级系统M-CORE本身具有ISP功能,能通过串口实现程序的下载;二是A-CORE本身集成CAN总线,可通过CAN总线接收上位机发送的待升级程序代码;三是A-CORE可以控制M-CORE的RST/BOOT0引脚,完成在线升级。

3.1 STM32的ISP升级

ISP(In-System Programming)方式相对于传统的并行编程方式有了极大的进步,无需将单片机从电路板上卸下就可进行编程。STM32系列芯片复位时,可以通过BOOT1和BOOT0的逻辑电平来决定系统的启动模式,见表1所列。

表1 STM32启动模式配置

系统复位时,CPU根据这两个引脚的逻辑电平把相应模式的起始地址映射到启动空间(0x 0000 0000)。在启动延迟之后,CPU从位于0x0开始的启动存储区执行代码[4]。由于实际应用中很少从内嵌SRAM中启动,故可将BOOT1引脚直接设置为低电平,只通过判断BOOT0引脚的高低电平来选择从用户闪存或系统存储器中启动。若复位时BOOT0的逻辑电平为高,则复位后从系统存储器启动,可通过USART1与Bootloader进行通信。

STM32芯片具有开放式的在线烧录ISP协议,允许第三方根据该协议编写ISP下载软件,对STM32芯片进行FLASH的更新操作。在进行ISP方式升级时,先发送0x7F实现自动波特率匹配,能够识别最高115 200 bps的串口波特率。如果正确回应0x79,表示命令执行正常。握手正确后,就可以通过ISP命令实现对STM32的ISP操作,完成FLASH的擦除和编程。

3.2 FLASH分区存储

STM32F107片内集成256 KB FLASH和64 KB SRAM,FLASH由主存储块(Main Block) 和信息块( Information Block) 组成。主存储块用于存放用户程序,每页2 KB,共128页,容量为32K×64位,地址范围为0x 0800 0000~0x 0803 FFFF;信息块容量为2 360×64位,分为启动程序代码和用户选择字节[5]。启动程序代码从 0x 1FFF B000~0x 1FFF F7FF,共18 KB,用户选择字节从0x 1FFF F800~0x 1FFF F80F,共16字节。

A-CORE的FLASH存储器分区如图3所示。

图3 A-CORE的FLASH存储器分区

0x0800 0000~0x0800 1FFF,共8 KB空间,为Bootloader代码空间。

0x0800 2000~0x0801 FFFF,为120 KB空间,存放A-CORE自身程序。

0x0802 0000~0x0803 FFFF,为128 KB空间,存放M-CORE应用程序。

上述空间分配,虽然升级程序的空间受到了限制,但在大多数情况下是可行的,因为A-CORE和M-CORE任务分担,其本身的程序量均不足总FLASH容量的一半。如果出现了空间不足的现象,完全可以换用更大容量的MCU。

3.3 软件升级流程

要完成A-CORE对M-CORE的软件升级,其过程可以分为两个阶段:基于CAN总线的数据传输和基于USART的ISP过程。

(1) 基于CAN总线的数据传输

当M-CORE需要更新用户程序时,上位机将编译成功的M-CORE升级程序的HEX文件通过CAN总线发送到A-CORE。上位机先发送升级指令,A-CORE接收到升级指令后,将FLASH中M-CORE升级程序区(0x 0800 2000~0x 0801 FFFF)擦除,擦除成功后回复上位机,若回复错误信息,则退出升级;上位机接收到回复后,按行发送HEX文件内容,A-CORE接收到数据后,依次写入A-CORE的M-CORE升级程序区(0x 0800 2000~0x 0801 FFFF)中,接收完毕后向上位机发送写入完毕指令[6]。

(2) 基于USART的ISP过程

当A-CORE接收到上位机发送的升级执行指令后,升级流程如下:

① 置M-CORE的BOOT0引脚为高电平,然后置RST引脚为低电平,复位M-CORE,使其从系统的内存模式启动,然后将RST引脚拉高。

② A-CORE向M-CORE发送0x7F,M-CORE接收该数据,并根据该数据与A-CORE自动匹配波特率,进行回复。若回复0x79,则表示可以进行相关擦除和写FLASH操作了,若回复 0x1F,则升级失败。

③ A-CORE收到正确的应答,则发送0x44+0xBB,根据程序大小擦除FLASH,根据 STM32F107内部固有的Bootloader串口协议,擦除完成后回复A-CORE。

④ A-CORE等待接收M-CORE的回复,收到正确的应答之后,发送0x31+0xCE,把存储到A-CORE FLASH中的M-CORE升级程序区的内容写到M-CORE的相应FLASH中,一次写256个字节,直到把所有的用户程序写入用户存储区。

⑤ A-CORE控制BOOT0引脚,并控制RST为低电平,对M-CORE进行硬件复位,M-CORE重新初始化程序,从而运行刚刚更新的用户程序。

软件升级交互流程如图4所示。

图4 软件升级流程图

结 语

[1] 张萌.基于ISP/IAP和CAN总线的远程升级系统研制[D].青岛:中国海洋大学,2013.

[2] 鲍玉龙.基于STM32的双处理器牙花加工控制系统设计与实现[D].杭州:杭州电子科技大学, 2012.

[3] 周天兵,刘国忠.单片机程序远程升级技术[J].仪表技术,2011(9):25-31.

[4] 张舞杰,南亦民.基于STM32F103VB的应用编程技术的实现[J].计算机应用,2009,29(10):2820-2822.

[5] 罗成娥,任海强.基于CAN总线的在线升级系统设计与实现[J].数字通信,2013,40(6):28-32.

[6] 江斌,黎明.基于CAN的远程下载技术开发及应用[J].微计算机信息,2010,26(9-2):80-82.

綦声波(副教授),主要研究方向为嵌入式系统、智能仪器仪表、海洋装备。

Altera加入工业互联网联盟

Altera公司宣布加入工业互联网联盟(Industrial Internet Consortium,IIC),这一行业协作组织旨在促进物联网(IoT)全球生态系统的发展。特别指出的是,Altera与联盟成员在技术发展路线图上一起工作,开发工业互联网,在这一智能设备和传感器网络上,数据通过不同的互联协议进行交换,增强了多种终端市场应用的性能。这一智能连接网络可支持企业开发“智能”的新业务应用,对资产和业务进行优化、简化,或者自动化现有流程。

工业互联网联盟执行总监Richard Soley博士表示:“IIC一直处于工业IoT创新和技术开发的最前沿。我们非常高兴Altera能够加入IIC,发挥其在FPGA和SoC解决方案方面的优势,开发更加灵活和安全的IoT系统。”

Application Design of STM32 Dual-core Board and Slave CoreSoftware Upgrade of ISP

Qi Shengbo,Liu Yingnan,Wang Shengnan,Liu Qun

(College of Engineering,Ocean University of China,Qingdao 266100,China)

Aiming at the application problems of MCU such as the lack of resources,poor reliability and the software upgrade,a dual-core board based on Cortex-M3 kernel is designed in this paper.The dual-core board almost doubles the MCU resources without increasing the difficulty of development,and it improves the reliability of the whole system through the rational burden division and mutual supervision between two MCUs.Upgrading program can be transmitted between the master core and the upper monitor by CAN bus.The slave core software upgrade based on ISP is realized through controlling pin.

STM32;dual-core board;CAN bus;software upgrade

TP212.6

A

士然

2014-12-23)

猜你喜欢
双核上位总线
全球金融“F20”在此召开!横沥进入“双核”时代
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
新型夹心双核配和物[Zn2(ABTC)(phen)2(H2O)6·2H2O]的合成及其荧光性能
以新思路促推现代农业上位
CAN总线并发通信时下位机应用软件设计
多通道ARINC429总线检查仪