首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

主流无线单片机CC1010/nRF24E1/nRF9E5一网打尽[原创]

主流无线单片机CC1010/nRF24E1/nRF9E5一网打尽[原创]

无线单片机CC1010/nRF24E1/nRF9E5一网打尽 作者 无线龙 www.c51rf.com 摘要:介绍如何使用C51RF-2无线单片机开发系统,开发三种无线SoC (片上系统)cc1010/nRF24E1/nRF9E5,如何评估芯片,无线通讯软件库使用,快速调试,发现和排除在高频通讯中的软件和硬件存在的问题,软件加密等,给出温度无线传感器网络产品开发实例、库的使用和程序源代码等。 关键词 无线SoC 51系列 开发工具 一、 无线SoC单片机开发面对的困难和解决方案 对较少接触高频设计的电子工程师而言,要快速完成一个具有无线通讯接口的系统开发/设计是一件具有挑战性的工作,这是因为: 1/高频系统工作在300MHZ –2.4GHZ的高频频段,对线路板设计,元件选择要求更严格; 2/高频设计需要工作在GHZ的无线测试设备,价格昂贵;而没有这样的设备,很难直观地观察系统工作状态; 3/微处理器和其他数字电路对高频电路的相互干扰; 4/无线通讯在空气中,容易被干扰,需要一系列软件处理,包括纠错,防止碰撞,通讯协议处理等等,而开发这些软件,需要大量时间和经验。 但是,射频SoC单片机 (简称无线单片机)的出现,为不具备无线通讯经验和高频电路经验的电子工程师,提供了非常简单的解决方案。这是因为: 1/专门的设计,将全部的高频部分电路集成到了电路内部,从无线单片机到天线之间,只有简单的滤波电路,系统设计者完全不必进行任何高频电路设计; 2/采用特殊设计,使8051的微处理器和高频线路间,实现完美的配合,数字电路对高频通讯的影响减低到最小; 3/设置了高频通讯的若干寄存器,将高频通讯的处理,简化为对寄存器的简单操作处理,即你只需要对这些寄存器进行操作,就可以轻松完成无线通讯功能。 综上所述,采用无线单片机进行无线通讯设计,是开发低成本、低功耗无线通讯应用系统的理想方案之一。当然,我们也需要说明,仅仅只有无线单片机的芯片,还远远不够,因为要高效率地完成以无线单片机为核心的应用系统的设计工作,还必须借助各种无线单片机开发工具来实现。 下面就举例说明如何使用开发工具快速完成一个无线应用产品的开发工作。 二、 评估无线单片机芯片,确定技术方案 如果我们计划开发一个无线传感器的产品,需要采用无线单片机来实现温度信号的采集,用每个无线单片机作为一个无线节点,每个节点工作在电池供电的状态,希望电池寿命为2-3年,几十个无线节点间通过无线网络协议进行通讯,最后传输到PC机中,进行分析处理(这个系统可以用于环境、工厂、农作物长期温度监控等应用)。 为了开始进行系统设计,我们必须了解和选择确定哪种无线单片机适合,通过上网查询,目前无线单片机有许多种,但我们希望选择我们熟悉的8051内核的单片机,因为我们熟悉keil 的C51,同时熟悉8051的结构。 8051兼容的无线单片机目前全世界共有4种,但主流的是chipcon 公司的cc1010, Nordic 公司的nRF24E1/nRF9E5。 通过查阅资料,我们发现这三种无线单片机各有自己的特点,chipcon公司的cc1010有32k存储器,三通道A/D转换器,可以工作在300-1000mhz, 最小的功率消耗仅0.2uA;Nordic的nRF24E1工作在2.4GHZ,nRF9E5工作在433MHZ和868-930MHZ,虽然Nordic的无线单片机存储器较小,只有4K,但由于采用较好的电源管理方式和快速的SHOCKBURST技术,且价格较cc1010低一些。 虽然,三种无线单片机都可以用在我们的系统,但我们没有亲自接触过这三种无线单片机,我们不好简单下结论,我们希望能对三种无线单片机进行测试,如果买原厂的开发/评估系统,价格较贵,周期较长,所以,我们通过www.c51rf.com, 联系购买了C51RF-2型无线单片机开发系统,这是市面上可以立即买到现货的国内产品,可以用一个开发系统完成对上述三种无线单片机的开发、评估和测试;我们同时选购了cc1010/nRF24E1/nRF9E5三种参考设计模块; C51RF-2是一种非常容易使用的无线单片机开发系统,只需要一个串口,连接到PC机,即可以在KEIL 开发环境下,进行程序下载、在线仿真运行、单步、断点等;同时,针对高频设计的特殊要求进行了特殊设计,能够保证开发系统工作时不干扰无线单片机高频部分的工作,保证在实时高频通讯的环境下,进行软件跟踪、硬件调试。 我们将cc1010的参考设计模块通过10线电缆连接,接通5VDC电源,将开关设定到cc1010位置,简单的按下无线单片机开发系统DB键,便可以在KEIL下下载厂家提供的评估测试软件,进行实际无线通讯、通讯距离测试。 完成cc1010测试后,我们只需要更换连接到nRF24e1/nRF9E5目标系统,切换开关,就可以快速开始对nRF24e1/nRF9E5芯片评估测试。 通过测试,我们对三种无线单片机有了具体的认识,对其通讯距离,通讯速度,软件结构,功率消耗,外围接口等有了直接认识,考虑到我们设计无线网络通讯,需要较大的存储器来存储程序代码,而且chipcon提供了两个无线通讯软件的C51源代码库,同时已经提供了连接层的无线通讯协议C51源代码,方便我们进行网络层软件设计,所以,我们选择cc1010来设计我们的温度无线传感器网络。 三、 实例:温度无线传感器网络软件设计 为了加快开发的速度,我们直接采用C51RF-2提供的参考设计电路板,进行软件开发。 作为网络通讯的一种方案,我们的系统每一个温度传感器节点,在随机的时间间隔里通过A/D转换器得到对应的温度信息,并将温度信息广播出去,然后转入监听状态,如果收到其他节点的广播,也自动进行记录和转发,最后的信息汇集到连接PC的节点,记录、显示所有节点的温度信息。 开始我们的软件开发,我们并不需要从头开始,我们在keil下,打开chipcon提供的样板工程文件,选择温度广播,我们看到该样板工程文件已经包含了culLib/halLib两个完整的无线通讯库文件(也提供了这两个库的源代码),这两个库提供了所有无线通讯需要的功能,你的程序只要包括这样的语句: #include #include 你的软件就可以在这个库的高级的水平上开始工作,举例说明: 你需要发送一个包,包括序言,通讯标志,地址,数据,CRC效验等,你只需要下列两行语句,便全部完成了! // Transmit the temperature sppSend(&TXI); do { /*nothing*/ } while (sppStatus() != SPP_IDLE_MODE); 你需要接收一个包,包括序言,通讯标志,地址,数据,CRC效验等,你也只需要下列两行语句,便全部完成了! // Receive the packet (if any) YLED = LED_ON; sppReceive(&RXI); do { /*nothing*/ } while (sppStatus() != SPP_IDLE_MODE); YLED = LED_OFF; 具体的无线发送/接收,无线自动应答等复杂功能,通过调用两个库自动完成了。 更重要的是,在温度广播这样类似的样板中,全部高频部分的初始化,包括cc1010初始化,也全部现成,而且分成了你可以方便选择使用的频带 433/915/868MHZ,在样板程序中,还包括了无线收发所有的配置,即使你对cc1010高频部分结构不十分清楚,你也可以照样容易地进行上层软件开发。你要做的只是调用功能库就可以实现无线通讯了。 我们的温度无线传感器网络软件设计,只是直接在样板程序工程文件的基础上,进行了简单的修改,很快就完成了。 四、 快速调试查错,发现无线通讯中的问题 软件设计完成后,我们通过C51RF-2开发系统的10线电缆,连接到cc1010目标板(我们的温度无线传感器网络节点),使用KEIL UV2 的开始DEBUG功能,程序立即进行下载,并可以直接针对目标系统cc1010进行单步、断点、实时全速运行;如果有两台开发系统,便可以直接分别在两台PC KEIL 环境下,监视不同节点的实时无线通讯状态。 在KEIL DEBUG 的屏幕上,你可以看到所有的CC1010内部寄存器都可以实时被观察到,特别是无线通讯相关的高频寄存器,都可以观察到寄存器的变化,这其实是在动态观察高频部分的实际工作情况。 如果需要,你可以在程序执行的任何位置设置断点,或在断点后单步跟踪,以发现在无线通讯中的软件和硬件故障。 例如:其中一个节点没有定时发出自己的温度信号,我们立即在相邻的节点进行软件跟踪,在高频中断程序设置断点,观察RF寄存器的变化情况,我们发现问题是在相邻节点根本没有收到相应的数据包,我们跟踪没有发出信号的故障节点,却发现已经发送了包,检查线路板,发现天线部分有问题,更换后,问题解决。 通过开发系统的软件运行跟踪,我们成功的避免了购买昂贵的高频仪器设备,用低价格的无线单片机开发系统,照样完成了高频无线通讯的功能;也成功地将无线通讯转变为只是在软件方面进行设计工作。 五、 快速完成产品开发 温度无线网络传感器网络软件在开发系统上完成稳定运行后,软件代码已经存放在目标模块的cc1010内存中,只需要拔下仿真电缆,接上电池,就可以方便地进行无线通讯的距离测试,低功率消耗测试,多节点通讯无线通讯测试等。 无线测试工作完成后,我们依照参考设计模块的电路板布线,设计我们自己的电路板,安装零件,使用c51rf-2附带的光盘,快速下载产品化的软件,同时对cc1010软件代码进行全部加密,我们的无线温度传感器网络产品开发便全部完成了。 回顾开发的全部过程,虽然我们缺乏高频无线通讯方面的经验,但开发系统和无线单片机弥补了我们经验的不足,清除了无线开发工作中硬件和软件的门坎和障碍,使更多的电子工程师可以快速地进入无线的世界。
希望和更多的人交朋友
返回列表