一种低速数字信号调制方法和装置与流程

文档序号:11294943阅读:213来源:国知局
一种低速数字信号调制方法和装置与流程

本发明属于数字通信领域,尤其涉及一种低速数字信号调制方法和装置。



背景技术:

在数字通信中,需要用数字形式传输消息,或用数字形式对载波信号进行调制后再传输的通信方式。

基本的数字调制方式共有振幅键控(Amplitude Shift Keying,ASK)、频移键控(Frequency Shift Keying,FSK)和相移键控(Phase Shift Keying,PSK)三种,分别根据数据信息对载波的幅度、频率和相位进行调制。

振幅键控用数字调制信号控制载波的通断。如在二进制中,发0时不发送载波,发1时发送载波。有时也把代表多个符号的多电平振幅调制称为振幅键控。振幅键控实现简单,但抗干扰能力差。

移频键控用数字调制信号的正负控制载波的频率。当数字信号的振幅为正时载波频率为f1,当数字信号的振幅为负时载波频率为f2。有时也把代表两个以上符号的多进制频率调制称为移频键控。移频键控能区分通路,但抗干扰能力不如移相键控和差分移相键控。

移相键控用数字调制信号的正负控制载波的相位。当数字信号的振幅为正时,载波起始相位取0;当数字信号的振幅为负时,载波起始相位取180°(通常称为BPSK)。有时也把代表两个以上符号的多相制相位调制称为移相键控(通常称为DPSK)。移相键控抗干扰能力强,但在解调时需要有一个正确的参考相位,即需要相干解调。

这三种调制方式应用非常广泛,人们也设计了多种调制解调方法和装置,较为常见的方式:

使用可编程逻辑器件(FPGA或CPLD)控制数模转换器(DAC),产生幅度、频率、相位不同的调制信号;使用直接数字式频率合成器(DDS)产生频率、相位不同的调制信号。



技术实现要素:

为了解决上述问题,本发明的目的是提供一种具有电路体积小、功耗低等优点,可灵活配置使用,对ASK、FSK、PSK等方式均具有适应性的低速数字信号调制方法和装置。

本发明的技术方案是:一种低速数字信号调制方法,所述方法应用于传输速度低、功耗低的场合,对多种调制方式均适用,该方法包括以下步骤:

步骤1):生成一个周期的正弦数据点表,所述数据点表保存在掉电存储器中;

步骤2):数据预处理单元读取所述步骤1)中的数据点并将其发射(送)至建立的数据缓冲区单元,所述数据缓冲区单元用于临时保存该数据点;其中数据位的发送由第1路定时器控制;

步骤3):直接内存访问控制器用于将所述数据缓冲区单元中的数据按照一定的时间间隔发送给数模转换器;其中所述时间间隔由第2路定时器控制;

步骤4)数模转换器用于将数字量转换成模拟电压值输出;

步骤5)滤波器用于对模拟量进行滤波。

进一步,所述步骤2)中的第1路定时器的控制方法为:确定一个定时时间长度为发射1个基波数据位时间,定时时间到会触发中断服务程序,在该中断服务程序中准备发射下一个基波数据位。

进一步,其中,发射时能根据发射方式对数据点进行调制,再逐位进行,每发射1位,发送数据时计算数据数值大小和配置直接内存访问器的源数据的起始位置指针Pstart及数据长度并保存进所述数据缓冲单元区,以备直接内存访问控制器自动将数据发送给数模转换器;

发射完1位后,触发定时器中断服务,进入定时器中断服务后,判断所有数据是否发射完成,如果发射完成,则结束;如果没有发生完成则进行下一步;即:

产生1位数据位的发射所需数据缓冲单元区,触发定时器中断服务,退出定时器中断服务程序。

进一步,其中调制方式为:

①ASK方式下,设发射位为1和0时,电压幅值分别是f1*VREF和f0*VREF,VREF为参考电压值,则发射1和0时,准备数据缓冲区时分别对正弦数据点表分别乘上系数f1和f0,相位自0开始;

②FSK方式下,发射时电压幅值是ffsk*VREF,VREF为参考电压值,则准备数据缓冲区时对正弦数据点表乘上系数ffsk,相位自0开始,发射位1和0时之前,设置定时器的数值依据频率不同而不同;

③PSK方式下,发射时电压幅值是fpsk*VREF,VREF为参考电压值,则准备数据缓冲区时对正弦数据点表乘上系数fpsk,依据发射位为1和0时的相位,分别自不同的起点开始读取正弦数据点表;

进一步,所述正弦数据表的生成公式如下所示:

式中,Xi为第i(i=1,2,…,N-1)数据点数值,N为一个周期内数据点总数,且N≥100,M为数模转换器的位数;

其中所述数据点的最小值是0,最大值是数模转换器能接收的最大值DDAC_MAX,DDAC_MAX取值范围为2M-1。

进一步,步骤3)中第2路定时器用于控制将缓冲区中的数据按照载波周期的长度发送给数模转换器。

本发明的另一目的是提供上述调制方法使用的一种低速数字信号调制装置,该装置包括掉电存储器、数据预处理单元、数据缓冲区单元、直接内存访问控制器、定时器、模数转换器及滤波器;

所述掉电存储器,用于存储生成的正弦数据表,以供数据预处理单元读取,发生掉电数据仍保留;

所述数据预处理单元,用于读取所述掉电存储器中数据,所述数据预处理单元分别与所述定时器和数据缓冲区单元连接;

所述定时器,分为第1路定时器和第2路定时器,其中第1路定时器控制发射1个基波数据位时间,该定时时间到会触发中断服务程序,在该中断服务程序中准备发射下一个基波数据位;第2路定时器则控制直接内存访问控制器,用于控制将数据缓冲单元中的数据按照载波周期的长度发送给数模转换器;

所述数据缓冲区单元,用于存储过程中的临时数据;所述数据缓冲区单元一端与所述数据预处理单元连接,另一端与所述直接内存访问器连接;

所述直接内存访问控制器,用于将所述数据缓冲区单元中的数据按照一定的时间间隔送给所述数模转换器;

所述数模转换器,用于将接收到数字量转换成模拟电压值输出;

所述滤波器用于对所述模拟电压值进行滤波。

进一步,前述生成的一个周期的N个点正弦数据点表,则第1个点对应相位为0,4/N点相位90°,依次类推。如果要发射的起始相位为α(α>0),则准备数据缓冲区时,第1点取自正弦数据点表的α/360*N(取整数)点,依次增加,最后1点为(α/360*N-1)(取整数),重复S次。图4描述了这种关系。

所述数模转换器,用于将数字量转换成模拟电压值输出,假设拟让其输出模拟电压值VO,其参考电压值为VREF,位数为M,数字量数据为D,则有:

本发明的有益效果是:本发明研究设计了在集成有DAC、定时器(Timer)、直接内存访问控制器(DMA)的处理器上,进行数字信号调制的方法,具有电路体积小、功耗低等优点,使用C语言编程设计,可灵活配置使用,对ASK、FSK、PSK等方式均具有适应性。适应于某些信号传输速度低、安装空间受限、功耗要求低的场合下,如石油测井通信之中。

附图说明

图1为本发明一种低速数字信号调制装置的逻辑框图。

图2为本发明一种低速数字信号调制的流程框图。

图3为本发明BPSK发射8bit基带(上)与载波(下)波形对比示意图。

图4为相位关系示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案作进一步说明。

如图1所示,本发明一种低速数字信号调制装置,该装置包括掉电存储器、数据预处理单元、数据缓冲区单元、直接内存访问控制器、定时器、模数转换器及滤波器;

所述掉电存储器,用于存储生成的正弦数据表,以供数据预处理单元读取,发生掉电数据仍保留;

所述数据预处理单元,用于读取所述掉电存储器中数据,所述数据预处理单元分别与所述定时器和数据缓冲区单元连接;

所述定时器,分为第1路定时器和第2路定时器,其中第1路定时器控制发射1个基波数据位时间,该定时时间到会触发中断服务程序,在该中断服务程序中准备发射下一个基波数据位;第2路定时器则控制直接内存访问控制器,用于控制将数据缓冲单元中的数据按照载波周期的长度发送给数模转换器;

所述数据缓冲区单元,用于存储过程中的临时数据;所述数据缓冲区单元一端与所述数据预处理单元连接,另一端与所述直接内存访问器连接;

所述直接内存访问控制器,用于将所述数据缓冲区单元中的数据按照一定的时间间隔送给所述数模转换器;

所述数模转换器,用于将接收到数字量转换成模拟电压值输出;

所述滤波器用于对所述模拟电压值进行滤波。

如图2所示,本发明一种低速数字信号调制方法,所述方法应用于传输速度低、功耗低的场合,对多种调制方式均适用,该方法包括以下步骤:

步骤1):生成一个周期的正弦数据点表,所述数据点表保存在掉电存储器中;

步骤2):数据预处理单元读取所述步骤1)中的数据点并将其发射(送)至建立的数据缓冲区单元,所述数据缓冲区单元用于临时保存该数据点;其中数据位的发送由第1路定时器控制;

步骤3):直接内存访问控制器用于将所述数据缓冲区单元中的数据按照一定的时间间隔发送给数模转换器;其中所述时间间隔由第2路定时器控制;

步骤4)数模转换器用于将数字量转换成模拟电压值输出;

步骤5)滤波器用于对模拟量进行滤波。

所述步骤2)中的第1路定时器的控制方法为:确定一个定时时间长度为发射1个基波数据位时间,定时时间到会触发中断服务程序,在该中断服务程序中准备发射下一个基波数据位。

进一步,其中,发射时能根据发射方式对数据点进行调制,再逐位进行,每发射1位,发送数据时计算数据数值大小和配置直接内存访问器的源数据的起始位置指针Pstart及数据长度并保存进所述数据缓冲单元区,以备直接内存访问控制器自动将数据发送给数模转换器;

发射完1位后,触发定时器中断服务,进入定时器中断服务后,判断所有数据是否发射完成,如果发射完成,则结束;如果没有发生完成则进行下一步;即:

产生1位数据位的发射所需数据缓冲单元区,触发定时器中断服务,退出定时器中断服务程序。

进一步,其中调制方式为:

①ASK方式下,设发射位为1和0时,电压幅值分别是f1*VREF和f0*VREF,VREF为参考电压值,则发射1和0时,准备数据缓冲区时分别对正弦数据点表分别乘上系数f1和f0,(系数的取值范围大于0,小于等于1)相位自0开始;

②FSK方式下,发射时电压幅值是ffsk*VREF,VREF为参考电压值,则准备数据缓冲区时对正弦数据点表乘上系数ffsk(系数的取值范围大于0,小于等于1),相位自0开始,发射位1和0时之前,设置定时器的数值依据频率不同而不同;

③PSK方式下,发射时电压幅值是fpsk*VREF,VREF为参考电压值,则准备数据缓冲区时对正弦数据点表乘上系数fpsk(系数的取值范围大于0,小于等于1),依据发射位为1和0时的相位,分别自不同的起点开始读取正弦数据点表;

进一步,所述正弦数据表的生成公式如下所示:

式中,Xi为第i(i=1,2,…,N-1)数据点数值,N为一个周期内数据点总数,且N≥100,M为数模转换器的位数;

其中所述数据点的最小值是0,最大值是数模转换器能接收的最大值DDAC_MAX,DDAC_MAX取值范围为2M-1。

进一步,步骤3)中第2路定时器用于控制将缓冲区中的数据按照载波周期的长度发送给数模转换器。

前述生成的一个周期的N个点正弦数据点表,则第1个点对应相位为0,4/N点相位90°,依次类推。如果要发射的起始相位为α(α>0),则准备数据缓冲区时,第1点取自正弦数据点表的α/360*N(取整数)点,依次增加,最后1点为(α/360*N-1)(取整数),重复S次。图4描述了这种关系。

具体实施例:

在此实例中,需要使用BPSK方式进行数据调制发送,载波频率1000Hz,用户数据发送频率20bps(即基带频率每秒发送20bit),每1bit占用5(S)个载波信号周期,发送bit为1时,载波信号起始相位0°,发0时起始相位180°。

使用的CPU为STM32F407,内部资源有定时器、掉电存储器、内存、定时器、直接内存访问控制器、数模转换器,产生的模拟电压信号由数模转换器的对应引脚输出。数模转换器为12位,最大输入数值212-1=4095(DDAC_MAX)。

首先生成的一个周期的正弦数据点表,一个周期的内点数为200(N),最小值0,最大值4095。按照载波频率和基带频率比,在数据缓冲区中保存6*200=1200点数据,即将该正弦数据点连续重复保存6遍,此缓冲器记为Dbuf

直接内存访问控制器配置为数据流向从内存到数模转换器,数据更新速度1000Hz,由一路定时器控制,另一路定时器用于控制数据位的发送。数模转换器的参考电压2.5V(VREF),电压输出范围0-2.5V。

通过配置定时器和直接内存访问器可以实现模拟数据的连续输出,1次配置直接内存访问器后输出5*200=1000点数据,持续时间为1/20=50mS,即1位基带数据位的持续时间。

每发送1位数据位,需要计算数据数值大小和配置直接内存访问器的源数据的起始位置指针Pstart及数据长度(固定为1000),计算方法是:

1)发送1时,Pstart取0,发送0时,Pstart取100,以保证起始相位分别是0°和180°;

2)发送电压的最大值为Vmax,则Dbuf中的数据分别乘以系数Vmax/VREF

完成配置后即可启动直接内存访问器,开始发送1bit的数据。

第2路定时器的定时间隔为50mS,在定时中断处理程序中,准备下一位要发送的数据缓冲区和配置直接内存访问器,并启动发送。直到所有数据位都发送完毕再关闭定时器。

以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1