基于NRF905射频收发单片机系统软件的研究_第1页
基于NRF905射频收发单片机系统软件的研究_第2页
基于NRF905射频收发单片机系统软件的研究_第3页
基于NRF905射频收发单片机系统软件的研究_第4页
基于NRF905射频收发单片机系统软件的研究_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、武汉工业学院 2007 毕业论文 1 内容摘要内容摘要 本课题充分利用 nordic vlsi 公司的无线收发芯片 nrf905。实现了高可靠性的 无线传输。由于采用了 nrf905 的全双工的工作模式,能够同时发送控制信息和接收 从接收机反馈回来的信息,能够实时采样受控方的信息,这样发送端就能快速发送 相应的控制信息,从而提高了整个装置的性能。 本文进行 nrf905 芯片收发系统的方案设计,主要进行软件设计以及系统调试等 方面的工作,主要包括: 1、nrf905 芯片的基本结构与功能。 2、对 p89lpc932flash 单片机的存储器进行空间分配以及对通用(i/o 和 a/d 等) 接

2、口,中断系统等进行编程。 3、进行接受与发送软件设计,主要进行扩展接口的(nrf905 接受/发送接受,外设 继电器控制,a/d 接口等)设计。 4、将外加键盘,lcd 显示作为调试用的扩展口. 5、进行扩展接口调试,以及参与、配合收发系统的调试。 6、进行了全文总结。 关键词:nrf905,,单片机, p89lpc932,接收数据,发送数据 武汉工业学院 2007 毕业论文 2 abstract this paper takes full advantages of wireless sending and receiving chip nrf905 of nordic vlsi。it is

3、 achieved high reliability wireless transmission, because the nrf905 semiduplex work mondel can also send controling and receiveing information from the feedback and sample real-time information, the sending terminal can rapidly send the corresponding control information, to enhancing the whole devi

4、ce performance. the paper mainly expatited the system design of the programme nrf905 chip, the design of software and the system debugging, and other aspects of the work, including : 1. programming principles and applications of nrf905 chip 2. distribution of the memory of p89lpc932flash mcu space a

5、nd programming of (i/o and a/d) interfaces, system interruption 3. design of sending and receiving hardware, and the design of expansion interface (nrf905 receiving/sending acception, engineered relays control, a/d interfaces, etc.) 4. debugging of interfaces by using plus keyboard and lcd 5. extend

6、ed debugging interfaces, and participation in the system debugging. 6. the summary of the paper. keyword : nrf905, wireless transmission, scm, low consumption,rxd,txd 武汉工业学院 2007 毕业论文 3 目 录 内容摘要内容摘要.1 abstract.2 目目 录录.3 第一章第一章 绪论绪论.4 1.1 课题背景.4 1.2 课题的目的和意义.4 1.3 研究内容.5 第二章第二章 基础理论基础理论.5 2.1 nrf905

7、简介.5 2.1.1 芯片结构及引脚功能.5 2.1.2 工作模式.7 2.1.3 器件配制.9 2.1.4 术语说明.10 2.2c 语言特点.11 第三章第三章 系统硬件电路设计系统硬件电路设计.13 3.1 系统的组成.13 3.2 nrf905 与单片机接口电路.14 3.3 外围接口电路.15 3.3.1 键盘接口电路.15 3.3.2 lcd 显示接口电路.15 第四章第四章 软件设计与系统调试软件设计与系统调试.16 4.1 系统工作模式.16 4.2 系统的主要功能模块.16 4.2.1 初始化功能模块.16 4.2.2 发送功能模块.17 4.2.3 接收功能模块.17 4.

8、3 spi 指令设置.20 4.4 寄存器内容.21 4.5 系统的初始化.21 4.6 系统的调试.22 4.6.1 创建工程.22 4.6.2 为工程选择目标器件.22 4.6.3 编译和连接 hello 工程.22 4.6.4 仿真 hello 工程.22 4.7 分析与说明.24 结结 束束 语语.27 致谢致谢.28 参考文献参考文献.29 附件附件 1:系统的接收程序系统的接收程序:.30 附件附件 2:系统的发送程序系统的发送程序:.38 武汉工业学院 2007 毕业论文 4 第一章第一章 绪论绪论 1.1 课题背景课题背景 自上个世纪九十年代以来,射频识别技术在全世界范围内得到

9、了很快的发展。 全球的总销量以年均 25%以上的速度快速增长,经过十几年的发展,射频率识别技 术在各行各业,尤其是在电子信息行业得到了广泛的应用。射频识别技术在我国的 应用,应该还处于一个起步的阶段。差距首先表现在技术上,虽然在低频和中频产 品应用上面,已经有了一定的基础,但在高频领域基本上没有大规模成熟的应用案 例;其次表现在应用环境上,电子标签是一种提高识别效率和准确性的工具。市场 化程度越高,越具有竞争性,组织对于效率的要求就会越强烈。在这种情况下,电 子标签才会具有广泛应用的可能性。以电子标签在供应链上的应用为例,必须是以 供应链成熟广泛运用为基础的,而我国供应链的发展只是刚有一个好的

10、开端,对绝 大多数企业而言,这种先进的管理方法和技术还刚刚起步。 从长远来看,电子标签特别是高频远距离电子标签的市场在未来几年内将逐渐 成熟,成为 ic 卡领域继公交、手机、身份证之后又一个具有广阔市场前景和巨大容 量的市场。将为国内表比较熟的 ic 卡行业一个重大的产业机会。在这个产业机会面 前,国内厂商应加大投入力度,未雨绸缪,实现技术的突破。另外,除了厂商的努 力以外,政府的主管部门也应该起到引导和牵头的作用,支持国内的厂商,根据国 内的需求制定行业标准,从标准入手,建立自主知识产权的整个体系,进一步缩短 与国内先进水平的差距,壮大国内智能卡行业的发展。 射频技术、蓝牙技术的产品相比具有

11、安全性好、数据速率高等优点。但在实际 应中用也存在不足之处。首先,使用 wlan 组网实现起来要比其他技术所需的费用高; 其次,直接顺序分布式频谱(dsss)技术的应用也限制了它在住宅密集区中使用, 有可能导致在独立的建筑物或相似环境中发生干扰。 再次,802.11b 技术传输语音 的能力是有限的。尽管它可以支持数字化的 internet 语音传输协议(voip) ,但是 目前其传输质量还不高。它不能为那些希望使用单个无线网络来满足联网需求的用 户提供一套完整的解决方案。 1.2 课题的目的和意义课题的目的和意义 随着时代的进步,数据通信被广泛地应用。其中数据传输是个重要环节,数据传 输可采用

12、有线和无线的方式,有线方式可靠、稳定,但在些地理条件复杂、线路架 设困难的场合,无线方式就显出了优势。这也正是本课题的目的和意义所在。 1.3 研究内容研究内容 本课题是利用 nrf905 收发可编程芯片和单片机进行射频收发数据系统应用性设 计与研究。 武汉工业学院 2007 毕业论文 5 第二章第二章 基础理论基础理论 2.1 nrf905 简介简介 nrf905 是挪威 nordic vlsi 公司推出的单片射频收发器,工作电压为 1.93.6v,32 引脚 qfn 封装(55mm),工作于 433/868/915mhz 三个 ism(工业、科 学和医学)频道,频道之间的转换时间小于 65

13、0us。nrf905 由频率合成器、接收解调 器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器, shockbursttm 工作模式,自动处理字头和 crc(循环冗余码校验),使用 spi 接口与微控制器通信, 配置非常方便。此外,其功耗非常低,以-10dbm 的输出功率发射时电流只有 11ma, 工作于接收模式时的电流为 12.5ma,内建空闲模式与关机模式,易于实现节能。 nrf905 适用于无线数据通信、无线报警及安全系统、无线开锁、无线监测、家庭自 动化和玩具等诸多领域。 表 2-1: nrf905 快速参考数据 快速参考数据快速参考数据 参数参数数值数值单位单位 最低工作电

14、压 1.9v 最大发射功率 10dbm 最大数据传输率(曼切斯特编码) 100kbps 输出功率为-10dbm 时工作电流 11ma 接收模式时工作电流 12.5ma 温度范围-40 到+85 典型灵敏度 -100dbm powerdown 模式时工作电流 2.5ua 2.1.1 芯片结构及引脚功能芯片结构及引脚功能 nrf905 片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率放 大器等模块,曼彻斯特编码/解码由片内硬件完成,无需用户对数据进行曼彻斯特编 码,因此使用非常方便 武汉工业学院 2007 毕业论文 6 图 2-1 带有外部元件的 nrf905 表 2-2:nrf 引脚

15、功能 nrf905nrf905 引脚功能引脚功能: 引脚引脚名称名称引脚功能引脚功能表述表述 1trx-ce 数字输入使 nrf905 工作于接收或发送状态 2pwr-up 数字输入工作状态选择 3upclk 时钟输出输出时钟 4vdd 电源电源正端 5vss 电源电源地 6cd 数字输出载波检测 7am 数字输出地址匹配 8dr 数字输出数据准备好 9vss 电源电源地 10miso spi 输出spi 输出 11mosi spi 输入spi 输入 12sck spi 时钟spi 时钟 13csn spi 片选spi 片选,低有效 14xc1 模拟输入晶振输入引脚 1 15xc2 模拟输出晶

16、振输入引脚 2 16vss 电源电源地 17vdd 电源电源正端 武汉工业学院 2007 毕业论文 7 18vss 电源电源地 19vdd-pa 输出电源给功率放大器提供 108v 的电压 20ant1 射频无线接口 1 21ant2 射频无线接口 2 22tref 模拟输入参考输入 23vss 电源电源地(0v) 24vdd 电源电源正端 25vss 电源电源地(0v) 26vss 电源电源地(0v) 27vss 电源电源地(0v) 28vss 电源电源地(0v) 29vss 电源电源地(0v) 30vss 电源电源地(0v) 31dvdd-1v2 电源低电压正数字输出 32tx-en 数字

17、输入等于 1,发送模式;等于 0,接收模式 2.1.2 工作模式工作模式 nrf 905 有两种活动(rx/tx)模式和两种节电模式。 活动模式 shockburst rx shockburst tx 节电模式 掉电和 spi 编程 standby 和 spi 编程 nrf 905 工作模式由 trx_ce,tx_en,pwr_up 的设置来设置。 表 2-3:nrf 工作模式设置 pwr_uptrx_cetx_en工作模式 0xx掉电和 spi 编程 10xstandby 和 spi 编程 110shockburst rx 111shockburst tx shockburst 模式模式 n

18、rf905 采用 nordic 公司的 vlsi shockburst 技术。shockburst 技术使 nrf905 能够提供高速的数据传输而不需要昂贵的高速 mcu 来进行数据处理的高速信号处 理放到芯片内, nrf905 提供给应用的微控制器一个 spi 接口,速率由微控制器自己设 定的接口速度决定。shockburst tx 通过 shockburst 工作模式在 rf 以最大速率进 行连接时将的数字应用部分地速度来降低在应用中的平均电流消耗。在 shockburst rx 模式中,地址匹配(am)和数据准备就绪(dr)信号通知 mcu 一个有效的地址和数 据包已经各自接受完成。在

19、shockburst rx 模式中, nrf905 自动产生前导码和 武汉工业学院 2007 毕业论文 8 crc 校验码,数据准备就绪(dr)信号通知 mcu 数据传输已经完成。总之,这意味着降 低 mcu 的存储器需求也就是收降低 mcu 成本,又同时缩短软件开发时间。/是中覆 盖。通过将与 rf 协议有关 典型典型 shockburst tx: 1. 当应用 mcu 又遥控数据节点时,接收节点的地址(tx-address)和有效数据(tx- payload)通过 spi 接口传送给 nrf905。应用协议或 mcu 设置接口速度。 2. mcu 设置 trx_ce,tx_en 为高来激活

20、 nrf905 shockburst 传输。 3. nrf905 shockburst: 1)无线系统自动上电 2)数据包完成(加前导码和 crc 校验码) 3)数据包发送(100kbps,gfsk,曼切斯特编码) 4. 如果 auto_retran 被设置为高, nrf905 将连续地发送数据包,直到 trx_ce 被 设置为低 5. 当 trx_ce 被设置为低时, nrf905 结束数据传输病将自己设置成 standby 模式。 shockburst 工作模式确保一个传输包发送开始后,总是能够完成,不管在发送过程 中trx_ce,tx_en 如何设置。当发送结束后,新的模式被激活。请看后

21、面有关 章节地向西时序。为了测试,如天线调谐和测量发射功率,可以让发射机不变地载 波。为此,必须让 trx_ce 保持为高,而不是一个脉冲。另外,自动重发必须禁止。 当数据脉冲被发射完成后,发射机将连续发射未调制地载波。 典型典型 shockburst rx: 1. 通过设置 trx_ce 高,tx_en 低来选择 shockburst rx 模式 2. 650us 以后, nrf905 监测空中的信息 3. 当 nrf905 发现和接收频率相同的载波时,载波检测(cd)被置高 4. 当 nrf905 接收到有效地址时,地址匹配(am)被置高 5. 当 nrf905 接收到有效的数据包(crc

22、 校验正确)时, nrf905 去掉前导码,地址 cpc 位,数据准备就绪(dr)被置高 6. mcu 设置 tr_ce 低,进入 standby 模式(低电流模式) 7. mcu 可以以合适的速率通过 spi 接口读出有效数据 8. 当所有的有效数据被读出后, nrf905 将 am 和 dr 置低 9. nrf905 将准备进入 shockburst rx, shockburst tx 或 powerdown 模式 如果在引入数据当中 trx_ce 或 tx_en 的状态改变, nrf905 将立刻改变模式,并且 数据包丢失。尽管如此,如果 mcu 已经感觉到 am 信号,mcu 就知道

23、nrf905 正在接收 数据,然后决定是等待 dr 信号还是改变模式。 掉电模式掉电模式 在掉电模式中, nrf905 被禁止,电流消耗最小,典型值低于 2.5 ua 。当进入这种 模式时, nrf905 是不活动的状态,这时候平均电流小号最小,电池使用寿命最长。在 掉电模式中,配置字的内容保持不变。 standbystandby 模式模式 standby 模式在保持电流消耗最小的同时保证最短的到 shockburst rx, shockburst tx 的启动时间。这种模式时,一部分晶体震荡器是活动的。电流消耗取 武汉工业学院 2007 毕业论文 9 决于晶体震荡器频率,如:idd=12ua

24、 当 4mhz; idd=46ua 当 20mhz。如果 up- clock(pin3)被使能,电流将增加,并且取决于负载电容和频率。在此模式中,配置字 的内容保持不变。 2.1.3 器件配制器件配制 nrf905 的所有配置都通过 spi 接口进行。spi 接口由 5 个寄存器组成,一条 spi 指令用来决定进行什么操作。spi 接口只有在掉电模式和 standby 模式是激活的。 1.spi1.spi 接口配置接口配置 spi 接口由 5 个内部寄存器组成。执行寄存器的回读模式来确认寄存器的内容。 状态寄存器状态寄存器(status-register) 寄存器包含数据就绪(dr)和地址匹配

25、(am)状态 rf 配置寄存器配置寄存器(rf-configuration register) 寄存器包含收发器的频率,输出功率等配置信息 发送地址发送地址(tx-address) 寄存器包含目标器件地址,字节长度由配置寄存器设置 发送有效数据发送有效数据(tx-payload) 寄存器包含发送的有效 shockburst 数据包数据,字节长度由置寄存器设置 接收有效数据接收有效数据(tx-payload) 寄存器包含接收到的有效 shockburst 数据包数据, 字节长度由置寄存器设置,在寄存 器中的有效数据由数据准备就绪(dr)指示。 2.2.射频配置射频配置 射频配置寄存器和内容如表

26、2-4 所示: 参数位宽说明 ch_no9 与 hfreq_pll 一起设置中心频率(默认值为 001101100b=108d. frf=(422.4+ch_nod/10)*(1+hfreq_plld)mhz hfreq_pll1 设置 pll 在 433 或 868/915mhz 的模式(默认值=0) 。 0器件工作在 433 mhz 频段 1器件工作在 868/915mhz 频段 pa_pwr2 输出功率(默认值=0). 00-10dbm ;01-2dbm;10+ 2dbm ;11 +10dbm rx-red-pwr1 降低 rx 模式电流消耗至 1.6ma。灵敏度降低。 (默认值=0).

27、 0正常模式 ;1低功耗模式 auto-retran1 重发数据,若 tx 寄存器的 trx-ce 和 tx-en 被设置为高。 (默认值 =0). 0不重发数据 ;1重发数据包 rx-afw3 rx-地址宽度(默认值=100) 武汉工业学院 2007 毕业论文 10 0011 字节 rx 地址宽度 1004 字节 rx 地址宽度 tx-afw3 tx-地址宽度(默认值=100) 0011 字节 tx 地址宽度 1004 字节 tx 地址宽度 rx-pw6 rx 有效数据宽度(默认值=100000) 0000011 字节 rx 有效数据宽度 0000102 字节 rx 有效数据宽度 10000

28、032 字节 rx 有效数据宽度 tx-pw6 tx 有效数据宽度(默认值为 100000) 0000011 字节 tx 有效数据宽度 0000102 字节 tx 有效数据宽度 10000032 字节 tx 有效数据宽度 rx-address32 rx 地址特性。所用字节取决于 rx-afw(默认值=e7e7e7e7h) up-clk-freq2 输出时钟频率(默认值=11) 00 4mhz ;012mhz ;101mhz ;11 500khz up-clk-en1 输出时钟使能(默认值=11) 0-没有外部时钟;1-外部时钟信号 xof3 晶体振荡器频率。必须根据外部晶体谐振频率设定(默认值

29、=100) 000-4mhz 001-8mhz 010-12mhz 011-16mhz 100-20mhz crc-en1 crc 校验允许(默认值为 1) 0-不允许;1-允许 crc-mode1 crc 模式(默认值为 1) 0-8 crc 校验位 1-16 crc 校验位 表 2-4:射频配置寄存器 射频寄存器的各位的长度是固定的。然而,在 shockbursttm 收发过程中, tx_payload、rx_payload、tx_address 和 rx_address 4 个寄存器使用字节数由配 置字决定。nrf905 进入关机模式或空闲模式时,寄存器中的内容保持不变。 武汉工业学院

30、2007 毕业论文 11 2.1.4 术语说术语说明明 表 2-5: 术语表 术语表术语表 术语术语描述说明描述说明 adc模拟到数字转换 am地址匹配 cd载波检测 clk时钟 crc循环冗余校验 dr数据准备就绪 gfsk高斯频移键控 ism工业的,科学的,医学的 kspskilo 每秒采样 mcu掉电 pwr_dwn上电 pwr_up接收 rx串行可编程接口 spispi 片选 cns主 spi 输入,从 spi 输出 mosi主 spi 输出,从 spi 输入 sckspi 串行时钟 sps每秒采样 stbystandby trx_ce发射/接收使能 tx发射 tx_en发射使能 2.

31、2c 语言特点语言特点 一种语言之所以能存在和发展,并具有生命力,总是有其不同于(或优于)其他语言的特点。c 语 言的主要特点如下: 语言简洁、紧凑,使用方便、灵活。 c 语言一共只有 32 个关键字,9 种控制 语句,程序书写自由,主要用小写字母表示。 运算符丰富。c 语言运算符包含的范围很广泛,共有种 34 个运算符,把括号、 赋值、强制类型转换等都作为运算符处理,从而使 c 的运算类型极其丰富表达式类 型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 数据结构丰富,具有现代化语言的各种数据结构。数据类型有:整型、实型、 字符型、数组类型、指针类型、结构体类型、共用体类

32、型等。能用来实现各种复杂 武汉工业学院 2007 毕业论文 12 的数据类型的运算。尤其是指针类型数据,使用起来比 pascal 更灵活多样。 具有结构化的控制语句。用函数作为程序的模块单位,便于实现程序的模块化。 c 语法限制不太严格、程序设计自由度大。一般的高级语言语法检查比较严, 能够检查出几乎所有的语法错误。而 c 语言允许程序编写者有较大的自由度。 c 语言能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 c 语言程序生成代码质量高,程序执行效率高 ,一般只比汇编程序生成的目 标代码效率低 10 20%且适用范围大,可移植性好 c 语言允许直接访问物理地址,可以直接

33、对硬件进行操作,因此既具有高级 语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址 进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。 武汉工业学院 2007 毕业论文 13 第三章第三章 系统硬件电路设计系统硬件电路设计 3.1 系统的组成系统的组成 按照系统的功能,整个系统分为如下几个部分:信号的发送与接收,调节部分, 控制部分,显示部分。 信号的接收是通过 nrf905 模块的天线对发射机发送过来的数据进行接收,再对 整个数据包进行 gfsk 解调,还原出原来的调制前的数据信息。控制调节部分功能为 适时接收到的数据,经过计算处理后,得到控制信号,并反馈

34、回采集端处理器。这部 分要完成数据的应答和控制信号的发射。为了提高系统的稳定性,还有必要建立软 件通信协议。系统的组成框图如图 3-1 所示: lpc932 (主控芯片) rs232 电平转换 pc lcd 显示 模块 nrf905(发射系 统) 键盘 开关 spi 接收系统 图 3-1 系统的组成框图系统的组成框图 武汉工业学院 2007 毕业论文 14 根据系统框图硬件电路主要由以下几部分组成:单片机系统、nrf905 应用电路、 键盘显示部分接口电路。 3.2 nrf905 与单片机接口电路与单片机接口电路 射频芯片 nrf905 具有用于无线数字通信的功能11。其内部有 5 个寄存器。

35、分 别为: 状态寄存器(只读) ,包含数据就绪(dr)和地址匹配(状态) ; 射频配置寄存器(可读写) ,包含收发器的频率,输出功率等配置信息; 发射地址寄存器(可读写) ,包含目标器件的地址,其字节长度由配置寄存器设 置; 发射数据寄存器(可读写) ,包含发射的有效 shockburst 数据包,其字节长度 由配置寄存器设置; 接收数据寄存器(只读) ,包含接收到的有效 shockburst 数据包,其字节长度 由配置寄存器设置,在寄存器中的有效数据由数据准备就绪(dr)指示。 对于寄存器的读写是通信过程中的关键。另外,nrf905 的工作模式切换也是芯 片工作过程中需要合理地控制的。因此,

36、nrf905 与单片机的接口设计就显得尤为重 要。 nrf905 与单片机的数据通信采用了 spi 协议,之间的接口为 spi。这里使用 p2 口模拟 spi 总线。因为后面提到的 lcd 采用了单片机的 spi 总线,这样综合考 虑更有利于整体设计的优化,节省了系统的硬件。另外芯片的模式切换的信号接口 接 p3.1,p3.2 和 p0.7 三个引脚。由于数据通信接收时采用的是中断方式。当接收准 备好(dr 有效)时,通过外部中断的形式使程序执行中断程序,使系统进入射频 接收模式。单片机与 nrf905 引脚连接图121314如图 3-2 所示。 图 3-2 nrf905 典型应用电路 p1.

37、4 p0.7 p3.1 p3.2 p2.1 p2.7 p2.0 p2.6 dr pwr_up txen trx_ce sck mosi csn miso 武汉工业学院 2007 毕业论文 15 3.3 外围接口电路外围接口电路 3.3.1 键盘接口电路键盘接口电路 本课题考虑到调试的方便,在设计电路时加入了键盘控制部分和 lcd 液晶显示 部分。键盘采用独立式键盘,通过扫描程序识别按键。为了简化显示电路,减少接 口总线,lcd 采用 nt7502 液晶控制器。 在 p89lpc932 单片机里,p0 是一个可由用户定义输出类型的 8 位 i/o 口,在上电 复位时,p0 锁存器配置为内部上拉禁

38、止的仅为输入模式。p0 口由口配置寄存器设定 为输出或输入模式,每一个管脚均可单独设定。而且 p89lpc932 单片机的 p0 口具有 键盘输入中断功能。因此键盘的接口与 p0 口相连,使得程序更优化。按键的功能如 下: 按键 1:send ok 发送,与 p0.1 引脚相连。 在发送完成时,将会有发送成功信息返回,如果接收方接收正确的信息,lcd 将在第三行显示英文“ok”表明接收正确无误。 图 3-3 键盘接口电路 3.3.2 lcd 显示接口电路显示接口电路 nt7502 可以通过八位的并行双向数据总线(d7-d0)或串行数据输入端(si)进行 数据传送。当采用串行数据输入端(si)进

39、行数据传送时,用到的 i/o 口较少,有利 与接生资源。mcu 通过自身或系统中的串行接口与液晶显示模块连接,下面给出的 应用采用 p89lpc932 的串行端口中的 p2.2 引脚与 lcd 中的口 7 相连,p89lpc932 通 过对这些接口的操作达到对液晶显示模块的控制。 图 3-4 单片机与 lcd 的接口电路 lcd 中有四个引脚与 mcu 相连,两个为 i/o 口,一个为片选信号,一个为连接 mcu 地质总线的最低值,决定当前数据总线是数据还是地址。 nc led+ led- db7 db6 a0 cs p2.2 p2.5 p0.2 p2.4 单片机lcd 武汉工业学院 2007

40、 毕业论文 16 第四章第四章 软件设计与系统调试软件设计与系统调试 系统软件主要包括以下几个模块:初始化模块、nrf905 读写模块、ad 转换模 块、键盘控制和 lcd 显示模块。 4.1 系统工作模式系统工作模式 本无线传输系统具有四种工作模式:关机模式、睡眠模式、接收模式和发送模式。 这四种模式之间可以进行灵活切换,从而实现降低整个系统的功耗,使系统处于最 佳状态。其具体关系图(图4-1)如下: 系统工作模式 发送模式接收模式睡眠模式关机模式 图4-1 系统工作模式图 整个系统的主要功能有: (1)系统的工作模式可根据具体传输要求具体编程设置。 (2)在发送数据时系统将自动加上导言、地

41、址和校验码而形成一个独特的数据包并能 具有重新发送功能。 (3)在接收数据时系统自动进行载波检测、地址匹配测试,然后才接收数据包。 (4)自动实现crc生成和检测。 4.2 系统的主要功能模块系统的主要功能模块 4.2.1 初始化功能模块初始化功能模块 初始化功能模块是整个软件系统设计的重要前提和基础。其主要功能包括:对状态 寄存器、射频配置寄存器、地址寄存器、发送数据寄存器、接收数据寄存器进行合 理科学设置。具体过程(图4-2): 武汉工业学院 2007 毕业论文 17 图 4-2 初始化功能模块 由于整个系统采用一点对多点通讯方式,所以初始化时要对连接到上位pc机的 收发器模块和数据采集卡

42、上的各个收发器模块进行不同的唯一的地址设置,以实现 一点对多点无线通信和避免无线通信碰撞。 4.2.2 发送功能模块发送功能模块 发送功能模块负责独特数据包的生成和发送。这些功能都是由硬件电路自动实现, 软件只是把将要发送的数据用spi总线从单片机送至发送数据寄存 器中和切换至发送工作模式。整个发送过程的流程图如图4-3所示。 4.2.3 接收功能模块接收功能模块 接收功能模块负责载波信号的检测,地址匹配检测和数据包的解码和接收。这些功 能也都是由硬件电路自动实现,软件只是将要接收到的数据用spi总线从接收数据寄 存器之中送至单片机,结束后将系统切换至睡眠模式。整个接收过程的流程如图4-4 所

43、示。 开始 载波频率段设置 电压输出设置 接收发送地址宽度设置 接收发送数据宽度设置 输出频率设置 输出时钟设置 外部晶振设置 crc 设置 结束 武汉工业学院 2007 毕业论文 18 是 是 否 否 是 否 工作在空闲模式 tx en=1 pwr up=1 trx ce=0 spi 编程微控制器设置地址和数据包 (配置寄存器的内容直至最后一次发送 和接收 2.1.22.1.2 系统硬件结构与基本工作系统硬件结构与基本工作 原理原理 完成后才改变) trx ce =1? 发送启动 nrf 脉冲触发 tx 产生 crc 和字头发送数据包 发送完成后 dr 置高 字头同步之 后 dr 置为 低

44、trx_ce =1 auto retran= 1? 图 4-3 发送功能模块 武汉工业学院 2007 毕业论文 19 工作在空闲模式 tx_en=l0 pwr_up=h1 trx_ce =h1? 接收启动 接收时发现和接收频率 相同的载波,载波检测 (cd)被置高 地址匹配 否? am 置高 y crc 校验 正确否? n am 置低 n dr 置高 trx_ce= h1? 进入空闲模式 mcu 通过 spi 读出有 效数据 dr 和 am 都置低 n y 接收数据 y yn 图4-4 接收功能模块 武汉工业学院 2007 毕业论文 20 4.3 spi 指令设置指令设置 用于spi 接口的有

45、用命令见下表当csn 为低时spi 接口开始等待一条指令任何一 条新指令均由csn的由高到低的转换开始。 表表4-14-1:spispi 串行接口指令串行接口指令 spispi 串行接口指令串行接口指令 指令名称指令名称指令格式指令格式操作操作 w_config (wc) 0000aaaa 写配置寄存器,aaaa 指出写操作的开始字节,字节 数量取决于aaaa 指出的开始地址,这里aaaa为0000 r_config (rc) 0001aaaa 读配置寄存器。aaaa指出读操作的开始字节,字节 数量取决于aaaa 指出的开始地址,这里aaaa为0000 w_tx_payloa d (wtp)

46、00100000 写tx 有效数据:1-32 字节。写操作全部从字节0 开始 r_tx_payloa d (rtp) 00100001 读tx 有效数据:1-32 字节。读操作全部从字节0 开始 w_tx_addres s (wta) 00100010 写tx 地址:1-4 字节。写操作全部从字节0 开始 r_tx_addres s (rta) 00100011 读tx 地址:1-4 字节。读操作全部从字节0 开始 r_rx_payloa d (rrp) 00100100 读rx 有效数据:1-32 字节。读操作全部从字节0 开始 channel_con fig (cc) 1000pphc c

47、ccccccc 快速设置配置寄存器中ch_no, hfreq_pll 和 pa_pwr 的专用命令。ch_no=ccccccccc hfreq_pll=h pa_pwr=pp 武汉工业学院 2007 毕业论文 21 4.4 寄存器内容寄存器内容 表 4-2:rf-configuration-registerrf-configuration-register rf-configuration-register(rf-configuration-register( r/w)r/w) 字节#内容位7 0 msb=bit7 初始化值 0bit7 0 00001100 1 bit7:6没用auto_re

48、tran rx_red_pwr pa_pwr1:0 hfreq_pll ch_no8 01101100 2 bit7 没用tx_afw2:0, bit3 没用 ,rx_afw2:0 01000100 3 bit7:6没用rx_pwr5:0 00100000 4 bit7:6没用tx_pwr5:0 00100000 5 rx 地址0 字节 e7 6 rx 地址1 字节 e7 7 rx 地址2 字节 e7 8 rx 地址3 字节 e7 9 crc_ 模式 ,crc 校验允许,x of2:0, up_clk_en, up_clk_freq1:0 11011100 4.5 系统的初始化系统的初始化 在

49、初始化模块里主要完成以下操作:初始化 cpu 堆栈、分配 lpc932 的引脚功能、 nrf905 的初始化。其中,nrf905 的初始化包括设置其配置频段、输出功率、地址宽 度、接收发送有效数据长度、接收地址和晶振频率等。 例:如下程序是实现对配置字的设计: void nrf905_spi_cfg(void) uchar cfg_tab10 = 0 x6c, /定义 ch-no 的前八位 0 x2c, /定义为自动重发、正常模式、输出功率为+10db /设置 hfreq-pll 为 0 0 x44, /rx、tx 地址宽度为 4 个字节 0 x20, /发送的有效数据宽度为 32 个字节 武

50、汉工业学院 2007 毕业论文 22 0 x20, /接收的有效数据宽度为 32 个字节 0 xe7,0 xe7,0 xe7,0 xe7, /接收地址 0 xdc /16 位 crc 检验位、crc 校验允许、晶振 16mhz、外 /部时钟信号使能、输出时钟频率为 4mhz rw_nrf905(wc, w_nrf905,10,cfg_tab); 4.6 系统的调试系统的调试 4.6.1 创建工程创建工程 点击 keil 的图标启动 keil 程序,弹出 keil 的界面,点击 project-open project 找到 hello 工程文件. hello 工程是一个简单的 c 语言单模块程

51、序,完成主要通过串口发送”hello world”字符串. 4.6.2 为工程选择目标器件为工程选择目标器件 在打开工程以后,选择 51lpc 系列为目标器件.点击 project-elect device target 后出现一个对话框. 在此对话框中,左边的 data base 窗口中把 keil 所支持的器件按照生产厂商进行 分组列表,点击 philips 组,找到并选择 p89lpc932,按对话框的确定按钮. 4.6.3 编译和连接编译和连接 hello 工程工程 选择菜单 project-rebuild all target files,keil 对 hello 工程进行连接和编

52、译,操作结果的信息显示在输出窗口. 经过编译和连接后,hello 工程已经可以进行模拟仿真和硬件仿真.模拟仿真是利 用 pc 的资源模仿单片机的运行,不需要动用硬件;硬件仿真正好相反,但是硬件仿真 是调试的必须步骤. 4.6.4 仿真仿真 hello 工程工程 点击菜单 project-option target 进入工程配置对话框,选择 debug,出现一个对话 框,进行设置.如下图 4-3: 武汉工业学院 2007 毕业论文 23 图 4-3:设置对话框 1)软件仿真选择:使用软件仿真当前的设计. 2)硬件仿真选择:使用硬件仿真当前的设计. 3)仿真器类型选择:用于选择当前的硬件仿真驱动.

53、在 c:keiltools.ini 文件中填写 tks 的驱动说明,对应一 dll 文件,选中 tks 驱动项目. 4)启动运行:load application at start:进入仿真,调入程序代码进入仿真器. go till main:在使用 c 语言设计后直接运行到 main()函数. 5)仿真配置记忆选择: breakpoints:记忆当前设置的断点,下次进入仿真后该断点设置存在并有效. watchpoints:记忆当前设置的观察项目, 下次进入仿真仍有效. memory display:记忆当前存储器区域的显示, 下次进入仿真仍有效. toolbar:记忆当前的工具条设置, 下次

54、进入仿真仍有效. 6)仿真目标器件驱动程序的选择:在目标器件选择中选择相应的器件,keil 自动选择 相应的仿真目标器件驱动程序.在 peripherals 菜单中会添加该器件的外设观察菜单,点 击进入后出现浮动的观察窗口,可以进行观察和修改. 7)硬件仿真参数设置:设置硬件仿真的选项,点击 settings 进入对话框. 8)运行:run,全速运行,遇到断点停下. 9)退出仿真状态:点击菜单 debug-start/stop debug session,退出仿真. 武汉工业学院 2007 毕业论文 24 4.7 分析与说明分析与说明 重要的时序数据 在nrf905 工作时必须遵守下面的时序。

55、 器件模式切换时间 表4-3:器件模式切换时间 nrf905 时序最大值最大值 pwr_dwn st_by 模式 3ms stby tx shockburst 模式 650us stby rx shockburst 模式 650us tx shockburst tx shockburst 模 式 550us rx shockburst rx shockburst 模 式 550us 备注:1) rx to tx 或tx to rx 模式转换可以不必重新编程配置寄存器。相同的 频率通道被保持。 nrf905的发射功率为+10dbm。 通信收发的控制约定 按键 显示 发送数据约定 键1 on 第一

56、个字节为#55h 键2 off 第一个字节为#0aah 键3 on 第二个字节为#55h 键4 off 第二个字节为#0aah 1 1)shockburstshockburst txtx 模式时序模式时序 图4-4:从standby 模式到shockburst tx 模式时序图 当一个数据包传输完成时,器件自动进入standby 模式,并且等待下一个trx_ce 武汉工业学院 2007 毕业论文 25 脉冲,如果自动重发功能被允许,数据包将连续不断地传输,直到trx_ce 变低。 2 2)shockburstshockburst rxrx 模式时序模式时序 图4-5: 从standby 模式到

57、shockburst rx 模式时序图 数据就绪(dr) 信号被置高后一个有效的数据包已经存在于接收寄存器中。数据 包可以在接收模式, standby 模式或powrdown 模式下被读出,数据包被读出后, 数据就绪(dr )信号和地址匹配信号(am)被复位为低。 3)spi 时序图 图4-6:spi 读操作 武汉工业学院 2007 毕业论文 26 图4-6:spi 写操作 4) 硬件调试后,将调试好的软件通过烧写器写至 mcu,调试通过后,对设计完 成的系统,通电后,操作独立式键盘的五个按键,调试结果如下表所示: 表 4-4:程序调试结果 操作的按键lcd 显示情况 键 1第一行显示“on”

58、 键 2第一行显示“off” 键 3第二行显示“on” 键 4第二行显示“off” 键 1 后按键 5第一行显示“on” 第三行显示“send” 稍后显示 “ok” 键 4 后按键 5第一行显示“off” 第三行显示“send” 稍后显示 “ok” 从上表 4-4 中我们可以看出,实际结果和理论是相一致的,通过键盘可以方便 地对数据进行远距离的传输,达到了预期的目的。 5) 调制 nrf905 的调制采用高斯频移键控(gfsk), 调制在100kbps 频率偏离在50khz, 高斯频移键控(gfsk)调制较普通的频移键控在更宽的带宽传输连接有效。数据在内 部进行曼切斯特编码(tx) 和曼切斯特

59、解码(rx)。就是说,有效的符号连接速率 是50kbps 通过采用内部曼切斯特编解码,微控制器不需要制定编解码规则。 6)注意事项 在spi的应用系统中,为避免由于硬件设计的不合理,导致spi通信不正常(传输 数据出错或其他情况),可以适当降低spi总线的传输速率,或者调节spi时钟极性 及相位,以使传输稳定。 武汉工业学院 2007 毕业论文 27 结结 束束 语语 本文采用 nrf905 通过 spi 和单片机 lpc932 进行数据传送,通过 shockbursttm 收发模式,基本实现无线数据的发送与接收的功能。 其实现过程可概括如下: 采集数据时,在检测到 eoc 脚的跳变后,单片机

60、读入转换好的数据,接着配置给 nrf905 的发射数据寄存器。配置好发射数据的 nrf905 要进行内部数据处理(如 crc 校验码的产生等) ,之后单片机启动发射,在 dr 引脚配置高时,发射结束。随 后,芯片要转为接收状态,等待应答。若等待应答时,dr 脚配置为 1,则收到了一 个正确的数据,在确认其正确后,可以在检测是否有后续数据,若无则返回,重复 过程。若有,单片机则按照所收到的数据进行调节。 毕业设计从开始的设计方案的选择、开题报告、编程调试这样一步一步地走过来, 到现在马上要进行答辩了。这几个月来,本设计的理论基础性很强,包罗了很多学 科的各种基础理论和常识理论。通过这次设计不仅使

温馨提示

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

最新文档

评论

0/150

提交评论