如何用单片机实现对蓝牙的控制
作者:admin3    更新时间:2009-10-11    点击次数:
如何用单片机实现对蓝牙的控制
 

   

       本文的设计采用低成本的单片机来和蓝牙模块进行技术集成,短距离通信的发展趋势是无线通信。蓝牙技术在当前已经应用得比较普遍。使得蓝牙技术也可以应用在低端电子产品中。如果您有需要可以与 51hei.com 联系,本文所设计的数据传输系统在实际中运行良好,可以为嵌入式电子厂商提供一种技术参考

采用的调制方式是高斯频移键控 , 蓝牙技术是用于替代电缆或连线的短距离无线通信技术。需要把数字信号转换成模拟信号以便在空间中传输 . 以下简称 GFSK, 要了解 GFSK, 就要先说说频移键控的原理 , 以下简称 FSK

就是用不同的频率来调制不同的码元,FSK: 简单的讲。比如说二进制,有 0 和 1 两种码元,那么我就需要两个频率 f1 和 f2 来调制数字 0 和 1 接受端根据频率 f1 代表数字 0 频率 f2 代表数字 1 道理把模拟信号还原为数字信号。

将原始信号通过一个高斯低通滤波器来限制信号的频谱宽度,GFSK 就是进行 FSK 调制之前。这样一来可以获得更加紧凑的频谱,也就是过滤掉高频的信号,但是保留了足够的频带能量以便在收端成功恢复信号。高斯低通滤波器限制了带宽,对基带信号进行了整形,形成高斯脉冲信号。下面说下加入高斯低通滤波器的好处。

那么被调制的信号的波形变换太快了很有可能会导致在原始信号的频率范围里出现新的频率成分,假设我用 -1 来代表该信号频谱覆盖范围里最低的频率成分;用 1 来代表该信号频谱覆盖范围里最高的频率成分。一旦信号从 -1 跳变到 1 或者从 1 跳变到 -1 时候。那么我信号就已经失真了这是最不想看到结果。而这正是 FSK 一个隐忧。高斯低通滤波器使得信号变得平滑,同样的从 -1 1 因为滤波器限制了带宽,于是实际效果是 -1 -98 -93 --- 96 99 1 那么用这些变化平滑的数字脉冲信号去调制载波,就会减少上述出现的多余频率成分的现象。

频率间的范围可能很大,那么为什么在蓝牙技术中采用了 GFSK 而不是 FSK 因FSK技术对于信号的频谱宽度没有什么限制。导致跳变实在太快,这样就造成了失真的可能和频谱的利用率不高(这句话是从一英文网上看到不过现在还不明白)而蓝牙传输的频谱并不大,所以采用GFSK技术。还有,有限的带宽可以节省电流,那么对于手机和单片机的寿命是有好处的

因为该滤波器是一个硬件设备,认为不必深究高斯低通滤波的原理。作为组件是直接加在蓝芽模块之中的如果真的要对算法进行编程,那么我就只需要对滤波器里出来的信号进行处理,也就是如何用程序来表示FSK算法。

下面我结合具体的蓝芽模块来说下GFSK调制在其中的应用

蓝芽的载波选用全球公用的 2 . 4 G hz

并采用跳频方式来扩展频带,实际射频通道为 f=2402 k 1mhz k=0 1 2 78 共79个频带。跳频速率为 1600 跳 /s 可得到 79 个 1mhz 带宽的信道。蓝牙设备采用 gfsk 调制技术,通信速率为 1mbit/ 实际有效速率最高可达 721kbit/ 通信距离为 10m 发射功率为 1mw 当发射功率为 100mw 时,通信距离可达 100m

当前最普遍的传输方法是有线传输、红外传输和蓝牙传输。有线传输是较为传统的数据传输方法,对于短距离的数据传输。需要传输电缆。当设备为移动设备或设备数目较多时这将带来很大的不便;红外传输经常受到温度、辐射等干扰,且无法穿过实体进行传输;使用蓝牙技术可以很好地摒弃这两个缺点,但目前蓝牙技术一般被用于高端的电子设备中。对于低端的电子设备,如何使用蓝牙技术还是一个有待解决的问题。针对这个问题,单片机学习网设计了一个基于蓝牙技术和单片机的数据传输系统,为嵌入式电子厂商提供一种技术参考 .

1 系统的整体架构

该系统由键盘、单片机、 LED 显示器、固化了电缆通信协议 ( RFCOMM 蓝牙模块和 PC 机组成。

2 系统的工作原理

单片机初始化自身和所有外围接口,系统的核心是单片机和蓝牙模块。系统上电后。蓝牙模块主动寻找其它设备并自动建立连接,然后系统进入就绪等待状态。按照数据传输方向,可以把系统分为发送和接收两个子系统。

单片机接收由键盘传来的键值,对于发送子系统。按照一定的协议规则对其进行转换,再显示到显示器上。同时,单片机调用自身的键值分析程序,分析用户要输入数据还是要发送数据。输入状态下,单片机记下用户所输入的每一个数据并将其打包、存储,直到用户按下 “ 发送 ” 键。此时单片机转变为发送状态,控制蓝牙模块将刚才存储的数据发送出去。

单片机按照事先约定的协议接收从蓝牙模块传来的数据,对于接收子系统。直到遇到数据结束符。而后单片机对数据进行分析、解包,并将其显示在显示器上为了增强可操作性,本数据传输系统考虑了单片机和 PC 机两种情况。每一个子系统既可以使用单片机和蓝牙模块接口,也可以使用 PC 机和蓝牙模块接口。采用这样的技术后,不仅单片机之间可以互传数据,而且单片机还可以和 PC 机互传数据。

3 系统的程序设计

首先要初始化自身。本系统中,单片机上电后。使用了键盘扫描和 LED 显示接口芯片 8279 因此在主程序中还要对 8279 进行初始化:

COM8279 = 0xd1; // 总清除

左边输入,COM8279 = 0x00; //8*8 字符显示。编码扫描键盘,双键封锁

COM8279 = 0x50; // 读 FIFO RAM 命令

COM8279 = 0x90; // 写显示 RAM 数码管选择 )

可以把程序分为接收、发送和显示三个主要部分。 之后。

3.1 接收部分

接收函数的伪代码如下: 系统采用查询的方法采集蓝牙模块传送过来的串行数据。对键盘的按键值进行设定由个人的习惯来进行设定。以 C 语言的形式的伪代码来表示。

void RcvData void {

while DataReceivingNotDon {

ReceiveNextBit;

}

}

3.2 发送部分

转化为串行数据发送到蓝牙模块,键盘数据经过处理后。再由蓝牙模块发送出去。发送函数的 C 语言形式的伪代码为:

void SendData void {

if KeyValu < 10 { // 如果数据是一位数

SendOneByt ; // 发送这一位

}

else{ // 如果数据是两位数

先发送高位再发送低位 SendTwoByt ; // 分成两位发送。

}

}

3.3 显示部分

通过控制显示的接口芯片 8279 可以控制 LED 显示的内容。显示函数如下: 系统中使用的八位 LED 显示。

unsign char addr void DispLong unsign int dat.{

COM8279 = 0x90 + addr;

DAT8279 = disp_tab[0];

COM8279 = 0x90 + addr;

whil dat {

DAT8279 = disp_tab[dat % 10];

dat /= 10;

}

}

 

  • 上一篇文章: 没有了

  • 下一篇文章: 三菱PLC对印刷机的控制
  • 相关文章
    发表评论】【告诉好友】【打印本页】【收藏本页】【关闭窗口】【返回顶部
     
           网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
     
    最 新 课 程
     
    推 荐 课 程
     
    热 门 课 程