基于内嵌Cortex-M3内核FPGA的等精度频率计设计.docx

上传人:龙*** 文档编号:146909 上传时间:2018-07-11 格式:DOCX 页数:11 大小:775.13KB
下载 相关 举报
基于内嵌Cortex-M3内核FPGA的等精度频率计设计.docx_第1页
第1页 / 共11页
基于内嵌Cortex-M3内核FPGA的等精度频率计设计.docx_第2页
第2页 / 共11页
基于内嵌Cortex-M3内核FPGA的等精度频率计设计.docx_第3页
第3页 / 共11页
基于内嵌Cortex-M3内核FPGA的等精度频率计设计.docx_第4页
第4页 / 共11页
基于内嵌Cortex-M3内核FPGA的等精度频率计设计.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、基于内嵌 Cortex-M3 内核 FPGA 的等精度频率计设计 王立华 1,周松江 1,2,高世皓 1,3,张恒 1 ( 1 山东科技大学电子通信与物理学院,山东 青岛 266590; 2 北京邮电大学信息光子学与光通信研究院,北京, 100876; 3 北京邮电大学 泛网无线通信教育部重点实验室 ,北京, 100876) 摘要 : 为了提高频率计的测量精度和系统性能,解决在 传统的频率计 中 无法实现高低频率等精度测量的情况,本文 采用 京微雅格公司的 M7 系列 FPGA,设计 了一种基于 SOPC 技术的 等精度 多功能 频率计。 该 频率计 以内 嵌 Cortex-M3 内核的FPG

2、A 芯片为 控制核心, 通过对 FPGA 模块和 Cortex-M3 内核部分 的 设计 ,并借助 AHB 接口 的 FIFO 实现 FPGA 与 Cortex-M3 内核 之间 的数据通信 , 完成了1Hz50MHz 范围 内等精度频率计的设计。 通过 ModelSim 软件仿真 和 硬件实测表明, 该 频率计 可以 完成等精度频率 和 占空比的测量功能,具有 精度高 、实时性好 等 特点。 关键词 : 频率计 ; 等精度 ; SOPC; FPGA; AHB; Cortex-M3 中图分类号: TM935.13 文献标识码 : A 1 引言 频率是电子领域中最基本的参数, 传统 的测频方法有

3、直接测量法、周期测量法和 分频 测量法 等 ,这些方法 往往 只 适用于 测量一段频率, 而 无法实现高低频率等精度的要求 。 在 技术上,传统的 频率计大都 采用 单元 电路 或 单片机进行设计,使得 频率计 存在结构复杂 、稳定性差 且测量 范围小 等 缺点 1-4。 基于此 ,本文 以京微雅格公司的 M7 系列 FPGA为设计载体, 利用 SOPC 技术和 等精度 测量原理 ,在 一片 内嵌 Cortex-M3 内核的 FPGA 芯片上 完成频率计的 设计 。 系统 充分发挥FPGA 的 高速数据处理 能力 , 完成对待测信号的 测量计数;利用 Cortex-M3 的 数据运算 与 人机

4、交互能力, 完成 对测量数据的 计算 与显示 工作 。 该系统可以实现 频率 测量和 占空比测量功能,具有 测量 精确 、 稳定性高、调试方便等特点 5-7。 2 系统工作原理 与 结构 2.1 等精度测量原理 等精度测量法 的 测量原理如图 1 所示 ,其最大的特点是 实际闸门时间并不是一个固定值,而是一个与 被 测信号有关的值,且刚好为 被 测信号周期的整数倍。在 启动 测量之后, 首先 给出一个 预置 闸门时间,然后等待被测信号下一个 上升沿的到来。当 被测 信号 的 上升 沿到达后 , 将 预置闸门时间信号与被 测信号进行同步,同时 用两个计数器分别对被测 信号 和标准 信号 进行计数

5、。 当预置闸门时间结束后,被测信号的下一个 上升沿到达时两个计数器停止计数。此时会得到两个计数值,然后 结合标准信号的频率值,即可得到 被测信号 的频率 8-10。 图 1 等精度测频法测频原理图 假设 在 一次 测量中,实际 闸门时间 为 , 被测信号 计数器 和 标准信号计数器的计数值 分别 为 和 ,标准信号的频率为 0, 根据测 量 原理可 计算出被测信号的 频率为: = 0 ( 1) 式 ( 1) 中 为被测信号频率的 测量值,若 信号 的 实际频率为 ,那么测量 的误差为: = | 100% ( 2) 若忽略 标准信号的频率误差,并根据式( 1),可得 被测信号 实际频率的表达式为

6、: = 0 ( 3) 联立式( 1)、( 2)、( 3)可得: = 100% 1= 10( 4) 由此 可知, 采用等精度测量 法测量频率时 ,所选择的闸门时间越长,标准信号的频率越高,频率测量的误差就会越小 11-14。假设标准信号的频率为 100MHz,闸门时间为 1s,那么其精度可达到 108。 另外,占空比的测量 方式描述 如下: 在 对闸门时间内标准信号进行计数的 同时 ,还需要 对在闸门时间内 被测信号 高电平时间段的标准信号进行计数 15。设预置闸门时间被测信号实际闸门时间标准信号被测信号计数器标准信号计数器两个 计数器 的计数值 分别 为 和 , 那么 可得到 被测信号的占空比

7、为 16: = 100% ( 5) 2.2 系统 总体结构 频率计 系统的总体结构图如图 2 所示 。 本系统 选用京微雅格公司 M7 系列 的FPGA 芯片 CME-M7A12N0F484C7,该芯片 集成了主流的 ARM Cortex-M3 内核和高性能 FPGA 逻辑单元, FPGA 逻辑 性能高达 200MHz, 而 ARM Cortex-M3内核最大频率 可达 300MHz。 利用 AHB(Advanced High performance Bus)总线 连接 FPGA、 ARM Cortex-M3 内核 和 各个外设 ,实现了 高速数据传输 。 图 2 系统总体 结构图 在图 2

8、所示 的系统中,锁相环 IP 核部分 用来产生各类 时钟 信号, AHB 接口的 FIFO IP 核 作为 FPGA 与 Cortex-M3 内核之间 通信的中介。 而 具有人机交互优势的 Cortex-M3 内核通过 GPIO 来 输入外部信号以及控制 LCD12864 进行 显示。同时 数据通过 UART 传输至电脑端的上位机软件, 用于 系统 设计 与 调试。 2.3 系统 工作原理 在图 2 所示 系统 中 ,时钟信号 ( clk)进入 锁相环电路后产生多个 高频 时钟信号用于各个 FPGA 模块 和 Cortex-M3 内核工作。 被测信号( signal) 输入 至 频率占空比一体

9、化 测量 模块中进行 测量 并产生测量数据 ( Na、 Nb 和 Nc) 和数据有效信号 ( valid),然后 利用 FPGA 写 FIFO 控制 模块将测量数据按照时序要求写入到 AHB 接口 的 FIFO 中 ,在 每次 写完 数据 之后产生一个 写 完成信号( w_done_f) ,并 通过一个 IO 口 输出 。系统 的 Cortex-M3 内核中 有一个 32 位 的 GPIO, 其中有锁相环c l k _ 2 0 0 M频率 、 占空比一体化测量模块c l k _ 50 Mc l k _ Sp l l _ l o c k e dA s y nc B r i dgeA R M M

10、3接收数据计算并显示FP 0 FP 1F P G A A r r a yA H B B U Su ar t _ tx _ os i gn alc l ku ar t _ rx _ iS O Cw _ don e _ fc l k _ ar mrstF P G A 写F I F O 控制模块A H B 接口的 F I F O IP 核NaNbNcv a l i dU ar t传输数据至电脑gpi ow e nw d a t a一位 与 写 完成信号( w_done_f) 相连 。 当 Cortex-M3 检测 到写完成信号后, 利用AHB 系统 总线读取 FIFO 中 的数据, 然后对 读取的数

11、据进行运算得到被测信号的频率值和占空比值, 利用 UART 将 数据传输至电脑端的上位机,并通过 GPIO 来控制 外部 LCD12864 显示器进行 显示。 3 FPGA 模块设计 图 2 所示 系统 中的 FPGA 部分 主要用于完成 频率和 占空比的测量工作 , 其 一体化设计 结构 图 如图 3 所示 , 主要由 五 个部分 构成 ,分别是预置闸门时间产生模块、同步电路、计数器模块 、有效 信号产生 模块和 FIFO 写 控制模块。 在 图 3 中 ,clk_50M 为时钟信号输入端, rst 为复位信号输入端, signal 为 被测信号 输入端,clk_S 为标准信号输入端, Na

12、、 Nb 和 Nc 为三个 计数器 的 计数 值 , valid 为数据有效信号 , wen 为 FIFO 写使能 信号输出端, wdata 为 FIFO 写 数据输出端, w_done_f为 写完成信号输出端。 图 3 测频 、测占空比一体化设计 结构图 3.1 预置闸门时间产生模块 预置闸门时间产生模块 内部是一个分频电路 , 将输入的时钟信号 ( clk_in)分频产生频率为 2Hz 的时钟信号, 通过 时钟输出端 ( clk_out)输出 , 并 将其高电平时间段作为预置闸门时间 , 其时间长度正好为 1s。 c l k _ 50 Mrsts i gn alc l k _ SNaN c

13、N bv al i dc l k _ ou tc l k _ inrst _ nqdc l krst _ nv al i dc l ks t ar tenc l krst _ nc ou n t _ numenc l krst _ nc ou n t _ numenc l krst _ nc ou n t _ num预置闸门时间产生模块 同步电路 计数器 I计数器 II计数器 III有效信号产生模块rst _ nc l kw e nw dat aw _ don e _ fF I F O 写控制模块A N D IA N D I IN O T I N O T I I3.2 同步电路 图 3 中的同

14、步电路是一个 D 触发器 。 在该系统中,为了测量的准确性,需要保证实际闸门时间为 被测信号 周期的整数倍,因此本系统 利用 D 触发器的同步功能 ,将 被测信号 作为 同步电路 的时钟输入端,预置闸门时间信号作为 同步电路的 D 输入端,这样其输出即为与 被测信号 同步的实际闸门时间。 另外 ,为了能够测量信号的占空比,系统采用门电路的方式, 将 实际 闸门 时间信号与 被测信号相“与”( AND I),其输出 作为被测信号的 计数 信号,同时将其与标准时钟信号相 “与”( AND II), 得到 闸门时间内 被测信号高电平时间段标准信号的计数信号。 系统中两个非门( NOT I 与 NOT

15、 II) 起到 微 延时的 作用,使系统工作更加稳定,测量更加准确,其本身对信号的逻辑 关系没有 任何影响。 3.3 计数器模块 图 3 系统中有三个 计数器模块 , 其 工作原理描述如下:当计数使能端 ( en)上升沿 到达时 ,计数器开始对由 clk 端输入的信号进行计数,而 计数使能端 ( en)下降沿到达 后 停止计数, 同时 将计数值锁存 并 通过 count_num 端 输出 ,然后 将计数器内部计数值清零,以用于下一次计数。 在该系统中, 需要 对闸门时间内各个信号的个数进行计数, 所以 将实际闸门时间 信号 ( 同步 电路的 输出 信号) 作为三个计数器的计数使能信号。三个计数

16、器中,计数器 I 用于对 被测信号进行计数,计数器 II 用于对被测信号 高电平时间段的标准信号 进行 计数, 计数器 III 用于 对标准信号 进行 计数。根据 测量 原理 ,假设 闸门 时间内 三个计数器的计数 值分别为 、 和 , 标准信号的频率为 0,那么可得被测信号 的频率为: = 0 ( 6) 占空比为: = 100% ( 7) 3.4 有效信号 产生 模块 图 3 中 , 有效信号 产生模块 是 在每次测量完成产生新的数据之后, 将其 输出端( valid) 置 高 。 该模块利用实际闸门时间信号来产生输出 信号,若 实际闸门时间 信号为 高, 此时 正处于测量过程中,该模块的输

17、出( valid) 为 低;当实际闸门时间信号变为低之后, 数据 测量完成, 此时 将模块的输出( valid) 置 为高电平。利用 该信号 可以控制 FIFO 写 控制模块每次 将 有效的数据 写进 FIFO。 3.5 FIFO 写 控制模块 FIFO 写 控制模块的输入信号有时钟信号( clk) 、 复位信号( rst_n) 、 三个测量数据( Na、 Nb 和 Nc) 和 数据有效信号( valid) , 模块的输出信号为 FIFO 写使能信号( wen) 、 FIFO 写 数据信号( wdata) 和 写完成信号( w_done_f) 。 该模块 就是 根据 FIFO 写数据 的 时序

18、, 在 数据 有效( valid 为 高)之后 将 测量所得的数据依次写进 FIFO 中 进行缓存,在写完之后将写完成信号( w_done_f) 置高 。 如果 检测到 数据 有效 信号 ( valid)为低 , 则将写完成信号( w_done_f) 置低 。 4 系统软件设计 本文所设计 的频率计 是 利用 FPGA 内嵌的 Cortex-M3 内核完成数据的 接收 、处理和显示工作,在 Keil 开发平台 下利用 C 语言 对系统软件 进行 设计。系统 软件 的程序流程图如图 4 所示 。 系统 开始运行后,首先进行系统初始化,包括初始化串口、初始化 GPIO 和 初始化LCD12864

19、等 。 之后系统 就进入了主循环,首先 检测写完成信号是否有效,如果无效则一直 循环 检测 ,当写 完成信号有效之后 则 停止检测, 按照 顺序依次读取 FIFO 地址 下的三个数据, 然后 按照公式计算出被测信号的频率 值 和占空比值。接下来 系统控制 串口将数据传输至电脑,并 利用 GPIO 控制 外部LCD12864 对 测量结果进行显示。 当上述 工作 全部 完成之后,再次检测写完成信号,如果其仍然有效,则 一直 循环 检测此 信号, 直到 其无效 为止 ,然后回到主循环开始处,执行 下一次 循环。 图 4 系统 软件程序流程图 开始检测写完成信号F P G A 写F I F O 完成

20、 ?读取 F I F O 地址下的数据串口输出打印并控制 L C D 12864 显示计算频率值和占空比值系统初始化写完成信号仍然有效 ?再次检测写完成信号NYN Y5 实验结果 5.1 FPGA 模块 仿真 根据 等精度测量的原理 和 FPGA 模块 结构设计,利用 Verilog 硬件描述语言对测频、测占空比一体化 设计 结构进行设计,并利用 ModelSim 软件 对其整体进行功能仿真。如图 5 和 图 6 所示为频率 计的整体仿真结果,其中测试信号的 频率是 5Hz, 占空比 为 80%。从图 5 中可以看出 预置闸门时间、被测信号和实际闸门时间等信号的时序与等精度测量原理图相一致,同

21、时 测量 所得的 三个 计数值准确,与测试信号的频率、占空比相符。从 图 6 中可以 看出, FIFO 写 控制模块按照时序要求 将 测量所得的三个数据依次 输出 至 FIFO 中 ,同时在 写 完成之后 将 写完成标志置高。 图 5 频率计 整体仿真 结果 图 6 FIFO 写 控制模块 仿真 结果 5.2 硬件 实现与 测试 利用 Keil 软件 完成 Cortex-M3 内核 软件的 设计工作,并将其 产生 的 HEX 文件 导入 京微雅格 的 EDA 设计工具 Primace 中 , 与 所设计的 FPGA 模块 一并生成比特流 数据,并将其下载至 M7 开发板 中 , 按照设计结构

22、将 外部引脚进行连接,即 完成了频率计系统的硬件 实现。该频率计 利用 LCD12864 对 测试结果 进行 显示,采用自动量程的方式,无需人工调整 。 利用 本文 所 设计的频率计对测试信号 的 频率和占空比进行测试, 然后 对结果进行 分析,如图 7 所示 为 测试 图。 图 7 系统 测试图 表 1 是本 频率计的一组测试数据, 通过 对被测信号的频率 、 占空比和测试所得的频率值 和 占空比值 相比较 可知, 在 所给的测量范围之内,频率测量误差 均 小于 104, 占空比测量误差的 绝对值 均小于 102。测量 结果的误差 分布 在同一个数量级,并没有因为频率值 的 变化而变化,从而

23、达到了等精度测量的目的。 表 1 频率计 系统实验测试数据 频率 测量 占空比 测量 实际 频率 值 测试 频率值 实际 频率值 实际 占空比值 测试 占空比值 1Hz 0.9999Hz 1Hz 10% 9.99% 1.2345Hz 1.2345Hz 1Hz 90% 90.01% 12.345Hz 12.345Hz 1KHz 20% 20.02% 12.351Hz 12.351Hz 1KHz 80% 79.99% 122.54Hz 122.54Hz 1.25MHz 30% 29.12% 1.1363MHz 1.1364Hz 1.25MHz 90% 90.26% 6.25MHz 6.2499MH

24、z 6.25MHz 10% 9.88% 12.5MHz 12.499MHz 6.25MHz 90% 89.67% 25MHz 25.001MHz 10MHz 20% 19.25% 50MHz 49.999MHz 10MHz 80% 79.38% 6 结束语 本文以 京微雅格公司的 M7 系列 FPGA 为设计载体, 利用 SOPC 技术和 等精度 测量原理 , 在 一片 内嵌 Cortex-M3 内核的 FPGA 芯片上 完成 了 频率计的 设计,可以实现频率测量和占空比测量 功能。 利用 Verilog 硬件描述语言完成 FPGA 模块的 设计 ,并利用 ModelSim 软件对 其 进行仿

25、真验证。通过 Keil 软件完成Cortex-M3 内核的软件设计,利用 Primace 工具 进行分析、 综合,并最终下载到芯片中, 完成 系统的硬件实现。 通过 实际测试,系统可以 很好 地完成 频率 测量与占空比测量功能,并达到了等精度测量的目的。 参考文献 1 张 博, 曹 学 沿,房亮 . 基于 VHDL 的 简易数字频率计的设计 J. 传感器 世界, 2013( 5):29-34 2 陈尚 志,胡荣强,胡合松 . 基于 FPGA自适应 数字频率计的设计 J. 中国 测试技术, 2007,33( 2): 141-144 3 曹浩彤,刘艳 . 基于 430 单片机的简易频率计设计 J.

26、 微型机与应用, 2014, 33( 21):92-94 4 谢尚港 , 王佳豪 , 黄继业 . 基于 FPGA 移相倍频方式的频率计设计与实现 J. 自动化与仪器仪表 , 2016( 4): 29-31 5 NING Zehong, XU Dawang, DONG Zhanyong. Frequency measurement technique based on frequency conversionJ. Journal of Measurement Science and Instrumentation, 2013, 4(2): 146-149 6 郝统关,程明 . 基于 FPGA N

27、ios II 的等精度频率计设计 J. 电测与仪表, 2009, 46( 518):56-58 7 黎 山峰,杨雷,孙建军 . 基于 Nios的 FPGA频率计设计与实现 J. 仪表技术与传感器,2016( 8): 105-108+112 8 黄俊,余水宝 . 基于 STC12C5A60S2 的高频高精度频率计的设计 J. 微型机与应用,2012, 31( 17): 22-24 9 曹作宝,包晓敏,彭霄 . 基于 NIOS II 的多功能数字频率计的设计 J. 工业控制计算机,2009( 10): 74-75 10 DU BaoQiang, WANG YanFeng, CUI GuangZha

28、o, et al. High-precision time and frequency measurement method combining time-space conversion and different frequency phase detectionJ. Science China(Physics, Mechanics 2 Institute of Information Photonics and Optical Communication, Beijing University of Posts and Telecommunications, Beijing, China

29、; 3 Key Laboratory of Universal Wireless Communications, Ministry of Education, Beijing University of Posts and Telecommunications, Beijing, China;) Abstract: In order to solve the case of the traditional frequency meter cannot achieve equal precision in high or low frequency measurement, improve th

30、e precision and performance of frequency meter, an equal precision frequency meter based on SOPC is designed in this paper. A FPGA chip that embedded Cortex-M3 as the systems controlling core, through the design of FPGA module and Cortex-M3 module, and achieve data communication between FPGA and Cor

31、tex-M3 by FIFO with AHB interface, completing the design of equal precision frequency meter in 1Hz50MHz range. By ModelSim software simulation and hardware testing, the frequency meter can complete equal precision frequency and duty ratio measuring function, and has the characteristics of high precision and good real-time. Key Words: frequency meter; equal precision; SOPC; FPGA ;AHB;Cortex-M3 作者 简介: 王立华( 1971-),男,汉族,山东潍坊人,副教授,硕士生导师,主要从事嵌入式应用、光伏发电技术和通信技术的 教学与 研究。 通讯地址 :山东省青岛市黄岛区前湾港路 579 号山东科技大学电子学院, 邮

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。