树莓派python蓝牙_一种基于树莓派和Python语言的频率合成器系统的制作方法

本文主要是介绍树莓派python蓝牙_一种基于树莓派和Python语言的频率合成器系统的制作方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

847427771782.gif

本发明涉及一种频率合成器系统,尤其是涉及一种基于树莓派和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语言的频率合成器系统的制作方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/737838

相关文章

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的