基于DSP与FPGA的光栅地震检波器的信号处理
2.2 双口RAM的流程图设计
首先是定义实体与外部端口,包括时钟、输入输出、读写地址端口。它们的作用分别是:
1)时钟端口:利用时钟的脉冲边沿来触发读写进程,使得新旧数据在双口RAM中交替进出。
2)输入输出端口:分别为16位的位矢量类型,用来保证与16位AD和DSP的数据格式匹配。
3)读写地址端口:2位的位矢量类型,用来设置16位字的存储器容量,并在读写RAM操作时提供地址选址信号。
其次是定义结构体,包括定义内部缓冲地址信号,并定义了一个容量为16字的Mem(存储器类型)型变量。
最后是并发进程的定义,包括写进程和读进程的定义,以时钟的脉冲信号作为敏感信号来触发进程的启动,每一个时钟周期完成一次对RAM的读写,其中时钟频率由FPGA根据AD的采样速度和DSP的处理速度来设定,要保证当采集信号写入尾地址的时刻,至少要保证首地址已经被DSP所读取。图3为双口RAM程序流程图。
一体成型电感器2.3 双口RAM的仿真结果
图4为该进程的仿真时序图,由图可见第一个时钟的上升沿数据输入端口data_in的值为4,这时写选通端口write_address选通地址1,然后对应着地址1的存储器模块ram_block1的内的值在此刻刷新为4,这说明写进程正确。同时应注意到读地址选通信号read_address的值被传递到读地址寄存器read_address_reg中,read_address_reg中的值被刷新为1。当第一个时钟的下降沿到来时,信号输出端口data_out根据读地址寄存器read_address_re电感器厂家g中的地址值1选通ram_block1,此时data_out的值刷新为4,电感厂家这说明读进程也正确。
3 DSP的软件细分
采用大数可逆计数与小数细分计数的软件细分技术。其中大数计数是对莫尔条纹整周期数进行可逆的加减计数,这部分功能有采集模块中的FPGA来完成,小数计数是对莫尔条纹不到一个周期信号细分结果进行计数,其功能由DSP来完成。运算的结果为大数计数结果乘以光栅栅距与小数计数结果乘以细分当量之和,其中细分当量为光栅栅距除以细分倍数。该模块的硬件原理图如图5所示。
通过DSP的地址选通线依次选通读取FPGA中三个数据缓存区中的数据,缓存区分别存放两路模拟信号的数字量与加减计数器的累加计数值,然后利用公式R=N*w+K*L求出任意一点谐振子的幅值并输出。式中N为整周期的累加计数值,W为光栅栅距,K为细分计数,L=W/M,M为细分倍数。该细分模块主要是完成对细分计数K值、和幅值R值的求取,并完成对幅值的数字量转换并输出。
其中细分方法也就是对K值的求取采用了八卦限幅值分割法,根据上述方法设计了细分倍数可变的细分算法,利用DSP C语言的专用库函数实现了纯计算的算法。细分算法流程如图6所示。
由幅值细分法可知,软件细分算法设计的关键问题是根据两路信号的比值对该点的相位角的正确定位。该点的位置有两种情况,一种是落在各象限的边界上,另一种是落在各象限之中。根据细分边界条件判断该点的采样数据是否发生在四个象限的分界线上,如果判断此次换向发生在象限的分界线上,则细分数为固定值,并且通过象限的正负关系就可以确定具体细分数值,不需要进行复杂的计算。如果该点不是发生在象限分界线上,则需根据象限正负关系判断换向发生的具体象限,不同象限对应不同计算公式。细分算法程序如下:
static int subdiv(int*input,int*input1)一设置指针形参用来读取两路波形采样值
{
程序初始化,定义各种变量标志字。
float ADSIN_X,ADCOS_X,ABSIN_X,ABCOS_X;一定义存储变量存放采样值与绝对值
int m=0,n=0,k=0,d=0,i=0;一设置标志字判断采样值正负
ADSIN_X=*input;-从缓存区读取sin采样值
ADCOS_X=*input1;-从缓存区读取cos采样值
ABSIN_X=fabs(ADSIN_X);-求取sin绝对值
ABCOS_X=fabs(ADCOS_X);-求取COS绝对值
根据采样值,写标志字平面变压器厂家 | 平面电感厂家
基于单片机的智能救援机器人小车设计摘要:设计了一种简单的基于单片机的智能救援机器人小车,设计简单,易于实现,通过现场演示,我们的设计取得了不错的结果。关键词:单片机;智能救援;机器人小车0 引言近几年地震灾害频频发生,危害较大的是20
请教一个HLW8012的功率计量电路我有两个疑问
1)当电流从N到L时,4号脚的分压不就反过来了吗?这么大电压远远超过了IC允许范围了?求前辈指导下~
2)C11和C12公共端就是3号脚,感觉不太对呀?这样还能滤除共模干扰
数字增强型电源模拟控制器实现模拟+数字的合成传统的DC/DC电源转换一般都是在模拟域中完成的,单片机引入后,越来越多的DC/DC转换开始在数字域中完成。通过数字控制使DC/DC电源转换具有更高的灵活性,而模拟控制也具有效率高和成本低的优点。综合