基于51单片机串行通信的无线发射极和接收机设计.docx
《基于51单片机串行通信的无线发射极和接收机设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机串行通信的无线发射极和接收机设计.docx(50页珍藏版)》请在冰豆网上搜索。
基于51单片机串行通信的无线发射极和接收机设计
基于51单片机串行通信的无线发射极和接收机设计
1.1课题的目的、背景和意义
最近几年来,由于无线接入技术需求日益增大,以及数据交换业务〔如因特网、电子邮件、数据文件传输等〕不断增加,无线通信和无线网络均出现出指数增加的趋势。
有力的推动力无线通信向高速通信方向进展。
然而,工业、农业、车载电子系统、家用网络、医疗传感器和伺服执行机构等无线通信还未涉足或者刚刚涉足的领域,这些领域对数据吞吐量的要求专门低,功率消耗也比现有标准提供的功率消耗低。
此外,为了促使简单方便的,能够随意使用的无线装置大量涌现,需要在以后个人活动空间内布置大量的无线接入点,因而低廉的价格将起到关键作用。
为降低元件的价格,以便这些装置批量生产,因此进展了一个关于这种网络的标准方案。
Zigbee确实是在这一标准下一种新兴的短距离、低功耗、低数据传输的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术方案。
关于这种短距离、低功耗、低数据传输无线技术,它不仅在工业、农业、军事、环境、医疗等传统领域有着庞大的应用价值,以后应用中还能够涉及人类日常生活和社会生产活动的所有领域。
由于各方面的制约,这种技术的大规模商业应用还有待时日,但差不多显示出了专门的应用价值,相信随着相关技术的进展和推进,一定会得到更广泛应用。
1.2国内外无线技术相关现状及Zigbee现状
无线通信从固定方式进展为移动方式,移动通信进展至今大约经历了五个时期:
第一时期为20年代初至50年代初,要紧用于舰船及军有,采纳短波频及电子管技术,至该时期末期显现才显现150MHVHF单工汽车公用移动系统MTS。
第二时期为50年代到60年代,现在频段扩展至UHF450MHZ器件技术已向半导体过渡,大多为移动环境的专用系统,并解决了移动与公用的接续问题。
第三时期为70年代初至80年代初频段扩展至800MHZ,美国Bell研究所提出蜂窝系统概念并于70年代末进行了AMPS试验。
第四时期为80年代初至90年代中,为第二代数字移动通信兴起与大进展时期,并逐步向个通信业务方向迈进,现在显现D-AMPS、TACS、ETACS、GSM\DCS、cdmaone、PDC、PHS、DECT、PACS、PCS、等各类系统与业务运行。
第五时期为90年代中至今,随着数据通信与多媒体业务需求的进展,适应移动数据、移动运算及移动多媒体运作需要的第三代移动通信兴起,其全球标准化及相应融合工作与样机研制和现场试验工作在快速推进,包括从第二代至第三代移动通信的平滑过渡问题内。
近10年来,我国在移动通信领域的科研、设备生产等方面也取得了可喜的进步,国产移动通信设备交换系统、基站和手机等都差不多投入生产,并连续投方市场,第三代移动通信系统的开发和研究也正与世界同步。
21世纪的电信技术正进入一个关键的转折期、以后十年将是技术进展最为活跃的时期。
信息化社会到来以及IP技术兴起,正深刻地改变着电信网络的面貌以及以后技术进展走向,以后无线通信技术进展要紧趋势是宽带化、分组化、综合化、个人化。
无线技术也分不同种类,通常以产生无线信号的方式来区分,目前要紧的方式有调频无线技术、红外无线技术和蓝牙无线技术三种,其成本和特点也不尽相同。
广泛应用于音响键鼠等各项内容,有专门好的进展。
而所谓无线技术,确实是通过发射模块,以波的形式由接收模块接收,之后把发射的内容解调出来。
Zigbee无线技术是一种介于无线标记技术和蓝牙之间的技术方案,Zigbee是一种高可靠的无线数传网络,类似于GSM〔全球移动通信〕和CDMA〔数字通信中显现的一种先进无线扩频通信技术〕,Zigbee模块类似与移动网络基点,Zigbee技术是建立在IEEE802.15.4标准上,为了促进Zigbee技术进展,2001年8月成立Zigbee联盟,2002年下半年,英国invensys公司、日本三菱电子公司、摩托罗拉电子公司以及荷兰飞利浦半导体公司四大巨头共同宣布,它们将加入〝Zigbee联盟〞,目前该联盟差不多有150家成员,以研发名为Zigbee的下一代无线通信为标准。
其功能超越蓝牙简单而有用,大规模简化蓝牙的复杂,用心于低传输应用,然而Zigbee不支持语音,而其低功耗、低价格和可靠是它的亮点,让它超越蓝牙简单而有用。
估量在以后Zigbee无线传输将大规模占据市场。
1.3课题任务要求
〔1〕实现Zigbee无线模块间的无线通信;
〔2〕发射模块间传输距离大于100米;
〔3〕发射模块间能够实现点对点和广播传输数据,即有相同的通信协议;
〔4〕传输数据在PC或1602液晶屏上显示出来;
〔5〕个人电脑内对单片机的操纵;
〔6〕实现单片机对zigbee模块的操纵与设置;
〔7〕与同一课题并采纳zigbee方案的其他小组组成小型局域网络,相互通信。
2技术方案
如以下图所示,此次技术方案是:
应用Zigbee模块的接收与发送数据功能,对数据的接收与发送,Zigbee模块连接在单片机功能引脚TXD、RXD,如此能够对传送数据处理,用单片机的I/O口连接上液晶显示屏能够对接收与发送的数据显示,串口连接上单片机与PC机相连,可对单片机输入程序操纵和输入发送数据。
基于stc89C52单片机组成的系统,对zigbee和1602液晶屏进行操纵和通信。
图2-1技术方案框图
2.1芯片选择
Zigbee模块
型号:
DRF1605,要紧功能:
串口(UART)转Zigbee无线数据透亮传输。
这次我们实习无线同意与发送运用Zigbee模块,Zigbee模块接收与发送是如此的:
Zigbee模块有两种节点模式,一种是coordinator〔主节点〕,另一种Router〔从节点〕,这两种节点能够有各自的PANID〔地址〕,Zigbee模块出厂默认地址是Router一种,能够用软件修改其PANID,当有一个coordinator节点时,其他的Router能够与其连接,当专门多Router节点在这coordinator节点连接时,就能够形成一个网络,在这网络中任意节点能够相互传输数据。
Zigbee模块传输数据有两种方式:
一种数据透亮传输,另一种是数据点对点传输,所谓透亮传输,确实是coordinator主节点这网络上发送数据时,任意Router都能接收到发送的数据;而点对点传输,确实是在coordinator网络发送数据时,任意两个节点间发送数据,只能这两节点收到数据。
图2.2Zigbee结构及引脚定义图
转串口芯片
选用MAX232。
RS232C是一种电压型总线标准,可用于设计运算机接口与终端或外设之间的连接,以不同的极性的电压表示逻辑值。
-3至-25表示逻辑〝1〞,+3至+25表示逻辑〝0〞,其电平是TTL和CMOS电平是不同的,因此在通信时必须进行转换。
MAXIM公司的MAX232接收/发送器是MAXIM公司专门为满足EIA/TEA2232的标准而设计的,它们具有功耗低、工作电源为单电源、外接电容仅为0.1uF或1uF的电容,其价格低,可在一样需要串行通信的系统中使用。
MAX232引脚C1+与C1-、C2+与C2-、V+与VCC、V-与GND之间的4个0.1uF的电容不可缺少,一样选用陶瓷介质的电容。
MAX232能够用作单片机和单片机之间、单片机和PC机串口之间的符合RS232串行接口电路。
只要将待进行串行传输的设备的发送和接收端相应的接上,编程即可[3]。
图2.4Max232内部结构及一家定义
STC89C52单片机
操纵核心单片机选用STC89C52,完全能满足本系统要求。
表2.11P3口功能引脚
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD〔串行输出口〕
P3.2
(外部中断0)
P3.3
〔外部中断1〕
P3.4
T0〔定时器0〕
P3.5
T1〔定时器1〕
P3.6
〔外部数据储备器写选通〕
P3.7
〔外部数据储备器都选通〕
3.硬件设计
3.1Zigbee模块引脚连接设计
图3.1Zigbee模块电路图
3.2Zigbee模块电源设计
Zigbee模块电源采纳的是3.3v直流电,电路中直截了当采纳四个电容滤波,用芯片LM1117-3.3稳压得到。
单片机系统采纳的是5V直流电,用7805稳压芯片可得。
图3.2电源电路3.3V
图3.3电源电路5V
3.3单片机设计电路
图3.4单片机连接图
3.4串口电路设计
图3.5串口电路
4.软件设计
4.1软件功能说明
按本课题设计要求,程序所要实现的功能如下:
1〕、实现1602液晶屏实时显示系统状态,提供较好的人机界面;
2〕、实现通过按键设置Zigbee模块的工作模式,即给zigbee发送命令,zigbee工作状态及命令见附录;
3〕、用预先定好的通信协议进行数据的收发操纵,实现点对点通信和广播数据,并在1602显示系统的工作状态。
4.2软件总流程图
无线通信系统
图4-1整体思路
按上图设计思路编写程序,程序流程图如下:
图4-2程序流程图
4.3各功能软件
4.4软件测试
4.5软件设计总结
5.通信协议
5.1模块说明
这次实习,我们用的是ZigBee模块,DRF系列ZigBee模块目前包括DRF1601、DRF1602、DRF1605、DRF1605H、DRF2617-ZR232、DRF2618-ZUSB、DRF2619-ZR485及相关配套底板,它是基于TI公司CC2530F256芯片,运行ZigBee2007/PRO协议的ZigBee模块,它具有ZigBee协议的全部特点,这有区别于其它种类的ZigBee模块。
其要紧特点包括:
〔一〕自动组网:
所有的模块上电即自动组网,Coordinator自动给所有的节点分配地址,不需要用户手动分配地址,网络加入、应答等专业ZigBee组网流程;
〔二〕简单数据传输:
串口数据透传:
Coordinator从串口接收到的数据会自动发送给所有的节点,某个节点从串口接收到的数据,会自动发送给Coordinator。
通过串口即可在任意节点间进行数据传输,数据传输的格式为:
0xFD〔数据传输命令〕+0x0A〔数据长度〕+0x730x79〔目标地址〕+0x010x020x030x040x050x060x070x080x090x10〔数据,共0x0ABytes〕;
〔三〕唯独IEEE地址:
DRF系列模块采纳的TICC2530F256芯片,出厂时差不多自带IEEE地址,用户无需另行购买IEEE地址,IEEE地址〔MAC地址〕可作为ZigBee模块的标识;
〔四〕用户可更换节点类型:
用户可通过串口指令更换模块的节点类;
〔五〕用户可更换无线电频道:
用户可通过串口指令更换模块使用的无线电频道。
〔六〕简单易用:
用户不用考虑ZigBee协议,像使用串口线一样使用无线模块
5.2ZigBee模块参数
〔1〕电气参数:
输入电压:
DC3.3V
温度范畴:
-40C--85C
串口速率:
38400bps〔默认〕,可设置9600bps,19200bps,38400bps,115200bps
无线频率:
2.4GHz
无线协议:
ZigBee2007/PRO
传输距离:
可视距离400米
发射电流:
34mA〔最大〕
接收电流:
25mA〔最大〕
低功耗模式:
该款模块没有低功耗模式,客户可定制低功耗应用
接收灵敏度:
-96DBm
主芯片:
CC2530F256,256KFlash,TI公司最新一代ZigBeeSOC芯片
〔2〕机械参数:
图5.2.1机械参数
图5.2.2机械参数
5.3Zigbee模块的组网
Zigbee网络通常由三种节点构成:
Coordinator:
用来创建一个Zigbee网络,并为最初加入网络的节点分配地址,每个Zigbee网络需要且只需要一个Coordinator;Router:
也称为Zigbee全功能节点,能够转发数据,起到路由的作用,也能够收发数据,当成一个数据节点,还能保持网络,为后加入的节点分配地址;EndDevice:
终端节点,通常定义为电池供电的低功耗设备,通常只周期性发送数据,不接收数据。
Zigbee模块的要紧功能是无线数据传输,即,每个节点随时能够收发数据,因此节点的配置只有Coordinator,Router,连接的网络如以下图所示,如此的网络通常也称为MESH网〔即:
网状网〕,每个节点能够收发数据,同时也能担任其它节点的路由器,而且,所有的数据传输路由差不多上自动运算的,无需用户干预。
第一次使用Zigbee模块时,请先给Coordinator上电,然后给Router上电,Router上电后,会自动查找Zigbee网络并加入,能够使用TI的SensorMonitor软件来观看Zigbee网络的形状。
图5.3.1Zigbeemesh网络
图5.3.2Zigbee网络节点个数
5.4Zigbee模块的数据传输
DRF1600系列Zigbee模块数据传输功能专门简单易用,有二种数据传送方式:
〔1〕数据透亮传输方式:
只要传送的第一个字节不是0xFE,0xFD或0xFC,那么自动进入数据透亮传输方式;
Coordinator从串口接收到的数据,会自动发送给所有的节点;某个节点从串口接收到的数据,会自动发送到Coordinator;
〔2〕点对点数据传输方式:
Zigbee网络内的任意节点之间,可通过点对点传输指令,传送数据;指令格式:
0xFD+数据长度+目标地址+数据
1、数据透亮传输:
〔数据透亮传输是DRF1600系列模块的最重要功能〕
〔1〕只要传送的第一个字节不是0xFE,0xFD或0xFC,那么自动进入数据透亮传输方式;〔扩展:
只要数据包的头与设置指令不一样,也会当成数据透亮传输〕
〔2〕Coordinator从串口接收到的数据,会自动发送给所有的节点;某个节点从串口接收到的数据,会自动发送到Coordinator;
〔3〕任意一个节点与Coordinator之间,类似于电缆直截了当连接;
〔4〕支持数据包变长〔无需设置〕,最大不超过256字节/数据包,一样每个数据包32字节之内。
图5.4.1数据透亮传输:
Coordinator发送至所有节点
图5.4.2数据透亮传输:
某个节点发送至Coordinator
表5.4.1数据透亮传输的性能
数据传送方向
数据包长度
最快间隔
Router→Coordinator
16字节
20ms
32字节
20ms
64字节
20ms
128字节
50ms
256字节
200ms
>256字节
不能传输
Coordinator→Router
16字节
100ms
32字节
100ms
64字节
100ms
128字节
200ms
256字节
500ms
>256字节
不能传输
测试条件:
1,室温,实验室条件
2,模块间距离2米,信号良好
3,串口波特率38400〔最优选波特率〕
4,连续发送,接收100K字节,无误码,连续测试10次
5,测试软件:
串口调试助手SSCOM3.2
随着模块之间的传输距离增加,传输速率会降低
Coordinator发送到Router是广播方式发送,传输速率会比较慢
一样应用,建议每个数据包32字节,间隔200-300ms传输
2、点对点数据传输方式:
以以下图为例,简述点对点数据传输方式:
〔数据从0x50F5传送至0x143E〕
图5.4.3点对点传输
发送指令格式:
数据传送指令〔0xFD〕+数据长度+目标地址+数据〔最多32Bytes〕数据长度在32字节内支持变长。
如发送:
FD0A143E01020304050607080910
FD:
数据传输指令
0A:
数据区数据长度,共10个字节
143E:
目标地址
01020304050607080910:
数据
接收数据格式:
接收到发送方的全部数据,并在最后增加来源地址〔二个字节〕
如接收到的数据为:
FD0A143E0102030405060708091050F5
FD:
数据传输指令
0A:
数据区数据长度,共10个字节
143E:
发送方的目标地址,接收方本身地址
01020304050607080910:
数据
50F5:
发送方的地址,即数据来源地址
点对点数据传输可在网络内任意节点之间进行:
1,即使Coordinator断电,也可在Router之间通过点对点指令传输;
2,Router加入网络后,地址〔ShortAddress〕可不能发生改变;
3,长度字节一定要等于数据区数据长度,否那么数据传输出错〔当成透亮传输,发送给了Coordinator〕;
4,数据区数据最多32字节,否那么数据传输出错〔当成透亮传输,发送给了Coordinator〕;
5,目标地址=FFFF,那么为广播发送,会发送至网络内所有节点;
目标地址=0000,那么发送给Coordinator
表5.4.2点对点数据传输性能
数据传送方向
数据包长度
最快间隔
Router→Router
32字节
40ms
Coordinator→Router
32字节
40ms
Router→Coordinator
32字节
40ms
测试条件:
1,室温,实验室条件
2,模块间距离2米,信号良好
3,串口波特率38400〔最优选波特率〕
4,连续发送,接收100K字节,无误码,连续测试10次
5,测试软件:
串口调试助手SSCOM3.2
5.5如何样使用配置软件
配置软件是用来设定及读取模块的差不多参数;模块可设置4个参数:
PANID、波特率、节点类型、无线频道;
PANID:
同一个网络内的每个节点具有相同的PANID,不同的网络之间PANID是不同的,在同一空间,二个不同PANID的网络是可不能相互阻碍的;
图5.5.1同一网络内的节点具有相同的PANID
关于Coordinator:
〔1〕设定新的PANID,重启,那么赶忙读取为新的PANID;
〔2〕设定新的PANID后,那么往常储存在Coordinator内的网络信息会全部清空,重启后,Coordinator会重新创建一个网络;
〔3〕关于一个差不多存在的网络,重新设定Coordinator的PANID为同样的值,重启,现在,Coordinator里的网络值会被全部清空,由于往常的网络仍旧存在,现在的Coordinator的PANID会自动加1,幸免PANID冲突;
关于Router:
〔1〕设定新的PANID,重启,假如读取为FFFE,表示Router还没有加入网络;
〔2〕设定新的PANID,重启,假如读取为新的PANID,表示Router差不多加入网络;
〔3〕设定新的PANID为FFFF,重启,Router会自动查找网络并加入;
〔4〕设定新的PANID为FFFF,重启,Router会自动查找网络并加入,在没有加入网络之前,读取的值为FFFE;
波特率:
与模块直截了当连接的设备的硬件波特率,同一个网络内,多个Zigbee模块与多个设备连接,并不需要全网具有同样的波特率,只要模块与设备之间具有相同的波特率即可
图5.5.2具有相同的波特率
模块的波特率重新设定后,需重启生效。
5.6Zigbee模块网络特性
1,每个Coordinator承诺6个Router加入网络,并为其分配地址,每个Router又能承诺6个Router加入网络并为其分配地址,总共6层深度,最多支持9330个节点
2,Coordinator是用来创建网络的,第一次使用时,Coordinator需要先上电;
3,一个Zigbee网络形成后,即使Coordinator断电,Router之间也能通讯;
4,一个Zigbee网络形成后,即使Coordinator断电,新的节点也能通过已入网的Router加入,由那个Router为其分配地址;
5,Zigbee网络创建完成后,那个网络内Router的地址〔ShortAddress〕是不变的,然而,那个节点加入到了其它的网路,那么有新的网络为其分配地址,地址会变的,不建议将ShortAddress作为模块的标识;
6,Zigbee模块的MAC地址〔IEEE地址〕是全球唯独的,能够作为模块的标识;
5.7Zigbee模块的设置
表5.7.1设置指令
序号
指令
功能
返回
是否重启
1
FC029101XXXXXY
〔XY=前6个字节的和,保留低8位,下同〕
设定模块的PANID为特定值XXXX
1,假如将模块的PANID设定为FFFF:
假如是Coordinator,重启后自动产生一个新的PANID
假如是Router,重启后自动查找新的网路加入
不能够设定为FFFE
2,重设PANID后〔或同样的值重设后〕
假如是Coordinator,会清除已加入网络的节点,假如是Router,清除已加入的网络,重新查找并加入网络
XXXX
如:
输入:
FC0291011234D6返回:
1234
是
2
FC009103A3B3XY
读取模块的PANID值
模块的PANID值1,假如Router还没加入网络,读取的值FFFE2Coordinator读取为设定值
否
3
FC009104C4D4XY
读取模块的ShortAddress〔模块在网络内的地址〕
ShortAddress
1,假如模块还没有加入网络,读取的值为FFFE
2,2,Coordinator的地址永久是0000
否
4
FC019106XXF6XY
设置模块的串口波特率
XX=01:
设定为9600
XX=02:
设定为19200
XX=03:
设定为38400
XX=04:
设定为57600
XX=05:
设定为115200
XX=其它
000009060000
000109020000
000308040000
000507060000
010105020000
否
5
FC00910797A7XY
测试串口波特率
假如串口波特率正确,返回:
0102030405
假如串口波特率错误,无返回
是
6
FC009108A8B8XY
读取模块的MAC地址
8个字节的MAC地址如:
00124BFF5678FEFF
否
7
FC01910CXX1AXY
设置模块的无线频道:
XX=0B:
设定为Channel11,
频率:
2405MHz
XX=0C:
设定为Channel12,
频率:
2410MHz
XX=0D:
设定为Channel13,
频率