毕业设计(论文)-声音导引系统的无线传输设计.doc

上传人:爱问知识人 文档编号:3950396 上传时间:2019-10-11 格式:DOC 页数:46 大小:1.78MB
返回 下载 相关 举报
毕业设计(论文)-声音导引系统的无线传输设计.doc_第1页
第1页 / 共46页
毕业设计(论文)-声音导引系统的无线传输设计.doc_第2页
第2页 / 共46页
毕业设计(论文)-声音导引系统的无线传输设计.doc_第3页
第3页 / 共46页
毕业设计(论文)-声音导引系统的无线传输设计.doc_第4页
第4页 / 共46页
毕业设计(论文)-声音导引系统的无线传输设计.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《毕业设计(论文)-声音导引系统的无线传输设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-声音导引系统的无线传输设计.doc(46页珍藏版)》请在三一文库上搜索。

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

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

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

4、此这两种语言均为“面向机器”的语言。高 级语言都是一些参照数学语言而设计的近似于人们日常用语的语言。C 语言是高级语言 的一种,它不仅直观、易学、易懂,而且通用性强,易于移植到不同类型的机器中4。 和汇编语言相比,C 语言有很多优势,ANSI 标准的 C 语言是一种非常方便并获得广泛 中北大学 2010 届毕业设计说明书 第 2 页 共 46 页 应用,在绝大部分系统中都能够很容易得到的语言,如果需要,现有的程序还可以很 快的移植到其它处理器上。为了适应 C 语言广泛应用的形势发展,掌握运用 KEIL 编译 器开发单片机程序设计的思想和方法是极其必要的。KEIL C51 编译器是一个针对 C5

5、1 系列 MCU 的基于 ANSI C 标准的 C 编译器,生成可执行代码快速、紧凑,在运行效率 上可以和汇编程序相媲美 34 。 1.21.2 课题研究的内容与组成课题研究的内容与组成 本题目是设计声音导引系统中的无线传输模块。利用无线传输模块设计声音导引 系统中导引信息的发送和接收电路。利用 STC89C51 单片机对无线模块进行控制,实现 声音信号的传输,进而控制小车的运动。在本文中,主要说明了单片机和无线数据收 发模块 nRF2401 的组合,形成单片机的无线数据传输系统,与移动小车进行无线数据传 输。包括:如何针对系统的需求选择合适的无线数据传输模块器件,如何根据选择的器 件设计外围

6、电路和单片机的接口电路,如何编写控制无线数据传输器件进行数据传输的 单片机程序。 1.31.3 本章小结本章小结 本章简单介绍了课题研究的目的和意义,以及介绍了本次课题的主要内容和组成。 通过本章的介绍,很清楚的了解到,无线传输的现状,以及无线传输的发展前景- 无线你的无限。下一章将对无线传输系统总体分析和论证。 中北大学 2010 届毕业设计说明书 第 3 页 共 46 页 2 2 短距离无线数据传输系统分析设计短距离无线数据传输系统分析设计 在声音导引系统中无线传输模块的关键器件是主控单片机和无线收发芯片。无线 收发芯片的种类和数量比较多,如何在设计中选择所需要的芯片非常关键。我们可根 据

7、以下标准来选择芯片或模块。发送和接收电路应具有低功耗的工作模式,这样在无 线模块暂停工作时可以尽可能的节能。当然数据传输的编码方式,外围组件数量,发 射功率,大小尺寸也应在考虑的范围之内。同时在选择单片机时需要考虑到是否满足 相应射频芯片的接口,能够可靠稳定的控制模块进行无线数据通信。 2.12.1 声音导引系统无线传输总体方案声音导引系统无线传输总体方案 根据对课题的分析和设计要求,本课题主要是解决主控模块对移动声源在移动过 程中的定位控制,即涉及到无线传输的设计。无线传输模块分为两个部分,主控制模 块控制发送模块,移动声源上搭载的从控制模块控制接收模块。现确定以下总体工作 方案,如图 2.

8、1 所示。声音接收和处理模块将接受到的声音信号,在主控制模块的控 制下,通过计算分析,产生一个可移动声源离指定位置的误差信号,然后将控制移动 声源的数据通过无线发送模块发送出去。同时无线接收模块迅速接收到数据,并将数 据传输给移动声源,对移动声源进行实时控制5。 声 音 处 理 模 块 主 控 制 模 块 移 动 声 源 模 块 从 控 制 模 块 无 线 接 收 模 块 无 线 发 送 模 块 图 2.1 短距离无线传输示意图 2.22.2 控制模块的选择方案和论证控制模块的选择方案和论证 对于控制系统的选择应在满足系统要求的基础上选择可靠性高,性价比高的,易 于上手控制的芯片。现有以下方案

9、可供选择: 方案一:采用高性能嵌入式系统,比如 ARM。ARM 技术具有性能高、成本低和能耗 省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP 和移动式应用 中北大学 2010 届毕业设计说明书 第 4 页 共 46 页 等。如果采用此方案,可以很好的解读数据处理和控制功能,但是对 ARM 很少接触, 在短时间内完成困难比较大。 方案二:采用大规模可编程逻辑器件,如 FPGA,CPLD。FPGA(FieldProgrammable Gate Array) ,即现场可编程门阵列,它是 在 PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路 (A

10、SIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原 有可编程器件门电路数有限的缺点。但 FPGA 一般来说比 ASIC(专用集成芯片)的速度 要慢,无法完成复杂的设计,而且消耗更多的电能。本题属于控制类,不适合采用此 方案。 方案三:采用两片高性能单片机来实现,单片机是一种集成在电路芯片,是采用 超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、只读存 储器 ROM、多种 I/O 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、 脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小 而完善的计算机系统

11、。因曾经对 51 系列单片机使用接触过,对其有一定得实践过程, 在此选用 STC89C51 单片机。一片用来处理音频信号接收和无线传输芯片的发送,同时 控制车载单片机,担当主控单片机。另一块作为从控单片机,用来控制小车运动和无 线传输芯片的接收6。 综上所述,考虑到方案的可实行性和性价比,拟采用方案三作为主控系统,选用 STC89C51 单片机,其可实现高速运算,存储空间大,价格低廉,性价比极高。 2.32.3 无线传输模块的选择方案和论证无线传输模块的选择方案和论证 现在市面上有很多短距离无线传输模块,在此要通过具体的要求选用适宜的模块, 应注意低功耗处理和力求高性价比等细节。通过选用合适的

12、无线传输模块并配合外围 电路即可实现声音导引系统中的无线传输模块5。但进行无线传输也有很多方案可供 选择,有比较传统的无线传输模式,也有最近几年刚刚发展的无线传输模式。无线传 输的信号千差万别,各个模块包含的具体器件也不一而,但其基本模块图都是相似的。 方案一:采用红外线技术通信,红外通信器件易得,价格低廉,基本上红外线跟 蓝牙同样都是无线传输,但是使用的频带不同。红外线的原理就是利用可视红光光谱 之外的不可视光,就因为红外线也是光的一种,所以它也同样具有光的特性,它无法穿 中北大学 2010 届毕业设计说明书 第 5 页 共 46 页 越不透光的物体。使用者并不需要使用执照即可以使用红外线。

13、例如,低速红外线 (Slow IR)应用在电视遥控器上己有相当长的一段时间了,其它像是录像机、音响等 遥控器也是。电视遥控器将特定的讯号编码,然后透过红外线通讯技术将编码送出, 而设置在电视上的红外线接收器收到编码之后,将其进行译码而得到原来的讯号。例 如,电视端解得的讯号为加大音量,则译码后即进行加大音量的动作。低速红外线是 指其传输速率在每秒 115.2Kbits 者而言,它适用于传送简短的讯息、文字或是档案。 有低速红外线也有高速红外线(Fast IR) ,它是指传输速率在每秒 1 或是 4Mbits 者而 言,其它更高传输速率则仍在发展中。对于网络解决方案而言,高速红外线可以说是 其基

14、础,包括档案传输、局域网络连结甚至是多媒体传输。 但因其无法穿透墙壁传输,这也构成其缺点之一。另一方面,红外线也是一种低 成本的无线传输形式。视线红外线以射线般的直线形态传输数据,因为其运动是以直 线前进,如果传输的路途中没有任何的障碍物,则数据的传输可以说相当快速且具有 效率的,因为红外线也是光的一种,所以它前进的速度为光速。但是就像太阳光一样, 红外线不能穿透墙壁或是大型物体,所以,在数据收发的两端必须相互对准(即可以 看得见对方)才能进行通讯,这对行动通讯可能常常移动位置的情形而言,是非常不 利的,而且容易受到下雨、下雪或是雾气的干扰。但必须直线收发是其致命弱点7。 方案二:采用无线蓝牙

15、传输。蓝牙是一种支持设备短距离通信(一般 10m 内)的 无线电技术,是为替代电缆而开发出来的。能在包括移动电话、PDA、无线耳机、笔记 本电脑、相关外设等众多设备之间进行无线信息交换。利用蓝牙技术,能够有效地简 化移动通信终端设备之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽 道路。蓝牙采用分布式网络结构以及快跳频和短包技术,支持点对点及点对多点通信, 工作在全球通用的 2.4GHz ISM(即工业、科学、医学)频段。其数据速率为 1Mbps。 采用时分双工传输方案实现全双工传输。现在蓝牙已成为短距离无线通信的一种很热 门的技术。该种方案传输性能好,能够实现中长距离的无线传输,不过

16、价格昂贵,集 成度高,所需围电路复杂,用此方案有些大材小用,且性价比低8。 方案三:采用中短距离无线射频模块,如 nRF2401、nRF905 系列的模块,应用及 编程非常简单,传送的效率很高。硬件电路主要涉及到无线传输模块的选择,拟采用 对比,检测的手段,从性价比,传输速率,可靠性等方面进行选择。目前射频无线传 输模块有 nRF2401、nRF905、nRF24L01、RF903 等,通过进一步对比选用 nRF2401 无线 中北大学 2010 届毕业设计说明书 第 6 页 共 46 页 传输模块。nRF2401 具有低功耗的工作模式,且传输速率能达到 1Mbps,很好的满足本 设计的要求。

17、同时通过编程用 51 单片机 I/0 口模拟 SPI,不需要单片机真正的串口介 入,只需要 51 单片机 I/O 口就可以。在目前较为流行的无线收发芯片中,无论是从使 用的方便性、传输速度还是输出功率等各个方面,nRF401 均不失为一种较为理想的无 线数据传输芯片。Nordic 公司的 nRF2401 为无线收发一体芯片,和蓝牙一样,同样工作 在 2.4-2.5GHz 的 ISM 波段。nRF2401 外围组件仅 10 个左右,无需变容管等昂贵的组件, 只需要便宜且易于获得的 16MHz 晶体,收发天线合一。并且综合功耗较小,发射功率较 高。nRF2401 的单价低于 3 美元,而且便于开发

18、,产品上市时间长,应用广泛,包括无线鼠 标、无线键盘、无线操纵杆、无缝接入、无线数据传输、汽车应用等。此方案相对于 蓝牙传输电路简单,价格低廉,相对性价比高,完全可以满足本系统要求69。 综上所述,选择方案三采用无线收发模块 nRF2401 传输,其具有高可靠性,传输 速度快,相比其它方案更具低功耗,性价比高,且容易上手。 2.42.4 无线传输系统软件设计语言方案无线传输系统软件设计语言方案 方案一:采用汇编语言,汇编语言比机器语言易于读写、调试和修改,同时具有 机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言 依赖于具体的处理器体系结构,不能通用,因此不能直接在不

19、同处理器体系结构之间 移植。 方案二:采用 C 语言,它既具有高级语言的特点,又具有汇编语言的特点。它可 以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写 不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上, 而且各类科研都需要用到 C 语言,具体应用比如单片机以及嵌入式系统开发。由于 C 语言允许直接访问物理地址,可以直接对硬件进行操作,因此能够像汇编语言一样对 位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。 此外, C 语言生成目标代码质量高,程序执行效率高具有很强的通用性,C 语言具有强 大的绘图能力,可移植性

20、好,并具备很强的数据处理能力,因此编写系统软件简洁, 且程序设计自由度大,相对汇编语言更能明白易懂6。 综上所述,选用方案二,用 C 语言进行系统的软件设计。 2.52.5 本章小结本章小结 本章介绍了对本次课题无线传输模块各个器件以及软件程序应用的选择,通过论 中北大学 2010 届毕业设计说明书 第 7 页 共 46 页 证各种方案的利弊和操作的简便性以及各方案的性价比,选择了以 STC89C51 单片机为 控制芯片,nRF2401 为无线传输模块的设计方案,以 C 语言编写程序。下一章我们将要 在在方案确定的基础上对硬件电路进行设计。 3 3 基于基于 NRF2401NRF2401 无线

21、传输硬件电路模块设计无线传输硬件电路模块设计 硬件电路连接实现单片机与 nRF2401A 芯片的接口连接。发送端与接收端硬件连接 几乎一样,具有通用性,可以实现半双工通信。STC89C51 单片机没有 SPI 接口,但可 以利用 I/O 口模拟 SPI 口,继而与 nRF2401A 相连。由于 STC89C51 单片机的供电电压 是 5V,而 nRF2401A 的供电范围为 1.93.6V,为了使芯片正常工作,需要进行电平转 换和分压处理。 3.13.1 电压转换电路模块设计电压转换电路模块设计 由于 nRF2401 的供电电压范围为 1936V,超过 3.6V 将会烧毁模块。而 STC89C

22、51 单片机的供电电压是 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 提供电流限制和热保护。电路包 含 1 个齐纳调节的带隙参考电压以确保输出电压的精度在1%以内10。 电路图如图 3.1 所示。输入电压经过 LM1117T 芯片

23、转换,电压由单片机输出的 5V 电压变为 3.3V 电压,输出端是一个 10uF 的钽电容,用来改善瞬态响应和稳定性。满 足 nRF2401A 芯片的电压要求。 中北大学 2010 届毕业设计说明书 第 8 页 共 46 页 图 3.1 电源电压转换原理图 3.23.2 无线传输模块无线传输模块 nRF2401nRF2401 接口电路图设计接口电路图设计 nRF2401A 是单片射频收发芯片,工作于 2.42.5GHz ISM 频段,芯片内置频率合 成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程 序进行配置。芯片能耗非常低,以-5dBm 的功率发射时,工作电流只有

24、10.5mA,接收 时工作电流只有 18mA,多种低功率工作模式满足设计的要求,并且在做系统节能的设 计时更加方便。 3.2.1 nRF2401 芯片结构 nRF2401 内置地址解码器、先入先出堆栈区、解调处理器、时钟处理器、GFSK 滤 波器、低噪声放大器、频率合成器,功率放大器等功能模块,需要很少的外围组件, 因此使用起来方便。nRF2401 的功能模块如图 3.2 所示。 图 3.2 nRF2401A 功能模块图 3.2.2 nRF2401 引脚说明 nRF2401A 引脚功能如表 3.1 所示,通过对引脚功能的了解和掌握,确定器件所能 执行的任务,并能很好的简化硬件设计和软件设计程序

25、的编写。 nRF2401 最高工作速率 1Mbps,高效 GFSK 调制,抗干扰能力强。125 频道,满足 多点通信和跳频通信需要。其内置硬件 CRC 检错和点对多点通信地址控制,能更好的 检测数据和防止误码率。此外在待机模式下状态仅为 1uA ,能够很好的节耗。内置专 门稳压电路,使用各种电源包括 DC/DC 开关电源均有很好的通信效果。nRF2401 配置 外置天线,空旷地传输距离可达 50-100 米,具有更远的有效距离。与 51 系列单片机 中北大学 2010 届毕业设计说明书 第 9 页 共 46 页 P0 口连接时候,需要加 10K 的上拉电阻,否则容易烧毁模块。 表 3.1 nR

26、F2401A 引脚功能表 引脚名称引脚功能描述 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 电源输出给功率放大器提供 1.8V 的电压

27、 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 的工作模式。配置模式时单片机通过 CLKI 和 D

28、ATA 端向 nRF2401 发送配置字,发送数据时通过 CLK1 和 DATA 端向 nRF2401 发送地址和数 据,接收数据时通过 CLK1 和 DATA 端从 nRF2401 读取数据,DR1 是 nRF2401 通知单片机 中北大学 2010 届毕业设计说明书 第 10 页 共 46 页 已经接收到数据并且可以读取的状态信号。CLK2、DOUT 和 DR2 端为通道二保留使用, nRF2401 可以同时接收两路信号。 图 3.3 nRF2401 模块电路图 其中无线模块为标准 DIP 插针,共 12 脚,排阵间距为 100mil,在电路设计中只 需要留出 12 针插槽,就可以很方便的

29、插拔无线模块。如图 3.4 所示:11、12 脚为接地 脚,需要和母板的逻辑地连接起来,2 脚为接电压端,需要和电压转换模块输出脚相连。 除电源 VCC 和接地端,其余脚都可以直接和普通的 5V 单片机 I/O 口直接相连,无需电 平转换212。 图 3.4 无线模块接口电路 中北大学 2010 届毕业设计说明书 第 11 页 共 46 页 3.33.3 单片机控制模块电路设计单片机控制模块电路设计 单片机工作的最小系统如图 3.5 所示,包括电源线、地线,晶振的设计。能满足 一般电路功能的实现要求11。 图 3.5 单片机控制模块电路 主控芯片选用的是 STC89C51 单片机,STC89C

30、51 是一款高性能、低功耗的 8Byte 微 控制器,与工业标准的 MCS-51 指令集和输出管脚相兼容的单片机。具有丰富强大的外 部接口性能,32 可编程 I/O 线,可编程串行通道,片内振荡器和时钟电路。其内部结 构如图 3.6 所示。 图 3.6 STC89C51 单片机内部结构 STC89C51 单片机内部主要包括累加器 ACC(有时也简称为 A)、程序状态字 PSW、 地址指示器 DPTR、只读存储器 ROM、随机存取存储器 RAM、寄存器、并行 I/O 接口 中北大学 2010 届毕业设计说明书 第 12 页 共 46 页 P0P3、定时器/计数器以及定时控制逻辑电路等 6。其管脚

31、图如图 3.7 所示。 图 3.7 STC89C51 单片机管脚图 STC89C51 单片机 I/O 管脚功能介绍: P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P0 口 的管脚第一次写 1 时,被定义为高阻输入。P0 口与 nRF2401 接口连接时候,需要加 10K 的上拉电阻,否则容易烧毁模块。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为 低电平时,将输出电流,这是由于内部上拉的缘故。 P2 口:P

32、2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因 此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电 流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于 外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故11。 无线传输控制系统硬件电路图如图 3.8 所示,为防止 STC89C51 的 I/O 口电流过大 烧坏

33、 nRF2401 模块,在单片机与接口之间串联 2K 欧姆电阻分压,能满足一般电路功能 的实现要求,如要实现其他功能,可在电路中扩展。 中北大学 2010 届毕业设计说明书 第 13 页 共 46 页 图 3.8 单片机控制系统电路图 3.43.4 本章小结本章小结 本章主要针对电路模块设计部分进行了具体的细化分析。分别从单片机的主模块 设计、无线模块设计等方面详细的对电路部分进行学习和对比,使得我们能够更加清 晰的了解单片机控制无线传输模块的电路和硬件部分的合理设计也要我们引起注意。 通过本章的介绍,可以了解了整个系统的硬件设计方案以及实现原理。下一章将具体 对无线传输系统软件各部分的设计。

34、 中北大学 2010 届毕业设计说明书 第 14 页 共 46 页 4 4 无线传输系统的软件设计无线传输系统的软件设计 系统软件的设计是一个项目工程的精髓,好的程序设计能够很好的弥补硬件的不 足,并能使系统的功能得到拓展。在本系统中,我采用的是分析,画流程图再编程序 的方法进行设计。流程图是程序的要点,能够很好的指导程序的编写,并能提高编写 程序的效率。 4.14.1 利用利用 STC89C51STC89C51 的的 I/OI/O 口模拟口模拟 SPISPI 口口 SPI(Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行 外设接口,它可以使 MCU

35、 与各种外围设备以串行方式进行通信以交换信息。SPI 接口主 要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器 之间。外围设置 FLASH RAM、网络控制器、LCD 显示驱动器、A/D 转换器和 MCU 等。SPI 总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用 4 条 线:串行时钟线(SCK) 、主机输入/从机输出数据线 MISO、主机输出/从机输入数据线 MOSI 和低电平有效的从机选择线 SS(有的 SPI 接口芯片带有中断信号线 INT 或 INT、 有的 SPI 接口芯片没有主机输出/从机输入数据线 MOSI)

36、。由于 SPI 系统总线一共只需 34 位数据线和控制即可实现与具有 SPI 总线接口功能的各种 I/O 器件进行接口,而 扩展并行总线则需要 8 根数据线、816 位地址线、23 位控制线,因此,采用 SPI 总线接口可以简化电路设计,节省很多常规电路中的接口器件和 I/O 口线,提高设计 的可靠性。 由此可见,在 MCS51 系列等不具有 SPI 接口的单片机组成的智能仪器和工业测控 系统中,当传输速度要求不是太高时,使用 SPI 总线可以增加应用系统接口器件的种 类,提高应用系统的性能15。 4.1.1 SPI 总线的组成 SPI 接口是在 CPU 和外围低速器件之间进行同步串行数据传输

37、,在主器件的移位脉 冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比 I2C 总线要快,速度可达到 10Mbps。SPI 接口内部硬件如图 4.1 所示。SPI 接口是以主从方 式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号: (1) MOSI 主器件数据输出,从器件数据输入; 中北大学 2010 届毕业设计说明书 第 15 页 共 46 页 (2) MISO 主器件数据输入,从器件数据输出; (3) SCLK 时钟信号,由主器件产生; (4) SS从器件使能信号,由主器件控制。 图 4.1 SPI 接口内部硬件图 三线 SPI 组成:

38、串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI 总线可以实现多个 SPI 设备互相连接。提供 SPI 串行时钟的 SPI 设备为 SPI 主机或主 设备(Master),其它设备为 SPI 从机或从设备(Slave)。利用 SPI 总线可在软件的控制 下构成各种系统。如 1 个主 MCU 和几个从 MCU、几个从 MCU 相互连接构成多主机系统 (分布式系统) 、1 个主 MCU 和 1 个或几个从 I/O 设备所构成的各种系统等。在大多数 应用场合,可使用 1 个 MCU 作为控机来控制数据,并向 1 个或几个从外围器件传送该 数据。从器件只有在主机发命令时才能

39、接收或发送数据。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 总线接口系统的典型结构 中北大学 2010 届毕业设计说明书 第 16 页 共 46 页 4.1.2 SPI 接口的原理和应用 当一个主控机通过 SPI 与几种不同的串行 I/O 芯片相连时,必须使用每片的允许 控制端,这可通过 MCU 的 I/O 端口输出线来实现。但应特别注意这些串行 I/O 芯片的 输入输出特性:首先是输入芯片的串行数据输

40、出是否有三态控制端。平时未选中芯片 时,输出端应处于高阻态。若没有三态控制端,则应外加三态门。否则 MCU 的 MISO 端 只能连接 1 个输入芯片。其次是输出芯片的串行数据输入是否有允许控制端。因此只 有在此芯片允许时,SCK 脉冲才把串行数据移入该芯片。在禁止时,SCK 对芯片无影响。 若没有允许控制端,则应在外围用门电路对 SCK 进行控制,然后再加到芯片的时钟输 入端。四线 SPI 模式用附加控制线,来允许从机数据的发送和接收,它由主机控制。 SPI 接口是在 CPU 和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下, 数据按位传输,高位在前,低位在后,为全双工通信,其工

41、作原理图如图 4.3 所示。 SCKMOSIMISO 67014523 10763254 主机 从机 图 4.3 SPI 工作原理图 如果用通用 I/O 口模拟 SPI 总线,必须要有一个输出口(SDO),一个输入口(SDI), 另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实 现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。SPI 不需要固定的 波特率,因为它是有时钟的协议。在多个从器件的系统中,每个从器件需要独立的使能 信号,硬件上比 I2C 系统要稍微复杂一些。SPI 接口在内部硬件实际上是两个简单的移 位寄存器,传输的数据为 8 位,在主器件产生的

42、从器件使能信号和移位脉冲下,按位传输,高 位在前,低位在后。SPI 接口工作时序如图 4.4 所示,在 SCLK 的下降沿上数据改变,同时 一位数据被存入移位寄存器15。 中北大学 2010 届毕业设计说明书 第 17 页 共 46 页 图 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 NRF2401P2.5 DATA MISO MCU 单 片 机 图 4.5 SPI 接口连接原理图 I/O 口模

43、拟 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 线) 。此后再置 CLK 为 0,模拟下 1 位数据的输入输出, 依此循环 8 次,即可完成 1

44、次单片机通过 SPI 总线向 nRF2401 传输 8 位数据的操作。 此函数功能是模拟 SPI 口写一字节数据13。 NRF_CLK1=0; /时钟初始为 0 for(i=8;i0;i-) if(c 中北大学 2010 届毕业设计说明书 第 18 页 共 46 页 else NRF_DATA=0; NRF_CLK1=1;/ 上升沿触发 c #include #define uchar unsigned char #define uint unsigned int #define NRF_PWR P2_0 #define NRF_CS P2_2 #define NRF_CE P2_1 #def

45、ine NRF_CLK1 P2_4 #define NRF_DATA P2_5 #define NRF_DR1 P2_3 #define LED1 P1_1 #define NRF_Delay() NRF_Delay_12M( ) void NRF_Delay_12M( ) uchar i; for(i=150;i0;i-) _nop_();_nop_();_nop_(); /配置程序如下 uchar code txaddr=0xcc,0xcc; #define TEST_20x8E #define TEST_10x08 #define TEST_00x1C #define DATA1_W 0

46、x20/频道 1 数据长度 /单个数据包的大小小于 32 字节 #define ADDR1_4 0x00 / 频道 1 接收地址 #define ADDR1_3 0xcc #define ADDR1_2 0xcc #define ADDR1_1 0xcc #define ADDR1_0 0xcc #define ADDR_W0x10 / 接收地址宽度(bit) #define CRC_L0x1 / CRC 模式 0 - 8 位 ; 1 - 16 位 #define CRC_EN0x1 / CRC 校验启用 / 信道设定 #define CM0x1 /突包模式 #define RFDR_SB 0

47、x1 / 1Mbps #define XO_F0x3 /晶振频率 16MHz #define RF_PWR 0x3/发射功率 0dbm #define RF_CH0x20/ 信道频率 #define RXEN0x1 / 收使能-接收 / 宏定义 #define RFConfig_Byte0TEST_2 #define RFConfig_Byte1TEST_1 #define RFConfig_Byte2TEST_0 #define RFConfig_Byte3DATA2_W #define RFConfig_Byte4DATA1_W #define RFConfig_Byte5ADDR2_4

48、#define RFConfig_Byte6ADDR2_3 中北大学 2010 届毕业设计说明书 第 40 页 共 46 页 #define RFConfig_Byte7ADDR2_2 #define RFConfig_Byte8ADDR2_1 #define RFConfig_Byte9ADDR2_0 #define RFConfig_Byte10 ADDR1_4 #define RFConfig_Byte11 ADDR1_3 #define RFConfig_Byte12 ADDR1_2 #define RFConfig_Byte13 ADDR1_1 #define RFConfig_By

49、te14 ADDR1_0 #define RFConfig_Byte15 (ADDR_W0;i-) if(c else NRF_DATA=0; NRF_CLK1=1; / 上升沿触发 c0;i-) 中北大学 2010 届毕业设计说明书 第 41 页 共 46 页 c0;i-) NRF_Delay(); NRF_CS=1; NRF_DATA=0; NRF_CLK1=0;/ 进入配置模式 NRF_Delay(); for(i=0;i3);i+) buffi=SPI_ByteRead(); /将 buff 数据发送到 addr 地址程序如下 Void NRF_Send(uchar*addr,uchar*buff) uchar i; NRF_CE=1; NRF_Delay(); for(i=0;i3);i+) /地址长度 SPI_ByteWrite(addri); for(i=0;i3);i+) /数据长度 SPI_ByteWrite(buffi); NRF_CE=0; NRF_Delay(); /

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1