购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 STM32F103XX的内部结构

在STM32系列ARM处理器中,包含了一个支持JTAG仿真的Cortex-M3处理器、与片内的存储控制器接口的局部总线、与中断控制器接口的高性能总线AHB(Advanced HighPerformance Bus)和连接片内外设功能的VLSI外设总线VPB(VLSI Peripheral Bus),且AHB与VPB通过桥相连。

STM32F103XX芯片中其他的外设功能,除了中断控制器DMA以外,其余都连接到了VPB总线上。

表3.2 STM32F103XX系列处理器引脚功能的定义

续表

续表

续表

续表

3.3.1 STM32F103XX芯片总体结构

通常情况下,STM32F103XX系列处理器的系统主要包括以下几部分。

(1)4个驱动单元:分别为Cortex-M3内核指令总线I-bus、数据总线D-bus,以及系统总线S-bus。除此之外,还包含了一个通用DMA,即GP-DMA。

(2)3个被动单元:分别为内部SRAM、内部闪存存储器,以及AHB到APB桥。该桥主要用来连接所有的APB设备。

STM32F103XX系列处理器的总体结构如图3.2所示。内部总线和两条APB总线将片上系统和外部设备资源紧密连接起来,其中内部总线是主系统总线,连接了CPU、存储器和系统时钟信号灯。APB1总线连接高速外设,APB2总线连接系统外设和中断控制。

在STM32F103XX系列处理器中,通用数字输入/输出IO端口最多包括了PA、PB、PC、PD、PE、PF和PG这7个16位的端口。其他外设接口引脚都是通过与数字I/O端口的引脚功能复用实现的。在表3.2中的A、F即表示功能复用引脚。

图3.2 STM32F103XX系列处理器的总体结构框图

3.3.2 STM32F103XX片上Flash程序存储器

在STM32F103XX系列处理器上集成了Flash存储器系统。该存储器可以作为程序代码或者数据的存储。需要说明的是,对Flash存储器的编程可以通过以下几种方式来实现:

(1)通过内置串行JTAG接口;

(2)通过在线系统编程ISP(In System Programming),即USART0通信接口;

(3)通过应用编程IAP(In Application Programming)。

在ARM处理器中,如果用户使用应用编程的方式进行程序下载和擦除时,可以在程序运行的同时对Flash进行擦除或编程,这样就为数据存储和现场固件的升级带来了比较大的灵活性。

3.3.3 STM32F103XX片内静态RAM

不同型号的STM32F103XX系列处理器内都集成了不同大小的静态RAM,可以用作程序代码和数据变量的存储。需要说明的是,SRAM可以分别支持8位、16位和32位的数据访问。

以SRAM中一字节寻址的存储器为例,对存储器进行字和半字访问时将忽略地址对准,访问被选址的自然对准值。通常而言,对存储器进行字访问时将忽略地址位0和1,进行半字访问时则将忽略地址位0。因此,有效的读写操作要求半字数据访问的地址线0被置为0,即ADDR&0xFFFFFFFE,字数据访问的地址线0和地址线1都必须全被设置为0,即ADDR&0xFFFFFFFC。

SRAM控制器包含了一个回写缓冲区,主要用于防止CPU在连续写数据操作时发生异常。一般而言,写缓冲区总是保存接收到的最后一个字节的数据。该数据只有在特定请求回写指令的条件下才可以重新写入SRAM。

在ARM处理器发生复位时,实际SRAM中的内容并不能真实反映最近的一次写数据操作,这是在复位后检查SRAM的时候必须要注意的。同理,通过对一个存储单元执行两次相同的写操作可以保证复位后数据的写入,或者也可以通过在进入空闲或者掉电模式前进行虚写操作(Dummy Write)来保证最后的数据在复位后被真正写入SRAM。 E9yCkZL0B6ItOPRAE7NZTxSfAdF0YcWYcHxJUKLKxOj0Lrq6OYPjovv2Ih8r10oO

点击中间区域
呼出菜单
上一章
目录
下一章
×