基于单片机IP核的等精度频率计设计 推荐文档格式.docx
- 文档编号:5772147
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:32
- 大小:502.03KB
基于单片机IP核的等精度频率计设计 推荐文档格式.docx
《基于单片机IP核的等精度频率计设计 推荐文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机IP核的等精度频率计设计 推荐文档格式.docx(32页珍藏版)》请在冰点文库上搜索。
将单片机做在FPGA中,不但减少了电路中间连线,而且整个系统的可靠性得到加强,同时由于FPGA的速度快,FPGA中的单片机的速度可达100MHZ以上,整个系统的性能也能得到充分地改善。
基于传统测频原理的频率计的测量精度将随被测信号频率的下降而下降,即测量精度随被测信号的频率的变化而变化,在使用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且整个频率区域能保持恒定的测试精度。
本课题主要是应用已做好的8051IP核设计等精度频率计。
1.2主要任务
在了解数字频率计的基础上分析等精度频率计相对于传统频率计的优越性,研究等精度频率计的工作原理和实现方法,在FPGA开发板提供的硬件环境上设计程序运行的流程框图。
用VHDL编写测频模块,对FPGA中的单片机核编写输入、显示等程序,完成等精度频率计的设计。
系统总框架图如图1-1所示。
图1-1实验系统总框架图
第二章杭州康芯公司KX2C5F+开发板介绍
2.1KX2C5F+系统简介
KX2C5F+系统是康芯公司电子设计竞赛作品板,其系统硬件结构组成如下:
1、KX2C5F+系统选用Altera公司CycloneII系列EP2C5T144FPGA。
其包含4608个逻辑宏单元、两个锁相环,约20万门、约12万RAMbit。
2、含全兼容工业级8051核、其主频最高可达250MHz,是普通单片机速度的20倍。
3、EPM3032CPLD、1MEPCS1Flash、蜂鸣器、20MHz晶振、8键、1数码管,HS162-4LCD液晶显示器。
4、JTAG、VGA、RS232接口、PS2口、USB电源口。
5、FPGA编程器、字符型液晶驱动口(可直接接多种类型字符型液晶)、点阵型液晶驱动口(可直接接数字彩色或黑白点阵型液晶)。
根据任务要求设计主要应用到EP2C5T144FPGA、USB电源口、JTAG下载口以及字符型液晶驱动口,其硬件系统结构框图如图2-1所示:
图2-1硬件系统结框图构图
2.2主要应用
可配置于KX2C5F+系统FPGA的单片机CPU核与传统MCS-51单片机高度兼容(极个别指令不兼容),但速度约为传统单片机的20倍,在FPGA芯片优化良好的条件下,主频最高可达250MHz;
同样用C或汇编语言完成软件设计。
目前许多实用SOC应用系统都使用此类通用CPU实现设计。
电子设计竞赛中,需要实现高速算法或高速控制的项目越来越多,如此高速的单片机核,几乎可以用来完成某些DSP功能,如语音处理,压缩和频谱分析等。
再加上FPGA本身的高速性能,完成许多高性能指标的系统功能将变得十分容易;
而把CPU、锁相环、数据RAM、程序ROM、接口模块、通信模块、显示控制模块、数据采样和信号发生模块等等,都放在同一片FPGA内,从而构成SOC系统,这将使系统的设计效率和系统性能获得极大的提高,这也是现代电子设计技术的发展方向。
KX2C5F+系统开发板可以应用于很多设计。
这里,根据论文的目的,在完成设计任务时,用8051IP核加上锁相环、RAM以及ROM构成一个单片机。
通过锁相环将单片机时钟设置为40MHz。
此单片机的任务是将测得的频率在LCD显示。
第三章系统设计
3.18051单片机介绍
MSC-51系列单片机的内部结构由八部分组成,以80C51单片机为例,其内部按功能可划分为CPU、存储器、I/O端口、定时/计数器、中断系统等模块。
MSC-51系列单片机芯片有40个引脚,是采用HMOS工艺制造,双列直插(DIP)方式封装的芯片,其引脚如图3-1所示。
图3-1MCS-51系列单片机引脚
3.28051单片机IP软核介绍
CPU8051V1是康芯公司提供的8051单片机核,由VQM原码(VerilogQuartusMappingFile)表述:
CPU8051V1.vqm,可直接调用。
与普通MCS-51系列单片机一样,8051单片机核也含有8位复杂指令CPU,其结构框图如图3-2所示。
8051单片机核的指令系统与8051/2、8031/2等完全兼容,硬件部分也基本相同,例如可接64KB外部存储器,可接256字节内部数据RAM,含两个16位定时/计数器,全双工串口,含节省功耗工作模式,中断响应结构等等。
不同之处主要有:
1、8051V1是以网表文件的方式存在的,只有通过编译综合,并载入FPGA中才以硬件的方式工作,而普通8051总是以硬件方式存在的;
2、8051V1无内部ROM和RAM,所有程序ROM和内部RAM都必须外接。
从图3-2可见,它包含了“数据RAM端口”和“程序存储器端口”,是连接外接ROM、RAM的专用端口(此ROM和RAM都能用LPM_ROM和LPM_RAM在同一片FPGA中实现)。
然而普通8051芯片的内部RAM是在芯片内的,而外部ROM的连接必须以总线方式与其P0、P2口相接(AT89S51的ROM在芯片内,CPU核外)。
3、以软核方式存在能进行硬件修改和编辑;
能对其进行仿真和嵌入式逻辑分析仪实现实时时序测试;
能根据设计者的意愿将CPU、RAM、ROM、硬件功能模块和接口模块等实现于同一片FPGA中(即SOC)。
4、与普通8051不同,8051单片机核的4个I/O口是分开的。
例如P1口,其输入端P1I和输出端P1O是分开的,如果需要使用P1口的双向口功能,必须外接一些电路才能实现。
图3-28051V1原理图元件
3.38051单片机IP软核实用系统构建
8051V1核在接上了ROM和RAM后就成为一个完整的8051单片机了,图3-3是根据任务要求绘制的8051V1核实用系统的最基本构建顶层原理图,主要由4个部件构成:
1、8051V1核。
图中的CPU8051V1即单片机核,由VQM原码表述:
CPU8051V1.vqm,可以直接调用。
该元件可以与其他不同语言表述的元件一同综合与编译。
2、嵌入式锁相环PLL50。
载入锁相环,设置其输入频率为20MHz,输出频率为40MHz,8051V1能接受的工作时钟频率上限取决于FPGA的速度级别。
3、程序ROM,LPM_ROM。
采用ROM容量的大小也取决于FPGA所含的嵌入RAM的大小。
图3-3中设置的ROM容量是4K字节,对于一般的应用足够了。
此ROM可以加载HEX格式文件作为单片机的程序代码。
HEX程序代码可以直接使用普通8051单片机程序编译器生成。
4、数据RAM,LPM_RAM。
图3-3中设置的LPM_RAM容量是256字节。
高128字节须用间接寻址方式访问。
这里的LPM_ROM和LPM_RAM调用方法参见其它资料。
图3-3中,P0I[7..0]、P1I[7..0]、P2I[7..0]、P3I[7..0]分别为P0、P1、P2、P3口的输入口;
P0O[7..0]、P1O[7..0]、P2O[7..0]、P3O[7..0]分别为P0、P1、P2、P3口的输出口。
各口的应用再根据任务要求进行连线。
图3-3基本8051CPU核应用
3.4等精度频率计设计
3.4.1等精度测频原理
等精度测频的实现方法可简化为图3-4所示。
CNT1和CNT2是两个可控计数器,标准频率信号设定为40MHz从CNT1的时钟输入端CLK输入,经过整形后的被测信号从CNT2的时钟输入端CLK输入,当预置门控信号为高电平时,经过整形后的被测信号的上升沿通过D触发器的Q端同时启动CNT1和CNT2。
CNT1、CNT2同时对标准频率信号和经整形后的被测信号进行计数,分别为Ns与Nx。
当预置门信号为低电平的时候,后面而来的被测信号的上升沿将使两个计数器同时关闭,所测得的频率为(Fs/Ns)*Nx.则等精度测量方法测量精度与预置门宽度的标准频率有关,与被测信号的频率无关。
图3-4等精度测频实现原理
等精度测频方法是在直接测频方法的基础上发展起来的。
它的闸门时间不是固定值,而是被测信号周期的整数倍,即与被测信号同步。
因此除了对被测信号计数所产生的1个周期误差,并且达到了在整个测试频率阶段的等精度测量。
如图3-5在测试过程中,有两个计数器分别对标准信号和被测信号同时计数。
首先由单片机给出给出闸门信号,在t1时间内保持高电平,当单片机赋给预置门高电平信号时实际闸门并未打开此时计数器并不开始计数,而是等到被测信号的上升沿到来时才打开实际闸门,计数器才真正开始计数,然后单片机发给预置闸门低电平关闭信号,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才关闭实际闸门信号开始结束计数,完成一次测试过程。
可以看出,实际闸门时间为t1,预置闸门时间为t,两个闸门时间并不严格相等,但是差值不超过被测信号的一个周期。
图3-5等精度测频原理
设在一次实际闸门时间t中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns。
标准信号的频率为fs,则被测信号的频率如下式:
fx=(Nx/Ns)*fs在测量中,由于fx计数的启停时间都是由该信号的上升沿出发的,在闸门时间t内对fx的计数Nx无误差,对fs的计数Ns最多相差一个数的误差,
δ=1/fs
由上式可以看出,测量频率的相对误差与被测信号频率的大小无关,仅与标准信号频率有关,即实现了整个测量频段的等精度。
标准频率越高,测量的相对误差越小。
在保证精度测量不变的前提下,提高标准信号频率,可是闸门时间缩短,即提高测试速度。
3.4.2等精度测频实现
等精度频率计的实现可以简单地用图3-6和波形图3-7来说明设。
图3-4中“预置门控信号”CL可由单片机发出,可以证明,在1秒至0.1秒间的选择范围内,CL的时间宽度对测量精度几乎没有影响,在此设其宽度为Tpr。
BZH和TF模块是两个可控的32位高速计数器,BENA和ENA分别是它们的计数允许信号端,高电平有效。
标准频率信号40MHz从BZH的时钟输入端BCLK输入,设置频率为Fs;
经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设置真实频率值为Fxe,被测频率为Fx。
等精度频率计原理如下图3-6所示:
图3-6等精度频率计设计原理图
bclk为标准频率信号设定为40MHz,tclk为被测信号,被测信号的范围为1Hz到40MHz。
clr为清零信号,cl为预置门信号,start为实际闸门信号,sel为数据选择器的控制端口,data为数据传送端口。
测试开始前,首先发出一个清零信号CLR,使两个计数器和D触发器置0,同时D触发器通过信号ENA,禁止两个计数器计数。
这是初始化操作。
然后由单片机发出允许测频命令,即令预置门控信号CL为高电平这时D触发器要一直等到被测信号的上升沿通过Q端时才把start置1,与此同时,将同时开启计数器BHZ和TF,进行计数,当Tpr秒后,预置门信号CL被单片机置为低电平,但此时两个计数器并没有停止计数,一直等到随后而至的被测信号的上升沿到来时start为0,才通过D触发器将这两个计数器同时关闭
图3-7等精度频率计波形仿真
设在一次预置门时间中对被测信号的计数值为Nx,对标准频率计数值为Ns,则下式成立:
Fx/Nx=Fs/Ns
不难得到测得的频率为:
Fx=(Fs/Ns)*Nx
3.4.3测量占空比的原理
设定中间信号pl,分别取被测信号的一个正脉宽和一个负脉宽作为门控信号,对标准频率进行计数,对正脉宽的计数值为N1,对负脉宽的计数值为N2,则周期计数值为N1+N2,于是占空比为:
占空比=N1*100%)/(N1+N2)
图3-8
3.4.4测量占空比的实现
对于占空比的测量,可以通过测量正反两脉宽的计数值来获得。
设BZH对正脉宽的计数值为N1,对负脉宽的计数值为N2,则周期计数值为N1+N2,于是占空比为:
占空比=(N1*100%)/(N1+N2)
占空比的测量流程如下图3-9所示:
图3-9占空比测量流程图
测量占空比的波形仿真见下图3-10占空比仿真波形,BCLK为标准频率信号为40MHz,TCLK为被测频率信号,CL预置门信号设置为低电平,给清零信号CLR一个有效电平(高电平有效),等待EEND由低电平跳变为高电平时表示对被测信号的一个负脉宽计数结束,此时读取标准计数器的数据标记为N1,然后再给出清零信号CLR一个有效电平,预置门控信号设置为高电平,等待EEND由低电平跳变为高电平时表示对被测信号的一个正脉宽计数结束,此时再读取标准计数器的数据标记为N2,对N1,N2进行简单的算术运算就可以得到占空比。
图3-10占空比仿真波形
3.5单片机的功能
3.5.1数据传输与计算
首先用VHDL语言编写一个八选一数据选择器,其封装模块如图3-8所示,其主要功能是由P0口的3根输出信号控制,将32位测频数据分成8个四位依次送进单片机P2的输入口。
图3-11八选一数据选择器
BZQ接标准频率计数器的数据口,TSQ接被测信号计数器的数据口,sel2、sel1、sel0接单片机的P0.6、P0.5、P0.4,DATA[7..0]接单片机的P2口,单片机程序在KeilC环境下开发,实现将32位二进制测频数据分成8个四位由高位到低位的顺序依次送到单片机。
单片机程序设计思想:
设置P0.6、P0.5、P0.4作为数据选择器的地址输入端,设置从000-111情况下依次将标准频率计数器和被测频率计数器的数据分别送到单片机。
定义一个32位的数据类型,把每次接受的8位数据通过“位移”指令和简单的加法还原为32位,再进行算术运算,得到想要的结果,驱动液晶显示出来。
3.5.2液晶显示
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
本实验使用字符型液晶模块HS162-4。
HS162-4液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字等。
HS162-4采用标准的16脚接口,其中VSS为地电源,VDD接5V正电源。
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“阴影”,使用时可以通过一个10K的电位器调整对比度。
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
LEDA和LEDK为背光电源,LEDA接5V正电源,LEDK接GND。
D0~D7为8位双向数据线。
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3-1是HS162-4的内部显示地址。
表1-1HS162-4内部显示地址表
即,第1行的显示开始地址应为:
80H;
第2行的显示开始地址应为:
C0H。
液晶的三个控制信号RS、RW、E,分别接单片机的P3.0、P3.1、P3.2,8位数据线接P1口,在程序中设置三个按键切换不同的功能:
K2(复位)————显示“QingGuangMing”
“BiYeSheJi”
K3(测频率)------显示“FREQ:
”
“测量所得的频率”
K4(测占空比)-----显示“DUTY:
“所测得的占空比”
按键控制的液晶显示流程图如下图3-12所示:
图3-12按键控制液晶显示流程图
3.6单片机与FPGA的组合应用
把FPGA程序和单片机程序分别调试好后再组合起,锁定引脚、编译、下载进行联合调试。
整体流程图如下图所示,bclk接标准频率信号40MHz,tclk接被测信号,clr接P0.0口,cl接P0.1口,spul接P0.2口,sel2、sel1、sel0分别接单片机P0.6、P0.5、P0.4口,start接P.7口,eend接P0.3口,data接P2口,按键K2是复位开关显示初始化内容,按键K3接P3.3测频显示,按键K4接P3.4测占空比显示。
图3-13总体框图
第四章程序调试
4.1等精度频率计程序
把等精度频率计模块与单片机系统正确确连接,锁定好引脚,特别注意不用的单片机I/O口要接地。
连线与引脚锁定分别见下图4-11、4-12。
图4-11
图4-12
4.2单片机程序和VHDL程序编译在一起下载到FPGA中
点击ROM,文件路径该成如图4-21所示点“./ASM”表示把单片机的hex文件存在当前工程ASM中。
图4-21
点击“Tool”选择“Programmer”,再点击“start”进行下载“progress”显示100%表示下载成功,如下图4-22
图4-22
第五章结果讨论
信号发生器发发出的频率
实际值
测量值
误差
16MHz
1999799Hz
1997929Hz
0.0116%
10MHz
9999213Hz
9989659Hz
0.095%
9MHz
8999195Hz
8990683
0.094%
100K
99970Hz
99897Hz
0.037%
50K
49985Hz
49948Hz
0.074%
20K
19994Hz
19979Hz
0.075%
10K
9997Hz
9990Hz
0.07%
1K
999Hz
999Hz’
500Hz
499Hz
300Hz
299.9Hz
299Hz
200Hz
199.9Hz
199Hz
70Hz
69.9Hz
69Hz
总结
本课题实现了用FPGA中的单片机IP核设计等精度频率计的系统。
用VHDL语言设计采集频率的部分,将测频结果送到8051单片机IP核中处理,8051单片机软核再驱动液晶显示测频和占空比数据。
本课题主要目的是学会8051单片机IP软核的应用,了解其与传统MCS-51单片机高度兼容(极个别指令不兼容),但速度为传统单片机的20倍,优化良好的条件下,主频最高可达250MHz,可实现SOC片上系统设置的优势。
此外,等精度频率计设计、单片机C语言的编写,也让我受益很多。
致谢
在这次毕业设计的过程中,我得到很多老师和同学的帮助,我的指导老师孙妍老师一直对我耐心指导,遇到问题时给我指出很有效的解决方法。
物理学院全体电子教研组的老师都为我们全班同学的毕业设计付出了辛勤的劳动。
在此,谨向导师表示崇高的敬意和衷心的感谢!
同时,也对我们08届电子信息科学专业的各位领导和老师的辛苦劳动表示由衷感谢!
参考文献
1.潘松黄继业,EDA技术实用教程,科学出版社,2009
2.阎石等,数字电子技术基础,高等教育出版社,2005
3.李云侯传教等,VHDL电路实用教材,机械工业出版社,2009
4.谭浩强,C程序设计,清华大学出版社,2007
5.倪云峰等,单片机原理与应用,西安电子科技大学出版社,2009
6.陈海宴,51单片机原理及应用,北京航空航天大学出版社,2010
附录
附录1:
等精度频率计相关程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityetesteris
port(bclk:
instd_logic;
tclk:
clr:
cl:
spul:
start:
outstd_logic;
eend:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机IP核的等精度频率计设计 推荐 基于 单片机 IP 精度 频率计 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)