应用8051单片机IP设计相位测量仪

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

应用8051单片机IP设计相位测量仪

摘要:本设计应用SOPC和8051单片机IP技术,设计一个高精度的相位差测量仪。通过在FPGA中嵌入8051单片机IP来取代单片机+FPGA方案中的实际的单片机,既节省了成本又充分利用FPGA内部资源。

关键词:相位测量仪SOPC 8051单片机IP

Abstract:The design of Frequency Phase Measurement System is presented based on 8051 IP Core and FPGA.8051 IP Core,which embed in the FPGA,to replace the extra 8051 of the existing MCU+FPGA solution,saving the cost and make full use of FPGA internal resources.

Key Words:Frequency Phase Measurement System;SOPC;8051 IP Core

相位差测量技术发展至今已深入到电子技术、工业自动化、智能控制及通信等众多领域。因此,设计一个高精度的相位差测量仪显得十分重要。当前国内的一般的解决方案是单片机+FPGA方案,其中FPGA完成高速的脉冲计数功能,而单片机则进行脉冲计数后的有关计算和LCD显示等的控制。此方案中的FPGA内部资源往往利用不足,造成比较大的浪费。本设计应用SOPC和8051单片机IP技术,通过在FPGA中嵌入8051单片机IP来取代单片机+FPGA方案中的实际的单片机。既少用一个实际的单片机又充分利用FPGA内部资源,

大大节省了硬件的成本。

1 8051单片机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 设计如下:

AA<=(TCLK AND SEC) OR NOT(TCLK OR SEC);

CLK1<=NOT AA;

CLK2_1:lcell PORT MAP(AA, CLK2_0);

CLK1_2:lcell PORT MAP(CLK2_0, CLK2);

CLK3<=NOT CLK2;

Q1<=Q10;

Q2<=Q20;

BB<=Q2&Q3;

LL1:PROCESS(CLK1,CLR)

BEGIN

Q10<=&acute;0&acute;;

ELSIF CLK1&acute;EVENT AND CLK1=&acute;1&acute;THEN

Q10<=&acute;1&acute;;

END IF;

END PROCESS;

LL2:PROCESS(CLK2,CLR)

BEGIN

IF CLR=&acute;1&acute;THEN Q20<=&acute;0&acute;;

ELSIF CLK2&acute;EVENT AND CLK2=&acute;1&acute;THEN Q20<=Q10;

END IF;

END PROCESS;

LL3:PROCESS(CLK3,CLR)

BEGIN

<=&acute;0&acute;;

ELSIF CLK3&acute;EVENT AND CLK3=&acute;1&acute;THEN Q3<=Q20;

END IF;

END PROCESS;

MG :

PROCESS(BB)

BEGIN

CASE BB IS

WHEN”10”=>

EN<=&acute;1&acute;;

WHEN OTHERS=>

EN<=&acute;0&acute;;

END CASE;

CASE BB IS

WHEN”11”=>

STR<=&acute;1&acute;;

WHEN OTHERS =>

STR<=&acute;0&acute;;

END CASE;

END PROCESS;

脉宽测量模块中还有用于脉宽计数的32位计数器和计数值输出多路选择器,它们的设计这里从略。

4 单片机程序设计

本系统单片机程序总流程图如图3,其中脉宽测量子程序流程图如图4。

本相位差测量仪在以ALTERA Cyclo neII EP2C5T144为核心的

相关文档
最新文档