CLA 2 类是一款独立、完全可编程的 32 位浮点数学处理器,为 C28x 系列实现了并发控制环路执行。CLA 的低中断延迟使其能够“及时”读取 ADC 样本。这显著降低了 ADC 采样到输出延迟,从而实现了更快的系统响应和更高频率的控制环路。通过利用 CLA 为时间关键型控制环路提供服务,可腾出主 CPU 来执行其他系统任务,如通信和诊断。
控制律加速器通过添加并行处理来扩展 C28x CPU 的功能。CLA 处理的时间关键控制环路可实现低 ADC 采样输出延迟。因此,CLA 支持更快速的系统响应和可高频率的控制环路。将 CLA 用于时间关键型任务可释放主 CPU 以同时执行其他系统和通信功能。
以下是 CLA 主要特性的列表。
- 可使用 C 语言编译器进行 CLA 软件开发。
- 时钟速率与主 CPU 一致 (SYSCLKOUT)。
- 一个独立的架构使得 CLA 能够独立于主 C28x CPU 之外执行算法。
- 完整的总线架构:
- 程序地址总线 (PAB) 和程序数据总线 (PDB)
- 数据读取地址总线 (DRAB)、数据读取数据总线 (DRDB)、数据写入地址总线 (DWAB) 和数据写入数据总线 (DWDB)
- 独立的 8 级流水线
- 16 位程序计数器 (MPC)
- 四个 32 位结果寄存器(MR0 至 MR3)
- 两个 16 位辅助寄存器(MAR0、MAR1)
- 状态寄存器 (MSTF)
- 指令集包括:
- IEEE 单精度(32 位)浮点数学运算
- 涉及并行载入或者存储的浮点数学
- 涉及并行加法或者减法的浮点乘法
- 1/X 和 1/sqrt(X) 估值
- 数据类型转换
- 条件分支指令和调用
- 数据载入/存储操作
- CLA 程序代码可包含多达 8 个任务或中断处理例程,或者 7 个任务和一个主后台任务。
- 每一个任务的起始地址由 MVECT 寄存器指定。
- 只要任务适合可配置的 CLA 程序内存空间,任务大小就没有限制。
- 每次处理并完成一个任务。无任务嵌套。
- 任务完成时,在 PIE 内标志一个任务专用中断。
- 当一个任务结束时,下一个具有最高优先级的等待任务自动开始。
- 2 类 CLA 可以有一个在后台连续运行的主任务,而其他高优先级事件则触发前台任务。
- 任务触发机制:
- 借助于 IACK 指令的 C28x CPU
- 任务 1 到任务 8:最多 256 个可能的触发源,来自连接到共享总线的外设,CLA 在共享总线上承担二级所有权
- 任务 8 可以设置为后台任务,而任务 1 至 7 采用外设触发。
- 内存和共用外设:
- 两个专用消息 RAM 用于 CLA 和主 CPU 间的通信。
- 两个专用消息 RAM 用于 CLA 和 DMA 间的通信。
- C28x CPU 能够将 CLA 程序和数据存储器映射到主 CPU 空间或者 CLA 空间。
图 8-4 显示了 CLA 功能方框图。