跳转到主要内容

STM32

stm32之SysTick的理解(NVIC)

judy /

<strong>1、SysTick的介绍</strong>

SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。

Cortex‐M3处理器内部包含了一个简单的定时器。因为所有的CM3芯片都带有这个定时器,软件在不同 CM3器件间的移植工作得以化简。该定时器的时钟源可以是内部时钟(FCLK,CM3上的自由运行时钟),或者是外部时钟( CM3处理器上的STCLK信号)。不过,STCLK的具体来源则由芯片设计者决定,因此不同产品之间的时钟频率可能会大不相同,你需要检视芯片的器件手册来决定选择什么作为时钟源。

意法半导体推出STM32扩展软件,简化物联网终端安全功能部署

judy /

通过在一个简便的STM32Cube扩展软件包内整合安全启动、安全固件更新和安全引擎服务,意法半导体的X-CUBE-SBSFU v.2.0能帮助产品开发人员充分利用STM32 *微控制器的安全功能保护物联网终端等联网设备的数据安全、管理生命周期。

通过在微控制器上建立可信根,X-CUBE-SBSFU安全启动可使知识产权得到保护,将启动安全检查并激活STM32的内置安全机制,而且每次执行用户应用程序前均会检查代码的真实性和完整性,以防止无效或恶意代码运行。当远程连接网络时,可信设备将按照公认的最佳安全实践参与身份互验。

固件安全更新功能解决了固件的安全加载和编程问题,有助于设备终身管理,并利用修补程序、功能升级和安全更新应对最新的网络威胁。安全加载程序支持多种业界认可的数字签名(ECDSA或AES方法)和密码加密(AES-GCM)算法,可以接收和验证加密的固件映像并解密,以及检查代码的完整性。安全编程功能同时支持单双映像更新与双映像更新。单映像更新可最大限度提高用户要写入的应用代码量。双映像更新能提供更高的更新灵活度,支持固件映像安装和空中下载(OTA)过程中的防回滚功能。

此外,X-CUBE-SBSFU安全引擎服务为密钥等关键数据存储和加密算法执行提供了一个受保护的环境,为物联网和联网设备提供了一套完整的安全服务。

意法半导体发布免费的安全设计套装软件,加快基于STM32的IEC 61508安全关键应用认证

judy /

&nbsp; • &nbsp;业界首款免费的功能安全设计套件,可降低基于STM32的安全关键应用的设计复杂性和IEC 61508安全认证成本

&nbsp; • &nbsp;意法半导体原创安全文档和经过第三方认证的X-CUBE-STL软件自检库(STL),提供在STM32上设计并认证达到IEC 61508安全完整性等级(SIL3)的系统所需的全部功能

&nbsp; • &nbsp;适用于STM32F0微控制器的初版套件将在2018/2019期间扩充到STM32的其它产品系列

意法半导体针对其已取得巨大成功的STM32*微控制器发布了新的开发软件套件,助力科技公司以更快捷、更经济的方式设计更安全的应用。

工业控制、机器人、传感器、医疗或运输设备必须取得业界认可的安全标准IEC 61508的安全完整性等级(SIL)2级或3级证书。针对这些领域基于STM32的设备设计人员,意法半导体发布了一款能够简化系统开发和认证的STM32 SIL 功能性安全设计套件。

stm32之中断配置

judy /

<strong>一、stm32的中断和异常</strong>

Cortex拥有强大的异常响应系统,它能够打断当前代码执行流程事件分为异常和中断,它们用一个表管理起来,编号为0~15为内核异常,16以上的为外部中断,这个表就是中断向量表。而stm32对这个表重新进行了编排,把编号从-3~6定义为系统异常,编号为负的内核异常不能设置优先级,从编号为7为外部中断,这些中断的优先级可自行进行设置。我们一般在starup_stm32f10x_hd.s中查找中断向量,而且在编写中断函数时也要在这个文件里查找中断服务函数的函数名。如下图所示:
<center><img width="600" src="http://mcu.eetrend.com/files/2018-05/wen_zhang_/100011473-40530-6.png&q…; alt="stm32之中断配置"></center>

stm32之串口通信DMA传输完成中断

judy /

<strong>一、DMA功能简介</strong>

首先唠叨一下DMA的基本概念,DMA的出现大大减轻了CPU的工作量。在硬件系统中,主要由CPU(内核)、外设、内存(SRAM)、总线等结构组成,数据经常要在内存和外设之间,外设和外设之间转移。例如:CPU需要处理从外设采集回来的数据,CPU需要先将数据从ADC外设的寄存器读取到内存中(变量)去,然后进行运算处理,这是一般的解决方法。CPU的资源是非常宝贵的,我们可以设法把转移的工作交给其他部件来完成,CPU把更多的资源用于数据运算和中断响应上,如此DMA便登场了。DMA正是为CPU分担数据转移工作,因为DMA的存在,CPU才被解放出来,它可以在数据转移的同时进行数据运算,相应中断,大大提高了效率。

stm32之CMSIS标准、库目录、GPIO

judy /

<strong>一、CMSIS标准</strong>

ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU。该内核是ARM公司设计的一种处理器体系架构。内核与外设的关系就像PC上的CPU与硬盘、主板、内存等的关系一样。

基于cortex系列的处理器内核都是一样的,区别在于除内核以外的外设的差异,由于这些差异,导致不同处理器移植起来比较麻烦,所以ARM与芯片厂商建立了CMSIS标准,CMSIS架构如下所示:
<center><img src="http://mcu.eetrend.com/files/2018-05/wen_zhang_/100011388-40212-ko.png&…; alt="stm32之CMSIS标准、库目录、GPIO"></center>

关于STM32单片机的IAP实现

judy /

<strong>一、基础概念</strong>

什么是IAP?IAP即在应用中编程(In-Application Programming IAP),简单的说就像是一个用户自定义的升级程序。实际上,STM32单片机的程序烧写有多种方法,可以用JTAG,也可用串口通过ISP软件烧写新程序。

JTAG的方式需要专用的烧写工具,在产品布置到现场后,更新产品程序比较麻烦,而通过串口的ISP软件升级方法可以直接使用常见的串口线升级程序,十分方便,这种方法用的是ISP。ISP可以说是单片机默认的bootloader,

正常情况下,单片机系统启动后,会直接从用户程序执行,而升级程序时,单片机会进入bootloader,在ISP中一直运行。ISP虽然方便了升级,但是还是没法解决用户自定义和远程升级的问题。对于用户来说,有时候可能需要在单片机

flash不同地址烧写多个应用程序,用于根据不同条件启动不同应用程序;有时候,产品分布到全国各地,去所有现场升级程序明显不理智,解决方法是将升级程序放到服务器上,发送远程升级指令,设备进入IAP升级程序,从远程

获取升级应用程序,实现在线升级。

<strong>二、IAP实现</strong>

1.硬件

STM32 DAC的配置与使用

judy /

STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的DAC。DAC 可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合使用。DAC工作在 12 位模式时,数据可以设置成左对齐或右对齐。DAC 模块有 2 个输出通道,每个通道都有单独的转换器。在双DAC 模式下,2 个通道可以独立地进行转换,也可以同时进行转换并同步地更新 2 个通道的输出。DAC 可以通过引脚输入参考电压 VREF+以获得更精确的转换结果。

STM32 的 DAC 模块主要特点有:

① 2 个 DAC 转换器:每个转换器对应 1 个输出通道

② 8 位或者 12 位单调输出

③ 12 位模式下数据左对齐或者右对齐

④ 同步更新功能

⑤ 噪声波形生成

⑥ 三角波形生成

⑦ 双 DAC 通道同时或者分别转换

⑧ 每个通道都有 DMA 功能

使用库函数的方法来设置 DAC 模块的通道 1 来输出模拟电压,其详细设置步骤如下:

1)开启 PA 口时钟,设置 PA4 为模拟输入。

stm32之SPI通信协议

judy /

SPI (Serial Peripheral interface),顾名思义就是串行外围设备接口。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间

SPI内部简明结构图

<center><img src="http://mcu.eetrend.com/files/2018-04/wen_zhang_/100011132-39224-1.png&q…; alt="stm32之SPI通信协议"></center>