描述
STR91xFAxxx:高性能ARM966E - S微控制器的深度剖析
在当今的电子设计领域,微控制器扮演着至关重要的角色。今天,我们将深入探讨ST公司推出的STR91xFAxxx系列微控制器,它融合了强大的ARM966E - S内核和丰富的外设,为众多应用场景提供了理想的解决方案。
文件下载:STR910FAW32X6.pdf
一、产品概述
STR91xFA系列微控制器以16/32位ARM966E - S RISC处理器核心为基础,搭配双银行闪存、大容量SRAM以及丰富的外设,适用于销售点终端、工业自动化、安全监控、自动售货机、通信网关、串行协议转换和医疗设备等多种应用。其ARM966E - S核心支持单周期DSP指令,在语音处理、音频算法和低端成像等方面表现出色。
1.1 产品型号与配置
该系列有多种型号可供选择,不同型号在闪存容量、RAM大小、外设和封装形式上有所差异。例如,STR910FAM32配备256KB + 32KB闪存和64KB RAM,采用LQFP80封装;而STR912FAW46则拥有1024KB + 128KB闪存和96KB RAM,采用LQFP128封装。具体的型号配置可参考文档中的设备摘要表格。
二、功能特性
2.1 ARM966E - S CPU核心
- 哈佛架构:该核心采用哈佛架构,具有独立的指令和数据内存接口,允许CPU通过两个紧密耦合的内存(TCM)接口同时获取指令和读写数据,从而简化了CPU的加载和存储操作,减少了每条指令的周期数。
- 5级流水线:采用5级流水线设计,增加了操作并行性,充分发挥每个时钟周期的性能。
- DSP指令扩展:支持10种DSP增强指令扩展,包括单周期执行32x16乘法累加、饱和加法/减法和前导零计数等。
- 代码兼容性:与32位ARM7代码和16位Thumb代码二进制兼容。
2.2 突发闪存内存接口
- 高性能架构:突发闪存内存接口集成到ARM966E - S核心的指令TCM(I - TCM)路径中,同时还包含一个8指令预取队列(PFQ)和一个15项分支缓存(BC),使核心在直接从闪存内存执行代码时能够达到高达96 MIPS的性能。
- 预取队列(PFQ):当CPU核心通过I - TCM访问顺序指令时,PFQ会提前预取指令,利用因可变长度指令产生的空闲总线周期,以高达96 MHz的速率从突发闪存内存中每次获取32位数据。
- 分支缓存(BC):在指令地址不连续(如程序分支情况)时,PFQ需要刷新和重新加载,若没有BC,CPU会出现停顿。BC包含最近使用的最多15个分支地址以及每个分支相关的前8条指令,通过快速检查所有15个BC条目是否匹配分支地址(缓存命中),若命中则迅速提供指令,减少CPU停顿。此外,还有一个专门用于向量中断控制器(VIC)的第16个分支缓存条目,可进一步减少中断延迟。
- 文字管理:STR91xFA的ARM966E - S核心实现了特殊电路,当程序流中遇到文字(数据常量)时,可防止PFQ刷新,以保持最大性能。
2.3 SRAM
- 单周期数据访问:32位宽的SRAM位于CPU的数据TCM(D - TCM)接口上,提供单周期数据访问。D - TCM与高级高性能总线(AHB)共享SRAM访问,通过简单的仲裁逻辑控制,允许AHB上的DMA单元也能访问SRAM。
- 仲裁机制:当D - TCM或AHB只有一个请求SRAM时,可实现零等待状态访问。当两者同时请求时,采用交错方式授予访问权,确保双方都不会被饿死。当两者都不请求时,仲裁器将访问权授予最近的用户。
- 电池备份:当电池连接到指定的电池备份引脚(VBATT)时,主数字电源(VDD和VDDQ)的工作电压丢失或低于LVD阈值时,SRAM内容会自动保存。如果需要,固件可以禁用自动切换到SRAM,使电池仅为RTC供电,而不为SRAM供电。
2.4 DMA数据移动
- 独立数据路径:高级高性能总线(AHB)上的DMA通道充分利用哈佛架构提供的独立数据路径,快速移动数据,且在很大程度上独立于指令路径。
- DMA单元:有两个DMA单元,一个专门用于在以太网接口和SRAM之间移动数据,另一个DMA单元有8个可编程通道和14个请求信号,用于服务其他外设和接口(如USB、SSP、ADC、UART、定时器、EMI和外部请求引脚)。支持单字和突发DMA传输,除了内存 - 外设传输外,还支持内存 - 内存传输。
- 仲裁与管理:DMA对SRAM的访问与D - TCM访问共享,仲裁机制如前文所述。高效的DMA传输由固件使用链表描述符表进行管理,16个DMA请求信号中有两个分配给外部输入,DMA单元可以通过EMI总线在外部设备和STR91xFA内部资源之间移动数据。
2.5 非易失性存储器
- 双闪存设计:有两个独立的32位宽突发闪存存储器,支持真正的读 - 写操作。闪存存储器采用单电压擦除/编程,数据保留时间至少为20年,擦除周期至少为100K次。主闪存比次闪存大得多。
- 主闪存:可通过STR91xFA设备配置软件工具和第三方集成开发环境指定主闪存为CPU复位时的默认启动内存,也可指定次闪存为默认启动内存。主闪存具有等长的64KB字节扇区,不同设备类型的扇区数量不同。
- 次闪存:可用于实现引导加载程序,能够存储代码以对主闪存进行强大的应用内编程(IAP)。CPU可以从次闪存执行代码,同时更新主闪存中的代码。新代码可以通过STR91xFA上的任何接口(如USB、以太网、CAN、UART等)下载。此外,次闪存还可以通过固件模拟EEPROM来存储小数据集,提高数据安全级别。
- 编程方式:两个闪存存储器都可以使用JTAG系统内编程(ISP)通道独立于CPU进行代码和/或数据编程,这对于迭代代码开发和制造非常有用。
2.6 一次性可编程(OTP)内存
- 用途:有32字节的OTP内存,非常适合存储序列号、安全密钥、工厂校准常数或其他永久数据常量。
- 编程与锁定:这些OTP数据字节只能通过JTAG接口或CPU进行一次编程,之后无法更改。可以通过JTAG接口或CPU设置“锁定位”,阻止对该OTP区域的进一步写入,“锁定位”本身也是一次性可编程的。
2.7 向量中断控制器(VIC)
- 中断管理:STR91xFA的中断管理通过级联两个标准ARM VIC单元实现,这个组合VIC有32个优先级中断请求通道,并向CPU生成两个中断输出信号:FIQ和IRQ,其中FIQ优先级更高。
- FIQ处理:FIQ是唯一的非向量中断,CPU可以直接执行中断服务程序(ISR),无需确定/优先级中断源,从而最小化ISR延迟。通常只有一个中断源被分配给FIQ,FIQ中断有自己的一组银行寄存器,以最小化上下文切换时间。任何32个中断请求输入信号都可以分配给FIQ。
- IRQ处理:IRQ是向量中断,是进入32个IRQ通道的所有32个中断请求信号的逻辑或。单个向量中断请求的优先级由硬件确定(IRQ通道Intr 0优先级最高,IRQ通道Intr 31优先级最低)。在同一VIC(主VIC或次VIC)内,CPU固件可以重新分配单个中断源到单个硬件IRQ通道,从而有效改变中断优先级。VIC0(主VIC)中断的优先级总是高于VIC1(次VIC)中断。当IRQ信号被中断请求激活时,VIC硬件将解析IRQ中断优先级,然后ISR读取VIC以确定中断源和向量地址,跳转到服务代码。STR91xFA通过在指令分支缓存中添加第16个条目(专门用于中断),将从VIC读取中断向量地址所需的内存访问次数从两次减少到一次,从而减少IRQ中断的ISR响应时间。
- 中断源:进入VIC的32个中断请求信号来自各种源,其中5个来自唤醒单元,其余27个来自STR91xFA的内部源,如片上外设。唤醒单元生成的5个中断请求之一(表6中的IRQ25)是唤醒单元所有32个输入的逻辑或,这些输入可用于唤醒CPU并引发中断。其余4个中断请求(表6中的IRQ26)由8个中断源分组产生,允许单个引脚直接分配给向量IRQ中断或非向量FIQ中断。
三、时钟、复位和电源管理
3.1 时钟管理
- 内部振荡器:内部振荡器与外部4 - 25 MHz晶体配合工作。
- 内部PLL:内部PLL可将时钟频率提升至96 MHz。
- 实时时钟(RTC):提供日历功能、篡改检测和唤醒功能。
3.2 复位管理
- 复位监控器:监控电源电压、看门狗、唤醒单元和外部复位。
- 欠压监控:检测电源电压下降情况。
3.3 电源管理
- 运行模式:正常工作模式。
- 空闲模式:降低功耗,CPU停止执行指令,但保持外设运行。
- 睡眠模式:功耗最低,可低至50 μA,唤醒后可快速恢复工作。
四、通信接口
4.1 以太网MAC接口
- 支持10/100以太网MAC:带有DMA和MII接口,可实现高速以太网通信。
4.2 USB接口
- USB全速(12 Mbps)从设备:支持DMA传输,可实现与外部设备的高速数据交换。
4.3 CAN接口
- CAN 2.0B活动接口:可用于工业控制等领域的通信。
4.4 UART接口
- 3个16550风格的UART:支持IrDA协议,可用于串行通信。
4.5 I2C接口
- 2个快速I2C接口:速率可达400 kHz,用于与其他I2C设备通信。
4.6 SPI/SSI/MICROWIRE接口
五、其他特性
5.1 外部存储器接口(EMI)
- 支持8位或16位数据,最多24位寻址:可连接外部存储器,扩展系统的存储容量。
5.2 标准定时器(TIM)
- 4个16位定时器:每个定时器具有2个输入捕获、2个输出比较、PWM和脉冲计数模式,可用于定时、计数和PWM控制等应用。
5.3 三相感应电机控制器(IMC)
5.4 JTAG接口
5.5 嵌入式跟踪模块(ARM ETM9)
- 可用于芯片的调试和性能分析:帮助工程师快速定位问题。
六、总结
STR91xFAxxx系列微控制器凭借其强大的ARM966E - S核心、丰富的外设和灵活的配置选项,为电子工程师提供了一个高性能、低功耗的解决方案。无论是在工业自动化、通信、医疗设备还是其他领域,都能发挥出其独特的优势。在实际设计中,工程师可以根据具体的应用需求选择合适的型号和配置,充分利用其各种特性,实现高效、稳定的系统设计。
你在使用这款微控制器时遇到过哪些问题呢?欢迎在评论区分享你的经验和见解。
打开APP阅读更多精彩内容