一种嵌入式可编程扫频信号发生器模块及其通讯协议的建立
文献发布时间:2023-06-19 11:21:00
技术领域
本发明涉及电子测量技术领域,具体涉及一种嵌入式可编程扫频信号发生器模块及其通讯协议的建立。
背景技术
近年来,随着物联网和移动互联网的迅猛发展,在测量领域,需要测量的参数也越来越多,当在开发某个系统时,需要一款扫频信号发生器模块,需要花时间和精力在如何开发扫频信号发生器本身上,不仅对用户提出一定的要求,同时也延长了整个系统的开发时间。
发明内容
为了克服上述现有技术的缺点,本发明提出了一种嵌入式可编程扫频信号发生器模块及其通讯协议的建立,基于Modbus标准的通讯协议,使用了RS485标准的总线接口,使用户能够按照通讯协议向扫频信号发生器发送一些命令即可完成用户想要实现的功能,具有操作简便、反应迅速、测量准确及实用高效的优点,大大节约了用户的时间成本和经济支出。
为了实现上述目的,本发明采用的技术方案为:
一种嵌入式可编程扫频信号发生器模块,包括通信模块1、主控模块2及信号产生模块3;用户通过在上位机上输入指令数据,数据经过通信模块1进行转换,将转换后的数据传输给主控模块2,主控模块2接收到指令数据后,对数据进行解析并控制信号产生模块3产生相应的信号;
所述主控模块2采用单片机;
所述信号产生模块3包括系统时钟31、相位累加器32、波形存储器33、数模转换器34以及低通滤波器35,在系统时钟31的同步下,信号产生模块3接受来自主控模块2的控制命令,相位累加器32接受到控制命令后输出包含相位信息的二进制序列,并将该二进制序列作为波形存储器33的地址输入到波形存储器33中,输出含有幅值信息的二进制序列,再经过数模转换器34即可得到阶梯波,最后经过低通滤波器35滤波,去除阶梯波中的噪声和杂散分量后进行信号输出;
所述通信模块1采用RS485总线接口。
一种嵌入式可编程扫频信号发生器模块的Modbus通讯协议的建立,具体步骤如下:
步骤一、简化OSI参考模型;
对应于通信模块1,将OSI参考模型的七层:应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层简化成应用层、数据链路层以及物理层三层模型,使得上位机与主控模块2之间能相互通信;
应用层直接向用户提供服务:用户通过上位机软件中输入参数,通过应用层将这些参数命令传输给数据链路层;
数据链路层包括帧编码和差错校验,帧编码将数据分割成以帧为单位进行数据传输,传输的方向在上位机软件到嵌入式可编程扫频信号发生器模块之间双向传输;差错校验通过在帧的结尾添加校验码,使得数据正确、稳定的传输;
物理层将每帧数据转换成二进制码元,当上位机向嵌入式可编程扫频信号发生器模块发送数据时,上位机是发送端,嵌入式可编程扫频信号发生器模块是接收端;当嵌入式可编程扫频信号发生器模块向上位机发送数据时,嵌入式可编程扫频信号发生器模块是发送端,上位机是接收端;通过发送端与接收端约定共同的波特率、起始位数、停止位数、奇偶校验位数从而实现数据在物理层接口信道上的传输;
步骤二、确定步骤一简化后数据链路层和物理层协议:
选择RS485总线标准作为物理层传输协议;
使用Modbus_RTU作为数据链路层传输协议;
步骤三、结合Modbus_RTU传输协议以及嵌入式可编程扫频信号发生器模块设置参数特点,制定通讯协议。
所述的步骤三具体为:
一、设置嵌入式可编程扫频信号发生器模式:对控制模式的寄存器写入不同的数据,从而配置不同的模式,控制模式的寄存器存在于信号产生模块3中,包括单频模式、扫频模式、FSK模式、BPSK模式、Chirp模式,然后对应不同的模式进行参数配置;
表1嵌入式可编程扫频信号发生器模块参数设定
二、扫频信号发生器模块通讯协议制定:
Modbus_RTU的一帧数据分为地址域、功能码、数据域、差错校验,对以上四个数据进行如下设置:
1)地址域,地址域代表了扫频信号发生器的ID,将扫频信号发生器模块的地址域设置为01;
2)功能码,设置功能码03为读扫频信号发生器模块多路寄存器,设置功能码10为写扫频信号发生器模块多路寄存器;
3)数据域,确定功能码03读扫频信号发生器模块多路寄存器包括如下三个数据参数:寄存器地址、读寄存器个数、读的字节数;确定功能码10写扫频信号发生器模块多路寄存器包括如下四个数据参数:寄存器地址、写寄存器个数、写的字节数、以及写入寄存器的数据;
寄存器地址设置:
将Mode寄存器地址设置为0000H;
将Fre1、Fre2、Step_Fre这三个参数最大取值为105000000,寄存器地址设置为四个字节,设置Fre1寄存器地址设为0001H和0002H,对于Fre2寄存器地址设为0003H及0004H,Step_Fre寄存器地址设为0005H及0006H;
Time、Step_Time、Ampli、P1、P2的最大取值范围都在65535以内,按顺序依次设置两个字节的地址即可,Time寄存器地址设为0007H,Step_Time寄存器地址设为0008H,Ampli寄存器地址设为0009H,P1寄存器地址设为000AH,P2寄存器地址设为000BH;
读/写寄存器个数:根据上位机读或者写几个寄存器个数确定,由两个字节构成;当上位机要读/写一个寄存器,则为0001,上位机要读/写两个寄存器,则为0002,以此类推;
读/写字节数:根据读/写寄存器个数确定,由一个字节构成;当读/写一个寄存器,则两个字节,为02,当读/写两个寄存器,则四个字节,为04;
写入寄存器的数据:向信号产生模块3某个寄存器的地址写入与表1中9个参数范围相吻合的数据;
4)校验码,采用CRC校验码检验上位机或嵌入式可编程扫频信号发生器模块在通讯数据传送过程中的信息是否有误,错误的数据放弃,完成通讯协议建立。
表2嵌入式可编程扫频信号发生器模块通讯协议
本发明与现有技术相比具有以下优点:
RS485总线具有接口电平低、不易损坏芯片以及传输速率高、传输距离远、抗干扰能力强有优点;Modbus通讯协议是目前应用范围最广的控制器通用协议,通过该协议,不同厂家不同设备之间可以进行通讯的特点,使用Modbus_RTU作为数据链路层传输协议;利用本发明,用户可以在不用对扫频信号发生器的原理有一定了解的基础上,按照本发明制定的通讯协议输入指令即可实现对扫频信号发生器模块的使用,使用户能专注于系统功能的研究从而大大缩短了系统开发的时间。
综上,本发明具有操作简便、反应迅速、测量准确及实用高效的优点,大大节约了用户的时间成本和经济支出。
附图说明
图1是本发明系统总体框图。
图2是本发明信号产生模块系统框图。
图3是本发明通讯协议的建立流程图。
图4是本发明OSI参考模型。
图5是本发明数据传输的简化三层模型。
图6是本发明Modbus数据帧结构。
图7是本发明Modbus通信流程。
图8是本发明扫频信号发生器参数设置。
图中:1、通信模块;2、主控模块;3、信号产生模块;31、系统时钟;32、相位累加器;33、波形存储器;34、数模转换器;35、低通滤波器。
具体实施方式
下面结合附图对本发明做进一步说明。
参见图1,一种嵌入式可编程扫频信号发生器模块,包括通信模块1、主控模块2及信号产生模块3;用户通过在上位机上输入指令数据,数据经过通信模块1进行转换,将转换后的数据传输给主控模块2,主控模块2接收到指令数据后,对数据进行解析并控制信号产生模块3产生相应的信号;
所述主控模块采用单片机;
参见图2,所述信号产生模块3包括系统时钟31、相位累加器32、波形存储器33、数模转换器34以及低通滤波器35,在系统时钟31的同步下,信号产生模块3接受来自主控模块2的控制命令,相位累加器32接受到控制命令后输出包含相位信息的二进制序列,并将该二进制序列作为波形存储器33的地址输入到波形存储器33中,输出含有幅值信息的二进制序列,再经过数模转换器34即可得到阶梯波,最后经过低通滤波器35滤波,去除阶梯波中的噪声和杂散分量后进行信号输出;
所述通信模块1采用RS485总线接口。
参见图3,一种嵌入式可编程扫频信号发生器模块的Modbus通讯协议的建立,具体步骤如下:
步骤一、简化OSI参考模型;
参见图4、图5,对应于通信模块1将OSI参考模型的七层:应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层简化成应用层、数据链路层以及物理层三层模型,使得上位机与主控模块2之间能相互通信;
应用层直接向用户提供服务:用户通过上位机软件中输入参数,通过应用层将这些参数命令传输给数据链路层;
数据链路层包括帧编码和差错校验,帧编码将数据分割成以帧为单位进行数据传输,传输的方向在上位机软件到嵌入式可编程扫频信号发生器模块之间双向传输;差错校验通过在帧的结尾添加校验码,使得数据正确、稳定的传输;
物理层将每帧数据转换成二进制码元,当上位机向嵌入式可编程扫频信号发生器模块发送数据时,上位机是发送端,嵌入式可编程扫频信号发生器模块是接收端;当嵌入式可编程扫频信号发生器模块向上位机发送数据时,嵌入式可编程扫频信号发生器模块是发送端,上位机是接收端;通过发送端与接收端约定共同的波特率、起始位数、停止位数、奇偶校验位数从而实现数据在物理层接口信道上的传输;
步骤二、确定步骤一简化后数据链路层和物理层协议:
选择RS485总线标准作为物理层传输协议;
使用Modbus_RTU作为数据链路层传输协议;
步骤三、结合Modbus_RTU传输协议以及嵌入式可编程扫频信号发生器模块设置参数特点,制定通讯协议。
参见图6至图8,所述的步骤三具体为:
一、设置嵌入式可编程扫频信号发生器模式:对控制模式的寄存器写入不同的数据,从而配置不同的模式,控制模式的寄存器存在于信号产生模块3中,包括单频模式、扫频模式、FSK模式、BPSK模式、Chirp模式,然后对应不同的模式进行参数配置;
表1嵌入式可编程扫频信号发生器模块参数设定
二、扫频信号发生器模块通讯协议制定:
Modbus_RTU的一帧数据分为地址域、功能码、数据域、差错校验,对以上四个数据进行如下设置:
1)地址域,地址域代表了扫频信号发生器的ID,将扫频信号发生器模块的地址域设置为01;
2)功能码,设置功能码03为读扫频信号发生器模块多路寄存器,设置功能码10为写扫频信号发生器模块多路寄存器;
3)数据域,确定功能码03读扫频信号发生器模块多路寄存器包括如下三个数据参数:寄存器地址、读寄存器个数、读的字节数;确定功能码10写扫频信号发生器模块多路寄存器包括如下四个数据参数:寄存器地址、写寄存器个数、写的字节数、以及写入寄存器的数据;
寄存器地址设置:
将Mode寄存器地址设置为0000H;
将Fre1、Fre2、Step_Fre这三个参数最大取值为105000000,寄存器地址设置为四个字节,设置Fre1寄存器地址设为0001H和0002H,对于Fre2寄存器地址设为0003H及0004H,Step_Fre寄存器地址设为0005H及0006H;
Time、Step_Time、Ampli、P1、P2的最大取值范围都在65535以内,按顺序依次设置两个字节的地址即可,Time寄存器地址设为0007H,Step_Time寄存器地址设为0008H,Ampli寄存器地址设为0009H,P1寄存器地址设为000AH,P2寄存器地址设为000BH;
读/写寄存器个数:根据上位机读或者写几个寄存器个数确定,由两个字节构成;当上位机要读/写一个寄存器,则为0001,上位机要读/写两个寄存器,则为0002,以此类推;
读/写字节数:根据读/写寄存器个数确定,由一个字节构成;当读/写一个寄存器,则两个字节,为02,当读/写两个寄存器,则四个字节,为04;
写入寄存器的数据:向信号产生模块3某个寄存器的地址写入与表1中9个参数范围相吻合的数据;
4)校验码,采用CRC校验码检验上位机或嵌入式可编程扫频信号发生器模块在通讯数据传送过程中的信息是否有误,错误的数据放弃,完成通讯协议建立。
表2嵌入式可编程扫频信号发生器模块通讯协议
通讯协议制定好以后,用户按照通讯协议在上位机上输入指令,指令通过通信模块1传送给主控模块2,主控模块2解析指令,并对信号产生模块3进行相关参数配置,使之输出相应的信号。
实施例
扫频信号发生器支持功能码“10”写多个寄存器和功能码“03”读多个寄存器。功能码“10”写多个寄存器,例如:用户想要一个1kHz,500mV的正弦信号,即先设置模式1,再设置频率为1kHz,幅值为500mV,按照扫频信号发生器的通讯协议,设置模式1,嵌入式可编程扫频信号发生器模块地址码为01,上位机发送的报文格式如表3所示,设置完模式1嵌入式可编程扫频信号发生器模块响应返回的报文格式如表4所示,频率设置为1kHz上位机发送的报文格式如表5所示。频率设置为105MHz上位机发送的报文格式如表6所示,幅值设置为500mV上位机发送的报文格式如表7所示。
表3设置模式1主机发送报文格式
表4设置模式1从机响应返回的报文格式
表5设置频率为1kHz主机发送报文格式
表6设置频率为105MHz主机发送报文格式
表7设置幅值为500mV主机发送报文格式
功能码03为读多个寄存器,例如;上位机要读取从机地址为01,嵌入式可编程扫频信号发生器模块寄存器起始地址为0001的2个寄存器数据,上位机发送的报文格式如表8所示,嵌入式可编程扫频信号发生器模块响应的报文格式如表9所示。
表8主机读频率参数发送的报文格式
表9主机读频率参数从机响应返回的报文格式
以上表格中所述主机即上位机,所述从机即嵌入式可编程扫频信号发生器模块。
本发明工作原理为:
本发明基于Modbus标准的通讯协议,使用了RS485标准的总线接口,使用户可以在不用对扫频信号发生器的原理有一定了解的基础上,能够按照通讯协议向扫频信号发生器发送命令即可完成用户想要实现的功能,实现对扫频信号发生器的使用,使用户能专注于系统功能的研究从而大大缩短了系统开发的时间。
以上实施例仅用于说明本发明,而并非对本发明的限制,有关此技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的保护范围应由权利要求限定。
- 一种嵌入式可编程扫频信号发生器模块及其通讯协议的建立
- 一种非标准时序可编程嵌入式DVI源模块