7.7.图形工具

CCS 中提供了一种高级图形和图像可视化工具。该工具能够以各种图形类型(振幅 X 时间、FFT 等)显示数据数组。数据数组以各种格式(数据路径大小、精度、符号、Q 值)存储在器件的存储器中。

提供了以下类型的图形:

  • Single Time。单曲线图,在“Y”轴中绘制数组值,在“X”轴中绘制数组索引(样本计数)。
  • Dual Time。双曲线图,在同一视图中绘制两个单曲线图。
  • FFT Magnitude。单曲线图,通过对数据数组执行快速傅里叶变换来计算频域幅度。该图可以显示实数数据和复数数据。
  • FFT Magnitude & Phase。双曲线图,通过对数据数组执行快速傅里叶变换来计算频域幅度和相位。该图可以显示实数数据和复数数据。
  • FFT Complex。双曲线图,通过对两个数据数组执行快速傅里叶变换来计算频域幅度和相位。该图可以显示非交错式复数数据。
  • FFT Waterfall。多曲线图,通过对任意数量的数据数组执行快速傅里叶变换来计算频域幅度。该图可以显示实数数据和复数数据。

支持的数据格式如下:

  • 数字路径大小:8、16、32 和 64 位。
  • 单精度和双精度浮点数。
  • 有符号和无符号整数。

可以通过多种方式来更新数据:

  • Refresh。在按下该按钮时更新数据。数据仅在器件停止时更新,具体取决于器件和工作模式。

  • Continuous Refresh。以 CCS 属性定义的速率(不快于 100ms)连续更新数据。

  • Refresh on halt。在器件停止时更新数据。

  • 可以设置断点,以在到达断点时自动更新数据。

    • Update View
    • Refresh All Windows
    • Target Halt and Refresh

注意

为了使用图形,它们需要连接目标器件 - 图形不能离线使用。

在主菜单中点击 Tools → Graph,然后从图形子菜单中选择特定的图形类型。

7.7.1.工作原理

图形实用程序基本上是一个存储器查看器,它不是以原始格式显示数据,而是以 X-Y 图格式显示数据。

数据格式化和绘图完全由主机完成,但使用目标器件存储器中的数据。换而言之,图形工具不会修改目标存储器中的数据,而只会通过调试探针连接获取这些数据以更新其视图。

为了更新其视图,图形工具需要由调试停止事件(例如手动停止断点或在图形工具栏中启用 Continuous update 选项)设置的触发器。

触发器会使图形工具按顺序执行多项任务:

  • 从目标上的预定地址 Start Address 获取数据样本。
  • 执行计算和转换,根据 Graph Properties 设置的预定选项来设置数据样本的格式。
  • 在垂直轴(Y 轴)上绘制与数值匹配的每个单独的样本数据,并在水平轴(X 轴)上增加其位置。

Tools → Graph → type of graph菜单中选择该选项后,系统会打开 Graph Properties 视图。

image0

7.7.1.1.时域

打开时域图视图后,该视图包含几个相关区域:

image1

  • X axis 和 Y axis:这些是显示的数据的主要数字参考点。这些轴根据 Graph Properties 中设置的各种参数进行变化,并具有自动缩放、直流失调电压、标签、放大和缩小等功能。
  • Magnitude:每个数据样本值的数字表示。
  • Sample count(或 time):在给定时间显示的样本数或 Sampling Rate 选项设置的其等效时间。
  • Main graph area:显示图的区域。
  • Top toolbar:可以通过此处显示的各种图标访问所有控件。

7.7.1.1.1.正常时间图

正常运行时,图形按照 X 轴从左到右按水平顺序显示每个采样数据,其对应值与 Y 轴上的幅度垂直相关。

为了说明这一点,下图显示了一个包含 64 个样本的数据缓冲区,描述了正弦波的两个周期。每次更新时绘制的最大样本数由 Acquisition Buffer Size 的值定义,在本示例中该值等于 64。

image2

在第二次更新时,显示内容将替换为新传入的数据(现在显示的是三个周期的 64 个样本)。现在第二个屏幕截图显示了从 64 开始的 X 轴原点,这是由 Display Data Size 值设置的,在本例中该值也等于 64。

image3

该过程针对调试过程所需的尽可能多的更新不断重复。

7.7.1.1.2.保存历史记录

如果希望保留样本数据的历史记录,则可以将 Display Data Size 值设置为大于 Acquisition Buffer Size 值,这样便可顺序显示采样数据过去的行为。

为了说明这一点,我们截取了下面的屏幕截图,其中显示了两次样本缓冲区更新:开始的 64 个样本(通过 Acquisition Buffer Size 选项进行设置)显示从 0 值开始的缓冲区,接下来的 64 个样本显示更新后的值。Display Data Size 选项设置为 256,但还没有足够的样本来达到该限值。

image4

再次更新显示了从目标加载的另外 64 个样本,但仍未达到 Display Data Size 选项的限值。

image5

第四次更新显示了样本的整个历史记录,达到了 Display Data Size 选项的限值。

image6

第五次更新丢弃了初始缓冲区大小,并通过将 X 轴的原点设置为 Acquisition Buffer Size 值 (64) 的倍数来反映这一点。后续更新将不断增加 X 轴的原点。

image7

注意

尽管有相似之处,但不能将图形实用程序等同于高速实时示波器,因为通过调试探针达到的更新速率和断点涉及的延迟在极理想的条件下只能达到 0.1s。此外,Sampling Rate 完全是任意的,并不反映目标器件上配置的任何外设。

总之,应将该图形工具视为用于信号分析的后处理实用程序。

7.7.1.2.频域

打开一个频域图视图后,该视图包含相同的相关区域(如时域图所示),唯一的区别在于 X 轴:

\[X_{MAX} = \frac{Sampling\ Rate}{2}\]
\[X_{increment} = {Acquisition\ Buffer\ Size} \times \frac{1}{Sampling\ Rate}\]

鉴于频域图(FFT Magnitude、Complex FFT、FFT Magnitude and Phase)没有 Display Data Size 参数,因此样本历史记录不可用,需要将图更改为“Waterfall”。

为了说明这一点,下图显示了上面的时域部分中显示的同一信号的基本“FFT Magnitude”图。

image8

该图是使用相同的 Acquisition Buffer Size、一个汉明 FFT Window Function 和一个具有 5 或 32 个图块 (FFT Frame Size) 的 FFT Order 进行绘制的。此外,Sampling Rate 设置为 1HZ 以方便计算。

FFT Order 增加到 6 可提高 FFT 的精度。这允许使用鼠标光标查找频率分量的值。只需左键点击波形即可找到该特定点的振幅和频率。

image9

计算中心频率:第一个波形有两个周期,涵盖 64 个样本,产生的采样频率是基波分量的 32 倍。这在 X 轴中反映为:

\[X_{center} = 2 \times \frac{1}{Acquisition\ Buffer\ Size} ⇒ X_{center} = 0.03125\]

注意

过高的 FFT Order 可能会导致严重的混叠和幅度失真。

第二次更新显示了具有三个周期的波形,涵盖 64 个样本,产生的频率中心为 X1 = 0.046875。在该屏幕中,使用了测量标记对频率进行更精确的测量。只需右键点击主图形区域的中间并选择选项 Insert Measurement Mark

image10

第三次和第四次更新显示了较新更新的相关频率 X2 = 0.0625 和 X3 = 0.078125,测量标记还显示了各个测量之间的差异。

image11

image12

注意

尽管有相似之处,但不能将图形实用程序等同于高速频谱分析仪,因为通过调试探针达到的更新速率和断点涉及的延迟在极理想的条件下只能达到 0.1s。此外,Sampling Rate 完全是任意的,并不反映目标器件上配置的任何外设。

总之,应将该工具视为用于信号分析的后处理实用程序。

7.7.2.图形属性

7.7.2.1.适用于所有图形的属性

  • Acquisition Buffer Size
  • DSP Data Type
  • Index Increment
  • Interleaved Data Sources
  • Q Value
  • Sampling Rate HZ
  • Signal Type
  • Start Address [1]
  • Grid Style
  • Data Plot Style [2]
[1]

能够以下列形式之一显示,具体取决于图形和信号类型(即实数/复数)和数据交错

  • Start Address
  • “Start Address A”和“Start Address B”
  • Start Address Real Data
[2]不适用于 FFT Waterfall

7.7.2.2.仅适用于时域图的属性

单曲线图和双曲线图

  • Display Data Size
  • Time Display Unit
  • Use DC value for Graph
  • DC value for Graph

7.7.2.3.仅适用于频域图的属性

FFT Magnitude、FFT Magnitude & Phase、FFT Complex、FFT Waterfall

  • Frequency Display Unit
  • FFT Frame Size - 呈现给用户的只读属性;根据 FFT 阶数值进行计算。
  • FFT Order
  • FFT Window Function

7.7.2.4.仅适用于 FFT Waterfall 的属性

  • MaxY
  • Waterfall Height
  • Waterfall Frames

7.7.2.5.详细说明:

7.7.2.5.1.Acquisition Buffer Size

该选项设置图形工具在每次数据刷新时将从目标读取的样本数。

换而言之,这是位于目标并从选项 Start Address 指定的存储器地址开始的采集缓冲区的大小。更新图形后,从目标读取采集缓冲区并更新主机上的显示缓冲区。

如果目标应用一次处理一个样本,则必须将该选项设置为 1。否则,将其设置为目标上存在的数组的大小。

通常,该选项使用常数值(数组大小),但也可以指定任何有效的 C 表达式。每次从目标读取样本时都会重新计算该表达式。

7.7.2.5.2.DSP Data Type

该选项允许选择以下数据类型:

  • 64 位带符号整数
  • 64 位浮点数
  • 32 位带符号整数
  • 32 位无符号整数
  • 32 位浮点数
  • 16 位带符号整数
  • 16 位无符号整数
  • 8 位带符号整数
  • 8 位无符号整数

数据类型由目标上运行的应用指定,是以图形表示的数据中常见的错误来源。始终需要特别注意正确设置该选项。

7.7.2.5.3.Index Increment

此选项允许指定待绘制的样本索引增量。换而言之,该选项的值告诉图形工具跳过数组上的相应位置以获取后续样本。

该偏移允许使用单个图形显示来解析数据数组,以从多个源提取信号数据。因此,可以通过在该选项中输入相应的偏移值来为显示指定多个数据源。

该选项仅在 Acquisition Buffer Size 大于 1 时才有意义。

例如,下面的数组 (my_array) 具有三个交错信号(S1、S2 和 S3)。

  • 要获取 S1 样本,请将 Start Address 设置为 my_array 并将“Index Increment”设置为 3。
  • 要获取 S2 样本,“Index Increment”保持不变,但将 Start Address 设置为 my_array + 1。
  • 对 S3 样本应用类似的逻辑:保持“Index Increment”值不变,但将 Start Address 设置为 my_array + 2。
uint16_t my_array[12];
S1[0] S2[0] S3[0] S1[1] S2[1] S3[1] S1[2] S2[2] S3[2] S1[3] S2[3] S3[3]

该选项提供了交错源的通用规格。如果启用了 Interleaved Data Sources 选项,则会禁用“Index Increment”选项。

7.7.2.5.4.Interleaved Data Sources

将此选项设置为 Yes 意味着实现了一个 2 源输入缓冲区,其中奇数样本表示第一个源,偶数样本表示第二个源,如下图所示。

uint16_t my_array[8];
S1[0] S2[0] S1[1] S2[1] S1[2] S2[2] S1[3] S2[3]

这是 Index Increment 选项的特殊情况。

该选项仅显示在需要多个数据源的某些类型的图形(例如“Dual Time”、“FFT Magnitude”,其中 Signal Type 设置为 Complex)和所有其他频域图形中。

如果将“Interleaved Data Sources”设置为 No,则会添加两个选项:Start Address AStart Address B

如果将该选项设置为 Yes,则会删除选项 Index IncrementStart Address B

7.7.2.5.5.Q-Value

该选项包含一个非零 Q 值,它是整数值(二进制补码)的分数归一化表示。使用 Q 值对数据进行解释。这些值是通过在整数的二进制表示中插入十进制空格而形成的,从而实现更高的精度。

Q 值表示从 LSB 开始的小数点位移量,相应的公式如下:

\[{New\ Integer\ Value} = \frac{Old\ Integer\ Value}{2Q - Value}\]

例如,“Q-Value”为 11(对于 12 位 ADC)且进行了符号扩展的 16 位有符号整数表示如下:

n n n n n n n n n n n n

有关更多详细信息,请参阅 Wikipedia 页面 Q (number_format)

7.7.2.5.6.Sampling Rate (Hz)

该选项包含任意的采样频率值,用于计算图形上显示的时间和频率值。

请注意,该采样频率仅与目标上运行的数据采集系统任意相关,因为图形工具对硬件一无所知。

对于时域图,该选项可在 Time Display Units 选项选项设为“s”、“ms”或“us”时修改 X 轴的值。X 轴范围为:

\[0 \le X \le {Acquisition\ Buffer\ Size} \times \frac{1}{Sampling\ Rate}\]

对于频域图(FFT Magnitude、Complex FFT、FFT Magnitude and Phase),该选项将 X 轴的范围设置为:

\[0 \le X \le \frac{Sampling\ Rate}{2}\]

7.7.2.5.7.起始地址

起始地址是目标器件上的存储器地址,其中包含变量或待绘制的缓冲区的起始位置。更新图形后,从该位置开始从目标板获取采集缓冲区内容。然后,该采集缓冲区更新显示缓冲区,根据配置的格式选项绘制显示缓冲区。

根据使用的图形类型和选项,“Start Address”可以扩展为两个条目,称为 Start Address AStart Address B

可以在“Start Address”选项中输入任何有效的 C 变量和表达式,它们是最常见的 C 指针和数组。每次从目标器件读取样本时都会重新计算该表达式。

7.7.2.5.8.Auto Scale

该选项根据显示的数据值启用 Y 轴自动缩放功能。

如果禁用“Auto Scale”,则会打开另外两个选项:Max Y ValueMin Y Value

7.7.2.5.9.Axis Display

该选项启用或禁用坐标轴:

  • True:为图形左下角的每个 X 轴和 Y 轴交点绘制一条线。交点处的 X 值从 0 开始并按 Display Data Size 的倍数递增。

7.7.2.5.10.Data Plot Style

该选项设置数据在图形中的可视化表示方式。用户可以在以下选项中进行选择:

  • Line:使用一条线连接数据值
  • Bar:使用垂直线显示值

7.7.2.5.11.Display Data Size

该选项设置在给定的时间图形中显示的样本数(X 轴)。此选项更改 X 轴的最大值,但显示的实际值将取决于 Time Display Units(样本或时间)和 Acquisition Buffer Size

任何有效的 C 表达式都可用于指定“Display Data Size”选项。每次从目标读取样本时都会重新计算该表达式。这样就可以在目标上的缓冲区增加时动态调整显示大小。

有符号整数与 Q-Value 选项相结合可用于将定点值归一化。

7.7.2.5.12.Grid Style

该选项在图上启用 Minor(密集)或 Major(稀疏)网格阵列。实际的交点在很大程度上取决于视图的大小,但次要网格始终是主要网格的精确子集。

7.7.2.5.13.Magnitude Display

该选项调整 Y 轴以进行 LinearLogarithmic 显示。线性显示更常用于时域和相频域图 (FFT),而对数显示更常用于幅频域图 (FFT)。

7.7.2.5.14.Time Display Units

该选项以下列格式之一调整要在 X 轴上显示的单位:

  • sample:显示样本计数。
  • smsus:显示与由 Sampling Rate 选项定义的采样周期相关的时间。

7.7.2.5.15.Use DC Value for Graph

该选项将固定的直流失调电压设置为 Y 轴的中心。如果启用该选项,则会打开一个新选项 DC Value For Graph

其效果是将绘制以为 DC Value For Graph 选项指定的值为中心的图形。对于具有 2 个图的图形,将有 2 个条目(每个图一个)。

如果未启用直流值,则 Y 轴的中心将设置为数据的最小值和最大值的平均值。

7.7.2.5.16.DC Value For Graph

该选项设置 Y 轴的直流失调电压值。该选项仅在启用 Use DC Value For Graph 选项后启用。

7.7.2.5.17.Max Y Value

该选项允许在禁用 Auto Scale 的情况下为 Y 轴指定最大值。

7.7.2.5.18.Min Y Value

该选项允许在禁用 Auto Scale 的情况下为 Y 轴指定最小值。

7.7.2.5.19.Signal Type

此选项指定将用于绘制图形的数据类型:

  • Real:数组包含信号的幅度数据。
  • Complex:根据数字的实部和虚部计算出幅度和相位信息。选择“Complex”后,“Graph Property”对话框中将显示“Interleaved Data Source”选项。

7.7.2.5.20.FFT Frame Size

这是一个只读字段,其中显示应用于样本数据并用于计算 FFT 的单元数量。该选项与 FFT Order 选项直接相关。

\[FFT_{size} = 2 \times FFT_{order}\]

这有助于评估可应用于采样数据的 FFT Order 的最大限值。该最大限值是 Acquisition Buffer Size 值。

7.7.2.5.21.FFT Order

该选项设置应用于计算的 FFT 阶数,FFT Frame Size 直接反映该阶数。

7.7.2.5.22.FFT Windowing Function

利用“FFT Windowing Function”则可在以下类型的窗口函数中进行选择:

  • 直角坐标
  • Bartlett
  • Blackman
  • Hanning
  • Hamming

这些函数在执行 FFT 计算之前应用于数据。

有关窗口函数的更多详细信息,请参阅该 TI 精密实验室培训模块

7.7.2.5.23.Waterfall Height

“Waterfall Height (%)”指定用于显示窗口帧的垂直窗口高度的百分比。

7.7.2.5.24.Number of Waterfall Frames

“Number of Waterfall Frames”指定待显示的瀑布帧数。

7.7.3.疑难解答

7.7.3.1.数据类型注意事项

该图形工具适用于多种不同的数据类型,因此必须密切跟踪数据样本在器件存储器中的表示方式,以绘制正确的数据图。

一种很常见的情形是在目标上使用有符号整数,而使用无符号整数作为 DSP Data Type 的参数。这样一来,尽管波形与预期的信号类似,但已严重失真。

另一种很常见的错误是使用不同的 Q-Value,这可以正确显示波形,但 Y 轴上的值不正确。

一种不太常见的错误是使用完全不同的 DSP Data Type(浮点数,而非整数;或者相反),这往往会产生具有非常高的限值或完全随机的数据的图形。