CLA 2 类是一款独立、完全可编程的 32 位浮点数学处理器,为 C28x 系列实现了并发控制环路执行。CLA 的低中断延迟使其能够“及时”读取 ADC 样本。这显著降低了 ADC 采样到输出延迟,从而实现了更快的系统响应和更高 MHz 的控制环路。通过利用 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 间的通信。
- C28x CPU 能够将 CLA 程序和数据内存映射到主 CPU 空间或者 CLA 空间。
- 两个专用消息 RAM 用于 CLA 和 DMA 间的通信