本文主要是介绍树莓派python蓝牙_一种基于树莓派和Python语言的频率合成器系统的制作方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本发明涉及一种频率合成器系统,尤其是涉及一种基于树莓派和Python语言的频率合成器系统。
背景技术:
几乎每个RF和微波系统都需要频率合成器。频率合成器产生本振信号以驱动混频器、调制器、解调器及其他许多RF和微波器件。近年来频率合成技术的发展十分迅猛,实际中采用的频率合成方案有直接频率合成、数字锁相环频率合成以及直接数字频率合成。直接频率合成法产生的频率范围有限,而且设备体积庞大;DDS产生的频率较低,且输出信号的相位噪声指标差;数字锁相环频率合成的系统结构简单,输出频谱纯度高,它是目前频率合成技术中的主要形式。
锁相环频率合成器的控制多采用软件与硬件相结合的设计方案,大多数控制方案多采用单片机、FPGA等对锁相环频率合成器芯片内的参考分频器和反馈支路分频器进行寄存器编程。单片机控制系统往往主频太低,指令执行速度慢,导致系统整体性能不高;而且单片机内部寄存器配置复杂,导致开发周期变长;而且开发上述系统的编程语言大部分使用C语言,C语言相对“低级的”语言,软件功能相对较弱,软件开发难度较大,使整个系统开发速度降低。FPGA控制系统是通过纯硬件来实现各种时序的输出,而纯硬件会出现输出短暂的不稳定现象,这可能会给设计带来致命的危险。采用单片机和FPGA的控制方式其软件程序一般不开源,因此导致成本更高,对硬件的要求也要更高。
技术实现要素:
本发明的目的主要是为了解决上述技术问题,而提供一种基于树莓派和Python语言的频率合成器系统。
实现本发明的技术方案是:
一种基于树莓派和Python语言的锁相环频率合成器系统,包括计算机Putty客户端、树莓派开发板、频率合成模块、OLED显示模块、电源模块,其特征在于所述计算机Putty客户端通过树莓派开发板连接频率合成模块和OLED显示模块,电源模块为各模块提供工作电源;用户通过计算机Putty客户端远程登录树莓派开发板,运行设定输出频率的Python指令,树莓派开发板运行频率解析程序和读写寄存器程序,对频率合成模块的寄存器配置,实现频率输出,频率合成模块向树莓派开发板发送频率信息和锁定状态信息,树莓派开发板向OLED显示模块发送数据,OLED显示模块显示频率信息和锁定状态信息。所述的树莓派开发板包括BCM2835芯片和GPIO扩展接口,所述的GPIO扩展接口包括3线SPI接口和4线SPI接口,所述的计算机Putty客户端通过SSH协议接入树莓派开发板的IP地址,然后登录树莓派账号进入系统,所述的频率合成模块包括锁相环频率合成器芯片HMC837LP6CE芯片,所述的HMC837LP6CE芯片、OLED显示模块分别通过4线SPI接口、3线SPI接口与树莓派开发板通讯相连,所述的电源模块包括3.3V电源模块和5.5V电源模块,所述的3.3V电源模块、5.5V电源模块分别为OLED显示模块、频率合成模块提供电源电压,所述的计算机Putty客户端远程登陆树莓派开发板,所述的树莓派开发板完成对GPIO和SPI的配置,在Python语言中输入设定输出频率f的Python指令,运行频率解析程序,根据f的范围分别给射频输出分频比赋予不同的值,从而确定频率合成器工作在基频模式还是二分频模式,然后根据公式fvco=f/k得到压控振荡器的输出频率fvco,然后根据公式N=fvoc/fxtal得到反馈支路分频比N,对N 向下取整得到N的整数部分赋值给N1,对N-N1向下取整除以224后赋值给N2,之后运行读写寄存器程序,所述的树莓派开发板通过4线SPI接口向HMC837LP6CE芯片内的寄存器进行读写操作,依次配置参考分频器、Δ-Σ调制器、电荷泵电流和偏置电流、VCO子系统等所在的寄存器,然后开始执行配置频率操作,分别向整数寄存器Reg03h和小数寄存器Reg04h写入数据N1和N2,所述的频率合成模块输出设定频率f,然后所述的树莓派开发板从HMC837LP6CE芯片内的寄存器Reg12h读取锁相环锁定状态数据,所述的树莓派开发板运行OLED显示程序,将频率信息和锁定状态信息通过3线SPI接口写入OLED显示模块,所述的OLED显示模块显示频率信息和锁定状态信息。
所述的树莓派开发板内部频率解析程序、读写寄存器程序和OLED显示程序都采用Python语言进行编程。
所述的Python语言使用了扩展模块RPi.GPIO集成库、spidev集成库,PRi.GPIO集成库用于驱动树莓派开发板的GPIO扩展接口,spidev模块用于软件模拟SPI通信协议、驱动SPI设备。
所述的OLED显示模块(4)使用的是0.96寸的OLED显示屏,分辨率为128×64,控制芯片为SSD1315。
所述的树莓派开发板采用BCM2835单核1GHz处理器,512M 内存,带有Micro SD卡插槽,搭载BCM43438 WiFi/BT无线芯片,提供802.11n无线网络和蓝牙4.1连接,miniHDMI接口,40PIN GPIO扩展接口,CSI摄像头接口,支持Linux嵌入式系统。
所述的频率合成模块采用三重频带的锁相环频率合成器芯片HMC837LP6CE,能够输出1025-1150、2050-2300、4100-4600MHz的频率。
所述的树莓派开发板采用Raspbian操作系统。
与现有技术相比,本发明具有以下显而易见的突出实质性特点和显著技术进步:
本发明采用树莓派开发板作为核心控制模块,树莓派芯片采用当前比较先进的ARM11芯片主频1GHz的BCM2835作为主控制器芯片,指令运算速度较单片机有了大幅度提升,提高了系统性能。编程语言采用开源的脚本语言Python语言,Python语言与C语言相比简洁高效,并且有很多扩展模块可以直接调用,缩短了开发周期。采用开源的嵌入式控制系统Raspbian系统,与FPGA纯硬件控制系统和单片机控制系统相比,系统稳定性更强同时降低了开发成本。
附图说明
图1为本发明提供的系统原理图。
图2为本发明提供的系统连接图。
图3为本发明提供的系统程序运行流程图。
具体实施方式
下面结合附图和优选实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,并给出了详细的实施方式和具体的操作过程,然而,应当将本发明理解成并不局限于以下描述的这种实施方式,并且本发明的技术理念可以与其他公知技术或功能与那些公知技术相同的其他技术组合实施。
实施例一:
参见图1,本基于树莓派和Python语言的频率合成器系统,包括计算机Putty客户端1、树莓派开发板2、频率合成模块3、OLED显示模块4和电源模块5,其特征在于:所述计算机Putty客户端1通过树莓派开发板2连接频率合成模块3和OLED显示模块4,电源模块5为各模块提供工作电源;用户通过计算机Putty客户端1远程登录树莓派开发板2,运行设定输出频率的Python指令,树莓派开发板2运行频率解析程序和读写寄存器程序,对频率合成模块3的寄存器配置,实现频率输出,频率合成模块3向树莓派开发板2发送频率信息和锁定状态信息,树莓派开发板2向OLED显示模块4发送数据,OLED显示模块4显示频率信息和锁定状态信息。
实施例二:
如图1、2所示,本基于树莓派和Python语言的频率合成器系统,包括计算机Putty客户端1、树莓派开发板2、频率合成模块3、OLED显示模块4、电源模块5,所述的树莓派开发板2包括BCM2835芯片2-1和GPIO扩展接口2-2,所述的GPIO扩展接口2-2包括3线SPI接口2-2-1和4线SPI接口2-2-2,所述的计算机Putty客户端1通过SSH协议接入树莓派开发板2的IP地址,然后登录树莓派账号进入系统,所述的频率合成模块包括锁相环频率合成器芯片HMC837LP6CE芯片3-1,所述的HMC837LP6CE芯片3-1、OLED显示模块4分别通过4线SPI接口2-2-2、3线SPI接口2-2-1与树莓派开发板2通讯相连,所述的电源模块4包括3.3V电源模块5-1和5.5V电源模块5-2,所述的3.3V电源模块5-1、5.5V电源模块5-2分别为OLED显示模块4、频率合成模块3提供电源电压,用户通过计算机Putty客户端1远程登录树莓派开发板2,树莓派开发板2完成对GPIO和SPI的配置,在Python语言中输入设定输出频率的Python指令后,运行频率解析程序模块,然后向频率合成模块3进行寄存器读写操作,实现对频率合成模块3中HMC837LP6CE芯片3-1的寄存器配置,实现频率输出,所述的频率合成模块3向树莓派开发板2发送频率信息和锁定状态信息;所述的树莓派开发板2向OLED显示模块4发送数据,所述的OLED显示模块4显示频率信息和锁定状态信息。
所述的树莓派开发板2内部频率解析程序、读写寄存器程序和OLED显示程序都采用Python语言进行编程。
所述的Python语言使用了扩展模块RPi.GPIO集成库、spidev集成库,PRi.GPIO集成库用于驱动树莓派开发板(2)的GPIO扩展接口,spidev模块用于软件模拟SPI通信协议、驱动SPI设备。
所述的OLED显示模块(4)使用的是0.96寸的OLED显示屏,分辨率为128×64,控制芯片为SSD1315。
所述的树莓派开发板2采用BCM2835单核1GHz处理器,512M 内存,带有Micro SD卡插槽,搭载BCM43438 WiFi/BT无线芯片,提供82.11n无线网络和蓝牙4.1连接,miniHDMI接口,40PIN GPIO扩展接口,CSI摄像头接口,支持Linux嵌入式系统。
所述的频率合成模块3采用三重频带的锁相环频率合成器芯片HMC837LP6CE,能够输出1025-1150、2050-2300、4100-4600MHz的频率。
所述的树莓派开发板3采用Raspbian操作系统。
程序运行流程:如图3所示,设定输出频率f,根据f的范围分别给射频输出分频比赋予不同的值,从而确定频率合成器工作在基频模式还是二分频模式,然后根据公式fvco=f/k得到压控振荡器的输出频率fvco,然后根据公式N=fvco/fxtal得到反馈支路分频比N,对N 向下取整得到N的整数部分赋值给N1,对N-N1向下取整除以224后赋值给N2,之后打开SPI写寄存器操作,依次配置参考分频器、Δ-Σ调制器、电荷泵电流和偏置电路、VCO子系统等所在的寄存器,然后开始执行配置频率操作,分别向整数寄存器Reg03h和小数寄存器Reg04h写入数据N1和N2,此时频率合成器模块便输出设定频率f,从Reg12h读取锁相环锁定状态数据,将频率信息和锁定状态信息写入OLED显示寄存器。
本说明书中所述的只是本发明的较佳具体实施例,以上实施例仅用以说明本发明的技术方案而非对本发明的限制。凡本领域技术人员依本发明的构思通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在本发明的范围之内。
这篇关于树莓派python蓝牙_一种基于树莓派和Python语言的频率合成器系统的制作方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!