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 的每个                          情况下可以进行多路数据采集, 并满足一定的精
   49   50   51   52   53   54   55   56   57   58   59