Page 54 - 电力与能源2021年第六期
P. 54
6 6 2 李毅铭, 等: 基于 ARM 架构的多通道振动信号采集研究
× p sc+1 )
( a rr+1 ) ( 数据流总共可以有多达 8 个通道( 或请求)。每个
T out = ( 4 )
f TIMCLK 数据流通道还配有一个仲 裁器, 用于处理 DMA
———自 动 装 载 值; ———分 频 系 数;
p sc
式 中 a rr 不同通道间的优先级。在每次传输中还可以配置
———定时器的输入时钟频率, Hz 。
f TIMCLK 独占尺寸, 设置独占尺寸的通道优先级最高, 并且
定时器的触发频率即为溢出时间的倒数, 用
在传输完独占尺寸规定的数据后, 传输才会停止,
来对 A / D 进行触发。这样 A / D 的采样频率就是
转向下一个优先级通道的传输。
定时器触发频率, 要注意 A / D 的总转换时间要小 DMA 对于数据传输, 需要确定的 4 个核心
于定时器的溢出时间。
参数是: 数据源地址、 数据传输位置的目标地址、
2 软件设计 传输的数据量和数据传输的次数。
当用户将参数配置好, 主要对源地址、 目标地
2.1 DMA 技术 址、 传输数据量进行配置, DMA 控制器就会启动
直接 存 储 器 访 问 直 接 存 储 器 存 取 ( Direct 传输, 当完成所需的数据传输量, 就结束 DMA 传
Memor yAccess , 简称 DMA ) 传输将数据从一个 输, 并对外设接口发出中断。当 DMA 设置为循
地址空间复制到另一个地址空间, 提供在外设和 环传输模式时, DMA 每次到达传输终点都会重
存储器之间或者存储器和存储器之间的高速数据 新开启 DMA 传输。
传输。 CPU 作为系统运作的核心有着转移数据、 2.3 软件设计结构
计算、 控制程序转移等功能。独立的 DMA 通道 本文的主要工作为数据采集和数据传输。首
提供了一条数据道路, 可以直接将数据 A 拷贝到
先应该完成数据采集前的驱动初始化, 包括 A / D
B , 不经过 CPU 处理。 DMA 的作用就是防止当 初始化、 DMA 初始化和系统初始化。 A / D 的初
出现 大 量 数 据 转 移 时 过 度 消 耗 CPU 资 源, 使 始化是采集过程中至关重要的一步。本文启用了
CPU 可 以 更 专 注 于 更 加 实 用 的 操 作、 计 算、 控 4 个 A / D 转换通道, 转换后的数据存放在专属寄
制等。 存器 A / D _ DR 中, 每次转换 之前都要 进 行 初 始
DMA 传输工作的开 始, 首 先需要 将 总 线 的 化。而 DMA 初始化是因为要将前面寄存器中保
权限给予 DMA 模块, 然后再结束时将总线权限 存的转换数据搬运至内存中, 这样提高了数据的
还给 CPU 。完整的 DMA 传输包括: 请求; 响应; 传输效率。系统初始化包括系统时钟初始化、 中
传输; 结束。 DMA 数据传输流程如图 2 所示。 断源配置、 GPIO 端口配置和定时器初始化及其
参数配置。数据采集过程是系统启动, 并进入初
始化过程, 当完成初始化后, A / D 开始进入数据
采集过程, 然后通过 DMA 搬运数据, 不断循环,
直至系统发出停止命令结束。数据采集流程图如
图 3 所示。
3 数据采集测试
3.1 电压峰值误差测试
为了检 验 经 过 配 置 后 STM32F767 内 置 的
A / D 多通道采集稳定性和测量精度, 本文使用信
号发生器 GFG-8019G 作为 信 号 源, 对 其 发 出 的
图 2 DMA 数据传输过程图 符合采集量程的正弦波进行采集测试。正弦波峰
2.2 STM32F767 中的 DMA 模块 值测试值结果如表 1 所示。表 1 中的信号频率为
本 文 使 用 的 STM32F767 模 块 包 含 两 个 50 Hz , 采 样 频 率 为 800 Hz , 并 通 过 示 波 器
DMA 控制器, 共 16 个数据流( 每个 DMA 控制 8 DS1102C 进行同步采集进行结果比较。比 较 结
个数据流), 每一个 DMA 控制器都用于管理一个 果表明, STM32F767 的内置 A / D 在合理配置的
或者多个外设的存储器访问请求。 DMA 的每个 情况下可以进行多路数据采集, 并满足一定的精

