C2000Ware 支持用于不同处理类别的多个库。以下各节中详细介绍了这些库。下图显示了库的目录结构。

../_images/C2000WareLib.png

DSP 库

为了使用户能够优化其实时控制应用程序的性能,同时将 DSP 功能集成到相关系统中,C2000Ware 提供了多个经过优化的 DSP 库。

以下库是 DSP Lib 的一部分:

  1. 定点 DSP 软件库 – 一组 C28x 汇编优化的定点 DSP 函数(例如 16 位和 32 位实数和复数 FFT、32 位 FIR 和 IIR 滤波器)。提供了汇编源文件、基准测试信息以及快速入门的示例。

  2. FPU DSP 软件库 – 一组为 C2000 器件编写的汇编优化浮点 DSP 函数,包含单精度浮点单元 (FPU)、带三角函数加速器的 FPU(TMU 0 类)或双精度 FPU (FPU64)。支持的函数包括单精度和双精度实数和复数 FFT、FIR 和 IIR 滤波器、矢量数学运算以及单精度快速平方根数学函数。提供了汇编源文件、基准测试信息以及快速入门的示例。

  3. Viterbi、Complex Math、CRC 库 – 一组专门为包含 VCU 加速器的器件编写的汇编优化定点 DSP 函数。这些函数包括实数和复数 FFT、CRC、Viterbi 解码、Reed-Solomon 解码和反交错。请注意,在较新的器件上,VCU 加速器被替换为仅包含 CRC 功能的加速器,因此被称为 VCRC。提供了汇编源文件、基准测试信息以及快速入门的示例。

数学库

与上面提供的 DSP 函数相似,通过优化的数学库支持专注于数学的运算。

以下库是 Math Lib 的一部分:

  1. CLA 数学库 – 一组用于包含 CLA 的器件的汇编优化浮点数学函数。这些函数包括单精度三角函数和密集数学运算,例如除法、平方根(和倒数)、对数(和倒数,即指数)。提供了汇编源文件、基准测试信息以及快速入门的示例。

  2. 快速整数除法 – TI C28x 编译器支持在 HWINTDIV 上执行的 C 可调用内在函数,HWINTDIV 是一种加速器,支持用以执行快速 16 位、32 位和 64 位定点整数除法的专用指令。提供了内在函数使用示例,但还请注意,调用加速器支持指令的其他方法包括使用标准除法运算符以及标准库函数。

  3. FPUFastRTS 库 – 一组为 C2000 器件编写的汇编优化浮点数学函数,包含单精度浮点单元 (FPU)、带三角函数加速器的 FPU(TMU 0 类)或双精度 FPU (FPU64)。支持的函数包括单精度和双精度三角函数和密集数学运算,例如除法、平方根(和倒数)、对数(和倒数,即指数)。其中一些是 C 标准原生支持的函数(并在 TI 编译器提供的 RTS 库中实现),而有些则不是。在这两种情况下,该库都能以更快的速度实现各自的数学函数,但以牺牲准确性为代价。提供了汇编源文件、基准测试信息以及快速入门的示例。

  4. IQMath 库 – 一组经过汇编优化的定点数学函数,供 C/C++ 程序员将浮点算法无缝移植到定点器件上的定点代码中。通过使用户能够在定点器件上编写“类浮点”代码,IQMath 库在用户看来就像一个虚拟浮点引擎。这使编写代码变得容易(避免了涉及跟踪比例的困难型定点代码开发)。此外,执行速度会比使用标准 ANSI C 语言编写等效代码更快。另一个好处是,用 IQMath 编写的代码可以无缝(通过宏开关)从定点器件(算法的定点版本运行的地方)移植到浮点器件(算法的原生浮点版本运行的位置)。提供了快速入门的示例。

数字控制库

数字控制库 (DCL) 是一个包含 200 多个函数的套件,可在 C2000 上实现高性能闭环控制。该库可应用于使用 C2000 的任何闭环控制应用,包括数字电源、电机控制、运动控制和光伏逆变器。DCL 函数支持定点 C28x、FPU、FPU64 和 CLA。该库包含两个组件:控制器和实用程序。

控制器包括线性 PID、PI、双积分 PI 和直接补偿器,例如 2 极、2 零型。该库还包含非线性 PID 和 PI 控制器,可提供卓越的瞬态性能。每个控制器都由函数提供支持,可安全地加载和更新参数。还包括用以从极零点描述加载控制器参数的函数。

实用程序包括数据记录器、瞬态捕捉模块和信号钳。数据记录器使用户能够方便地捕捉控制回路中的重要信号,例如回路错误或控制工作。瞬态捕捉模块是一个触发数据记录器,它可以捕捉瞬态事件,例如阶跃响应及其之前的状态。瞬态响应数据可以使用库中的三个性能指标函数之一进行分级。钳位在必须管理环路饱和以避免积分器饱和的情况下很有用。

DCL 函数完全以源代码的形式提供。大多数时间关键型控制器都采用内联 C 和任一汇编语言进行编码,以实现出色效率和确定性。该库还包括一组说明如何应用控制器的代码示例、一个小型 Simulink 模型块集、一个库用户手册和一个 PID 调优指南。

数字控制库可以在 C2000Ware 安装程序的 /libraries/control 子目录中找到。数字控制库 - 培训系列页面上提供了有关 DCL 的一系列培训视频。

介绍控制理论的技术研讨会(由 4 部分组成)可在 C2000 MCU 技术讲座页面上找到。

加密库

加密是一组算法,用于保护计算机系统、通信设备和物联网器件中的静态和传输中数据。加密已成为现代计算机/电子系统中不可或缺的信息保护工具。C2KWare 中原有的 AES 库现在已重命名为加密库,可以在 /libraries/security 中找到。加密库支持算法 - AES 和 SHA256。该库还提供了使用所支持的不同 Crypto API 的示例。

高级加密标准 (AES) 算法支持电码本 (ECB)、密码分组链接 (CBC)、计数器模式 (CTR)、基于密码的消息身份验证代码 (CMAC) 模式。AES CMAC 模式具体可用于保证数据完整性,其他模式可用于数据机密性。算法的空间优化和速度优化实现适用于所有模式。AES 当前支持 128 位和 256 位的密钥大小。

安全哈希算法 (SHA) 是一种加密哈希函数。它将任意大小的数据映射到固定大小的位数组。这是单向函数,即实际上不能进行反向或逆向推算。其部分应用包括验证消息的完整性、签名生成和验证、密码验证等。加密库提供了对 SHA256 算法的支持。

C2000_Crypto_Library_User_Guide(在 /libraries/security/crypto/c28/docs 中)提供了面向不同算法所支持的应用程序编程接口 (API) 的更多信息。该用户指南还提供了 API 的基准测试信息。