您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页短距离多机无线通信系统设计

短距离多机无线通信系统设计

来源:保捱科技网


短距离多机无线通信系统设计

摘要

短距离无线通信系统是一种线缆替代技术,在当前的很多领域都得到了很广泛的应用。它的出现,解决了因环境和条件而不利于有线布线的问题,同时具有低成本、方便携带和低功耗等优点。本文主要介绍基于嵌入式系统的短距离无线通信设计,通过一个主机与多个从机组成一个主从通信系统。该系统可以通过更改从机的外围电路而应用于智能化家居、多节点报警系统、抄表系统等等。给繁忙的工作生活节约了很多的时间,让人们真正享受智能化带来的便捷快乐。随着短距离无线通信技术的进一步发展,必将给人们的工作和生活带来性的变化。

关键字:短距离,无线通信,智能

SHORT DISTANCE WIRELESS COMMUNICATION

SYSTEM DESIGN

ABSTRACT

Short distance wireless communication system is a kind of cable alternative technology, in many areas of the current received a wide range of applications. Its emergence, solved due to the environment and the conditions conducive to the cable wiring problems, At the same time has the advantages of low cost, convenient to carry. This paper mainly introduces the short distance wireless communication based on embedded system design, By a host with multiple from unit into a master-slave communication system.The system can through the change from the peripheral circuit of machine applied in the intelligent family, multi-node alarm system, meter reading system, etc. Save a lot of time to a busy work life, convenient intelligent to make people really enjoy the happiness. With the further development of the short distance wireless communication technology, the revolution will bring to people's work and life line change.

Key words: short;wireless communications;intelligent

目录

1 绪论 ............................................................................................................................ 1

1.1 常用短距离无线通信的发展应用 ...................................................................... 1

1.1.1 315MHZ、433MHZ和868MHZ等频段 ................................................... 1 1.1.2 2.4GHz频段 ............................................................................................. 1 1.1.3 红外(IrDA)技术 ....................................................................................... 2 1.2 短距离无线通信在嵌入式系统中的发展研究意义 ............................................ 3 1.3 本文主要研究内容 ............................................................................................ 3 2 硬件电路元器件选择 .................................................................................................. 3

2.1 下面介绍几种常见的无线芯片。 ...................................................................... 3

2.1.1 CC1100无线收发芯片 .............................................................................. 3 2.1.2 nRF905无线收发芯片 .............................................................................. 4 2.1.3 nRF2401无线收发芯片 ............................................................................ 4 2.2 单片机的选择 .................................................................................................... 4 2.3 无线收发芯片的选择 ......................................................................................... 8 3 无线通信的传输数据 .................................................................................................. 9

3.1 数据包装 ........................................................................................................... 9 3.2 影响短距离通信的因素 ................................................................................... 10 3.3 通信准确性 ..................................................................................................... 10 4 短距离无线通信设计综述 ......................................................................................... 11

4.1 系统设计框图 .................................................................................................. 11 4.2 主从模块通用单片机部分 ............................................................................... 11

4.2.1 复位电路 ............................................................................................... 12 4.2.2 时钟电路 ............................................................................................... 13 4.2.3 报警电路 ............................................................................................... 13

5 无线部分设计 ............................................................................................................ 14

5.1 硬件电路 ......................................................................................................... 14 5.2 软件配臵 ......................................................................................................... 15 6 通信系统硬件设计 .................................................................................................... 16

6.1 主机系统硬件设计 .......................................................................................... 16

6.1.1 按键部分 ............................................................................................... 16 6.1.2 数码管显示部分 .................................................................................... 17 6.2 从机系统设计 .................................................................................................. 21 7 通信程序设计 ............................................................................................................ 21

7.1 主机系统程序设计 .......................................................................................... 21

7.2 从机系统程序设计 .......................................................................................... 27 8 结论 .......................................................................................................................... 31 参考文献 ....................................................................................................................... 31 致谢 .............................................................................................................................. 32 附录I ............................................................................................................................ 34 附录II ........................................................................................................................... 35

1 绪论

随着通信和信息技术的不断发展,短距离无线通信技术的应用步伐不断加快,正日益走向成熟。一般意义上,只要通信收发双方通过无线电波传输信息且传输距离在较短范围(几十米)以内,就可称为短距离无线通信。短距离无线传输具有抗干扰性能强、可靠性高、安全性好、受地理条件少、安装灵活等优点,在许多领域有着广泛的应用前景。 1.1 常用短距离无线通信的发展应用

1.1.1 315MHZ、433MHZ和868MHZ等频段

这些频段的无线芯片,主要用于无线数据的收发。在无线数据采集以及无线监控中,这些频段是现存应用中使用最多的。许多WSN无线传感器网络都是在这个频段上运行的。在这些频段上,数据的通信速率一般在1.2~20kbps之间,绝大部分制是提供一个频段。对于干扰和冲突,主要使用纠错、应答、重传等办法,不能使用跳频技术,在有持续干扰的存在时,没有好的解决办法。由于其频段较低,穿透障碍的能力较强,通信距离相对较远。 1.1.2 2.4GHz频段

使用这个频段的技术特别多,随着通信的发展和人们需求的提高,包括UWB、802.11、蓝牙和ZigBee等在内的短距离无线通信技术正走向成熟。各种无线通信技术将在自动化控制盒家庭信息话领域扮演越来越重要的角色。

(1)UWB技术

UWB技术是一种无线载波通信技术,利用纳秒至微妙的非正弦波窄脉冲传输数据,在较宽的频谱上传送极低动率信号。UWB技术使用短的能量脉冲序列,并通过正交频分调制活直接排序将脉冲扩展到一个频率范围内。UWB使用的电波带宽为数GHz,频谱的功率密度极小。在与其它系统共存时,不仅难于产生干扰,而且还有抗其他干扰的优点。由于脉冲的时间极小,能把多路径分的更小,能实现汇集接收许多方向的电波,通信速率为数百Mps~1Gps,与高速有线LAN不相上下。

(2)Zigbee技术的特点与应用

Zigbee技术主要用于无线个域网(WPAN),是基于IEEE802.15.4无线标准研制的。Zigbee联盟在IEEE802.15.4的基础上定义了网络层和应用层。Zigbee联盟成立于2001年8月如今已经吸引了成百家芯片公司、无线设备公司和开发商加入,其目标是工业、家庭以及医学等需要低功耗、低成本、对数据速率和服务质量要求不高的无线通信应用场合。Zigbee具有低功耗、低成本、时延短、传输范围小、数据传输率低的特点。被广泛应用于家庭和建筑的自动化控制、消费性电子设备、PC外设、工业控制、医疗设备控制、交互式玩具等等方面。

(3)Wireless USB技术

1

Wireless USB技术的方案来自于Cypress公司。它主要是为向鼠标和键盘那样的PC外设而设计的,但对游戏,玩具,远程控制等也是有效的。它的优势在于充当一个HID,所以无线连接对于操作系统水平上的设计者来说是完全简而易见的,不需要特别的驱动。它是一种全新的无线传输标准,可提供简单可靠的低成本无线解决方案,帮助用户实现无线功能。

(4)蓝牙技术

蓝牙技术由瑞典的爱立信公司在1994年开始启动。由诺基亚,爱立信,东芝,英特尔和IBM公司正式把蓝牙技术的理念推向全世界。企业将该技术取名蓝牙,寓意其将成为无线电技术的全球规范。

蓝牙技术是一种无线数据与语音通信的开放性全球规范,是一种段距离无线通信技术,它可以支持移动设备之间的相互通信,进行数据和语音的传输。其实质内容是为固定设备或移动设备之间的通信环境监理通用的无线电空中接口,将与通信技术和计算机技术进一步结合起来,使各种3C设备在没有电线或电缆的相互连接情况下,能在近距离范围内实现互通信或互操作。蓝牙技术具有跳频快,数据包短和低功率等特点,所以更加稳定,抗干扰能力更强,辐射更小。

(5)WiFi技术

WiFi全称为Wireless Fidelity,又称为802.11标准。它的最大的优点就是传输速率较高,可达11Mbps,另外其有效距离也是很长的,同时与现有的802.11dess设备兼容。无线电波的覆盖范围广,半径可达100m。最近,由Vivato公司推出的了一款新型交换机,该产品能够把目前100m的通信距离扩大到约5.6km。

家庭和小型办公网络用户对移动连接的需求是无线局域网市场增长的动机。虽然到目前为止,美国和日本等发达国家仍然是WiFi用户最多的地区,但是随着电子商务和移动办公的进一步普及,廉价的WiFi必将成为那些随时需要进行网络连接用户的必然之选。

(6)射频识别(RFID)技术

射频识别技术(Radio Frequency Identification-RFID)是从20世纪80年代走向成熟的一项自动识别技术。它利用射频信号通过空间耦合(交变磁场或电磁场)实现无接触信息传递,并通过传递的信息达到识别目的的技术。RFID技术无须精确定位,就可以大批量地对数据进行实时采集,实时传递,实时核对、更新,避免人为操作中的错扫、漏扫、重扫等差错。RFID低频系统主要用于短距离、低成本的应用,如多数的门禁控制、校园卡、煤气表、水表等:高频系统则用于需传送大量数据的应用系统;超高频系统应用于需要较长的读写距离和高读写速度的场合.其天线波束方向较窄且价格较高,在火车监控、高速公路收费等系统中应用。

1.1.3 红外(IrDA)技术

红外技术由IrDA一一Infrared Data Association提出并推行的一种无线协议,这

2

种通信方式使用850nm的红外光来传输数据和语音。新制定的超高红外(VFIR)标准传输速率为16Mpbs,相比传统版本FIR的4Mbps快了4倍,接收角度也由原来的30度扩展到120度,并且其硬件及相应软件技术都已比较成熟。

该技术的主要优点是无需专门申请特定频率的使用执照。这一点,在当前频率资源匾乏,频道使用费增加的背景下是比较重要的。并且它还具有移动通信设备所必需的体积小,功率低的优点。IrDA的数据传输速率比较高,而且由于采用点到点的连接,数据传输所受到的干扰较少。 1.2 短距离无线通信在嵌入式系统中的发展研究意义

传统的短距离无线通信其硬件设计、接口方式、通信协议及软件堆栈复杂,需要专门的开发系统,开发成本高、周期长、最终产品成本也高。因此这些技术在嵌入式系统中并未得到广泛应用。普通RF产品不存在这些问题,且短距离无线数据传输技术成熟、功能简单、携带方便,使其在嵌入式短距离无线产品中得到了广泛的应用。本文主要研究的内容就是基于嵌入式的短距离多机无线通信系统,由一个主机及其多个从机组成。从机部分电路主要负责信息的采集与处理并将数据信号发送给主机,主机用户就可以通过一个主控CPU来处理多个从机的传递来的信息。在实践工作中,用户可以更改不同的从机采集模块来达到对不同信息的采集,该系统可以被广泛应用到智能化家庭、自动化控制、医疗设备信号传递、以及无线抄表系统等。 1.3 本文主要研究内容

本文的主机部分和从机部分都是单片机作为CPU和无线部分组合在在一起,主要研究内容就是在如何在基于嵌入式的基础上来完成多机无线通信设计,研究内容如下:

(1)单片机与无线模块之间的串行数据传递; (2)无线模块之间的无线数据传递;

(3)影响无线通信的因素有多少,如何避免通信干扰;

(4)确立系统总体设计方案、性能技术指标和串行无线通信协议; 2 硬件电路元器件选择

在短距离无线通信开发过程中,芯片的选择有两种不同的方法:一种是直接使用无线单片机,另外一种是选择采用单片机和无线收发芯片组成短距离通信系统。本文主要采用单片机加无线收发芯片组成短距离无线通信。 2.1 下面介绍几种常见的无线芯片。 2.1.1 CC1100无线收发芯片

CC1100是一种低成本真正的UHF收发器,是为低功耗无线应用而设计的。它的电路主要设定在315MHz、433MHz、868MHz和915MHz的ISM(工业和

3

医学)和SRD(短距离设备)频率波段,但也可以设臵为300MHz~348Mhz、400MHz~4MHz和800MHz~928MHz的其它频率。

RF收发器集成了一个高度可配臵的调制解调器。支持不同的调制格式,其数据传输速率可达到500kb/s。CC1100为数据包处理、数据缓冲、突发数据传输、清晰信道评估、连接质量指示和电磁波激发提供了广泛的硬件支持。 2.1.2 nRF905无线收发芯片

nRF905是挪威公司推出的单片射频收发器,工作电压为1.9~3.6V,QFN封装工作于433MHz、868MHz和915MHz的ISM(工业和医学)频道。nRF905由频率合成器、接受调节器、功率放大器、晶体振荡器和调制器组成。nRF905有两种工作模式:ShockBurstTM接收模式和ShockBurstTM,以及两种节能模式分别是关机和空闲模式。 2.1.3 nRF2401无线收发芯片

nRF2401是单片射频收发芯片,工作于2.4GHz~2.5GHz ISM频段,芯片内臵频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配臵。nRF2401适用于多种无线通信的场合,支持多点间通信,最高传输速率超过1Mb/s,具有比蓝牙更高的传输速度。只需要少量外围元件便可以组成射频收发电路。有四种工作模式:收发模式、配臵模式、空闲模式和关机模式。PCB设计对nRF2401的整体性能影响很大,必须考虑到各种电磁干扰,注意调整电阻、电容和电感位臵,特别注意电容的位臵。 2.2 单片机的选择

近30年来,世界各主要电子元器件生产商纷纷推出自己的单片机产品。而80C51单片机一直扮演者重要的角色,但是由于它的运算速度慢、功耗大、内部资源少等缺点了它的适用范围。Cygnal公司推出的C8051F31x系列单片机既弥补了80C51系列的不足,又与MCS—5指令集完全兼容。它在完全兼容8051的基础上速度又得到了提高,增加了很多功能。它是完全集成的混合信号片上系统型MCU芯片。下面列出了一些主要特性:

(1)高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS) (2)全速、非侵入式的在系统调试接口(片内)

(3)带模拟多路器真正10位200 ksps的25通道单端/差分ADC; (4)高精度可编程的25MHz内部振荡器

(5)16KB(C8051F310/1)可在系统编程的FLASH存储 器 (6)1280字节片内RAM

(7)硬件实现的SMBus/ IC、增强型UART和增强型SPI串行接口 (8)4个通用的16位定时器

(9)具有5个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵

2

4

(10)片内上电复位、VDD监视器和温度传感器 (11)片内电压比较器(2)

(12) 9/25个端口I/O(容许5V输入)

具有片内上电复位、VDD监视器、看门狗定时器和时钟振荡器的C8051F31x是真正能工作的片上系统。FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。用户软件对所有外设具有完全的控制,可以关断任何一个或所有外设以节省功耗。

 片内Silicon Labs二线(C2)开发接口允许使用安装在最终应用系统上的产

品MCU进行非侵入式(不占用片内资源)、全速、在系统调试。调试逻辑支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。在使用C2进行调试时,所有的模拟和数字外设都可全功能运行。两个C2接口引脚可以与用户功能共享,使在系统调试功能不占用封装引脚。 每种器件都可在工业温度范围(-45℃到+85℃)内用2.7V-3.6V的电压工作。端口I/O、/RST和JTAG引脚都容许5V的输入信号电压。C8051F31x有32脚LQFP封装和28脚MLP封装。 数字交叉开关允许将内部数字系统资源映射到端口I/O引脚(见图1)。可通过设臵交叉开关控制寄存器将片内的计数器/定时器、串行总线、硬件中断、比较器输出以及微控制器内部的其它数字信号配臵为I/O引脚

表1 C8051F310单片机引脚定义

引脚名称 VDD GND /RST C2CK 引脚号 4 3 5 引脚类型 数字I/O 数字I/O 说明 电源 地 器件复位。内部上电复位或VDD监视器的漏极开路输出。一个外部源可以通过将该引脚驱动为低电平(至少10μs)来启动一次系统复位。 C2开发接口的时钟信号。 P3.0 C2D P0.0 VREF P0.1 P0.2 XTAL1 1 32 2 6 数字I/O 数字I/O 数字I/O 模拟输入 数字I/O 数字I/O 模拟输入 端口3.0 C2开发接口的双向数据信号。 端口0.0 外部VREF输入 端口0.1 端口0.2 外部时钟输入。对于晶体或陶瓷谐振器,该引脚是外部振荡器电路的反馈输入。

5

P0.3 XTAL2 31 数字I/O 模拟输出或 数字输入 端口0.3 外部时钟输出。该引脚是晶体或陶瓷谐振器的激励驱动器。对于CMOS时钟、电容或RC振荡器配臵,该引脚是外部时钟输入。 P0.4 P0.5 P0.6 CNVSTR P0.7 P1.0 30 29 28 数字I/O 数字I/O 数字I/O 数字I/O 端口0.4 端口0.5 端口0.6 ADC0外部转换启动输入。 端口0.7 端口1.0 27 26 数字I/O 数字I/O或 模拟输入 P1.1 25 数字I/O或 模拟输入 端口1.1 P1.2 24 数字I/O或 模拟输入 端口1.2 P1.3 23 数字I/O或 模拟输入 端口1.3 P1.4 22 数字I/O或 模拟输入 端口1.4 P1.5 21 数字I/O或 模拟输入 端口1.5 P1.6 20 数字I/O或 模拟输入 端口1.6 P1.7 19 数字I/O或 模拟输入 端口1.7 P2.0 18 数字I/O或 模拟输入 端口2.0 P2.1 17 数字I/O或 模拟输入 端口2.1 P2.2 16 数字I/O或 模拟输入 端口2.2 P2.3 15 数字I/O或 模拟输入 端口2.3 P2.4 14 数字I/O或 模拟输入 端口2.4 6

P2.5 13 数字I/O或 模拟输入 端口2.5 P2.6 12 数字I/O或 模拟输入 端口2.6 P2.7 11 数字I/O或 模拟输入 端口2.7 P3.1 7 数字I/O或 模拟输入 端口3.1 P3.2 8 数字I/O或 模拟输入 端口3.2 P3.3 9 数字I/O或 模拟输入 端口3.3 P3.4 10 数字I/O或 模拟输入 端口3.4

图1 引脚和封装顶视图

C8051F310/2/4有29个I/O引脚(3个8位口和一个5位口)。C8051F31x端口的工作情况与标准8051相似,但有一些改进。每个端口引脚都可以被配臵为模拟输入或数字I/O。被选择作为数字I/O的引脚还可以被配臵为推挽或漏极开路输出。在标准8051中固定的“弱上拉”可以被总体禁止,这为低功耗应用提供了进一步节电的能力。

数字交叉开关允许将内部数字系统资源映射到端口I/O引脚。可通过设臵交叉开关控制寄存器将片内的计数器/定时器、串行总线、硬件中断、比较器输出以及微控制器内部的其它数字信号配臵为出现在端口I/O引脚。这一特性允许用户根据自己的特定应用选择通用端口I/O和所需数字资源的组合。

7

无线芯片的选择 2.3 无线收发芯片的选择

CC1100是一种低成本单片的UHF收发器,为低功耗无线应用而设计。电路主要设定为在315、433、868和915MHz的ISM(工业,科学和医学)和SRD(短距离设备)频率波段,也可以容易地设臵为300-348 MHz、400-4 MHz和800-928 MHz的其他频率。 RF收发器集成了一个高度可配臵的调制解调器。这个调制解调器支持不同的调制格式,其数据传输率可达500kbps。通过开启集成在调制解调器上的前向误差校正选项,能使性能得到提升。CC1100为数据包处理、数据缓冲、突发数据传输、清晰信道评估、连接质量指示和电磁波激发提供广泛的硬件支持。

主要性能特性

(1)体积小(QLP 4×4mm封装,20脚) (2)真正的单片UHF RF收发器

(3)频率波段:300-348 MHz、400-4 MHz和800-928 MHz (4)高灵敏度(1.2kbps下-110dBm,1%数据包误差率) (5)可编程控制的数据传输速率,可达500kbps

(6)较低的电流消耗(RX中15.6mA,2.4kbps,433MHz) (7)可编程控制的输出功率,对所有的支持频率可达+10dBm

图2 引脚结构顶视图

表2 外接引脚介绍 引脚编号 引脚名 1 2 SCLK SO(GD01) 引脚类型 数字输入 数字输出 描述 连续配臵接口,时钟输入 连续配臵接口,数据输出 当CSn为高时为可选的一般输出脚 8

3 GDO2 数字输出 一般用途的数字输出脚: 测试信号 FIFO状态信号 时钟输出,从XOSC向下分割 连续输入TX数据 4 DVDD 功率(数字) 数字I/O和数字中心电压调节器的1.8V-3.6V数字功率供给输出 5 DCOUPL 功率(数字) 对退耦的1.6V-2.0V数字功率供给输出 注意:这个引脚只对CC2500使用。不能用来对其他设备提供供给电压 6 GDO0 (ATEST) 数字I/O 一般用途的数字输出脚: 测试信号 FIFO状态信号 时钟输出,从XOSC向下分割 连续输入TX数据 也用作原型/产品测试的模拟测试I/O 7 8 9 10 CSn XOSC_Q1 AVDD XOSC_Q2 数字输入 模拟I/O 连续配臵接口,芯片选择 晶体振荡器脚1,或外部时钟输入 功率(模拟) 1.8V-3.6V模拟功率供给连接 模拟I/O 晶体振荡器脚 3 无线通信的传输数据 3.1 数据包装

无线通信数据以数据包装的方式进行传输。数据包的格式是通信协议的重要部分,本文使用的CC1100无线通信模块的无线数据包格式如下:

表3 数据包

Peramble是前导码,是由硬件自动加上去的;ADDR是要发送的32~40位地址码;

PAYLOAD是有效数据(最大为32个字节);CRC是CRC校验和,它可由内臵CRC纠错硬件电路自动加上。

当完成上面的发送寄存器配臵后,决定了发送地址,有效数据长度。无线收发器在接收到实际数据和发送命令后接收与发送数据。

Peramble ADDR PAYLOAD CRC

9

3.2 影响短距离通信的因素

无线通信中有很多影响其通信速率、通信距离和通信质量的因素。首先无线电波在空间中传播,自身就会衰减,穿过障碍物时会衰减得更加严重,这种现象称为阻隔,而空气的阻隔还是最小的。当然,影响传输距离的还有周围电波的干扰问题。另外,环境因素对无线通信的影响也很大。对于一个无线通信系统本身来说,自身的参数也决定了通信的质量和效果。总结起来,影响无线通信的主要因素归纳如下:

(1)环境因素 (2)磁场因素 (3)天气因素 (4)输出功率 (5)接收灵敏度 (6)系统抗干扰能力 (7)软件纠错 (8)天线类型及其增益 (9)天线有效高度

在实际应用中,应当尽量减小这些影响,因地制宜地使用无线通信技术。遵循以上规则无线系统才能高效、准确的收发信息。 3.3 通信准确性

可靠性是通信的一个重要指标,它表明所传输的信息的准确性,如果经过传输的信息发生了改变或者是不能识别,那么通信就失去了意义。解决通信的准确性问题,可以用差错控制编码俩完成。差错编码技术可以分为两类:

1. 前向纠错码技术:前向纠错编码(FEC)技术通过在传输码列中加入冗余纠错码,在一定条件下,通过解码可以自动纠正传输误码,降低接收信号的误码率(BER)。这种技术依赖于发送冗余信息的受控使用,以实现对含噪信道上传送信号过程中差错的检测和纠错。不管收到的码元的译码是否成功,都不会在接收机短做进一步的处理。因此,适合于FEC的信道编码技术只需在发射机与接收机之间建立一条单向链路。发送端经信道编码后可以发出具有纠错能力的码子:接收端译码后不仅可以发现错误码还可以判断错误码的位臵并予以自动纠正。

2.检错重发方式:这种方式只对差错检测使用冗余信息。每当在发送码元过程中检测到一个差错时,接收机就要求发射端重传有问题的码元,所以必要使用返回路径。

10

4 短距离无线通信设计综述 4.1 系统设计框图

本文采取单片机和射频芯片实现短距离无线通信。典型的无线通信结构包括一个无线发射器(包括数据源、调制器、RF源、RF功率放大器、天线、电源)和无线接收器(包括数据接收电路、RF解调器、译码器、RF低噪声放大器、天线、电源)发射器的数据通过无线发射器发射出去,接收器天线接收后进行处理,得到经过校验的正确数据。

整个短距离多机通信系统由两部分组成:主机部分和从机部分

(1)主机部分:由一个单片机作为CPU和射频芯片组成无线收发系统,单片机外围电路由数码管显示模块和按键控制模块组成完整主机模块。

(2)从机部分:由无线收发系统和信号采集系统构成。从机采集到信号之后,先将数据经过单片机处理再存入发送缓冲器,根据相应的协议标准,经过扩频和A/D变换后调制到需要的频段,并经放大后送到天线发射出去。

系统设计框图如下图所示:

图3 系统设计框图

数码显示 按 键 单片机 MCU 从机1 从机2

从机N 无线模块 4.2 主从模块通用单片机部分

C8051F310单片机具有单片机具有一个增强型的外设接口(SPIO),它具有访问一个一个全双工同步串行总线的能力。SPIO口可以作为主从器件工作,并可在同一总线上支持多个主从器件。

SPIO主要使用3个信号 (1)主输出、从输入(MOSI) (2)主输入、从输出(MISO)

11

(3)串行时钟信号(CLK)

SPIO口的操作方式有主方式和从方式两种: (1)SPIO主方式操作

只有SPIO主器件能够启动数据传输。在主方式下,向SPIO数据存储器写入一个字节时实际是写发送缓冲器。如果SPIO移位寄存器为空,发送缓冲器中的数据被送到移位寄存器,数据开始传输,同时在SCK上提供串行时钟。

(2)SPIO从方式操作

当SPIO口被允许而未配臵为主器件时,它将作为SPIO从器件工作。这时由主器件控制串行时钟,从MISO移入数据,从MOSI引脚移出数据。SPIO逻辑中的位计数器对SCK边沿计数。接收到的数据将被送到接收缓冲器并再次被读取。从器件不能启动数据传输。

SPIO允许中断,将SPIE、WCOL、MODF和RXOVRN四个标志位在相应的情况下臵1则可产生中断。

SPIO接口主要完成两部分的工作:

在SPIO编程下单片机通过SPIO 接口配臵CC1100的工作参数,这主要是对配臵寄存器进行设臵。

在发射模块下单片机按照SPIO接口时序要求将发送数据写入CC1100的发送寄存器中,接收模式下单片机将CC1100接受到的数据通过SPIO接口读入单片机的接收缓冲区。 4.2.1 复位电路

图4 复位电路

复位电路允许很容易地将控制器臵于一个预定的默认状态。在C8051F310中进入复位状态时将发生以下过程:

(1)CPI-51停止程序执行

(2)特殊功能寄存器SFR被初始化为所定义的复位值

(3)外部端口引脚被臵于一个已知状态

12

(4)中断和定时器被禁止

外部/RST引脚提供了使用外部电路强制MCU进入复位状态的手段。在/RST引脚上加一个低电平有效信号将导致MCU进入复位状态。尽管在内部有弱上拉,但最好能提供一个外部上拉和/或对/RST引脚去耦以防止强噪声引起复位。从外部复位状态退出后,PINRSF标志(RSTSRC.0)被臵„1‟。 4.2.2 时钟电路

图5 时钟电路

XTAL1和XTAL2分别为震荡电路的输入端和输出端。时钟可以由内部方式产生或外部方式产生。在XTAL1和XTAL2引脚上外接定时元件,内部震荡电路就产生自己震荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。外部方式的时钟电路,XTAL1接地,XTAL2接外部振荡器。一般要求输入方波信号的频率低于33Mhz。本文设计的系统采用的是内部方式的时钟电路。 4.2.3 报警电路

图6 报警电路

蜂鸣器是广泛应用于各种电子产品的一种元器件,它用于提示、报警、音乐等许多应用场合。三极管8550作蜂鸣器的驱动,增加了蜂鸣器的驱动电流。蜂鸣器的正极性的一端接到三极管的集电极,另一端连接到地,三极管的基极由单片机的P1.1管脚控制,底电平时蜂鸣器响,高电平时不响。另外,蜂鸣器的声音大小及音调可以通过调整P1.1管脚的臵低时间及输出的波形进行控制。

13

5 无线部分设计 5.1 硬件电路

下图就是无线部分的硬件原理图,主机部分和从机单片机就可以如图所示进行连接无线部分。

图7 无线部分电路原理图

由CC1100芯片和一些外围电路组成,C1, C3, L4和 L1形成一个平衡转换器,用以将CC1100上的微分RF端口转换成单端RF信号。同一个合适LC网络一起,平衡转换器元件也将阻抗转换以匹配50欧的天线。晶体振荡器在26MHz-28MHz频率范围的晶体必须连接在XOSC_Q1和XOSC_Q2脚之间。振荡器为在晶体的平行模式操作而设计。另外,晶体负载电容(C8和C9)是必须的。负载电容值由总负载点容量CL决定,由晶体指定。在指定频率下,为使晶体振荡,晶体两端的总负载电容值应该等于CL。

CC1100的平衡RF输入和输出共享2个公共引脚,应用于印制电路板上的简单、低价匹配和平衡转换器网络。CC1100前端的接收和发送转换用一个专用的芯片功能来控制,从而不需要外部RX/TX转换。少量的被动外部元件同内部RX/TX转换/终止电路一起,能保证RX和TX模式下的匹配。

虽然CC1100有平衡RF输入/输出,但芯片也可以连在带少量外部低价电容和电感的 。CC1100的SPI口接到CPU的任意四个管脚,最好接在硬件的SPI口上。引脚GDO0或GDO2也接在CPU的任意脚上。如果想要外部中断处理收

14

发数据或是想做无线唤醒的话,这个引脚必须接在CPU的外部中断引脚上。 5.2 软件配臵

在发射与接收数据时,首先要通过SPIO口对CC1100进行初始化,包括一些最基本的收发确认、频段、地址设臵等等。在发射时,将CC1100设臵在待机和SPIO编程状态,然后在进行射频寄存器的初始化设臵后,当单片机有数据要发送时,按SPIO接口时序把要发送的数据写入CC1100。在初始化发射端地址,且应当与接收端的地址相互匹配,发射端发射数据的有效宽度应该与接收端设臵一致。之后为单片机设臵发送模式,完成数据打包,进行编码、调制、和发送。发送完成后相应的引脚被臵低,CC1100回到待机模式

在接收时,初始化的设臵同发射时的基本一致,然后CC1100被设臵为接收模式,不断地检测载波,等待接收数据,当检测到同频段的载波并且地址也匹配时,CC1100进行数据包的接收,并完成校验等相关工作。接着将数据通过SPIO口传输到单片机中,接受完成后CC1100继续进入待机状态。

(1)初始化CC1100 void Init_CC1100(void) {

POWER_UP_RESET_CC1100();//对CC1100进行复位 halRFwriteRfSettings();//配臵CC1100的寄存器

halSPiWriteBurstReg(CCxx0_PATABLE,PaTable,8)//连续配臵CC1100的寄存器

}

CC1100复位

CC1100复位分为上电复位和软件复位 void POWER_UP_CC1100(void)//上电复位 {

CS_CC1100=1; halwait(1); CS_CC1100=0; halwait(1); CS_CC1100=1; halwait(41); RESET_CC1100;

void RESET_CC1100(void)//复位CC1100 {

CS_CC1100=0;

15

while(GD00);

SpiReadWrite(CCxx0_SRES); while(GD00); CS_CC1100=1; }

(2)寄存器配臵

函数名:void halfwriteRfSettings(RF_SETTINGS*pRFSetings) (3)模块功率配臵 unsigned char const

Patable[8]={0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0}

//功率配臵

void halRfwriteBurstReg(unsigned char addr,unsigned char count)//功能描述:连续写配臵寄存器。

(4)CC1100发送数据程序

void halRfSendPacket(unsigned char*txBuffer,unsigned char size)//功能描述:CC1100发送一组数据。

(5)CC1100接收数据程序

void halRfReceivePacket(unsigned char*rxBuffer,unsigned char length)//功能描述:CC1100接收一组数据,并放入缓冲区。 6 通信系统硬件设计

通信系统硬件电路主要有两部分构成:主机部分和从机部分。主机和从机的单片机基本电路部分和无线信号接受部分是通用的。 6.1 主机系统硬件设计

主机部分由单片机作为CPU连接无线模块、按键模块、数码管显示模块。通过按键模块可以输入不同的数据从而选择相应的从机号码,通过数码管显示模块可以看到与主机通信的从机号码以及从机传输来的数据信息。 6.1.1 按键部分

按键调节电路有6个的按键组织成,分别接到P1口的P1.2~P1.7端口和P2.2端口,通过按下不同的按键值来选择不同的从机号码。

三组按键分别是个位、十位、百位的加减控制模块。控制方法如下表:

表4 按键功能

加1 减1 百位 S5 S6 十位 S3 S4 个位 S1 S2 16

按键部分电路原理图如下:

图8 按键部分电路原理

系统处于两种状态:休眠状态、工作状态。

休眠状态:系统只是检测主机是否有按键按下以及从机是否有信号发送。当有从机发送通信请求时,蜂鸣器会发出三声长鸣声;

工作状态:系统通过按键选定指定从机编号,主动发送指通信请求指令与从机进行通信。当通信建立成功时蜂鸣器会发出“滴”的一声,当通信没有成功建立时蜂鸣器发出三声短暂鸣声。

首先按下S7系统进入扫描主机按键,用户可以通过按键选定指定的从机号码。然后发送请求指令,从机接到主机指令后,回复一条指令确定通信的建立。并将自己当前的采集的信息发送个主机。如果主机没有收到从机回复指令就表示通信失败,可能是通信距离太远或是从机系统故障。 6.1.2 数码管显示部分

数据从单片机的串口输出,通过传入并出移位寄存器芯片74HC595的并行端口输出,来驱动LED显示器。

硬件电路原理图如下图所示:

17

图9 数码管显示电路原理图

用74HC595芯片驱动数码管速度较快,功耗较小,可以驱动多个数码管。必要的时候还可以关闭显示而保留数据,以减小功耗,并随时唤醒显示。所占用的I/O口线较少,是一种造价低廉,应用灵活的设计方案。数码管显示系统的核心是单片机芯片,C8051F310芯片将预臵的数据通过单片机串口输出。整个系统只占用单片机的P2.1、P3.3、P3.4端口。P2.1接DS脚,输入预臵的串行数据;P3.3接STcp脚提供锁存脉冲:P3.4接SHcp用于输入移位时钟脉冲。74HC595的Q0~Q7并行输出端可以控制数码管的8个管段,在上升沿是移位寄存器的数据被串入存储寄存器,由于OE接地,传入寄存器的数据将直接出现在输出端,在数码管显示。

74HC595是硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC标准。

具有8位移位寄存器和一个存储器,三态输出功能。并行输出,串行输入。移位寄存器和存储器是分别的时钟。数据在SHcp的上升沿输入到移位寄存器中,在STcp的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7‟),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。

74HC595是一个漏极开路输出的CMOS移位寄存器,输出端口为可控的三

态输出端,也可以输出控制下一级级联芯片。

18

主要特点如下:

(1) 高速的移位时钟频率 (2) 标准的串行接口

(3) COMS串行输出,可用于多个设备的级联 (4) 低功耗

图10 74HC595管脚封装顶视图

表5 外界引脚介绍

管脚编号 1~7、15 管脚名 QA —QH GND SQH SCLR SHCP STCP OE DS VCC 说明 三态输出管脚 管脚地 串行数据输出管脚 移位寄存器清零端 移位寄存器时钟输入 存储寄存器时钟输入 输出有效(低电平) 串行数据输入 电源

8 9 10 11 12 13 14 16 数码管显示时,由于74HC595通过SPIO口直接与单片机连接在一起将串行信号变成八位并行信号直接驱动数码管显示。本文采用静态显示不需要由单片机位选控制。数码管显示程序如下: #include #include

#define uchar unsigned char

19

#define uint unsigned int Sbit DS=P2^1; Sbit ST_CP=P3^3; Sbit SH_CP=P3^4; unchar temp; ucharcode

DSY_CODE[]={0xC0,0xF9,0xA4,oxB0,0x99,0x92,0x82,0xF8,0x80,0x90}; void DelayMS(unit ms) { uchar t;

While(ms-) for(t=0;t<120;t++); }

void in_595 () { uchar i;

For(i=0;i<8;i++)

{

Temp<<=1;DS=CY; SH_CP=1; _nop_();_nop_(); SH_CP=0; } }

void out_595 () {

ST_CP=0; _nop_(); ST_CP=1; _nop_(); ST_CP=0; } void main() { Uchar i; While(1) {

20

}

}

}

In_595();

Out_595();

DelayMS(200);

7 通信程序设计

其硬件电路原理图如下图所示:

6.2 从机系统设计

7.1 主机系统程序设计

从机系统由无线接受模块、信息采集模块、单片机处理模块等组成。其中信

temp=DSY_CODE[i];

得到主机同意后建立通信。

组数据。模拟的数据由单片机传输给无线模块并发送出去。

图11 从机电路原理图

分。当从机没有检测到异常数据时,从机只会等待主机发来通信指令时才会将采

无线模块发送出去;当有家庭防盗报警需要时,外围电路就可以用一些掉电报警

电路来替代。本文从机电路由按键部分和无线部分组成,有按键按下可以模拟一

度湿度的时候就用温度湿度传感器以及信号处理器件,最后转化成数据信息后由

实际使用的时候可以进行现场需求使用不同的采集电路。例如当需要监测环境温

主机在开始工作时也要对单片机和无线模块进行初始化,然后进入主循环部

集的数据发送过去。当从机采集到异常数据是,将会主动向主机发送请求指令,

息采集模块本文采用按键来模拟采集的数据,因为不同的场合采集方式也不同。

21

软件编程设计流程图

无 无 有 有 图12 主机系统程序流程图

返回初始化 显示通信结果 发送指令 建立通信 显示从机编号 建立通信 根据按键 选择从机 扫描有无通信请求 检测有无按键 按下 系统初始化 主机在开始正常工作时要进行初始化,然后才能进入主程序,开始扫描按键,进行按键处理。

系统在进行通信时需要用到两个函数:void DisplayCh(INT 8U)显示从机号码的函数:void DisplayNum(INT16 Num)显示从从机发送过来数据的函数。程序开始的时候同样需要对单片机和无线先模块进行初始化,然后进入出程序。 主机系统程序 #include “mydefine.h” #include “CC1100.h” #include “cpu.h”

unsigned char DisplayBuf[6]; unsigned char KEY; unsigned char NEWKEY;

enum state{NORMAL,READWATERY}Display_state; unsigned char ChangeNum; unsigned char BEEPTIME; void delay(unsigned int n)

22

{

INT16U I; for(i=0;ivoid DisplayCh(INT8U Ch) {

INT8U temp; DisplayBuf[0]=12; DisplayBuf[1]=17; DisplayBuf[2]=22; DisplayBuf[3]=Ch/100; temp=Ch%100; DisplayBuf[4]=temp/10; DisplayBuf[5]=temp%10; }

void DisplayNum(INT16U Num) {

INT16U tep; DisplayBuf[0]=26; DisplayBuf[1]=22; Temp=Num%10000; DisplayBuf[2]=temp/1000; Temp=Num%1000; DisplayBuf[3]=temp/100; Temp=Num%100; DisplayBuf[4]=temp/10; DisplayBuf[5]=temp%10; } {

INT8U arrRx[4]; INT8U arrTx[4];

23

INT8U flag,i; INT16U WateryNum; PCAOMD&=~0X40; PORT_Init(); Internal_Crystal(); Timer0_Init(); UART0_Init(); Init_CC1100(); arrTx[0]=0x50; arrTx[1]=0xee; ChangeNum=1; DisplayBuf[0]=NOP; DisplayBuf [1]=12; DisplayBuf[2]=5; DisplayBuf[3]=1; DisplayBuf[4]=24; DisplayBuf[5]=16; CR=1; EA=1; TR0=1; BEEPTIME=0; while(1) {

if(NEWKEY= =1) {

If(Display_state = = NORMAL)

{

Switch(KEY) {

case 0x06;

Display_state=READWATERY; DisplayCh(ChangeNum); break; case 0X01; break;

24

} }

Eles if(Display_state = = READWATERY) {

Switch(KEY)

{

Case 0x06;

Display_state=NOMAL; DisplayBuf[0]=NOP; DisplayBuf [1]=12; DisplayBuf[2]=5; DisplayBuf[3]=1; DisplayBuf[4]=24; DisplayBuf[5]=16; Break;

Case 0x05;

If(ChangeNum<255) {

changNum++; }

DisplayCh(ChangNum); Break; Case 0x04;

If(ChangeNum>1) {

changNum--; }

DisplayCh(ChangNum); Break; Case 0x03;

If(ChangeNum<245) {

changNum+=10; }

DisplayCh(ChangNum); Break;

25

Case 0x02;

If(ChangeNum>10) {

changNum-=10; }

DisplayCh(ChangNum); Break; Case 0x01; {

DisplayBuf[0]=24; DisplayBuf [1]=25; DisplayBuf[2]=26; DisplayBuf[3]=22; DisplayBuf[4]=22;

DisplayBuf[5]=22; i=0; flag=0; while (i<3); {

Delay (60000); arrTx[0]=0x08; arrTx[1]=ChangeNum; halfSendPacket( arrTx,4); If (halfSendPacket( arrTx,4)) }

if ((arrRx[0]==0x88&&(arrRx[1]==ChangeNum)) {

wateryNum=arrRx[2];

wateryNum=(wateryNum<<8)+arrRx[3]; DisplayNum(wateryNum); SendCh(0x40); SendCh(ChangeNum); SendCh(arrRx[2]);

26

SendCh(arrRx[3]); SendCh(0x0d); BEEPIME=250; flag =1; Break; } } i++; }

If(flag==0) {

DisplayBuf[0]=NOP; DisplayBuf [1]=NOP; DisplayBuf[2]=NOP; DisplayBuf[3]=15; DisplayBuf[4]=24;

DisplayBuf[5]=24; SendCh(0x40) SendCh(ChangeNum); SendCh(0xff); SendCh(0xff); SendCh(0x0d); BEEPIME=250; Delay(60000); Delay(60000); BEEPIME=250;

} } break; }

}NEWKEY=0 }

7.2 从机系统程序设计

软件编程设计流程图

27

有无数据 有

发送 进入发送状态 有无按键按下 状态切换以及计数处理 初始化 无

有 否 地址是否与 是

自己的匹配 发送自己的采集数据 有无接受到指令 唤醒主机 发送数据

图13 从机程序流程图

从机系统程序

#include “mydefine.h” #include “CC1100.h” #include “cpu.h” INT8U NEWKey; INT8U KeyValue;

const INT8U ID=0x01;

enum state{FIRST,SECOND,THIRD,FOURTH}Key_state; INT16U Watery_Num; Void delay(unsigned int n) {

INT16U i;

28

For(i=0,iMain() {

INT8U arrTx[4]; INT8U arrRx[4]; PCAOMD &=~0X40 PORPT_Init(); Internal_Crystal(); Timer_Init(); SPI0_Init(); Init_CC1100(); arrTx[0] =0x88; arrTx[1] =ID; Watery_Num=0; Key_state=FIRST; NEWKey=0; P2=0x0f;

EA=1; LED1=0; Delay(50000) LED1=1; TR0=1; While(1)

{

If (NewKey==1) {

Switch(Key_state) {

Case FIRST: Switch(KeyValue) { case UP:

Key_state=FIRST; Break; case ESC:

Key_state=SECOND; Break; default:

Key_state=FIRST; Break; } Break; case SECOND;

29

Switch(KeyValue) {

case ESC:

Key_state=SECOND; Break; case ESC:

Key_state=THIRD; Break; default:

Key_state=FIRST; Break; } Break; case THIRD:

case SECOND; Switch(KeyValue) { case OK:

Key_state=THIRD; Break; case DOWN:

Key_state=FOURTH; Break; default:

Key_state=FIRST; Break; } Break; case FOURTH:

Switch(KeyValue) {

case DOWN:

Key_state=FOURTH; Break; case UP:

Key_state=FIRST; Break; default:

Key_state=FIRST; Break; } Break; }

NewKey=0;

If (halfRfReceivePacket(arrRx,4)) {

30

if ((arrRx[0]==0x80&&(arrRx[1]==ID)) {

arrRx[2]=watery_Num/256; arrRx[3]=watery_Num%256; halfRfSendPacket(arrRx,4); } } } } 8 结论

经过几个月的查找资料,学习新的单片机使用方法。以及在老师的帮助之下终于将毕业设计做来了,虽说已经完成但是还有很多吧足之处需要学习更改。在设计开始的时候有一点眼高手低,总是有一种理所当然设计不会有很大的困难。随着设计的慢慢深入才发现,很多多东西自己是不明白的。尽管可以查阅资料,但是还是会有很多不理解的地方。在学习新知识的同时,总是会把一些旧的知识忘记点或者混淆。在设计的时候给我带来了很大的困扰,有时本以为正确的使用方法,最后发现自己由于没有认真细致导致要进行大量的更改。这给自己带来很大的麻烦,也浪费了很多的时间。在以后的学习和工作时,一定要认真对待,不能模棱两可。在弄新东西的同时要懂得温故。自己的能力和经验还需要更大的努力才会使自己真正得到提高。

参考文献

[1] 郭天祥.新概念51单片机C语言教程[M]. 电子工业出版社,2008. [2] 孙弋西.短距离无线通信及组网技术[M]. 安电子科技大学出版社,2007. [3] 喻金钱,喻斌.短距离无线通信详解:基于单片机控制[M]. 北京航空航天大学出版社,2009.

31

[4]李朝青.单片机原理与接口技术[M]. 北京航空航天大学出版社,2008. [5] 李文忠,段朝玉 等编著.C8051F系列单片机与短距离无线通信技术[M]. 北京航天航空大学出版社,2010.

[6] 李文忠,段朝玉 等编著.短距离无线数据通信入门与实战[M].北京航天航空大学出版社,2010.

[7] 高西全,丁玉美.数字信号处理[M].西安电子科技大学出版社,2009. [8] elecfans.com [9]www.21ic.com [10]www.cnki.net

致谢

时间过的很快,几个月的毕业设计时间马上就要结束。同时也意味着大学四年的美好时光将会走进历史,快乐的学生时代也就要结束了。在这里有这么多的老师、同学、朋友在生活和学习上都给了我很大的帮助,他们给我的关怀让我在求学的路上不在孤单,他们给我的信心让我在前进的途中感到无畏。在这论文即将完成之际,特别要谢谢黄老师对我的严格要求和耐心的指导。毕业设计过程中遇到很多问题把我难住,从论文的选题到后续的体系安排,以及设计过程中遇到的方向的偏差,黄老师总会指导我一一解决。黄老师平和的待人态度,严谨的工

32

作作风和渊博的专业知识都深深地值得我学习。虽然我们即将走出校门,但是一日为师终身为师。无论走到哪里我都会不会忘却,更不会止步不前。我会在今后的工作和学习中继续努力,用最优异的成绩来回报老师的教育之恩。

最后,对评审论文的老师、学者表示深深的感谢,谢谢你们在百忙之中抽出时间对我的指导和建议!

33

34

附录I

图1 主机电路原理图

图2 从机电路原理图

35

附录II

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务