- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
应用8051单片机IP设计相位测量仪
摘要:本设计应用SOPC和8051单片机IP技术,设计一个高精度
的相位差测量仪。通过在FPGA中嵌入8051单片机IP来取代单片机
+FPGA方案中的实际的单片机,既节省了成本又充分利用FPGA内部
资源。
关键词:相位测量仪SOPC8051单片机IP
Abstract:ThedesignofFrequencyPhaseMeasurementSystemis
presentedbasedon8051IPCoreandFPGA.8051IPCore,whichembed
intheFPGA,toreplacetheextra8051oftheexistingMCU+FPGA
solution,savingthecostandmakefulluseofFPGAinternalresources.
KeyWords:FrequencyPhaseMeasurementSystem;SOPC;8051IP
Core
相位差测量技术发展至今已深入到电子技术、工业自动化、智能
控制及通信等众多领域。因此,设计一个高精度的相位差测量仪显得
十分重要。当前国内的一般的解决方案是单片机+FPGA方案,其中
FPGA完成高速的脉冲计数功能,而单片机则进行脉冲计数后的有关
计算和LCD显示等的控制。此方案中的FPGA内部资源往往利用不
足,造成比较大的浪费。本设计应用SOPC和8051单片机IP技术,通
过在FPGA中嵌入8051单片机IP来取代单片机+FPGA方案中的实
际的单片机。既少用一个实际的单片机又充分利用FPGA内部资源,
大大节省了硬件的成本。
18051单片机IP核简介
常见的8051单片机IP有开源免费的和工业级收费的两类,一般都
具有以下特点。
脉宽测量模块用来测量占空比待测信号的高、低电平脉宽时间,
用VHDL语言设计,由FPGA实现。单片机控制模块使用8051单片机
IP,也用FPGA实现。单片机控制模块控制脉宽测量模块进行脉宽测量,
读取脉宽测量数据,并作相应数据处理,得到相位差,通过LCD显示模
块显示相位差测量结果。晶振为FPGA中的脉宽测量模块和单片机控
制模块提供标准频率信号和时钟信号。
3脉宽测量模块设计
脉宽测量模块中关键的是要设计一个高、低电平脉宽计数控制小
模块,这小模块的作用是:在一个测量周期开始,待测脉冲TCLK的高电
平(或低电平)到来时,置32位计数器使能信号EN高电平,启动32位计
数器计数,当待测脉冲由高电平变为低电平时(或由低电平变为高电
平),置32位计数器使能信号EN低电平,停止32位计数器计数,并置测
量周期结束信号STR为高电平,直到单片机读取脉宽计数值然后复位
(置CLR为高电平),开始新的测量周期为止。尽管在停止计数期间,待
测脉冲会出现一个乃至多个高电平(或低电平)。(如图2所示)
设TCLK是占空比待测脉冲;CLR为复位信号;SEC是选择测量高
低电平信号,SEC=1,测量高电平,SEC=0,测量低电平;EN是32位计数
器使能信号;STR是一次测量周期结束信号。脉宽计数控制模块VHDL
设计如下:
AAlt;=(TCLKANDSEC)ORNOT(TCLKORSEC);
CLK1lt;=NOTAA;
CLK2_1:lcellPORTMAP(AA,CLK2_0);
CLK1_2:lcellPORTMAP(CLK2_0,CLK2);
CLK3lt;=NOTCLK2;
Q1lt;=Q10;
Q2lt;=Q20;
BBlt;=Q2amp;Q3;
LL1:PROCESS(CLK1,CLR)
BEGIN
IFCLR=amp;acute;1amp;acute;THEN
Q
文档评论(0)