跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

基于 FPGA 的蓝牙通信实验:EGo1 开发板实现

基于 FPGA 的蓝牙通信实验通过 EGo1 开发板实现。利用板载 TI CC2541 蓝牙模块,通过 UART 串口与移动设备交互。系统定义自定义命令协议,支持远程控制 LED 灯状态及七段数码管显示数值。实验包含蓝牙模块参数配置、AT 指令设置及硬件功能验证流程。

BigDataPan发布于 2026/4/7更新于 2026/7/2743 浏览
基于 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

在手机端安装蓝牙调试软件,如图 4 所示。

文章配图

图 4 蓝牙调试软件

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

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

文章配图

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

拨动拨码开关对蓝牙进行复位,然后在电脑端打开串口调试助手,输入 AT,返回 OK;输入 AT+NAME,查询名字,返回 +NAME=;输入 AT+NAME,修改名字,返回 +NAME= 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 开发板的设置

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

文章配图

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

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

文章配图

图 10 控制 LED 灯指令下发

文章配图

图 11 LED 灯控制效果

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

文章配图

图 12 控制数码管指令下发

文章配图

图 13 数码管控制效果

目录

  1. 一、概述
  2. 二、实验原理
  3. 三、实验平台搭建
  4. 3.1 EGo1 FPGA 开发板
  5. 3.2 蓝牙模块介绍
  6. 3.3 蓝牙调试 APP
  7. 3.4 查询/设置蓝牙模块的参数
  8. 四、实验验证
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • VSCode Python venv 环境加载失败排查与解决指南
  • 基于 AI Agent 的米家智能家居通用控制方案
  • Python 移动端反爬实战:Charles 抓包与 Frida Hook 破解
  • 网络安全人才缺口巨大为何招聘岗位较少
  • 10 款主流 AI 降重工具对比与选型建议
  • 前端练习:使用 Three.js 实现星辰宇宙效果
  • Open-AutoGLM 打造专属手机机器人
  • YOLOv11 数据集训练与推理指南及网络结构解析
  • 前端函数防抖详解:原理、手写与 Lodash 实战
  • 数据结构:快速排序分区逻辑与冒泡排序效率对比
  • Windows 本地部署 Ollama 与 OpenClaw 构建 AI 工作流
  • Ubuntu 22.04, Isaac Sim 5.1.0 + Isaac Lab 2.3.0 Conda 环境安装指南
  • GitHub Copilot Pro 学生认证及 VS Code 集成教程
  • Windows 11 下使用 llama.cpp 运行 Qwen3.5 量化模型测试
  • 小厂架构师 AI Agent 落地实战:从概念到 Bug 修复工具
  • IPv6+DDNS-GO 连接故障排查与三种替代方案对比
  • Prompt 驱动的 SQL 生成与查询优化
  • 基于 SRS 与 WebRTC 的 RTSP 多路摄像头低延迟监控方案
  • Moonvalley AI 视频生成工具使用指南
  • C++ 新手在 Trae IDE 中解决 cppdbg 不支持问题的实战指南

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online