声音导引系统的无线传输设计_第1页
声音导引系统的无线传输设计_第2页
声音导引系统的无线传输设计_第3页
声音导引系统的无线传输设计_第4页
声音导引系统的无线传输设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 1 绪论绪论 1.11.1 本课题研究的目的和意义本课题研究的目的和意义 目前,无线数据通信的应用领域越来越多,移动通信技术飞速发展,越来越多的 信息采集和远程控制系统采用了无线传输技术,由于无线数据通信不用布线,快速布局, 因此具有有线数据通信无法比拟的便捷性,在物体运动场合具有不可替代性。并且随 着无线技术的日益发展,无线传输技术应用越来越被各行各业所接受。现在无线传输 技术已经远远超出了广播通信的范围,应用日益广泛,如无线电导航,无线电定位等 许多领域,还有人进行无线电力传输。无线传输在生活中的应用也日益广泛,车辆监 控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数

2、据采集系 统、水文气象监控、机器人控制、无线遥控门、数字音频、数字图像传送等生活各个 方面1。 单片机以其高可靠性、高性价比,在工业控制系统、数据采集系统、智能化仪器 仪表、办公自动化等诸多领域得到广泛的应用。在一些特殊的应用场合中,单片机之间 的远程通信不能采用有线的数据传输,例如采用有线的串、并行总线、I2C 总线、CAN 总线等,而是需要无线数据传输。目前市场上出现了多种无线数据传输模块,如 nRF2401、nRF905、PTR4000 等。无线数据收发模块的性能优异,其显着的特点是所需 外围组件少,因而设计非常方便。模块在内部集成了高频发射、高频接受、PLL 合成、 FSK 调制/解调

3、、参数放大、功率放大、频道切换等功能,是目前集成度较高的无线数据 传输产品2。无线传输系统主要以 STC89C51 单片机为控制处理核心,由它完成对数据 的存储以及控制数据的无线传输。STC89C51 单片机是一种低功耗、低电压、高性能的 8 位单片机,片内带有一个 8KB 的可编程、可擦除、只读存储器3。无线收发模块 nRF2401 性能优异,传输稳定,在业界居领先水平,它的显着特点是所需外围组件少, 因而设计非常方便。 应用于单片机程序开发的语言有机器语言、汇编语言和高级语言。汇编语言和机 器语言一样,都脱离不开具体的机器,因此这两种语言均为“面向机器”的语言。高 级语言都是一些参照数学语

4、言而设计的近似于人们日常用语的语言。C 语言是高级语言 的一种,它不仅直观、易学、易懂,而且通用性强,易于移植到不同类型的机器中4。 和汇编语言相比,C 语言有很多优势,ANSI 标准的 C 语言是一种非常方便并获得广泛 应用,在绝大部分系统中都能够很容易得到的语言,如果需要,现有的程序还可以很 快的移植到其它处理器上。为了适应 C 语言广泛应用的形势发展,掌握运用 KEIL 编译 器开发单片机程序设计的思想和方法是极其必要的。KEIL C51 编译器是一个针对 C51 系列 MCU 的基于 ANSI C 标准的 C 编译器,生成可执行代码快速、紧凑,在运行效率 上可以和汇编程序相媲美 34

5、。 1.21.2 课题研究的内容与组成课题研究的内容与组成 本题目是设计声音导引系统中的无线传输模块。利用无线传输模块设计声音导引 系统中导引信息的发送和接收电路。利用 STC89C51 单片机对无线模块进行控制,实现 声音信号的传输,进而控制小车的运动。在本文中,主要说明了单片机和无线数据收 发模块 nRF2401 的组合,形成单片机的无线数据传输系统,与移动小车进行无线数据传 输。包括:如何针对系统的需求选择合适的无线数据传输模块器件,如何根据选择的器 件设计外围电路和单片机的接口电路,如何编写控制无线数据传输器件进行数据传输的 单片机程序。 1.31.3 本章小结本章小结 本章简单介绍了

6、课题研究的目的和意义,以及介绍了本次课题的主要内容和组成。 通过本章的介绍,很清楚的了解到,无线传输的现状,以及无线传输的发展前景- 无线你的无限。下一章将对无线传输系统总体分析和论证。 2 2 短距离无线数据传输系统分析设计短距离无线数据传输系统分析设计 在声音导引系统中无线传输模块的关键器件是主控单片机和无线收发芯片。无线 收发芯片的种类和数量比较多,如何在设计中选择所需要的芯片非常关键。我们可根 据以下标准来选择芯片或模块。发送和接收电路应具有低功耗的工作模式,这样在无 线模块暂停工作时可以尽可能的节能。当然数据传输的编码方式,外围组件数量,发 射功率,大小尺寸也应在考虑的范围之内。同时

7、在选择单片机时需要考虑到是否满足 相应射频芯片的接口,能够可靠稳定的控制模块进行无线数据通信。 2.12.1 声音导引系统无线传输总体方案声音导引系统无线传输总体方案 根据对课题的分析和设计要求,本课题主要是解决主控模块对移动声源在移动过 程中的定位控制,即涉及到无线传输的设计。无线传输模块分为两个部分,主控制模 块控制发送模块,移动声源上搭载的从控制模块控制接收模块。现确定以下总体工作 方案,如图 2.1 所示。声音接收和处理模块将接受到的声音信号,在主控制模块的控 制下,通过计算分析,产生一个可移动声源离指定位置的误差信号,然后将控制移动 声源的数据通过无线发送模块发送出去。同时无线接收模

8、块迅速接收到数据,并将数 据传输给移动声源,对移动声源进行实时控制5。 声 音 处 理 模 块 主 控 制 模 块 移 动 声 源 模 块 从 控 制 模 块 无 线 接 收 模 块 无 线 发 送 模 块 图 2.1 短距离无线传输示意图 2.22.2 控制模块的选择方案和论证控制模块的选择方案和论证 对于控制系统的选择应在满足系统要求的基础上选择可靠性高,性价比高的,易 于上手控制的芯片。现有以下方案可供选择: 方案一:采用高性能嵌入式系统,比如 ARM。ARM 技术具有性能高、成本低和能耗 省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP 和移动式应用 等。如果采用此方

9、案,可以很好的解读数据处理和控制功能,但是对 ARM 很少接触, 在短时间内完成困难比较大。 方案二:采用大规模可编程逻辑器件,如 FPGA,CPLD。FPGA(FieldProgrammable Gate Array) ,即现场可编程门阵列,它是 在 PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路 (ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原 有可编程器件门电路数有限的缺点。但 FPGA 一般来说比 ASIC(专用集成芯片)的速度 要慢,无法完成复杂的设计,而且消耗更多的电能。本题属于控制类,不适合采用此 方案。 方案三

10、:采用两片高性能单片机来实现,单片机是一种集成在电路芯片,是采用 超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、只读存 储器 ROM、多种 I/O 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、 脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小 而完善的计算机系统。因曾经对 51 系列单片机使用接触过,对其有一定得实践过程, 在此选用 STC89C51 单片机。一片用来处理音频信号接收和无线传输芯片的发送,同时 控制车载单片机,担当主控单片机。另一块作为从控单片机,用来控制小车运动和无 线传输芯片的接收6。 综上所

11、述,考虑到方案的可实行性和性价比,拟采用方案三作为主控系统,选用 STC89C51 单片机,其可实现高速运算,存储空间大,价格低廉,性价比极高。 2.32.3 无线传输模块的选择方案和论证无线传输模块的选择方案和论证 现在市面上有很多短距离无线传输模块,在此要通过具体的要求选用适宜的模块, 应注意低功耗处理和力求高性价比等细节。通过选用合适的无线传输模块并配合外围 电路即可实现声音导引系统中的无线传输模块5。但进行无线传输也有很多方案可供 选择,有比较传统的无线传输模式,也有最近几年刚刚发展的无线传输模式。无线传 输的信号千差万别,各个模块包含的具体器件也不一而,但其基本模块图都是相似的。 方

12、案一:采用红外线技术通信,红外通信器件易得,价格低廉,基本上红外线跟 蓝牙同样都是无线传输,但是使用的频带不同。红外线的原理就是利用可视红光光谱 之外的不可视光,就因为红外线也是光的一种,所以它也同样具有光的特性,它无法穿 越不透光的物体。使用者并不需要使用执照即可以使用红外线。例如,低速红外线 (Slow IR)应用在电视遥控器上己有相当长的一段时间了,其它像是录像机、音响等 遥控器也是。电视遥控器将特定的讯号编码,然后透过红外线通讯技术将编码送出, 而设置在电视上的红外线接收器收到编码之后,将其进行译码而得到原来的讯号。例 如,电视端解得的讯号为加大音量,则译码后即进行加大音量的动作。低速

13、红外线是 指其传输速率在每秒 115.2Kbits 者而言,它适用于传送简短的讯息、文字或是档案。 有低速红外线也有高速红外线(Fast IR) ,它是指传输速率在每秒 1 或是 4Mbits 者而 言,其它更高传输速率则仍在发展中。对于网络解决方案而言,高速红外线可以说是 其基础,包括档案传输、局域网络连结甚至是多媒体传输。 但因其无法穿透墙壁传输,这也构成其缺点之一。另一方面,红外线也是一种低 成本的无线传输形式。视线红外线以射线般的直线形态传输数据,因为其运动是以直 线前进,如果传输的路途中没有任何的障碍物,则数据的传输可以说相当快速且具有 效率的,因为红外线也是光的一种,所以它前进的速

14、度为光速。但是就像太阳光一样, 红外线不能穿透墙壁或是大型物体,所以,在数据收发的两端必须相互对准(即可以 看得见对方)才能进行通讯,这对行动通讯可能常常移动位置的情形而言,是非常不 利的,而且容易受到下雨、下雪或是雾气的干扰。但必须直线收发是其致命弱点7。 方案二:采用无线蓝牙传输。蓝牙是一种支持设备短距离通信(一般 10m 内)的 无线电技术,是为替代电缆而开发出来的。能在包括移动电话、PDA、无线耳机、笔记 本电脑、相关外设等众多设备之间进行无线信息交换。利用蓝牙技术,能够有效地简 化移动通信终端设备之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽 道路。蓝牙采用分布式网络结构以

15、及快跳频和短包技术,支持点对点及点对多点通信, 工作在全球通用的 2.4GHz ISM(即工业、科学、医学)频段。其数据速率为 1Mbps。 采用时分双工传输方案实现全双工传输。现在蓝牙已成为短距离无线通信的一种很热 门的技术。该种方案传输性能好,能够实现中长距离的无线传输,不过价格昂贵,集 成度高,所需围电路复杂,用此方案有些大材小用,且性价比低8。 方案三:采用中短距离无线射频模块,如 nRF2401、nRF905 系列的模块,应用及 编程非常简单,传送的效率很高。硬件电路主要涉及到无线传输模块的选择,拟采用 对比,检测的手段,从性价比,传输速率,可靠性等方面进行选择。目前射频无线传 输模

16、块有 nRF2401、nRF905、nRF24L01、RF903 等,通过进一步对比选用 nRF2401 无线 传输模块。nRF2401 具有低功耗的工作模式,且传输速率能达到 1Mbps,很好的满足本 设计的要求。同时通过编程用 51 单片机 I/0 口模拟 SPI,不需要单片机真正的串口介 入,只需要 51 单片机 I/O 口就可以。在目前较为流行的无线收发芯片中,无论是从使 用的方便性、传输速度还是输出功率等各个方面,nRF401 均不失为一种较为理想的无 线数据传输芯片。Nordic 公司的 nRF2401 为无线收发一体芯片,和蓝牙一样,同样工作 在 2.4-2.5GHz 的 ISM

17、 波段。nRF2401 外围组件仅 10 个左右,无需变容管等昂贵的组件, 只需要便宜且易于获得的 16MHz 晶体,收发天线合一。并且综合功耗较小,发射功率较 高。nRF2401 的单价低于 3 美元,而且便于开发,产品上市时间长,应用广泛,包括无线鼠 标、无线键盘、无线操纵杆、无缝接入、无线数据传输、汽车应用等。此方案相对于 蓝牙传输电路简单,价格低廉,相对性价比高,完全可以满足本系统要求69。 综上所述,选择方案三采用无线收发模块 nRF2401 传输,其具有高可靠性,传输 速度快,相比其它方案更具低功耗,性价比高,且容易上手。 2.42.4 无线传输系统软件设计语言方案无线传输系统软件

18、设计语言方案 方案一:采用汇编语言,汇编语言比机器语言易于读写、调试和修改,同时具有 机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言 依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间 移植。 方案二:采用 C 语言,它既具有高级语言的特点,又具有汇编语言的特点。它可 以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写 不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上, 而且各类科研都需要用到 C 语言,具体应用比如单片机以及嵌入式系统开发。由于 C 语言允许直接访问物理地址,可以直接对硬件进行

19、操作,因此能够像汇编语言一样对 位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。 此外, C 语言生成目标代码质量高,程序执行效率高具有很强的通用性,C 语言具有强 大的绘图能力,可移植性好,并具备很强的数据处理能力,因此编写系统软件简洁, 且程序设计自由度大,相对汇编语言更能明白易懂6。 综上所述,选用方案二,用 C 语言进行系统的软件设计。 2.52.5 本章小结本章小结 本章介绍了对本次课题无线传输模块各个器件以及软件程序应用的选择,通过论 证各种方案的利弊和操作的简便性以及各方案的性价比,选择了以 STC89C51 单片机为 控制芯片,nRF2401 为无线

20、传输模块的设计方案,以 C 语言编写程序。下一章我们将要 在在方案确定的基础上对硬件电路进行设计。 3 3 基于基于 NRF2401NRF2401 无线传输硬件电路模块设计无线传输硬件电路模块设计 硬件电路连接实现单片机与 nRF2401A 芯片的接口连接。发送端与接收端硬件连接 几乎一样,具有通用性,可以实现半双工通信。STC89C51 单片机没有 SPI 接口,但可 以利用 I/O 口模拟 SPI 口,继而与 nRF2401A 相连。由于 STC89C51 单片机的供电电压 是 5V,而 nRF2401A 的供电范围为 1.93.6V,为了使芯片正常工作,需要进行电平转 换和分压处理。 3

21、.13.1 电压转换电路模块设计电压转换电路模块设计 由于 nRF2401 的供电电压范围为 1936V,超过 3.6V 将会烧毁模块。而 STC89C51 单片机的供电电压是 5 V,为了使芯片正常工作,需要进行电平转换。单电 源供电时,采用 LM1117T 芯片进行 5 v3.3 V 电平转换。LM1117T 是一个低压差电压 调节器系列。其压差在 1.2V 输出,负载电流为 800mA 时为 1.2V。它与国家半导体的工 业标准器件 LM317 有相同的管脚排列。LM1117T 有 5 个固定电压输出 (1.8V、2.5V、2.85V、3.3V 和 5V)的型号。LM1117T 提供电流

22、限制和热保护。电路包 含 1 个齐纳调节的带隙参考电压以确保输出电压的精度在1%以内10。 电路图如图 3.1 所示。输入电压经过 LM1117T 芯片转换,电压由单片机输出的 5V 电压变为 3.3V 电压,输出端是一个 10uF 的钽电容,用来改善瞬态响应和稳定性。满 足 nRF2401A 芯片的电压要求。 图 3.1 电源电压转换原理图 3.23.2 无线传输模块无线传输模块 nRF2401nRF2401 接口电路图设计接口电路图设计 nRF2401A 是单片射频收发芯片,工作于 2.42.5GHz ISM 频段,芯片内置频率合 成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和

23、通信频道可通过程 序进行配置。芯片能耗非常低,以-5dBm 的功率发射时,工作电流只有 10.5mA,接收 时工作电流只有 18mA,多种低功率工作模式满足设计的要求,并且在做系统节能的设 计时更加方便。 3.2.1 nRF2401 芯片结构 nRF2401 内置地址解码器、先入先出堆栈区、解调处理器、时钟处理器、GFSK 滤 波器、低噪声放大器、频率合成器,功率放大器等功能模块,需要很少的外围组件, 因此使用起来方便。nRF2401 的功能模块如图 3.2 所示。 图 3.2 nRF2401A 功能模块图 3.2.2 nRF2401 引脚说明 nRF2401A 引脚功能如表 3.1 所示,通

24、过对引脚功能的了解和掌握,确定器件所能 执行的任务,并能很好的简化硬件设计和软件设计程序的编写。 nRF2401 最高工作速率 1Mbps,高效 GFSK 调制,抗干扰能力强。125 频道,满足 多点通信和跳频通信需要。其内置硬件 CRC 检错和点对多点通信地址控制,能更好的 检测数据和防止误码率。此外在待机模式下状态仅为 1uA ,能够很好的节耗。内置专 门稳压电路,使用各种电源包括 DC/DC 开关电源均有很好的通信效果。nRF2401 配置 外置天线,空旷地传输距离可达 50-100 米,具有更远的有效距离。与 51 系列单片机 P0 口连接时候,需要加 10K 的上拉电阻,否则容易烧毁

25、模块。 表 3.1 nRF2401A 引脚功能表 引脚名称引脚功能描述 1CE 数字输入使 NRF2401 工作于接收或发送状态 2DR2 数字输出频道 2 接收数据准备好 3CLK2 数字 I/O频道 2 接收数据时钟输入/输出 4DOUT2 数字输出频道 2 接收数据 5CS 数字输入配置模式的片选端 6DR1 数字输出频道 1 接收数据准备好 7CLK1 数字输 I/O频道 1 接收数据时钟输入/输出 8DATA 数字输 I/O频道 2 接收/发送数据端 9DVDD 电源电源的正数字输出 11、12XC1、 XC2模拟输出、输 入 晶振 1、晶振 2 13VDD_PA 电源输出给功率放大

26、器提供 1.8V 的电压 14、15ANT1、ANT2天线天线接口 1、天线接口 2 16VSS_PA 电源电源地 17、21、24 VDD 电源电源正端 19IREF 模拟输入模数转换的外部参考电压 10、18、20、22 VSS 电源电源地 23PWR_UP 数字输入芯片激活端 3.2.3 nRF2401 无线传输模块接口 nRF2401 无线传输模块使用 Nordic 公司的 nRF2401A 芯片开发而成。外置天线,具 有更小的尺寸,长度为 29mm,宽度为 16mm,电路图如图 3.3 所示。单片机通过 PWM_UP,CE, CS 三端设置 nRF2401 的工作模式。配置模式时单片

27、机通过 CLKI 和 DATA 端向 nRF2401 发送配置字,发送数据时通过 CLK1 和 DATA 端向 nRF2401 发送地址和数 据,接收数据时通过 CLK1 和 DATA 端从 nRF2401 读取数据,DR1 是 nRF2401 通知单片机 已经接收到数据并且可以读取的状态信号。CLK2、DOUT 和 DR2 端为通道二保留使用, nRF2401 可以同时接收两路信号。 图 3.3 nRF2401 模块电路图 其中无线模块为标准 DIP 插针,共 12 脚,排阵间距为 100mil,在电路设计中只 需要留出 12 针插槽,就可以很方便的插拔无线模块。如图 3.4 所示:11、1

28、2 脚为接地 脚,需要和母板的逻辑地连接起来,2 脚为接电压端,需要和电压转换模块输出脚相连。 除电源 VCC 和接地端,其余脚都可以直接和普通的 5V 单片机 I/O 口直接相连,无需电 平转换212。 图 3.4 无线模块接口电路 3.33.3 单片机控制模块电路设计单片机控制模块电路设计 单片机工作的最小系统如图 3.5 所示,包括电源线、地线,晶振的设计。能满足 一般电路功能的实现要求11。 图 3.5 单片机控制模块电路 主控芯片选用的是 STC89C51 单片机,STC89C51 是一款高性能、低功耗的 8Byte 微 控制器,与工业标准的 MCS-51 指令集和输出管脚相兼容的单

29、片机。具有丰富强大的外 部接口性能,32 可编程 I/O 线,可编程串行通道,片内振荡器和时钟电路。其内部结 构如图 3.6 所示。 图 3.6 STC89C51 单片机内部结构 STC89C51 单片机内部主要包括累加器 ACC(有时也简称为 A)、程序状态字 PSW、 地址指示器 DPTR、只读存储器 ROM、随机存取存储器 RAM、寄存器、并行 I/O 接口 P0P3、定时器/计数器以及定时控制逻辑电路等 6。其管脚图如图 3.7 所示。 图 3.7 STC89C51 单片机管脚图 STC89C51 单片机 I/O 管脚功能介绍: P0 口:P0 口为一个 8 位漏级开路双向 I/O 口

30、,每脚可吸收 8TTL 门电流。当 P0 口 的管脚第一次写 1 时,被定义为高阻输入。P0 口与 nRF2401 接口连接时候,需要加 10K 的上拉电阻,否则容易烧毁模块。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为 低电平时,将输出电流,这是由于内部上拉的缘故。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因 此作为

31、输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电 流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于 外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故11。 无线传输控制系统硬件电路图如图 3.8 所示,为防止 STC89C51 的 I/O 口电流过大 烧坏 nRF2401 模块,在单片机与接口之间串联 2K 欧姆电阻分压,能满足一般电路功能 的实现要求,如要实现其他功能,可在电路中扩展。 图 3.8 单片机控制系统电路图 3.

32、43.4 本章小结本章小结 本章主要针对电路模块设计部分进行了具体的细化分析。分别从单片机的主模块 设计、无线模块设计等方面详细的对电路部分进行学习和对比,使得我们能够更加清 晰的了解单片机控制无线传输模块的电路和硬件部分的合理设计也要我们引起注意。 通过本章的介绍,可以了解了整个系统的硬件设计方案以及实现原理。下一章将具体 对无线传输系统软件各部分的设计。 4 4 无线传输系统的软件设计无线传输系统的软件设计 系统软件的设计是一个项目工程的精髓,好的程序设计能够很好的弥补硬件的不 足,并能使系统的功能得到拓展。在本系统中,我采用的是分析,画流程图再编程序 的方法进行设计。流程图是程序的要点,

33、能够很好的指导程序的编写,并能提高编写 程序的效率。 4.14.1 利用利用 STC89C51STC89C51 的的 I/OI/O 口模拟口模拟 SPISPI 口口 SPI(Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行 外设接口,它可以使 MCU 与各种外围设备以串行方式进行通信以交换信息。SPI 接口主 要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器 之间。外围设置 FLASH RAM、网络控制器、LCD 显示驱动器、A/D 转换器和 MCU 等。SPI 总线系统可直接与各个厂家生产的多种标准外围

34、器件直接接口,该接口一般使用 4 条 线:串行时钟线(SCK) 、主机输入/从机输出数据线 MISO、主机输出/从机输入数据线 MOSI 和低电平有效的从机选择线 SS(有的 SPI 接口芯片带有中断信号线 INT 或 INT、 有的 SPI 接口芯片没有主机输出/从机输入数据线 MOSI) 。由于 SPI 系统总线一共只需 34 位数据线和控制即可实现与具有 SPI 总线接口功能的各种 I/O 器件进行接口,而 扩展并行总线则需要 8 根数据线、816 位地址线、23 位控制线,因此,采用 SPI 总线接口可以简化电路设计,节省很多常规电路中的接口器件和 I/O 口线,提高设计 的可靠性。

35、由此可见,在 MCS51 系列等不具有 SPI 接口的单片机组成的智能仪器和工业测控 系统中,当传输速度要求不是太高时,使用 SPI 总线可以增加应用系统接口器件的种 类,提高应用系统的性能15。 4.1.1 SPI 总线的组成 SPI 接口是在 CPU 和外围低速器件之间进行同步串行数据传输,在主器件的移位脉 冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比 I2C 总线要快,速度可达到 10Mbps。SPI 接口内部硬件如图 4.1 所示。SPI 接口是以主从方 式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号: (1) MOSI 主

36、器件数据输出,从器件数据输入; (2) MISO 主器件数据输入,从器件数据输出; (3) SCLK 时钟信号,由主器件产生; (4) SS从器件使能信号,由主器件控制。 图 4.1 SPI 接口内部硬件图 三线 SPI 组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI 总线可以实现多个 SPI 设备互相连接。提供 SPI 串行时钟的 SPI 设备为 SPI 主机或主 设备(Master),其它设备为 SPI 从机或从设备(Slave)。利用 SPI 总线可在软件的控制 下构成各种系统。如 1 个主 MCU 和几个从 MCU、几个从 MCU 相互连接构成多主机

37、系统 (分布式系统) 、1 个主 MCU 和 1 个或几个从 I/O 设备所构成的各种系统等。在大多数 应用场合,可使用 1 个 MCU 作为控机来控制数据,并向 1 个或几个从外围器件传送该 数据。从器件只有在主机发命令时才能接收或发送数据。SPI 总线接口系统的典型结构 如图 4.2 所示15。 SCK MOSI MISO MCU(主) I/O I/O I/O I/O 外围器件 1外围器件 2外围器件 n SCK MOSI MISO MCU(从) CS 图 4.2 SPI 总线接口系统的典型结构 4.1.2 SPI 接口的原理和应用 当一个主控机通过 SPI 与几种不同的串行 I/O 芯片

38、相连时,必须使用每片的允许 控制端,这可通过 MCU 的 I/O 端口输出线来实现。但应特别注意这些串行 I/O 芯片的 输入输出特性:首先是输入芯片的串行数据输出是否有三态控制端。平时未选中芯片 时,输出端应处于高阻态。若没有三态控制端,则应外加三态门。否则 MCU 的 MISO 端 只能连接 1 个输入芯片。其次是输出芯片的串行数据输入是否有允许控制端。因此只 有在此芯片允许时,SCK 脉冲才把串行数据移入该芯片。在禁止时,SCK 对芯片无影响。 若没有允许控制端,则应在外围用门电路对 SCK 进行控制,然后再加到芯片的时钟输 入端。四线 SPI 模式用附加控制线,来允许从机数据的发送和接

39、收,它由主机控制。 SPI 接口是在 CPU 和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下, 数据按位传输,高位在前,低位在后,为全双工通信,其工作原理图如图 4.3 所示。 SCKMOSIMISO 67014523 10763254 主机 从机 图 4.3 SPI 工作原理图 如果用通用 I/O 口模拟 SPI 总线,必须要有一个输出口(SDO),一个输入口(SDI), 另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实 现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。SPI 不需要固定的 波特率,因为它是有时钟的协议。在多个从器件的系统中

40、,每个从器件需要独立的使能 信号,硬件上比 I2C 系统要稍微复杂一些。SPI 接口在内部硬件实际上是两个简单的移 位寄存器,传输的数据为 8 位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高 位在前,低位在后。SPI 接口工作时序如图 4.4 所示,在 SCLK 的下降沿上数据改变,同时 一位数据被存入移位寄存器15。 图 4.4 SPI 接口工作时序图 4.1.3 利用 I/O 口模拟 SPI 使用 STC89C51 单片机的 I/O 口来模拟 SPI 的操作原理如图 4.5 所示。 P2.2 2.1 CS P2.4 MOSI 射 频 模 块 89C52 CLK NRF2401P

41、2.5 DATA MISO MCU 单 片 机 图 4.5 SPI 接口连接原理图 I/O 口模拟 SPI 口流程图如 4.6 所示。使用 P2.2、P2.5、P2.4 模拟 SPI 的 CS、DATA、CLK1。对于不同的串行接口外围芯片,它们的时钟时序是不同的。对于在 CLK 的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,将其串行时钟输 出口 CLK 的初始状态设置为 0,而在接收后再置 CLK 为 1。这样,单片机在输出 1 位 CLK 时钟的同时,将 1 位数据通过 STC89C51 单片机的 P2.3 口输出给无线发送模块的 DATA 引脚(模拟 MCU 的 MOSI 线

42、) 。此后再置 CLK 为 0,模拟下 1 位数据的输入输出, 依此循环 8 次,即可完成 1 次单片机通过 SPI 总线向 nRF2401 传输 8 位数据的操作。 此函数功能是模拟 SPI 口写一字节数据13。 NRF_CLK1=0; /时钟初始为 0 for(i=8;i0;i-) if(c else NRF_DATA=0; NRF_CLK1=1;/ 上升沿触发 c=1; NRF_CLK1=0; 同理,无线接收模块在接收到数据时通过 DR1 引脚通知单片机从发送模块中取出 数据。无线接收模块在 CLK 的上升沿输入(接收)数据和在下降沿将接受到的数据输 出给 STC89C51 单片机的 P

43、2.3(模拟 MCU 的 MISO 线)1 位数据。此后再置 CLK 为 0,模 拟下 1 位数据的输入输出,依此循环 8 次,即可完成 1 次 nRF2401 通过 SPI 总线向单 片机传输 8 位数据的操作15。 开始 设置时钟信号 CLK1 输出引 脚为低电平 设置 DATA 为 低电平 发送数据左移 1 位,i+ 设置时钟信号 CLK1 输出引 脚为高电平 Y N Y N 发送最高位为 1 设置 DATA 为 高电平 i7 结束 图 4.6 I/O 模拟 SPI 接口传输数据流程 4.24.2 无线传输模块软件设计及实现无线传输模块软件设计及实现 4.2.1 nRF2401 的工作模

44、式转换 nRF2401 有工作模式有四种:收发模式、配置模式、空闲模式和关机模式。 nRF2401 的工作模式由 PWR_UP 、CE 和 CS 三个引脚决定,如表 4.1 所示。PWR_UP 决定 是否处在关机模式, CE 决定是否允许收发信号,分别与单片机的 P2.0、P2.1 连接。掌 握其工作模式配置是编程序时各模式之间的切换的前提。nRF2401A 的收发模式有 ShockBurstTM 收发模式和直接收发模式两种,收发模式由器件配置字决定。根据本设 计的要求和综合考虑,本系统采用 ShockBurstTM 收发模式。 使 nRF2401 工作于 ShockBurstTM 收发模式,

45、系统的程序编制会简单,并且稳定性 也会更高。在 Shockburst TM 模式下,nRF2401 使用片内的先入先出堆栈区,数据低速 从微控制器送入,以高速(1Mbps 或者 250kbps)发射数据,这样可以尽可能的节能, 低耗,并且使用 STC89C51 也能实现高速的发射速率。而且,与射频协议相关的所有高 速信号处理都在片内进行,这种做法有三大好处:节能;低的系统费用(低速微处理器 也能进行高速射频发射);数据在空中停留时间短,抗干扰性高。nRF2401A 的 ShockBurstTM 技术同时也减小了整个系统的平均工作电流。单片机对 nRf2401 的编程 包括对 nRF2401 进

46、行配置、发送数据、接收数据等子程序。 表 4.1 nRF2401A 工作模式设置 工作模式 PWR_UP CECS 收发模式 110 配置模式 10 1 空闲模式 100 关机模式 0 对 nRF2401 工作模式的转换是通过对 PWR_UP 、CE 和 CS 的设定来完成的1216。 例如使 nRF2401 切换到发送模式,程序如下:首先使三个引脚分别为 1、0、1 使器件 工作在配置模式,然后延时,再使其配置为发送模式。 NRF_PWR=1; NRF_CE=0; NRF_CS=1; / 101 使器件切换到配置模式 NRF_Delay(); NRF_DATA=0;/ RXEN=0: 发送模

47、式 NRF_CLK1=1; NRF_CLK1=0; NRF_CE=1; NRF_CS=0; NRF_Delay(); 4.2.2 Shockburst TM 模式下数据帧格式 nRF2401 内置 CRC 纠检错硬件电路和协议,发射数据时自动加上处理字头和 CRC 码, 接收数据时自动把字头和 CRC 码移去。每个芯片可通过软件设置最多 40 bit 地址,而 且只有收到与本机地址一致时才会接收数据。nRF2401 在突发传递模式下的帧格式见图 4.7 所示。 REAMBLE ADDRESSPAYLOADCRC 图 4.7 nRF2401 的帧格式 REAMBLE 为数据包头,可设为 4 bi

48、t 或 8 bit。它的值与 ADDRESS 第 1 位有关。 当 ADDRESS 第 1 位为 0 时,包头取值为,反之则为。一帧数据从 ADDRESS 到 CRC 最 多包含 256 bit。ADDRESS 为接收方通道硬件地址段,可设定为 840 bit,只有符合 本机硬件地址的数据帧才会被接收。CRC 为数据校验段,可设定 8 bit 或 16 bit 校 验位。PLYLOAD 段为待发送数据段, 长度为帧长度减去 ADDRESS 段和 CRC 段的长度。 发送数据时,控制器将数据写入 nRF2401,控制其将数据按帧格式打包无线发送;接收 数据时,nRF2401 一旦检测到符合本机硬

49、件地址的数据帧, 便将数据帧解包,DR 信 号置 1 请求控制器读取数据12。 4.2.3 nRF2401 的配置模式流程 nRF2401 上电以后首先必须通过 STC89C51 对其进行配置,单片机首先将 nRF2401 设为配置模式,nRF2401 的所有配置工作都是通过 CS、CLK1 和 DATA 三个引脚完成,把 其配置为 ShockBurstTM 收发模式需要 15 字节的配置字。nRF2401 配置字各个位如表 5.1 所示: 表 4.2 nRF2401 配置字 位位数名字 功能 143:12024TEST 保留 119:112 8DATA2_W 接收频道 2 有效数据的长度 1

50、11:104 8DATA1_W 接收频道 1 有效数据的长度 103:64 40ADDR2 接收频道 2 的地址,最高为 5 字节 63:24 40ADDR1 接收频道 1 的地址,最高为 5 字节 23:186ADDR_W 接收频道地址位数 171CRC_L 8 或 16 位 CRC Shockburst TM 配置 161CRC_EN 使能 CRC 检验 151RX2_EN 使能第二频道 141CM 通信方式设置 131RFDR_SB 发送数据速率 12:103XO_F 晶振频率 9:82RF_PWR 发射输出源 7:17RF_CH 频道设置 常用器件配 置 01RXEN 接收或发送操作

51、(1) ShockBurstTM 的配置 ShockBurstTM 的配置字使 nRF2401 能够处理射频协议,在配置完成后,在 nRF2401 工作的过程中,只需改变其最低一个字节中的内容,就可以实现接收模式和发 送模式之间切换13。ShockBurstTM 的配置字分为以下四个部分: 数据宽度:声明射频数据包中数据占用的位数。这使得 nRF2401 能够区分接 收数据包中的数据和 CRC 校验码,下面程序是对频道 1 单个数据包的大小小 于 32 字节; #define DATA1_W 0 x20 地址宽度:声明射频数据包中地址占用的位数。这使得 nRF2401 能够区分地 址和数据;

52、#define ADDR_W0 x10 地址:接收数据的地址,对信道 1 的地址的配置如下; #define ADDR1_4 0 x00 #define ADDR1_3 0 xcc #define ADDR1_2 0 xcc #define ADDR1_1 0 xcc #define ADDR1_0 0 xcc CRC:使 nRF2401 能够生成 CRC 校验码和解码。当使用 nRF2401 片内的 CRC 技 术时,首先在配置字中 CRC 校验被使能,对CRC_EN 设置为 0 x1 即使能。对 CRC_L 设置为 0 x1 即 16 位校验。发送和接收应使用相同的协议。 #define

53、CRC_EN 0 x1 #define CRC_L 0 x1 ShockBurstTM 配置时序图如 4.8 所示。在 CLK1 的上升沿开始最高位(MSB)移入 nRF2401 模块,全部配置 15 字节配置数据均移入后,由单片机将 CS、CE 设为工作模式, 此时 nRF2401 将刷新内部配置并使得新配置立即生效。即新的配置字在 CS 的下降沿后 开始生效。上电后第一次配置时必须将 15 字节配置字全部移入。在配置模式下,要保 证 PWR_UP 引脚为高电平,CE 引脚为低电平。在掉电和待机模式工作后,配置内容仍然 生效。配置数据只有当电源撤销后才会丢失12。 图 4.8 nRF2401

54、A 配置模式时序图 (2)器件的配置 对器件的配置时保证器件按设计思想进行的基本要求,对 nRF2401 基本工作方式 的配置如下面函数所示。传输速率有两种选择 250Kbps 和 1Mbps,250Kbps 比 1Mbps 传 输的远,本设计为了使模块能够实时快速而且不影响传输质量,在多次试验后选择了 1Mbps。信号发射功率选择如表 4.3 所示,选择为 0dBm。晶振频率配置表如图 4.4 所示, 选择为 16MHz2。 #define RX2_EN0 x0 /双频道功能 0:禁用 1:启用 #define CM 0 x1 /ShockBurstTM 模式 #define RFDR_SB

55、0 x1 / 1Mbps #define XO_F0 x3 /晶振频率 16MHz #define RF_PWR 0 x3 /发射功率 0dbm #define RF_CH0 x20/ 信道频率 #define RXEN0 x1 / 接收使能 表 4.3 信号发射功率选择 D9D8 功率dBm 0 0 -20 0 1 -10 1 0 -5 1 1 0 表 4.4 晶振频率配置 D12D11D10 晶振频率MHz 0004 0018 01012 01 1 16 10020 4.2.4 nRF2401 发送模式流程 图 4.9 为发送端时序,图 4.10 为发送模块发射流程图, ShockBurs

56、tTM 发射流程 如下:需要用到的接口引脚为 CE、CLK1、DATA。 (1)单片机首先通过配置模式将 nRF2401 设为发射模式。 (2)单片机设定 CE=1,nRF2401 进入工作模式。 (3)单片机将接收节点的地址和数据顺序通过 CLK1、DATA 送入 nRF2401。 (4)CE=0,nRF2401 启动内部处理并将数据发送出去。 (5)nRF2401A 进行 ShockBurstTM 发射,依次: 给射频前端供电; 射频数据打包(加字头、CRC 校验码); 高速发射数据包; (6)全部数据发送完后,nRF2401 进入空闲模式,等待下一数据的发送,此时为 低功耗。 图 4.9

57、 nRF2401 发送模式时序图 Y 配置 nRF2401 数据打包 (地址码+数据) 置 CE 为高 串行装载数据 CE 置低 nRF2401 自动加数据 头,并以 1 Mbps 的 速率向外发送数据 发送完毕 N 结束 开始 进入空闲模式 图 4.10 nRF2401 发送模式流程图 nRF2401A 空闲模式是为了减小平均工作电流而设计,其最大的优点是,实现节能 的同时,缩短芯片的起动时间,能很好的满足低功耗的要求。在空闲模式下,部分片 内晶振仍在工作,此时的工作电流跟外部晶振的频率有关,如外部晶振为 4MHz 时工作 电流为 12u A,外部晶振为 16MHz 时工作电流为 32uA。

58、在空闲模式下,配置字的内容 保持在 nRF2401A 片内。 4.2.5 nRF2401 接收模式流程 接收模块需要与发射模块地址一致才会接收数据,在接收数据时,自动把字头和 CRC 校验码移去,DR1 引脚是数据接收完毕信号端,当有数据需要接收时 DR1 为高,单 片机读取数据后 DR1 变低。单片机中断时低电平触发,而 nRF2401 的中断信号 DR1 是 高电平,因此在 DR1 端加了反相器。 nRF2401A 接收时序图如图 4.11 所示,4.12 为接收流程图。ShockBurstTM 接收流 程:需要的接口引脚 CE、DR1、CLK1 和 DATA。 (1)单片机首先通过配置模

59、式将 nRF2401 设为接收模式。 (2)单片机设定 CE=1,200us 后,nRF2401 进入监视状态,等待数据包的到来; (3)当 nRF2401 接收到数据与设置的本机地址一致且 CRC 校验正确时,通过 DR1 输出高电平(DR1 可由单片机查询或触发单片机中断) 。nRF2401A 自动把字 头、地址和 CRC 校验位移去; (4)单片机通过 CLK1、DATA 读取接收到的数据当单片机读出最后 1 字数据后, DR1 变为低,此时,如果 CE 为高,则等待下一个数据包,如果 CE 为低,开 始其它工作流程12。 图 4.11 nRF2401 接收模式时序图 Y Y Y N Y

60、 N 配置 nRF2401 nRF2401 接收 到数据 nRF2401 判断 地址是否正确 DR1 被 nRF2401 置高, 引发单片机中断 单片机从 nRF2401 的 FIFO 中串行接收数据, FIFO 读空后 DR1 变低 接收数据 CRC 正确? N 开始 声源到达 终点? 结束 N 图 4.12 nRF2401A 接收模式流程图 4.34.3 本章小结本章小结 这一章我们主要介绍了实现各个模块的程序流程,可以得知,通过合理的流程设 计和分析,我们可以很清晰明了的将所要解决的问题快速实现。而且我们可以从这个 问题总结出,要解决问题可以先对它的框架做出一个总体设计,然后根据一个合理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论