




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*实践教学*学院2013年秋季学期嵌入式系统课程设计题目:基于嵌入式的室内环境信息采集控制演示系统设计专业班级:计算机科学与技术(物联网工程方向)姓名:学号:指导教师:成绩:目录 TOC o 1-5 h z HYPERLINK l bookmark12 o Current Document 题目:基于嵌入式的室内环境信息采集控制演示系统设计.1目录2 HYPERLINK l bookmark14 o Current Document 摘要3关键词3前言3系统分析及其设计4一、基本原理:4二、系统方案设计5三、总体设计7四、系统测试32总结32参考文献33致谢34基于嵌入式的室内环境信息采集控制
2、演示系统设计摘要基于嵌入式的无线传感网络是多学科的高度交叉,知识的高度集成的前沿热点研究领域。它通过各类集成化的微型传感器协作地实时监测,感知和采集各种环境或监测对象的信息,这些信息通过无线方式被发送,并以自组多跳的网络方式传送到用户终端无线传感器网络的特性决定了其不需要较高的传输带宽,而要求较低的传输延时和极低的功率消耗。IEEES0215.4/ZigBee技术是近年来通信领域中的研究热点,具有低成本、低功耗、低速率、低复杂度的特点和高可靠性、组网简单、灵活等优势,逐渐成为无线传感器网络事实上的国际标准。此次课设设计并实现了用无线传感器网络构成的分布式温度湿度监控系统。关键词:嵌入式、信息采
3、集、ZIGBEE串口通信刖百嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可定制,适用于不同应用场合,对功能,可靠性,成本,体积,功耗有严格要求的专用计算机系统1。随着生活水平的提高和科学技术发展的需求,人类对环境信息的感知上有了更高的要求,在某些特殊工业生产领域和室内存储场合对环境要求显得特别苛刻;随着嵌入式技术的发展,为环境环境检测提供了更进一步的保障。基于嵌入式的环境信息采集系统包含感知层、传输层、应用层三个层面;传输层常见的有温湿度、烟感、一氧化碳、压力等嵌入式传感器模块,传输层包括有线通信和无线通信两部分,应用层包括各种终端。在室内环境监测领域,以嵌入式技术为基础,结合ZigB
4、ee技术可以实现、准确、完整、可靠的反应环境信息,做到实时监控。系统分析及其设计一、基本原理:温度传感器将被测点的温度采集后输出的模拟信号逐步送往放大电路、低通滤波器以及A/D转换器(即信号调理电路),然后再单片机的控制下将A/D转换器输出的数字信号传送到无线收发芯片中,并通过芯片的调制处理后由芯片内部的天线发送到上位机机监测软件上,在上位机模块上,发来的数据由单片机控制的无线收发芯片接收并解调,最后通过接口芯片发送到PC机中进行显示和处理。温度传感器被用在终端节点上,当上电后,温度传感器就是能够获取环境中某个地方温度的敏感元器件,它可以将环境中的温度或者是与温度相关的参量信息转换成电信号,我
5、们可以根据这些电信号的强弱来识别被测点在环境中的温度数据。二、系统方案设计1、系统设计需求湿度传感器和温度传感器采集到数据后,通过给RS232串口增加无线传输功能,替代设备电缆线进行无线传输,无线温度采集系统改变了传统有线的数据采集系统搭建布线困难,监测区域受限等诸多不足。要求设计的短距离无线通信系统具有功耗少,性价比高,系统维护快捷方便,而且通过在传感器模块上添加FLASH存储设备,使得数据采集工作能够摆脱对监测过程网络辐射范围的限制,可应用到许多的场合更好的改善采集工作的便捷行。通过与其他通信技术(如GSMGPRS的无缝接合,能够实现采集数据的远程传输,满足对数据采集区域的远程监控串口传输
6、设计为双向全双工,无硬件流控制,强制允许OTA侈条)时间和丢包重传。2、系统方案设计方案一:飞思卡尔公司(Freescale)的MC13193芯片搭载了满足IEEE802.15.4标准的射频信号传输与接收的调制解调设备。这类功能完善的双向2.4GHz频段的收发设备能够融合到ZigBee技术之中。MC13193包含低噪放大器,10mW勺功率增强器,压控振荡器,电源供应调节模块,所有频段编码和解码模块,包括可以转换和控制数据的发送与接收串行外围接口(SPI)中断请求输出。采用O-QPSK的调制方式,最大传输速率为250kb/s。搭配高性能的微处理器一起使用,MC13193可以提供低成本且高效率的短
7、距离数据传输解决方案。MC13193和MCU两者采用串彳f外围接口(SPI)连接,因此可以保证飞思卡尔庞大产品系列中的任意一款MCUB能与之匹配使用。方案二:选择TI公司的2.4GHz片上系统解决方案CC2530CC2530是用于IEEES02.15.4、Zigbee和RF4CES用的一个片上系统解决方案,它能以较低的总成本建立强大的网络节点。CC253睇合了先进的RF收发器性能,业界标准的增强型8051内核,使操作更容易,具备不同的运行模式,尤其适用于低功耗的系统需求。3、系统方案选择通过对比以上两种方案开发的难易程度、开发周期和现有的实验环境我们选择方案二。无线温度采集系统改变了传统有线的
8、数据采集系统搭建布线困难,监测区域受FM等诸多不足。ZigBee这种新兴的短距离无线通信系统具有功耗少,性价比高,系统维护快捷方便,而且通过在传感器模块上添加FLASH存储设备,使得数据采集工作能够摆脱对监测过程网络辐射范围的限制2,可应用到许多的场合更好的改善采集工作的便捷行。通过与其他通信技术(如GSMTGPRS的无缝接合,能够实现采集数据的远程传输,满足对数据采集区域的远程监控。一般以ZigBee技术为核心的无线温度采集系统的工作过程为:协调器节点首先应搭建网络,等待各自终端采集节点的入网请求;终端节点经过验证加入网络后,把温度传感器采集到的数据通过无线网络上传传输给协调器节点;协调器节
9、点接收到数据包后,进行数据包解析,并通过串口将温度信息以及子节点地址等有效信息存储并显示在监控界面上。三、总体设计无线传感器温度测量系统主要由单个ZigBee协调器、单部PC机和放置在各处的温度采集节点一ZigBee终端设备组成。ZigBee协调器与各个终端节点形成了一个ZigBee星型网络。整个无线温度采集系统的拓扑结构图如图1所示。各处的温度采集节点一ZigBee终端设备组成。CC2530芯片的有效通信半径为100m时,终端节点可以安置在以协调器为中心100m半径范围内。终端数据采集节点的结构较为简化,仅由一个CC2530模块,Flash存储,2节1.5V电池和温度传感器组成,各个终端节点
10、被初始化为无信标网络中的终端设备。终端设备上电复位后,便启动搜索指定信道上的ZigBee协调器,并发送连接请求,终端设备在成功入网后,将被赋予一个16位短地址,在以后网络中的通信都以这个16位的短地址作为节点的标识;启动休眠定时器,间隔10秒钟唤醒一次,醒来后使用一种简单的非时隙CSMA-CA通过竞争机制取得信道使用权,自己向协调器节点发送请求数据。利用模块上的温度传感器模块检测环境温度,并上传给协调器节点,然后立即再次进入休眠状态,最大限度地减少能耗,延长终端节点电源续航时间,同时也可以延伸采集范围,即利用ZigBe网络的自组织性我们可以携带轻巧的终端数据采集节点到实际测量区域完成数据采集工
11、作,如果超出了无线网络可以支持的传输范围,那可以将数据暂时存储在Flash存储器中。网络中的协调器节点负责搜集各温度采集节点的信息,并将信息快速的通过RS232串口按事先定义好的格式上传PC机,随即解析并显示出来。1、总体设计框图如下:ZigBec温度采窜 集节点&图1无线温湿度采集系统框图2、硬件设计实物图如下:2.1CC2530邮票孔节点模块2.2无线节点模块三 C21%53V ”5日2.3温湿度采集模块3、温湿度监测芯片说明SHT10说明SHT1健一款高度集成的温度湿度传感器芯片,提供全标定的数字输出。它采用专利的COMSe做术,确保了传感器具有极高的可靠性与卓越的长期稳定性。传感器包括
12、包括一个电容性聚合体测湿敏感元件、一个能隙材料制成的测温元件3,并在同一芯片上,与14位的A/D转换器以及串行接口电路进行连接。SH10引脚特性如下:VddGNDuC(master)DATASCKSHT1x(slave)Vdd2.45.5V典型应用电路电源引脚SHT10的供电电压为2.45.5V。传感器上电后,要等待11ms以越过“休眠”状态。在此期间无需发送任何指令。电源引脚(VDDGND之间可tf加一个100nF的电容,用以去耦滤波。串行接口(两线双向)SHT10的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;但与I2C接口不兼容.串行时钟输入(SCK)SCKffl于微处理器
13、与SHTxQ间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SC颁率。串行数据(DATA)DATA三态门用于数据的读取。DAT罐SCK时钟下降沿之后改变状态,并仅在SCK寸钟上升沿有效。数据传输期间,在SCK寸钟高电平时,DATA、须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻(例如:10kQ)将信号提拉至高电平(参见图2)。上拉电阻通常已包含在微处理器的I/O电路中。3.1.5、串行时钟输入(SCK)SCKffl于微处理器与SHTxQ间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SC颁率。串行数据(DATA)DATA三态门用于数据的读取。
14、DAT罐SCK时钟下降沿之后改变状态,并仅在SCK寸钟上升沿有效。数据传输期间,在SCK寸钟高电平时,DATA、须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻(例如:10kQ)将信号提拉至高电平(参见图2)。上拉电阻通常已包含在微处理器的I/O电路中。测量时序(RH和T)发布一组测量命令(0000010T表示相对湿度RH00000011,表示温度T)后,控制器要等待测量结束。这个过程需要大约11/55/210ms,分别对应8/12/14bit测量。确切的时间随内部晶振速度,最多有士15腺化。SHTxxffi过下拉DATA1低电平并进入空闲模式,表示测量的结束
15、。控制器在再次触发SCK寸钟前,必须等待这个“数据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。接着传输2个字节的测量数据和1个字节的CRCt偶校验。uC需要通过下拉DAT朋低电平,以确认每个字节。所有的数据从MSB开始,右值有效(例如:对于12bit数据,从第5个SCK寸钟起算作MSB而又t于8bit数据,首字节则无意义)。用CRCt据的确认位,表明通讯结束。如果不使用CRC-眼验,控制器可以在测量值LSB后,通过保持确认位ack高电平,来中止通讯。在测量和通讯结束后,SHTxx自动转入休眠模式。通讯复位时序如果与SHTxx通讯中断,下列信号时
16、序可以复位串口:当DATA保持高电平时,触发SCK寸钟9次或更多。在下一次指令前,发送一个“传输启动”时序。这些时序只复位串口,状态寄存器内容仍然保留。datatr TOC o 1-5 h z IIITransmissionStartSCK工久III,通讯复位时序图4、CC253CB明简介CC2530是用于2.4-GHzIEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(So。解决方案。它能够以非常低的总的材料成本建立强大的网络节点。CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU系统内可编程闪存,8-KBRAM和许多其它强大的功能。CC25
17、30有四种不同的闪存版本:CC2530F32/64/128/256,分另U具有32/64/128/256KB的闪存。CC2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗。CC2530F256结合了德州仪器的业界领先的黄金单元ZigBee协议栈(Z-Stack?),提供了一个强大和完整的ZigBee解决方案。CC2530F64结合了德州仪器的黄金单元RemoTI更好地提供了一个强大和完整的ZigBeeRF4CE远程控制解决方案。引脚描述引脚名称引脚引脚类型描述AVDD1 28 电源(模拟)2-V 3.6-V模拟电源连接AVDD2 27
18、电源(模拟)2-V 3.6-V模拟电源连接AVDD3 24 电源(模拟)2-V 3.6-V模拟电源连接AVDD4 29 电源(模拟)2-V 3.6-V模拟电源连接AVDD5 21 电源(模拟)2-V 3.6-V模拟电源连接AVDD6 31 电源(模拟)2-V 3.6-V模拟电源连接DCOUPL0电源(数字)1.8V数字电源去耦。不使用外部电路供应。DVDD1 39电源(数字)2-V - 3.6-V 数字电源连接DVDD2 10电源(数字)2-V - 3.6-V 数字电源连接GND-接地接地衬垫必须连接到一个坚固的接地面。GND 1 2, 3,4未使用的引脚连接到GNDP0 0 19数字I/O端
19、口0.0P0 1 18数字I/O端口0.1P0 2 17数字I/O端口0.2P0 3 16数字I/O端口0.3P0_4 15 数字 I/O 端口 0.4P0_5 14 数字 I/O 端口P0_6 13 数字 I/O 端口P0_7 12 数字 I/O 端口P10 11数字I/O端口0.50.60.71.0-20-mA驱动能力P1_1 9数字I/O 端口 1.1-20-mA驱动能力P1_2 8 数字 I/O 端口 1.2P1_3 7 数字 I/O 端口 1.3P1_4 6 数字 I/O 端口 1.4P1_5 5 数字 I/O 端口 1.5P1_6 38数字P1_7 37数字P2_0 36数字P2_
20、1 35数字P2 2 34数字I/O 端口 1.6I/O 端口 1.7I/O 端口 2.0I/O 端口 2.1I/O 端口 2.2P2_333数字I/O模拟端口2.3/32.768kHzXOSCP2_432数字I/O模拟端口2.4/32.768kHzXOSCRBIAS30模拟I/O参考电流的外部精密偏置电阻RESET_N2吸字输入复位,活动到低电平RF_N26RFI/ORX期间负RF输入信号到LNARF_P25RFI/ORX期间正RF输入信号到LNAXOSC_Q122期I/O32-MHz晶振引脚1或外部时钟输入XOSC_Q22I/O32-MHz晶振引脚2模块说明CC2530芯片系列中使用的80
21、51CPU内核是一个单周期的8051兼容内核。它有三种不同的内存访问总线(SFRDATA和CODE/XDATA单周期访问SFRDATA和主SRAM它还包括一个调试接口和一个18输入扩展中断单元。中断控制器总共提供了18个中断源,分为六个中断组,每个与四个中断优先级之一相关。当设备从活动模式回到空闲模式,任一中断服务请求就被激发。一些中断还可以从睡眠模式(供电模式1-3)唤醒设备。内存仲裁器位于系统中心,因为它通过SFR总线把CPU和DMA控制器和物理存储器以及所有外设连接起来。内存仲裁器有四个内存访问点,每次访问可以映射到三个物理存储器之一:一个8-KBSRAM闪存存储器和XREG/SFR寄存
22、器。它负责执行仲裁,并确定同时访问同一个物理存储器之间的顺序。8-KBSRAM映射至UDAT解储空间和部分XDAT陆储空间。8-KBSRA谑一个超低功耗的SRAM即使数字部分掉电(供电模式2和3)也能保留其内容。这是对于低功耗应用来说很重要的一个功能。32/64/128/256KB闪存块为设备提供了内电路可编程的非易失性程序存储器,映射到XDATA存储空间。除了保存程序代码和常量以外,非易失性存储器允许应用程序保存必须保留的数据,这样设备重启之后可以使用这些数据。使用这个功能,例如可以利用已经保存的网络具体数据,就不需要经过完全启动、网络寻找和加入过程。时钟和电源管理数字内核和外设由一个1.8
23、-V低差稳压器供电。它提供了电源管理功能,可以实现使用不同供电模式的长电池寿命的低功耗运行。有五种不同的复位源来复位设备。外设CC2530包括许多不同的外设,允许应用程序设计者开发先进的应用。调试接口执行一个专有的两线串行接口,用于内电路调试。通过这个调试接口,可以执行整个闪存存储器的擦除、控制使能哪个振荡器、停止和开始执行用户程序、执行8051内核提供的指令、设置代码断点,以及内核中全部指令的单步调试。使用这些技术,可以很好地执行内电路的调试和外部闪存的编程。设备含有闪存存储器以存储程序代码。闪存存储器可通过用户软件和调试接口编程。闪存控制器处理写入和擦除嵌入式闪存存储器。闪存控制器允许页面
24、擦除和4字节编程。I/O控制器负责所有通用I/O引脚。CPLW以配置外设模块是否控制某个引脚或它们是否受软件控制,如果是的话,每个引脚配置为一个输入还是输出,是否连接衬垫里的一个上拉或下拉电阻。CPU中断可以分别在每个引脚上使能。每个连接到I/O引脚的外设可以在两个不同的I/O引脚位置之间选择,以确保在不同应用程序中的灵活性。系统可以使用一个多功能的五通道DMAS制器,使用XDAT的储空间访问存储器,因此能够访问所有物理存储器。每个通道(触发器、优先级、传输模式、寻址模式、源和目标指针和传输计数)用DMAB述符在存储器任何地方配置。许多硬件外设(AES内核、闪存控制器、USART定时器、ADC
25、接口)通过使用DMA空制器在SFR或XREG地址和闪存/SRAM之间进行数据传输,获得高效率操作。定时器1是一个16位定时器,具有定时器/PWM功能。它有一个可编程的分频器,一个16位周期值,和五个各自可编程的计数器/捕获通道,每个都有一个16位比较值。每个计数器/捕获通道可以用作一个PWM输出或捕获输入信号边沿的时序。它还可以配置在IR产生模式,计算定时器3周期,输出是ANDed定时器3的输出是用最小的CPU互动产生调制的消费型IR信号。MACt时器(定时器2)是专门为支持IEEE802.15.4MAC或软件中其他时梢的协议设计。定时器有一个可配置的定时器周期和一个8位溢出计数器,可以用于保
26、持跟踪已经经过的周期数。一个16位捕获寄存器也用于记录收到/发送一个帧开始界定符的精确时间,或传输结束的精确时间,还有一个16位输出比较寄存器可以在具体时间产生不同的选通命令(开始RX开始TX,等等)到无线模块。定时器3和定时器4是8位定时器,具有定时器/计数器/PWM功能。它们有一个可编程的分频器,一个8位的周期值,一个可编程的计数器通道,具有一个8位的比较值。每个计数器通道可以用作一个PWM出。睡眠定时器是一个超低功耗的定时器,计算32-kHz晶振或32-kHzRC振荡器的周期。睡眠定时器在除了供电模式3的所有工作模式下不断运行。这一定时器的典型应用是作为实时计数器,或作为一个唤醒定时器跳
27、出供电模式1或2。ADC支寸I7至U12位的分辨率,分别在30kHz或4kHz的带宽。DC和音频转换可以使用高达八个输入通道(端口0)。输入可以选择作为单端或差分。参考电压可以是内部电压、AVDD或是一个单端或差分外部信号。ADC还有一个温度传感输入通道。ADC可以自动执行定期抽样或转换通道序列的程序。随机数发生器使用一个16位LFSR来产生伪随机数,这可以被CPU读取或由选通命令处理器直接使用。例如随机数可以用作产生随机密钥,用于安全。AES加密/解密内核允许用户使用带有128位密钥的AES算法加密和解密数据。这一内核能够支持IEEE802.15.4MAC安全、ZigBee网络层和应用层要求
28、的AES操作。一个内置的看门狗允许CC2530在固件挂起的情况下复位自身。当看门狗定时器由软件使能,它必须定期清除;否则,当它超时就复位它就复位设备。或者它可以配置用作一个通用32-kHz定时器。USART琳口USART1每个被配置为一个SPI主/从或一个UART它们为RX和TX提供了双缓冲,以及硬件流控制,因此非常适合于高吞吐量的全双工应用。每个都有自己的高精度波特率发生器,因此可以使普通定时器空闲出来用作其他用途。无线设备CC2530具有一个IEEE802.15.4兼容无线收发器。RF内核控制模拟无线模块。另外,它提供了MCUffi无线设备之间的一个接口,这使得可以发出命令,读取状态,自动
29、操作和确定无线设备事件的顺序。无线设备还包括一个数据包过滤和地址识别模块。5、软件设计在一个ZigBee应用系统中,光有硬件是没有用的,还需要与之相匹配的软件程序才能真正的能够使用。无线温度采集系统的软件设计主要包括ZigBee节点间的通信程序,协调器节点组网程序。5软件开发环境的选择ZigBee协议栈:ZigBee2007ZigBee2007的开发及下载工具:TI公司的IAR软件5.2、无线接收串口转发流程图如下:5.3、串口接收无线转发流程图如下:SerialApp_CallBack6.源代码如下:#includeZComDef.h#includeOSAL.h#includeOSAL_Nv
30、.h#includeOnBoard.h#includeZMAC.h#ifndefNONWK#includeAF.h#endif/*Hal*/#includehal_lcd.h#includehal_led.h#includehal_adc.h#includehal_drivers.h#includehal_assert.h#includehal_flash.h#includestdio.h/MaximunnumberofVddsamplescheckedbeforegoon#defineMAX_VDD_SAMPLES3/电压检测#defineZMAIN_VDD_LIMITHAL_ADC_VDD
31、_LIMIT_4正常电压极限值externboolHalAdcCheckVdd(uint8limit);/设备启动前的芯片电压检测函数staticvoidzmain_dev_info(void);staticvoidzmain_ext_addr(void);staticvoidzmain_vdd_check(void);#ifdefLCD_SUPPORTEDstaticvoidzmain_lcd_init(void);#endif/*fnmainbriefFirstfunctioncalledafterstartup.returndontcare/intmain(void)/Turnoffin
32、terruptsosal_int_disable(INTS_ALL);/关闭所有中断EA=0/InitializationforboardrelatedstuffsuchasLEDsHAL_BOARD_INIT();/用而IO等/ Make sure supply voltage is high enough to run zmain_vdd_check();/ Initialize board I/OInitBoard( OB_COLD );/ Initialze HAL drivers HalDriverInit();/括LCD/ Initialize NV System osal_nv_
33、init( NULL );/ Initialize the MACZMacInit();/ Determine the extended address zmain_ext_addr();/ Initialize basic NV items初始化系统时钟、LED所使检测芯片电压是否正常初始化LED的IO初始化芯片各个硬件模块(包初始化FLASH#储初始化MAC1形成节点MAC!址zgInit();/#ifndef NONWK初始化一些非易失变量/SincetheAFisntatask,callitsinitializationroutineafInit();/初始化应用框架层#endif/I
34、nitializetheoperatingsystemosal_init_system();/初始化操作系统/Allowinterruptsosal_int_enable(INTS_ALL);/使能全部中断/FinalboardinitializationInitBoard(OB_READY);/初始化按键/Displayinformationaboutthisdevicezmain_dev_info();/在液晶上显示设备IEEE信息/*DisplaythedeviceinfoontheLCD*/#ifdefLCD_SUPPORTEDzmain_lcd_init();/在LCD上显示该设备的
35、信息#endif#ifdefWDT_IN_PM1/*IfWDTisused,thisisagoodplacetoenableit.*/WatchDogEnable(WDTIMX);#endifosal_start_system();/NoReturnfromherereturn0;/Shouldntgethere./*fnzmain_vdd_checkbriefCheckiftheVddisOKtoruntheprocessor.returnReturnifVddisok;otherwise,flashLED,thenreset*/staticvoidzmain_vdd_check(void)
36、/检测设备电压一一uint8vdd_passed_count=0;booltoggle=0;/RepeatgettingthesampleuntilnumberoffailuresorsuccesseshitsMAX/thenbasedonthecountvalue,determineifthedeviceisreadyornotwhile(vdd_passed_countMAX_VDD_SAMPLES)/电压正常情况下,检查3次if(HalAdcCheckVdd(ZMAIN_VDD_LIMIT)/设置电压正常的极限值并使用AD检测电压vdd_passed_count+;/Keeptrack#
37、timesVddpassesinarowMicroWait(10000);/Wait10mstotryagainelsevdd_passed_count=0;/ResetpassedcounterMicroWait(50000);/Wait50msMicroWait(50000);/Waitanother50mstotryagain/*toggleLED1andLED2*/if(vdd_passed_count=0)一一if(toggle=!(toggle)HAL_TOGGLE_LED1();elseHAL_TOGGLE_LED2();/*turnoffLED1*/HAL_TURN_OFF_L
38、ED1();HAL_TURN_OFF_LED2();/*fnzmain_ext_addr*briefExecuteaprioritizedsearchforavalidextendedaddressandwritetheresultsintotheOSALNVsystemforusebythe*system.TemporaryaddressnotsavedtoNV.inputparametersNone.outputparametersNone.returnNone.*/staticvoidzmain_ext_addr(void)一一uint8nullAddrZ_EXTADDR_LEN=0 x
39、FF,0 xFF,0 xFF,0 xFF,0 xFF,0 xFF,0 xFF,0 xFF;uint8writeNV=TRUE;/Firstcheckwhetheranon-erasedextendedaddressexistsintheOSALNV.if(SUCCESS!=osal_nv_item_init(ZCD_NV_EXTADDR,Z_EXTADDR_LEN,NULL)|(SUCCESS!=osal_nv_read(ZCD_NV_EXTADDR0,Z_EXTADDR_LEN,aExtendedAddress)|(osal_memcmp(aExtendedAddress,nullAddr,
40、Z_EXTADDR_LEN)一一一/Attempttoreadtheextendedaddressfromthelocationonthelockbitspage/wheretheprogrammingtoolsknowtoreserveit.HalFlashRead(HAL_FLASH_IEEE_PAGE,HAL_FLASH_IEEE_OSET,aExtendedAddress,Z_EXTADDR_LEN);if(osal_memcmp(aExtendedAddress,nullAddr,Z_EXTADDR_LEN)一一一/Attempttoreadtheextendedaddressfro
41、mthedesignatedlocationintheInfoPage.if(!osal_memcmp(uint8*)(P_INFOPAGE+HAL_INFOP_IEEE_OSET),nullAddr,Z_EXTADDR_LEN)osal_memcpy(aExtendedAddress,(uint8*)(P_INFOPAGE+HAL_INFOP_IEEE_OSET),Z_EXTADDR_LEN);else/Novalidextendedaddresswasfound.uint8idx;#if!defined(NV_RESTORE)writeNV=FALSE;/Makethisatemporar
42、yIEEEaddress#endif/*Attempttocreateasufficientlyrandomextended*addressforexpediency.*Note:thisisonlyvalid/legalinatestenvironment*andmustneverbeusedforacommercialproduct.*/for(idx=0;idx(Z_EXTADDR_LEN-2);)uint16randy=osal_rand();aExtendedAddressidx+=LO_UINT16(randy);aExtendedAddressidx+=HI_UINT16(ran
43、dy);/Next-to-MSBidentifiesZigBeedevicetype.#ifZG_BUILD_COORDINATOR_TYPE&!ZG_BUILD_JOINING_TYPEaExtendedAddressidx+=0 x10;#elifZG_BUILD_RTRONLY_TYPEaExtendedAddressidx+=0 x20;#elseaExtendedAddressidx+=0 x30;#endif/MSBhashistoricalsignficance.aExtendedAddressidx=0 xF8;if(writeNV)(void)osal_nv_write(ZC
44、D_NV_EXTADDR,0,Z_EXTADDR_LEN,aExtendedAddress);/SettheMACPIBextendedaddressaccordingtoresults/fromabove.(void)ZMacSetReq(MAC_EXTENDED_ADDRESS,aExtendedAddress);/*fnzmain_dev_infobriefThisdisplaystheIEEE(MSBtoLSB)ontheLCD.inputparametersNone.outputparametersNone.returnNone.*/staticvoidzmain_dev_info(
45、void)一一#ifdefLCD_SUPPORTEDuint8i;uint8*xad;uint8lcd_bufZ_EXTADDR_LEN*2+1;uint8num;chars16;/Displaytheextendedaddress.xad=aExtendedAddress+Z_EXTADDR_LEN-1;for(i=0;i4)&0 x0F;lcd_bufi+=ch+(ch10)?0:7);ch=*xad&0 x0F;lcd_bufi+=ch+(ch10)?0:7);lcd_bufZ_EXTADDR_LEN*2=0;/HalLcdWriteString(IEEE:,HAL_LCD_LINE_1
46、);HalLcdWriteString(char*)lcd_buf,HAL_LCD_LINE_2);/osal_nv_read(ZCD_NV_PANID,0,2,&zgConfigPANID);sprintf(s,(char*)%d%d%d%d%d(UINT16)(uint16)zgConfigPANID/10000),(UINT16)(uint16)zgConfigPANID%10000/1000),(UINT16)(uint16)zgConfigPANID%1000/100),(UINT16)(uint16)zgConfigPANID%100/10),(UINT16)(uint16)zgC
47、onfigPANID%10);i=0;doif(si=0)si=;num=1;elsenum=0;i+;while(num);GUI_SetColor(1,0);/GUI_LoadBitmap(80,0,(uint8*)Logo,48,30);/向显示缓冲区加载一幅128X64点阵的单色位图/LCM_Refresh();GUI_PutString5_7(20,8,OURS-CC2530);GUI_PutString5_7(5,22,IEEEAddress:);GUI_PutString5_7(5,32,(char*)lcd_buf);GUI_PutString5_7(5,44,PANID:);GUI_PutString5_7(40,44,(char*)s);/显示结果LCM_Refresh();#endif#ifdefLCD_SUPPORTED/*fnzmain_lcd_initbriefInitializeLCDatstartup.retur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家务服务员2023练习试卷附答案
- 2025年每年中考试题及答案
- 工业机器人1+x练习试卷附答案
- 2025年自然地理试题及答案
- 2025年期末主题班会标准教案
- 2025年湘江医院面试试题及答案
- 2025年旅游大数据考试题及答案
- 2025年酒店主管考核试题及答案
- 2025年运营招聘测试题及答案
- 2025年监狱囚犯考试试题及答案
- 设备日常点检标准作业指导书
- 国际高中(发达地区)办学方案
- 2023年北京春季流感中医药防治方案(试行)、春季流感治疗相关中成药推荐目录
- GB/T 3624-2010钛及钛合金无缝管
- 装配式建筑预制混凝土构件连接方式全解课件
- 光伏发电工程达标投产创优工程检查记录
- 领导干部要树立正确的价值观、权力观、事业观课件
- 体育社会学(第一章)卢元镇第四版课件
- 建筑消防性能化设计评估课件
- 语文主题学习整本书阅读指导课件
- 职业教育课堂教学设计(全)课件
评论
0/150
提交评论