搜索
查看: 1151|回复: 0

[分享] 蓝牙模块芯片串口透传的AT指令模式和波特率是什么意思

[复制链接]

281

主题

283

帖子

1295

积分

金牌会员

Rank: 6Rank: 6

积分
1295
发表于 2023-1-5 23:30:40 | 显示全部楼层 |阅读模式
本帖最后由 eefocus_3884713 于 2023-1-5 23:32 编辑

一、什么是蓝牙串口透传模块的模式


蓝牙串口模块,一般都会有两个模式,即AT指令模式,以及透传模式


1、有的模块,会通过一个GPIO口来选择当前是什么模式,比如将一个IO口拉低则进入透传模式,也就是不再识别AT指令,即使收到AT指令也是直接透传给主机


2、有的模块,则是自动切换AT指令模式和透传模式。当蓝牙未连接的时候则是AT指令模式,一旦蓝牙被主机连接了,则自动进入透传模式,进入透传模式之后AT指令就不再识别,转而变成普通数据发送给主机


3、另外还有的模块,就是不用区分两种模式,AT指令在整个蓝牙模块的生命周期都是有效的,不管连接或者未连接,都是自动识别 。识别到AT指令则是当做命令去处理,非AT指令则是当作普通数据去处理,比如:KT6368A双模蓝牙芯片就是这么处理的


这样做的坏处是,加入透传的数据里面也有符合规则的AT指令,就会被当做AT指令处理了,不再透传给上位机了。


二、蓝牙模块的串口波特率


主流的蓝牙模块,基本都是串口接口,也就是UART接口。但是也不排除有其他的接口,比如IIC、SPI等等,这类型的接口产品非常的少


1、主流的还是串口,这样比较容易被广大的工程师群体所接受


蓝牙模块的串口AT指令,也是基于早期的电话控制协议改写来的,也就是说它生来并不是标配,也不是标准。而是在广大的工程师群体使用过程中,最后大家慢慢的达成了默契,形成了共识性的标准而已


2、所以才会是今天看到的百花齐放的样子,采用串口通讯,AT指令设置参数。


比如AT指令设置蓝牙名称,AT指令设置串口的波特率等等 。还有更高级的比如蓝牙模块不需要设置波特率,他是自动识别的


3、这里拿KT6368A双模蓝牙芯片的串口部分来举例说明,串口的规则是怎么样的


通讯标准:115200 bps --- 用户可以通过串口指令设置详见3.2


数据位 :8 停止位 :1 校验位 :none 流控制 :none


注意:所有的指令的设计,都是有规律的,不是随意划分的,可以对照下面找一下规律


控制指令格式:AT+[]rn ---- 所有的都是字符,不是十六进制数


数据反馈格式:[]rn


数据反馈格式:[]rn


AT+ : 控制指令是控制主机给KT6368A的控制命令,以“AT+ ”开始


:后面紧跟控制 ,通常是2个字符


[] :如果CMD后面有参数,则紧跟着[]


rn :最后以rn结束,字符型换行,windows就是回车键。十六进制0x0D,0x0A


:数据反馈是蓝牙把各种状态和数据信息反馈给主机,以作为开头


AT指令的举例如下:



4、这当然一般的蓝牙模块都可以使用AT指令去修改波特率,这样就可以更好的兼容到任何产品里面去,但是一般的产品大部分都是9600或者38400,再或者115200


很少的应用场景需要超高的波特率,所以KT6368A的芯片就定义默认为115200



5、蓝牙测试模块的设计参考如下:包含PCB和原理图





回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

Archiver|手机版|小黑屋|RF技术社区

GMT+8, 2024-4-27 20:44 , Processed in 0.078154 second(s), 8 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表