树莓派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数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模