FPGA设计实例——基于FPGA的蓝牙通信实验_EGo1开发板上实现

FPGA设计实例——基于FPGA的蓝牙通信实验_EGo1开发板上实现

一、概述

本实验基于依元素科技有限公司的《蓝牙通信》实验进行改进,通过AT指令设置蓝牙模块的名称、查询蓝牙模块的地址等,然后利用EGo1开发板上的蓝牙模块与板卡进行串口通信,使用支持蓝牙4.0的手机与板卡上的蓝牙模块建立连接,并通过手机APP发送命令,控制FPGA板卡上的硬件外设。

二、实验原理

蓝牙无线技术是使用范围最广泛的全球短距离无线标准之一,EGo1开发板上板载的蓝牙模块是基于TI公司CC2541芯片的蓝牙4.0模块,具有256kb配置空间,遵循V4.0 BLE蓝牙规范。

本实验利用板卡上的蓝牙模块与外界支持蓝牙4.0标准的设备(如手机)进行交互。该蓝牙模块出厂默认配置为通过串口协议与FPGA进行通信,用户无需研究蓝牙相关协议与标准,只需要按照UART串口协议来处理发送与接收的数据即可,实验框图如图1所示。

图1 蓝牙通信实验的模块框图

本实验通过串口发送与串口接收模块来完成与蓝牙模块的数据传输,通过命令解析模块及命令响应模块来实现简单的串口命令的解析控制以及命令的执行,FPGA 在接收到蓝牙模块传输进来的串口数据后,会将相应数据以及命令响应通过蓝牙模块发送给与之连接的通信设备,在这个过程中采用 FIFO 来存储我们需要发送的数据。

在这个设计中,我们在串口协议基础上自定义了若干控制命令,以便于在远端设备上可以通过蓝牙对 FPGA 平台上的逻辑、外设以及接口进行控制。

主要包含以下命令:

(1)*Naaaa

(2)*Waaaaaaaa

上述2条命令中,星号(*)的作用是命令的起始位,N、W等大写字母作为命令的名称,小写字母a表示任意一个十六进制数。命令N后接4位十六进制数,即16bit数据,用于点亮板卡的LED灯,其后接16bit数据分别对应板卡上的16位LED灯;命令W后接8位十六进制数,即32bit数据,用于控制办卡上的七段数码管显示,其后接32bit数据分别对应板卡上8位七段数码管显示的数值。

三、实验平台搭建

3.1 EGo1 FPGA开发板

EGo1开发板的实物如图2所示,是依元素科技基于Xilinx Artix-7 FPGA研发的便携式数模混合基础教学平台,拥有丰富的外设:VGA接口、音频接口、USB-UART/JTAG接口、USB转PS2接口、2个4位数码管、16个LED灯、8个拨码开关、1个8位DSP开关、5个按键、1个模拟电压输入、1个DAC输出接口、SRAM存储器、SPI FLASH存储器、蓝牙模块和1个通用扩展接口。

EGo1开发板板载的FPGA芯片型号为Xilinx Artix-7系列XC7A35T-1CSG324,具有33280个逻辑单元、41600个寄存器、1800kb的BRAM和90个DSP等逻辑资源,可以实现较复杂的数字逻辑设计。

图2 EGo1开发板实物图

3.2 蓝牙模块介绍

EGo1上集成了蓝牙模块(BLE-CC41-A),位于开发板背面,FPGA通过串口和蓝牙模块进行通信。波特率支持1200,2400,4800,9600,14400,19200,38400,57600,115200和230400bps。串口缺省波特率为9600bps。该模块支持AT命令操作方法。EGo1开发板上的蓝牙模块原理图如图3所示。

图3 蓝牙模块电路原理图

3.3 蓝牙调试APP

在手机端安装蓝牙调试软件,本人使用的是“e调试”软件,如图4所示。

图4 蓝牙调试软件

3.4 查询/设置蓝牙模块的参数

使用AT指令查询和设置蓝牙模块的部分参数,为了方便查询和设置,将EGo1开发板的UART接口与蓝牙模块的UART接口交叉连接,代码如图5所示。

图5 查询/设置蓝牙模块参数的FPGA代码

拨动拨码开关对蓝牙进行复位,然后在电脑端打开串口调试助手,输入AT,返回OK;输入AT+NAME,查询名字,返回+NAME=<luoxing EGo1>;输入AT+NAME<my EGo1>,修改名字,返回+NAME=<my EGo1> OK,表示修改成功,也可以再次输入AT+NAME查看名字;最后输入AT+LADDR?查询地址,完成查询/设置蓝牙模块的参数,如图6所示。

图6 查询/设置蓝牙模块的参数

同时,还可以通过AT指令查询/设置蓝牙模块的波特率等参数,因为本实验暂不涉及,感兴趣的同学可以查看该蓝牙芯片对应的AT指令进行学习。

四、实验验证

使用依元素科技提供的蓝牙通信工程,工程总结界面如图7所示。

图7 蓝牙通信工程总结页面

将bit流文件下载到FPGA开发板中,SW1设置为低,SW0、SW2、SW3、SW4设置为高,首先波动拨码开关SW2(即代码中的sw_pin[2])对蓝牙模块进行复位,此时蓝牙处于Slave模式,蓝牙状态指示灯LED2闪烁较慢,开发板的拨码开关设置如图8所示。

图8 开发板的设置

在手机上打开e调试软件,根据蓝牙模块的名字或者地址,正确的与EGo1开发板上的蓝牙模块建立连接。前文已将蓝牙模块的名字设置为<my EGo1>,并且地址为04A316AA9C1F,点击进行连接即可,如图9所示。

图9 使用e调试软件建立与EGo1开发板的连接

在手机端输入*NF151,如图10所示,现象如图11所示,可以看出,LED灯的最右边为高位,最左边为低位,从右往左的亮灭分别为1111_0001_0101_0001,1代表点亮,0代表熄灭,与*NF151的设置一致。

图10 控制LED灯指令下发

图11 LED灯控制效果

在手机端输入*W87654321,如图12所示,现象如图13所示,数码管显示87654321,与设置一致,实验验证通过。

图12 控制数码管指令下发

图13 数码管控制效果

五、工程获取方法

点击链接:https://t.zsxq.com/ZaLiZ,加入知识星球——FPGA设计入门与提高,获取工程源码。

目前知识星球包括的优质FPGA工程如下:

【2-FPGA视频图像处理】_1_Sobel边缘检测

【3-FPGA数字信号处理】_1_DDS信号发生器

【3-FPGA数字信号处理】_2_CORDIC旋转模式实现sin和cos运算

【3-FPGA数字信号处理】_3_CORDIC向量模式实现arctan运算

【3-FPGA数字信号处理】_5_基于FPGA的CORDIC旋转模式实现sin和cos运算

【5-FPGA设计实例】_1_IIC OLED字符显示

【5-FPGA设计实例】_2_OLED 数字时钟

【5-FPGA设计实例】_3_DS18B20温度检测,OLED显示

【5-FPGA设计实例】_4_蓝牙通信_EGo1开发板

【5-FPGA设计实例】_5_超声波测距系统

【5-FPGA设计实例】_6_LCD1602驱动

Read more

大模型横评:GPT、Claude、Gemini、Llama及国产模型优劣与选型指南!

大模型横评:GPT、Claude、Gemini、Llama及国产模型优劣与选型指南!

本文全面对比了主流大模型家族(GPT、Claude、Gemini、Llama及国产模型)的版本、优缺点、部署成本及适用场景。GPT系列综合能力顶尖但闭源且昂贵;Claude擅长长上下文处理;Gemini原生支持多模态和超长上下文;Llama系列开源可定制但部署运维门槛高;国产模型中文优化强、性价比高。文章还分析了云端API和私有化部署的成本结构差异,并给出不同场景下的选型建议,帮助读者根据需求选择最合适的大模型方案。 一、主流大模型家族、版本与优缺点 可以将当前主流大模型分为几个阵营:OpenAI的GPT系列、Anthropic的Claude系列、谷歌的Gemini系列、Meta的开源Llama系列,以及中国的主要模型(如DeepSeek、通义千问、文心一言等)。 1. OpenAI GPT 系列 * 核心版本: * GPT-4 系列:GPT-4 Turbo(主流API版本,128K上下文)、GPT-4(原始版本)。 * GPT-3.5 系列:GPT-3.5-Turbo(性价比高,响应快,但能力远弱于GPT-4)

解锁AIGC新时代:通义万相2.1与蓝耘智算平台的完美结合引领AI内容生成革命

解锁AIGC新时代:通义万相2.1与蓝耘智算平台的完美结合引领AI内容生成革命

前言 通义万相2.1作为一个开源的视频生成AI模型,在发布当天便荣登了VBench排行榜的榜首,超越了Sora和Runway等业内巨头,展现出惊人的潜力。模型不仅能够生成1080P分辨率的视频,而且没有时长限制,能够模拟自然动作,甚至还可以还原物理规律,这在AIGC领域中简直堪称革命性突破。通过蓝耘智算平台,我们能够轻松部署这个模型,创建属于自己的AI视频生成工具。今天,我将为大家深入探讨通义万相2.1的强大功能,并分享如何利用蓝耘智算平台快速入门。 蓝耘智算平台 1. 平台概述 蓝耘智算平台是一个为高性能计算需求设计的云计算平台,提供强大的计算能力与灵活服务。平台基于领先的基础设施和大规模GPU算力,采用现代化的Kubernetes架构,专为大规模GPU加速工作负载而设计,满足用户多样化的需求。 2. 核心优势 * 硬件层: 蓝耘智算平台支持多型号GPU,包括NVIDIA A100、V100、H100等高性能显卡,能够通过高速网络实现多机多卡并行计算,突破单机算力瓶颈。 * 软件层: 集成Kubernetes与Docker技术,便于任务迁移与隔离;支持PyTo

AIGC 新势力:探秘海螺 AI 与蓝耘 MaaS 平台的协同创新之旅

AIGC 新势力:探秘海螺 AI 与蓝耘 MaaS 平台的协同创新之旅

探秘海螺AI:多模态架构下的认知智能新引擎 在人工智能持续进阶的进程中,海螺AI作为一款前沿的多功能AI工具,正凭借其独特的多模态架构崭露头角。它由上海稀宇科技有限公司(MiniMax)精心打造,依托自研的万亿参数MoE大语言模型ABAB6.5以及MiniMax语音大模型,展现出非凡的技术实力与应用潜力。MiniMax的核心团队源自商汤科技等业内知名企业,在多模态大模型研发领域深耕细作,为海螺AI的诞生奠定了坚实基础。 在这里插入图片描述 一、核心模型架构剖析 (一)基础模型:abab - 6.5 海螺AI的基础模型abab - 6.5采用了创新的混合专家系统设计,借助动态路由机制,即Sparse Gating Network,可依据输入内容智能激活8 - 12个子专家模型。这些子专家模型涵盖代码专家、多语言专家、逻辑推理专家等,各司其职,协同作业。在参数规模上,abab - 6.5总参数量高达1.2万亿,同时通过巧妙的设计,将活跃参数量控制在2000亿/query,有效平衡了模型的高容量与低推理成本。在训练优化环节,

CosyVoice环境安装报错:安装openai-whisper时出现ModuleNotFoundError: No module named ‘pkg_resources‘的原因

先说如何解决,我个人采用源码安装,安装时禁用构建隔离: git clone https://github.com/openai/whisper.git cd whisper git checkout v20231117 pip install -e . --no-build-isolation 再说该问题产生的原因,下面是大D老师的回答,自行参考。 太棒了!你找到了正确的解决方案。让我详细解释为什么会出现这个问题,以及为什么 --no-build-isolation 能解决它。 🔍 问题根源分析 问题的关键在于 PEP 517/518 构建隔离机制和你的 setup.py 实现方式。 1. 构建隔离机制 (Build Isolation) 的工作原理 当你执行 pip install -e .(不带 --no-build-isolation)时,