XS1-A6A-64-FB96:高性能32位多核微控制器的深度剖析
在嵌入式系统设计领域,选择一款合适的微控制器至关重要。今天咱们就来深入探讨一下 XS1-A6A-64-FB96 这款 32 位多核微控制器,看看它有哪些独特之处。
1. 核心特性概览
1.1 多核架构优势
XS1-A6A-64-FB96 属于 XS1-A 系列,它将 xCORE 架构的低延迟和时序确定性引入到主流嵌入式应用中。与传统微控制器不同,它能同时执行多个实时任务,并通过高速网络在任务间进行通信。这意味着咱们可以用软件实现传统上需要专用硬件的功能,大大提高了设计的灵活性。
1.2 具体特性亮点
- 逻辑核心:拥有六个实时逻辑核心,共享高达 500 MIPS 的处理能力。每个逻辑核心都有 16x32 位专用寄存器,159 条高密度 16/32 位指令(除除法外均为单时钟周期执行),还有 32x32→64 位 MAC 指令,可用于 DSP、算术和用户自定义加密功能。
- 模拟数字转换:配备 12 位 1MSPS 4 通道 SAR 模数转换器,能满足多种模拟信号采集需求。
- 电源管理:包含 1 个 LDO、2 个 DC - DC 转换器和电源管理单元,还有看门狗定时器,保障系统的稳定运行。
- 时钟与振荡器:具备片上时钟/振荡器,包括晶体振荡器、20MHz/31kHz 硅振荡器,可根据不同需求选择合适的时钟源。
- 可编程 I/O:有 42 个通用 I/O 引脚,可配置为输入或输出,支持多种端口组合,如 16 个 1 位端口、6 个 4 位端口等,还具备 2 个 xCONNECT 链接,端口采样率最高可达 60 MHz。
- 内存:64KB 内部单周期 SRAM 用于代码和数据存储,8KB 内部 OTP 用于应用启动代码,还有 128 字节深度睡眠内存。
- 硬件资源:包含 6 个时钟块、10 个定时器和 4 个锁,为系统提供丰富的硬件支持。
- 安全特性:编程锁可禁用调试并防止读取内存内容,AES 引导加载程序确保外部闪存内存中 IP 的保密性。
- 工作温度范围:有商业级(0 °C 至 70 °C)和工业级( - 40 °C 至 85 °C)两种规格可选。
- 速度等级:提供 5(500 MIPS)和 4(400 MIPS)两种速度等级。
- 功耗:典型功耗在 500 MHz 时为 300 mW,睡眠模式下为 500 µW。采用 96 引脚 FBGA 封装,间距为 0.8 mm。
2. 硬件资源详解
2.1 逻辑核心
逻辑核心是处理器的关键部分。XS1-A6A-64-FB96 有 6 个活动逻辑核心,指令通过共享的四级流水线发出。当最多四个逻辑核心活动时,每个核心分配四分之一的处理周期;当超过四个核心活动时,每个核心至少分配 1/n 个周期(n 为核心数量)。不过,由于核心可能在 I/O 操作时延迟,其未使用的处理周期可被其他核心占用,所以实际性能可能高于预测的最小值,但无法保证。逻辑核心由事件触发而非中断,并且会运行到完成,还可以暂停等待事件。
2.2 xTIME 调度器
xTIME 调度器负责处理 xCORE 瓷砖资源(如通道端、定时器和 I/O 引脚)产生的事件。它确保所有事件得到服务和同步,无需 RTOS。I/O 引脚产生的事件由硬件响应端口处理,并直接馈送到相应的 xCORE 瓷砖。xCORE 瓷砖还可以选择等待指定时间过去,或等待通道上有数据可用。由于每个任务在自己的逻辑 xCORE 上运行,所以不需要对任务进行优先级排序,也可以使用协作式多任务在单个核心上共享一组低优先级任务。
2.3 硬件响应端口
硬件响应端口将 xCORE 瓷砖连接到一个或多个物理引脚,定义了连接到 XS1-A6A-64-FB96 的硬件与运行在其上的软件之间的接口。提供 1 位、4 位、8 位、16 位和 32 位端口的组合,端口的所有引脚要么提供输出,要么提供输入,不同方向的信号不能映射到同一端口。端口逻辑可以驱动引脚高或低,也可以采样引脚的值,还可以选择等待特定条件。端口通过专用指令访问,这些指令在单个处理器周期内执行。数据通过包含 SERDES 和传输寄存器的 FIFO 在引脚和核心之间传输,每个端口有一个 16 位计数器,可用于控制数据在端口值和传输寄存器之间传输的时间。
2.4 时钟块
xCORE 设备包含一组可编程时钟,称为时钟块,可用于控制端口执行的速率。每个 xCORE 瓷砖有六个时钟块,第一个时钟块提供瓷砖参考时钟,默认频率为 100MHz,其余时钟块可以设置为不同的频率。时钟块可以使用 1 位端口作为其时钟源,允许使用外部应用时钟来驱动输入和输出接口。在许多情况下,I/O 信号伴随着选通信号,xCORE 端口可以输入和解释外部源产生的选通信号,并生成选通信号来伴随输出数据。
2.5 通道和通道端
逻辑核心通过在两个通道端之间形成的点对点连接进行通信。通道端是 xCORE 瓷砖上的资源,由程序分配。每个通道端有一个唯一的系统范围标识符,由唯一编号和其瓷砖标识符组成。数据通过输出指令传输到通道端,另一端执行输入指令。数据可以在通道端之间同步或异步传递。
2.6 xCONNECT 开关和链接
XMOS 设备提供可扩展架构,多个 xCORE 设备可以连接在一起形成一个系统。每个 xCORE 设备有一个 xCONNECT 互连,为系统中各种 xCORE 瓷砖上运行的所有任务提供通信基础设施。互连依赖于一组开关和 XMOS 链接,每个 xCORE 设备有一个片上开关,可以设置电路或路由数据,开关通过 xConnect 链接连接。XMOS 链接提供两个开关之间的物理连接,开关有一个路由算法,支持多种拓扑结构,包括线、网格、树和超立方体。链接可以在每个方向 2 根线或每个方向 5 根线的模式下运行,可有效支持电路交换、流和分组交换数据。
3. 时钟与启动机制
3.1 振荡器
振荡器模块提供多种时钟源选择。它可以与外部谐振器(晶体或陶瓷)一起提供实时计数器和 xCORE 瓷砖的时钟源,设计师可以选择合适频率和精度的外部谐振器。也有 20 MHz 硅振荡器,可使设备在无需外部晶体的情况下启动和执行代码,但精度不如外部晶体。还有 31,250 Hz 振荡器,可使实时计数器在设备处于低功耗模式时运行。振荡器可以通过封装引脚、一组外围寄存器和数字节点控制寄存器进行控制。
3.2 PLL
PLL 用于根据低速外部振荡器创建高速处理器时钟。PLL 乘法值通过两个 MODE 引脚选择,也可以通过软件更改以加快瓷砖速度或降低功耗。MODE 引脚在系统复位解除后必须保持静态值。如果需要不同的瓷砖频率,必须在启动后重新编程 PLL 以提供所需的瓷砖频率。
3.3 启动过程
设备通过将 RST_N 拉低来保持复位状态。当释放 RST_N 使设备退出复位时,处理器开始内部复位过程。大约 750,000 个输入时钟后,所有 GPIO 引脚启用内部上拉电阻,处理器以取决于 MODE0 和 MODE1 的时钟速度启动。处理器启动过程根据 MODE[3:2] 控制启动源,有从 SPI 主设备、xConnect 链接或 OTP 启动等多种方式。
4. 内存管理
4.1 OTP
xCORE 瓷砖集成了 8 KB 一次性可编程(OTP)内存以及一个安全寄存器,用于配置系统范围的安全功能。OTP 以四个扇区存储数据,每个扇区包含 512 行 32 位数据,可用于实现安全引导加载程序和存储加密密钥。安全寄存器的数据在电源开启时从 OTP 加载,OTP 中的所有额外数据被复制到 SRAM 并首先在处理器上执行。OTP 内存通过三个特殊 I/O 端口编程。
4.2 SRAM
xCORE 瓷砖集成了一个 64KB 的 SRAM 库,用于指令和数据存储。所有内部内存为 32 位宽,指令为 16 位或 32 位,支持字节(8 位)、半字(16 位)或字(32 位)访问,并在一个瓷砖时钟周期内执行。虽然没有专用的外部内存接口,但可以通过适当使用端口扩展数据内存。
4.3 深度睡眠内存
XS1-A6A-64-FB96 设备包含 128 字节的深度睡眠内存,用于在睡眠模式下存储状态。深度睡眠内存是易失性的,如果设备输入电源被移除,数据将丢失。
5. 模拟数字转换
设备配备 12 位 1MSample/秒的逐次逼近寄存器(SAR)模数转换器(ADC),有 4 个输入引脚,通过 ADC_SAMPLE 引脚控制采样。采样由写入端口或外部驱动引脚触发,每个启用的模拟输入在采样引脚的连续上升沿依次采样。数据传输到用户在 ADC 初始化期间配置的通道端,可单个数据包或包含多个连续样本的数据包传输。ADC 使用外部参考电压(标称 3V3),ADC 配置寄存器在附录 F 中有详细记录。
6. 电源管理与监控
6.1 电源供应
XS1-A6A-64-FB96 设备可以由外部 5V 核心和 3.3V I/O 电源供电,也可以由单个 3.3V 电源供电。设备包含两个 DC - DC 降压转换器,可配置为接受 3.3 - 5V 电源输入,并输出模拟外设和数字节点所需的电路电压(标称 1.8V 和 1.0V)。
6.2 电源模式控制
设备在电源开启和关闭过程中会经历多个状态。在 ASLEEP 状态下设备静止,在 AWAKE 状态下运行,其他状态允许在 AWAKE 和 ASLEEP 之间进行受控转换。从 AWAKE 状态到 ASLEEP 状态的转换通过写入通用控制寄存器启动,睡眠请求只能在 AWAKE 状态下发出。从 ASLEEP 状态到 AWAKE 状态的转换由输入或定时器触发的唤醒请求启动,设备仅在 ASLEEP 状态下响应唤醒刺激。
6.3 深度睡眠模式和实时计数器
设备正常工作模式为 AWAKE 模式,为了节省电源,可以进入深度睡眠模式(ASLEEP),此时数字节点和大多数外设断电。设备将保持在 ASLEEP 模式,直到满足外部引脚状态改变或实时计数器达到设定值等条件。实时计数器在芯片唤醒时对振荡器的时钟滴答数进行计数,睡眠时可自动切换到 31,250 Hz 硅振荡器以节省电源。设计师需要在睡眠和唤醒时的时钟精度、成本和深度睡眠功耗之间进行权衡。
6.4 睡眠模式要求
在睡眠模式下,设备仍需通过 VSUP 提供 3V3 或 5V0 电源,通过 VDDIO 提供 3V3 电源,但功耗会降低。为了获得最佳效果,应关闭 XTAL 偏置和 XTAL 振荡器,配置睡眠寄存器以禁用除 DCDC2 外的所有电源,将所有电源设置为 PFM 模式,屏蔽时钟,断言复位,确保所有 GPIO 和 JTAG 引脚静止,不驱动上拉或下拉。
7. JTAG 调试
JTAG 模块可用于加载程序、边界扫描测试、在线源级调试和编程 OTP 内存。JTAG 链结构包括调试 TAP、边界扫描 TAP 和处理器 TAP,分别用于访问外设、进行 I/O 引脚的边界扫描以及访问 xCORE 瓷砖、开关和 OTP 以加载代码和调试。JTAG 模块可以通过将 TMS 保持高电平五个时钟周期来复位。DEBUG_N 引脚用于同步多个处理器的调试,可在输出和输入模式下操作。
8. 板级集成要点
8.1 电源布局
XS1-A6A-64-FB96 设备的 DC - DC 转换器输入引脚需要合适的陶瓷电容,输出引脚需要 LC 滤波器。电源供应必须单调上升,输入电压不得超过规格。VDDIO 供应需要一个 100nF X5R 或 X7R 陶瓷去耦电容,ADC 使用时需要在 AVDD 引脚附近放置一个 100nF X5R 或 X7R 陶瓷去耦电容,必要时可使用额外的 10uF 去耦电容和铁氧体磁珠去除电源噪声。
8.2 晶振布局
晶体振荡器的 XI / XO 节点需要仔细布线,这些节点高阻抗且对噪声敏感,走线应尽可能宽且短,并在连续的接地平面上布线,避免靠近嘈杂的电源线或时钟。
8.3 焊盘和焊膏
封装为 96 引脚球栅阵列封装,间距为 0.8mm,球径为 0.4mm。焊盘宽度和间距应允许使用标准设计规则应用阻焊层,以减少焊锡短路。建议在每个接地球旁边设置过孔到 PCB 的接地平面,以实现低电感接地连接和良好的热性能。
8.4 湿度敏感性
XMOS 设备像所有半导体设备一样,容易吸收水分。所有 XMOS 设备的湿度敏感性等级为 MSL 3,从封装中取出后,在回流焊前有 168 小时的保质期,前提是存储温度低于 30°C 且相对湿度低于 60%。如果设备超过这些值或湿度指示卡显示水分过多,则在使用前应进行适当烘烤。
9. 设计检查清单
9.1 原理图设计检查
- 时钟:确保 MODE0 和 MODE1 引脚设置正确,OSC_EXT_N 引脚连接正确,使用振荡器时确保其为 1V8 振荡器。
- USB ULPI 模式:如果使用 ULPI,确保 ULPI 信号连接到特定端口,并且内部使用的端口未连接。
- 启动:确保设备连接到 SPI 闪存进行启动,或通过 OTP 或 JTAG 启动,选择的 SPI 闪存应受 xflash 支持。
- JTAG、XScope 和调试:决定是否需要 XSYS 头,如果包含 XSYS 头,确保连接正确;如果不包含,需要设计一种方法来编程 SPI 闪存或 OTP。
- GPIO:确保没有将输入和输出映射到同一多位端口。
- 多设备设计:如果设计包含多个 XMOS 设备,确保一个设备连接到 SPI 闪存进行启动,从链接启动的设备设置正确,包含 XSYS 头时,为相关引脚添加缓冲器。
9.2 PCB 布局设计检查
- 接地球和接地平面:确保每个接地球有一个过孔,减少接地球周围的非接地过孔,以创建良好的接地平面。
- 电源供应去耦:确保 VSUP、1V0 和 1V8 去耦电容靠近相应引脚,所有 PGND 网络在连接到主接地平面之前连接在一起。
10. 总结
XS1-A6A-64-FB96 是一款功能强大、性能卓越的 32 位多核微控制器,在多核架构、硬件资源、时钟与启动机制、内存管理、模拟数字转换、电源管理等方面都有出色的表现。在实际设计中,我们需要根据具体需求合理选择和配置各项功能,同时严格遵循设计检查清单,确保设计的可靠性和稳定性。大家在使用这款微控制器的过程中,有没有遇到什么特别的问题或者有什么独特的应用经验呢?欢迎在评论区分享交流。
-
嵌入式系统
+关注
关注
41文章
3830浏览量
133889 -
多核微控制器
+关注
关注
0文章
10浏览量
6164
发布评论请先 登录
XS1-A6A-64-FB96:高性能32位多核微控制器的深度剖析
评论