• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于FPGA的三相函数信号发生器设计

基于FPGA的三相函数信号发生器设计

录入:edatop.com     点击:

2.1 分频模块设计

为了对波形频率精确控制,不同频率段需要不同的输入频率。项目设计中采用50 MHz外部有源晶振,利用FPGA内部锁相环将频率锁定在40.96 MHz,然后该频率进行10 MHz,100 MHz,1 000 MHz,10 000 MHz,如图4所示,这样就得到了5个不同的频率区间,最后通过5选1数据选择器由单片机选择所需要的时钟频率。时钟频率与输出波形频率之间具体关系,如表l所示。

\

\

2.2 波形产生模块设计

2.2.1 正弦波

正弦波的数据需要转换为*.mif文件后存放到ROM中,mif文件有固定格式规定了每个字的位宽WIDTH、总字数DEPTH、地址进制基数ADDR-ESS_RADIX和数据进制基数DATA_RADIX。在Matlab环境中编程计算出正弦波数据,然后生成mif文件。

EP2C8T144C8拥有较充裕的存储空间。因此,设计中为了提高精度在ROM中存放4 096个正弦数据,频率控制字、相位控制字由单片机控制产生,经过相位累加器组成地址发生器,产生的地址连到ROM的地址线上进行查表得到波形数据。

2.2.2 方波

方波算法比较容易实现。由于其只有高低电平两种状态。因此,只需要在一个周期的时间中间位置翻转电平即可。由于相位累加器的值是线形累加的,地址address的值也是线形累加的,对所给地址值address进行判断,当地址值的最高位为O时,便将波形幅值各字位赋值1,否则赋值0。就可以实现最简单的占空比50%的方波。

为了实现占空比可调,设计中增加一个变量PWM_zkb[11..0],让地址值与WM_zkb[11..O]比较,Adress[11..0]

2.2.3 三角波

三角波的生成原理与方波生成原理相似,也是对地址Address的值进行判断,当其最高位为0时,取其O~ll位为三角波的波形幅值,即令Data_out[11..0]=Address[11..0]。当其最高位为l时,对其0~1l位的值取反后再作为三角波的波形幅值,即令Data_out[11..0]=not(Address[11..0])。

2.2.4 锯齿波

锯齿波的产生也是基于上述原理,是对地址Address的值进行判断,当其最高位为O时,取其0~ll位为三角波的波形幅值,即令。Data_ out[11..0]=Address[11..0]。当其最高位为1时,对其最高位的值取反后作为锯齿波的波形幅值,即令Data_out,[11..0]=Address[11..0]and"011111111111"。

2.3 相移的实现

在A相地址的基础上,增加一个累加器,输入段分别是A相地址和偏移值,经过累加之后得到B相波形地址,然后根据此地址对ROM寻址或者在地址的基础上生成方波、三角波和锯齿波。如图5所示,A相、B相及B相、C相之间的偏移量有单片机控制,数据经过锁存后送入累加器。

\

2.4 波形选择的实现

根据设计要求,每一相都可以实现正弦波、方波、三角波和锯齿波任意一种波形的输出,设计了一个4选1数据选择器,控制端Sel[1.-.0]与单片机IO口相连,如图6所示,以A相为例。

\

 

来源:维库开发网

上一篇:一种用于PFC的模拟乘法器设计
下一篇:电源技术中I2C及PM Bus总线

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图