树莓派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删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert