当前位置:文档之家› zigBee实验报告

zigBee实验报告

ZIgBee学习心得

实验报告

项目名称基于无线传感器网络的采温实验专业班级软件1105

学号

姓名

目录

《计算机网络》............................................................................................... 错误!未定义书签。实验报告. (1)

一、实验目的 (3)

二、实验内容和报告简介 (3)

三、实验相关设备环境 (3)

四、实验内容 (6)

4.1.内容简介 (6)

4.2. 无线传感器网络采温系统实验 (7)

实验简介 (7)

4.2.2 工程结构简介 (8)

4.2.3 设备功能及网络拓扑结构介绍 (9)

4.2.4 main()函数和OSAL (9)

4.2.5 设备相关功能主要函数介绍 (13)

4.3 ZigBee协议和ZStack分析 (24)

4.3.1 ZigBee协议和ZStack简介 (24)

4.3.2 OSAL原理分析和实现 (25)

IEEE 802.15.规定的PHY层 (31)

IEEE 802.15.规定的MAC层 (34)

4.3.5 ZigBee2007的网络层。 (37)

4.3.6 ZigBee2007的应用层 (41)

五、实验结果 (42)

六、实验结论 (43)

七、实验小结 (43)

7.1 短距离无线通信网络的现状和发展 (43)

7.2 ZigBee通信技术的应用 (44)

7.3 学习ZigBee开发的心得体会 (44)

7.4 下一步可能的学习计划 (44)

实验《基于无线传感器网络的采温实验》

实验学时:1 实验地点:201 实验日期: 5.10

一、实验目的

1. 设计并实现一套无线传感器网络的采温系统。

2. 较为详细的分析ZigBee协议栈。

二、实验内容和报告简介

完成采集器、传感器设备的设计和实现。

对ZigBee2007协议和Zstack进行较为详细的分析。

三、实验相关设备环境

介绍了开发板、CC2530和协议栈

四、实验内容

第一部分详细描述了开发的工作,附上了关键代码和注释。

第二部分分析了ZIgBee协议操作系统,描述了其运行机制;以及PHY层、MAC 层、网络层、应用层。在网络层描述了其网络拓扑结构,并针对Ad-Hoc路由算法提出了一个我自己的一个想法。

五、实验结果

通过照片展示了实验效果。

六、实验结论

说明了温度数据偏差的原因。

六、实验小结

谈了些无线通信的现状;学习的心得,不足和未来的能力方向。

三、实验相关设备环境

1. 主要的硬件环境

ZigBee开发板(两个)本实验利用的开发板是在淘宝上买的。应该是一个小店参考TI公司产品生产的。

外形如图1所示:

图1:ZigBee开发板外形图

本开发板采用TI公司的CC2530芯片,外有晶振、RS232串口、按键、电源灯外围电路及元件。本实验利用CC2530芯片集成的片上温度传感器采集温度。

部分核心板电路如图2所示:

图2:部分核心板电路图

部分底板电路图如图3所示:

图3:部分底板电路图

CC2530芯片

CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 应用的一个真正的片上系统(SoC)解决方案。它能够以非常低的总的材料成本建立强大的网络节点。CC2530 结合了领先的RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其他强大的功能。CC2530 具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗。

图4:CC2530框图

CC2530 具有一个IEEE 802.15.4 兼容无线收发器。RF 内核控制模拟无线模块。另外,它提供了MCU 和无线设备之间的一个接口,这使得可以发出命令,读取状态,自动操作和确定无线设备事件的顺序。无线设备还包括一个数据包过滤和地址识别模块。

CC2530的硬件设计也支持ZigBee协议所要求的各种协议和算法。

2. 主要的软件环境

TI公司的。ZStack是TI公司为开发者提供的符合ZigBee2007的协议栈,是开发ZigBee 模块必不可少的环境(当然你也可以选择其他协议栈或自己开发一个协议栈)。ZStack是一个免费半开源的产品。

注:ZigBee协议是ZigBee联盟给出的一个短距离无线传输协议。

ZigBee协议栈是ZigBee协议的具体实现。

ZStack是TI公司开发的ZigBee协议栈。

四、实验内容

4.1.内容简介

本节内容主要分为以下两方面:1. 无线传感器网络采温系统实验 2. ZigBee协议

(ZigBee2007版,下同)和ZStack分析。

无线传感器网络采温系统实验部分是对本次开发的一个描述。在商业的ZigBee模块开发中是都利用了ZigBee协议栈,其为开发提供了必要的接口。开发者所做的代码工作主要是相关的硬件驱动和应用程序。本实验室基于TI官方实例SimpleAPI所做,并对这个实例进行了必要的改写。

虽然ZigBee协议栈为开发者提供了所需的API,使得开发者不必关心ZigBee协议的具体实现,便可开发出产品,但是要想更好的开发ZigBee产品,我想还必须对ZigBee协议和协议栈进行研究分析。本段内容的另一个部分便是对此的描述。

4.2. 无线传感器网络采温系统实验

4.2.1实验简介

本实验基于ZigBee网络设计了一个无线传感器网络,可以完成无线的采温功能。

设备类型简介:

协调器(作为采集器)

协调器是一个ZB网络的第一个开始的设备,或者是一个ZB网络的启动或建立网络的设备。协调器节点选择一个信道和网络标志符(也叫PAN ID),然后开始建立一个网络。协调器设备在网络中还可以有其他作用,比如建立安全机制、网络中的绑定的建立等等。

注意:协调器主要的作用是建立一个网络和配置该网络的性质参数。一旦这些完成,该协调器就如同一个路由器,网络中的其他操作并不依赖该协调器,因为ZB是分布式网络。

路由器(作为传感器)

一个路由器的功能有(1)作为普通设备加入网络(2)多跳路由(3)辅助其它的子节点完成通信。

终端设备(作为传感器)

为了维持网络最基本的运行,对于终端设备没有指定的责任。也就是说,在一个基本网络中,终端设备没有必不可缺少性。所以它可以根据自己功能需要休眠或唤醒,因此为电池供电设备。一般来说,该设备需要的内存较少(特别是内部RAM)

网络的拓扑结构

网状结构(无线mesh网络)

图5:网络拓扑结构图

黑色的为协调器节点,作为采集器,接收温度信息,并通过串口发送到PC机上。红色的和白色的为传感器节点,采集温度数据发送到采集器。红色的具有路由功能。网络从功能上讲是基于ad hoc 网络的,具有自组织,多跳等特点。因此可扩展性、健壮性都很有优势。

4.2.2 工程结构简介

工程结构如图5所示:

图6:工程的工作空间

说明:

APP(Application Programming):应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。

HAL(Hardware (H/W) Abstraction Layer):硬件层目录。

MAC:介质接入控制子层目录,包含了MAC 层的参数配置文件及其MAC 的LIB 库的函数接口文件。实现的功能有:1、能产生网络信标。2、支持PAN的连接和断开连接。3、同信标保持同步。4、在对等的MAC实体之间提供一个可靠的通信链路。5、处理和维护GTS 机制。6、信道接入采用CSMA-CA接入机制。7、支持设备的安全性。介质访问控制层(MAC)帧被称为MAC协议数据单元(MPDU),其长度不超过127个字节。它具有四种不同的帧形式,即信标帧、数据帧、确认帧和命令帧。

MT(Monitor Test):实现通过串口可控各层,与各层进行直接交互。

NWK(ZigBee Network Layer):网络层目录,含网络层配置参数文件及网络层库的函数接口文件,APS 层库的函数接口。

OSAL(Operating System (OS) Abstraction Layer):协议栈的操作系统。

Profile:AF(Application work)层目录,包含AF 层处理函数文件。

Security:安全层目录,安全层处理函数,比如加密函数等。

Services:地址处理函数目录,包括着地址模式的定义及地址处理函数。

Tools:工程配置目录,包括空间划分及ZStack 相关配置信息。

ZDO(ZigBee Device Objects):ZDO 目录。

ZMac:MAC 层目录,包括MAC 层参数配置及MAC 层LIB 库函数回调处理函数。

ZMain:主函数目录,包括入口函数及硬件配置文件。

Output:输出文件目录,这个EW8051 IDE 自动生成的。

设备功能及网络拓扑结构介绍

ZigBee设备可分为全功能设备(FFD)和简化功能设备(RFD)。全功能设备可以作为协调器(路由器)节点,可以进行数据的转发等功能。简化功能设备只能作为终端节点发送和接受数据。

ZigBee协议支持多种网络拓扑结构,包括星型结构,树形结构,网状结构等。关于ZIgBee 网络拓扑结构的较为详细的介绍,将在本段3节中给出。

由于我暂时只买了两个模块,所以网络拓扑结构也很简单了。一个是协调器节点,作为采集器模块通过串口同我的笔记本相连。另一个是终端节点作为传感器模块测量温度并传输数据。需要指出的是,只要有足够多的节点,本实验完全能够根据实际需要设计出有效的网络拓扑结构。

main()函数和OSAL

这部分是Zstack的程序,与我们编程工作密切相关,所以进行简单说明。一个程序是从main()函数开始运行的。在ZStack中main()函数主要完成了各种初始化任务,以及操作系统OSAL的启动。

相关的函数代码如下:

/*********************************************************************

* @fn main

* @brief First function called after startup.

* @return don't care

*/

int main( void )

{

// Turn off interrupts

osal_int_disable( INTS_ALL );

// Initialization for board related stuff such as LEDs HAL_BOARD_INIT();

// Make sure supply voltage is high enough to run zmain_vdd_check();

// Initialize board I/O

InitBoard( OB_COLD );

// Initialze HAL drivers

HalDriverInit();

// Initialize NV System

osal_nv_init( NULL );

// Initialize the MAC

ZMacInit();

// Determine the extended address

zmain_ext_addr();

// Initialize basic NV items

zgInit();

#ifndef NONWK

// Since the AF isn't a task, call it's initialization routine afInit();

#endif

// Initialize the operating system

osal_init_system();

// Allow interrupts

osal_int_enable( INTS_ALL );

// Final board initialization

InitBoard( OB_READY );

// Display information about this device

zmain_dev_info();

/* Display the device info on the LCD */

#ifdef LCD_SUPPORTED

zmain_lcd_init();

#endif

#ifdef WDT_IN_PM1

/* If WDT is used, this is a good place to enable it. */

WatchDogEnable( WDTIMX );

#endif

osal_start_system(); // No Return from here

return 0; // Shouldn't get here.

} // main()

OSAL即Operating System (OS) Abstraction Layer,是一个基于事件驱动的轮询式的操作系统。它主要提供了任务切换,内存管理等功能。我们在实验中也主要是通过它来开发并管理应用程序。

在main()函数的最后,调用了osal_start_system(),此函数是OSAL的灵魂,也体现了协议栈的工作方式和流程。其主要方法就是:不断查看事件表,如果有事件发生就调用相应的事件处理函数。

相关代码如下:

/*********************************************************************

* @fn osal_start_system

*

* @brief

*

* This function is the main loop function of the task system. It

* will look through all task events and call the task_event_processor()

* function for the task with the event. If there are no events (for

* all tasks), this function puts the processor into Sleep.

* This Function doesn't return.

*

* @param void

*

* @return none

*/

void osal_start_system( void )

{

#if !defined ( ZBIT ) && !defined ( UBIT )

for(;;) // Forever Loop

#endif

{

uint8 idx = 0;

osalTimeUpdate();

Hal_ProcessPoll(); // This replaces MT_SerialPoll() and osal_check_timer().

do {

if (tasksEvents[idx]) // Task is highest priority that is ready.

{

break;

}

} while (++idx < tasksCnt);

if (idx < tasksCnt)

{

uint16 events;

halIntState_t intState;

HAL_ENTER_CRITICAL_SECTION(intState);

events = tasksEvents[idx];

tasksEvents[idx] = 0; // Clear the Events for this task.

HAL_EXIT_CRITICAL_SECTION(intState);

events = (tasksArr[idx])( idx, events );

HAL_ENTER_CRITICAL_SECTION(intState);

tasksEvents[idx] |= events; // Add back unprocessed events to the current task.

HAL_EXIT_CRITICAL_SECTION(intState);

}

#if defined( POWER_SAVING )

else // Complete pass through all task events with no activity?

{

osal_pwrmgr_powerconserve(); // Put the processor/system into sleep

}

#endif

}

}

在OSAL中提供了开发所用的API。主要有消息管理、任务同步、时间管理、终端管理、任务管理等。下面对其进行简单的介绍。

(1)消息管理类API 主要用于处理任务间的消息的交换,主要包括任务分配消息缓存、释放消息缓存、接受消息和发送消息等。

Uint8 *osal_msg_allocate(unit16 len) 为消息分配缓存空间。

Uint8 osal_msg_deallocate(uint8 *msg_ptr) 释放消息的缓存空间。

Uint8 osal_msg_send(unit8 destination-task, uint8 *msg_ptr )

一个任务发送消息到消息队列

Uint8 osal_msg_receive(uint8 task_id)

一个任务从消息队列接受属于自己的消息。

(2)任务同步API 用于任务的同步,允许一个任务等待某个事件的发生。

Uint8 osal_set_event(uint8 task_id,uint16 event_flag)

运行一个任务设置某个事件。

(3 时间管理API 开启和关闭定时器,

Uint8 osal_start_timerEx(uint8 task_id,uint16 event_id,uint16 timeout_value)

设置一个定时时间,到后,相应的事件被设置。

Uint8 osal_stop_timerEx(uint8 task_id,uint16 event_id)

停止已经启动的定时器。

OSAL提供的API还有很多,这里仅列出了较为常用的,完整API介绍TI公司提供了相应的用户手册。

关于OSAL的较为详细的介绍,将在本段3节中给出。

4.2.5 设备相关功能主要函数介绍

(1)协调器(采集器)编程协调器主要完成网络的建立维护等功能,这些功能由协议栈提供,其原理在此暂且不描述(下节将有较为详细的描述)。在其编程过程中,我主要完成的是具体应用的开发。就是将数据接收并发送到串口。函数如下:

void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData )这是协调器最主要的功能函数,处理的是接受到另一个数据后执行的操作。简单来说就是数据归类处理后发送到串口。

函数的代码如下:

/********************************************************************** ********

* @fn zb_ReceiveDataIndication

*

* @brief The zb_ReceiveDataIndication callback function is called

* asynchronously by the ZigBee stack to notify the application

* when data is received from a peer device.

*

* @param source - The short address of the peer device that sent the data

* command - The commandId associated with the data

* len - The number of bytes in the pData parameter

* pData - The data sent by the peer device

*

* @return none

*/

CONST uint8 strDevice[] = "Device:0x";

CONST uint8 strTemp[] = "Temp: ";

CONST uint8 strBattery[] = "Battery: ";

void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData )

{

uint8 buf[32];

uint8 *pBuf;

uint8 tmpLen;

uint8 sensorReading;

if (command == SENSOR_REPORT_CMD_ID)

{

// Received report from a sensor

sensorReading = pData[1];

// If tool available, write to serial port

// 下面的功能是把发数据的设备号(网络地址)写入缓存

tmpLen = (uint8)osal_strlen( (char*)strDevice );

pBuf = osal_memcpy( buf, strDevice, tmpLen );

_ltoa( source, pBuf, 16 );

pBuf += 4;

*pBuf++ = ' ';

if ( pData[0] == BATTERY_REPORT )

{

// 当传输的数据是电压时,进行如下处理。

tmpLen = (uint8)osal_strlen( (char*)strBattery );

pBuf = osal_memcpy( pBuf, strBattery, tmpLen );

*pBuf++ = (sensorReading / 10 ) + '0'; // 高位转换

*pBuf++ = '.'; // 小数点

*pBuf++ = (sensorReading % 10 ) + '0'; // 低位转换

*pBuf++ = ' ';

*pBuf++ = 'V';

}

else

{

// 当传输的数据时温度时,进行如下处理。

tmpLen = (uint8)osal_strlen( (char*)strTemp );

pBuf = osal_memcpy( pBuf, strTemp, tmpLen );

*pBuf++ = (sensorReading / 10 ) + '0'; // 高位转换

*pBuf++ = (sensorReading % 10 ) + '0'; //低位转换

*pBuf++ = ' ';

*pBuf++ = 'C';

}

*pBuf++ = '\r';

*pBuf++ = '\n';

*pBuf = '\0';

#if defined( MT_TASK )

// debug_str( (uint8 *)buf );

// 张温刚修改5.6

// 写入串口

HalUARTWrite(0, buf, (byte)osal_strlen( (void*)buf ));

HalUARTWrite(0,"\n",1);

#endif

// can also write directly to uart

}

}

传感器编程主要工作是通过相应的片上传感器读取数据,然后发送的指定的采集器。

传感器相关数据的读取,分为电压值的读取uint8 myApp_ReadBattery( void )与温度值的读取uint8 myApp_ReadTemperature( void )。

代码如下

说明:1. 函数中用到了大量的条件编译,也就是说根据具体的条件,很多代码并没有参与编译,这也是嵌入式开发编程的特点。为了展现原有的代码特点,我并没有对此进行省略。

2. 温度传感器采用了一个效验的算法。

/**************************************************************************

****

* @fn myApp_ReadBattery

*

* @brief Reports battery sensor reading

*

* @param

*

* @return

******************************************************************************/ uint8 myApp_ReadBattery( void )

{

#if defined (HAL_MCU_CC2430) || defined (HAL_MCU_CC2530)

// 以下是本次使用CC2530片上电压传感器的条件下读取相应的数据

uint16 value;

/* Clear ADC interrupt flag */

ADCIF = 0;

ADCCON3 = (HAL_ADC_REF_125V | HAL_ADC_DEC_128 | HAL_ADC_CHN_VDD3);

/* Wait for the conversion to finish */

while ( !ADCIF );

/* Get the result */

value = ADCL;

value |= ((uint16) ADCH) << 8;

/*

* value now contains measurement of Vdd/3

* 0 indicates 0V and 32767 indicates 1.25V

* voltage = (value*3*1.25)/32767 volts

* we will multiply by this by 10 to allow units of 0.1 volts

*/

value = value >> 6; // divide first by 2^6

value = (uint16)(value * 37.5);

value = value >> 9; // ...and later by 2^9...to prevent overflow during multiplication return value;

#endif // CC2430 or CC2530

// 下面不是用此芯片的处理,条件编译,不用管它

#if defined HAL_MCU_MSP430

uint16 value;

/*

There are more than MSP430 board now. Idealy, ADC read should be called

*/

#if defined (HAL_BOARD_F5438)

value = HalAdcRead (HAL_ADC_CHANNEL_VDD, HAL_ADC_RESOLUTION_14);

value = value * 50;

value = value / 4096;

#else

ADC12CTL0 = ADC12ON+SHT0_2+REFON; // Turn on and set up ADC12 ADC12CTL1 = SHP; // Use sampling timer

ADC12MCTL0 = SREF_1+INCH_11; // Vr+=Vref+

ADC12CTL0 |= ENC | ADC12SC; // Start conversion

while ((ADC12IFG & BIT0)==0);

value = ADC12MEM0;

/*

* value now contains measurement of AVcc/2

* value is in range 0 to 4095 indicating voltage from 0 to 1.5V

* voltage = (value*2*1.5)/4095 volts

* we will multiply by this by 10 to allow units of 0.1 volts

*/

value = value >> 1; // value is now in range of 0 to 2048

value = value * 30;

value = value >> 11;

#endif

return ( value );

#endif // MSP430

#if defined HAL_MCU_AVR

// If platform doesnt support a battery sensor, just return random value

uint8 value;

value = 20 + ( osal_rand() & 0x000F );

return ( value );

#endif // AVR

}

/************************************************************************** ****

* @fn myApp_ReadTemperature

*

* @brief Reports temperature sensor reading

*

* @param

*

* @return

******************************************************************************/ uint8 myApp_ReadTemperature( void )

{

#if defined (HAL_MCU_CC2430) || defined (HAL_MCU_CC2530)

// 以下是本次使用CC2530片上电压传感器的条件下读取相应的数据

uint16 value;

/* Clear ADC interrupt flag */

ADCIF = 0;

ADCCON3 = (HAL_ADC_REF_125V | HAL_ADC_DEC_512 | HAL_ADC_CHN_TEMP);

/* Wait for the conversion to finish */

while ( !ADCIF );

/* Get the result */

value = ADCL;

value |= ((uint16) ADCH) << 8;

/*

* value ranges from 0 to 0x8000 indicating 0V and 1.25V

* VOLTAGE_AT_TEMP_ZERO = 0.743 V = 19477

* TEMP_COEFFICIENT = 0.0024 V/C = 62.9 /C

* These parameters are typical values and need to be calibrated

* See the datasheet for the appropriate chip for more details

* also, the math below may not be very accurate

*/

#if defined (HAL_MCU_CC2430)

#define VOLTAGE_AT_TEMP_ZERO 19477 // 0.743 V

#define TEMP_COEFFICIENT 62.9 // 0.0024 V/C

#elif defined (HAL_MCU_CC2530)

/* Assume ADC = 5158 at 0C and ADC = 15/C */

#define VOLTAGE_AT_TEMP_ZERO 5158

#define TEMP_COEFFICIENT 14

#endif

// limit min temp to 0 C

if ( value < VOLTAGE_AT_TEMP_ZERO )

value = VOLTAGE_AT_TEMP_ZERO;

value = value - VOLTAGE_AT_TEMP_ZERO;

// limit max temp to 99 C

if ( value > TEMP_COEFFICIENT * 99 )

value = TEMP_COEFFICIENT * 99;

return ( (uint8)(value/TEMP_COEFFICIENT) );

#endif // CC2430 || CC2530

#if defined HAL_MCU_MSP430

uint16 value;

/*

There are more than MSP430 board now. Idealy, ADC read should be called

*/

#if defined (HAL_BOARD_F5438)

long multiplier, offset;

value = HalAdcRead (HAL_ADC_CHANNEL_TEMP, HAL_ADC_RESOLUTION_14);

multiplier = (long) 7040 * 9 /5 ;

offset = (long) 2620 * 9 / 5 - 320;

value = (long) value * multiplier/4096 - offset;

return (value);

#else

ADC12CTL0 = ADC12ON+SHT0_7+REFON; // Turn on and set up ADC12 ADC12CTL1 = SHP; // Use sampling timer

ADC12MCTL0 = SREF_1+INCH_10; // Vr+=Vref+

ADC12CTL0 |= ENC | ADC12SC; // Start conversion

while ((ADC12IFG & BIT0)==0);

value = ADC12MEM0;

/*

* value ranges from 0 to 0x0FFF indicating 0V and 1.5V

无线传感网实验报告

C ent ral SouthUniversity 无线传感器网络 实验报告 学院: 班级: 学号: 姓名: 时间: 指导老师: 第一章基础实验 1了解环境 1.1实验目的 安装 IAR开发环境。 CC2530 工程文件创建及配置。 源代码创建,编译及下载。 1.2 实验设备及工具 硬件:ZX2530A 型底板及CC2530 节点板一块,USB 接口仿真

器,PC 机 软件:PC 机操作系统 WinXP,IAR集成开发环境,TI 公司的烧写软件。 1.3实验内容 1、安装IAR 集成开发环境 IAR 集成开发环境安装文件所在光盘目录:物联网光盘\工具\C D-EW8051-7601 2、ZIBGEE 硬件连接 安装完IAR 和 Smartrf Flash Programmer 之后,按照图所示方式连接各种硬件,将仿真器的20 芯 JTAG口连接到ZX2530A 型 CC2530 节点板上,USB 连接到PC 机上,RS-232串口线一端连接ZX2530A 型 CC2530节点板,另一端连接 P C机串口。 3、创建并配置 CC2530 的工程文件 IAR是一个强大的嵌入式开发平台,支持非常多种类的芯片。IAR 中的每一个 Project,都可以拥有自己的配置,具体包括Device 类型、堆/栈、Linker、Debugger 等。 (1)新建Workspace 和Project 首先新建文件夹ledtest。打开 IAR,选择主菜单File ->New -> Workspace 建立新的工作区域。 选择Project ->Create New Project -> Empty Pro

zigBee实验报告

ZIgBee学习心得 实验报告 项目名称基于无线传感器网络的采温实验专业班级软件1105 学号 姓名

目录 《计算机网络》............................................................................................... 错误!未定义书签。实验报告. (1) 一、实验目的 (3) 二、实验内容和报告简介 (3) 三、实验相关设备环境 (3) 四、实验内容 (6) 4.1.内容简介 (6) 4.2. 无线传感器网络采温系统实验 (7) 实验简介 (7) 4.2.2 工程结构简介 (8) 4.2.3 设备功能及网络拓扑结构介绍 (9) 4.2.4 main()函数和OSAL (9) 4.2.5 设备相关功能主要函数介绍 (13) 4.3 ZigBee协议和ZStack分析 (24) 4.3.1 ZigBee协议和ZStack简介 (24) 4.3.2 OSAL原理分析和实现 (25) IEEE 802.15.规定的PHY层 (31) IEEE 802.15.规定的MAC层 (34) 4.3.5 ZigBee2007的网络层。 (37) 4.3.6 ZigBee2007的应用层 (41) 五、实验结果 (42) 六、实验结论 (43) 七、实验小结 (43) 7.1 短距离无线通信网络的现状和发展 (43) 7.2 ZigBee通信技术的应用 (44) 7.3 学习ZigBee开发的心得体会 (44) 7.4 下一步可能的学习计划 (44) 实验《基于无线传感器网络的采温实验》

工业网络技术Zigbee与CAN-bus的转换模块设计1

课程大作业实验报告 课程名称:工业自动化网络技术 项目名称:Zigbee与CAN-bus的转换模块 设计 学院年级:工程学院 专业班级:自动化一班 指导老师: 目录 1、项目要求............................................... 2、项目开发背景..........................................

3、系统硬件设计............................................ 4、Zigbee-CAN转换器的软件设计.............................. 5、项目总结.............................. 1、项目摘要 基于对无线通信技术( Zigbee)与现场总线(CAN)技术的研究,设计一个两者的转换器,介绍系统的构成及模块功能,以含51内核的CC2430微控制器和采用CAN

总线接口转换技术实现Zigbee与CAN-bus的转换,同时利用两者优点,在现场测控领域实现更大而灵活的通信任务。 2、设计背景及目的 ZigBee是2001年9月才发展起来的一种新兴的无线传输协议标准,具有近距离、低复杂度、低速率、低功耗、低成本等特点的双向无线通信技术。Zigbee 技术作为无线传感器网络的主要支撑技术获得了人们广泛的关注。它由应用层、网络/安全层、媒体介入控制层和物理层组成。Zigbee 技术以IEEE802.15.4 协议为基础,使用全球免费频段2. 4 GHz进行通讯。但Zigbee技术毕竟不是为工业现场测控应用而设计的总线,它可连接的设备数较少,通信距离非常短,抗干扰能力不够强;而CAN-bus则具有可连接设备数目多、传输距离远、抗干扰能力强等许多优点,但对于可移动设备的连接十分麻烦。如果能将Zigbee技术与CAN-bus结合起来,设计一个Zigbee-CAN转换器,就能同时利用两者的优点,在现场测控领域实现更强大而灵活的通信任务。 现场总线CAN-bus 在煤矿通讯中的优势:煤矿生产是与国计民生密切相关的一个领域。其中,煤矿安全无疑是大家关注的热点之一,不仅对社会经济有影响,更关系到每个矿业人员的生命安全。煤矿系统中原先的各类独立设备已经不能够满足现代化煤矿生产的需求;组建一个技术先进的煤矿通讯网络,对煤矿的工作人员、现场环境参数进行监测、控制,形成一个能够满足地域化控制、符合煤矿安全要求的煤矿数据/信息管理系统,这已经是煤矿行业的发展大趋势。 煤矿企业内部通过煤矿通讯网络传输各类现场数据;通常传输的是来往于各个现场设备之间的控制类数据,一般都属于小流量、实时数据。 煤矿通讯主要涉及以下两个方面的应用: ●考勤和巡检系统 ●作业现场环境监测 同时,煤矿通讯具有非常明显的自身行业特点: ●设备符合本质安全要求 ●现场环境恶劣 ●通讯距离较远

zigbee组网实验报告

zigbee组网实验报告 ZigBee组网实验报告 引言: ZigBee是一种低功耗、低速率、低成本的无线通信技术,被广泛应用于物联网 领域。本实验旨在通过搭建ZigBee网络,探索其组网原理和应用。 一、实验背景 随着物联网的快速发展,各种智能设备的出现使得人们的生活更加便捷和智能化。而ZigBee作为一种独特的无线通信技术,具有低功耗、低成本和可靠性强的特点,成为物联网领域的重要组成部分。 二、实验目的 1.了解ZigBee组网的基本原理和拓扑结构; 2.搭建ZigBee网络,实现设备之间的通信; 3.探索ZigBee在物联网领域的应用。 三、实验步骤 1.准备工作 在实验开始前,需要准备一些硬件设备,包括ZigBee模块、开发板、传感器等。同时,还需要安装相应的软件开发环境。 2.搭建ZigBee网络 首先,将ZigBee模块插入开发板,连接电源并进行初始化设置。然后,通过软件开发环境,配置网络参数,包括网络ID、信道等。接下来,将各个设备逐一 加入网络,形成一个完整的ZigBee网络。 3.通信测试

完成网络搭建后,进行通信测试。通过发送指令或传感器数据,验证设备之间的通信是否正常。同时,还可以进行数据传输速率测试,评估网络的性能。四、实验结果与分析 经过实验,成功搭建了一个ZigBee网络,并实现了设备之间的通信。通过测试发现,ZigBee网络具有较低的功耗和较高的可靠性,适用于物联网领域的各种应用场景。 五、实验总结 ZigBee作为一种重要的无线通信技术,具有广泛的应用前景。通过本次实验,我们深入了解了ZigBee组网的原理和应用,并通过实际操作掌握了搭建ZigBee网络的方法。这对我们进一步研究和应用物联网技术具有重要意义。六、展望 在未来,随着物联网的不断发展,ZigBee网络将在更多的领域得到应用。例如智能家居、智能医疗、智能交通等,ZigBee技术将为这些领域带来更多的便利和创新。 结语: 通过本次实验,我们对ZigBee组网技术有了更深入的了解,并体验了其在物联网领域的应用。随着科技的不断进步,我们相信ZigBee将在未来发挥更重要的作用,为人们的生活带来更多便利和智能化的体验。

zigbee实验报告

zigbee实验报告 Zigbee实验报告 引言 无线通信技术的快速发展已经改变了我们的生活方式和工作方式。随着物联网的兴起,越来越多的设备需要无线通信来实现互联互通。Zigbee作为一种低功耗、短距离通信的无线技术,被广泛应用于家庭自动化、智能城市和工业控制等领域。本文将对Zigbee进行实验研究,探讨其在物联网应用中的优势和应用场景。 一、实验背景 在开始实验之前,我们需要了解Zigbee的基本原理和特点。Zigbee是一种基于IEEE 802.15.4标准的无线通信技术,它采用了低功耗、低数据速率和短距离传输的特点。Zigbee网络由一个协调器和多个终端节点组成,协调器负责网络的管理和控制,终端节点负责数据的传输和接收。 二、实验目的 本次实验的主要目的是通过搭建一个简单的Zigbee网络,了解其通信原理和网络拓扑结构。同时,我们还将探索Zigbee在家庭自动化中的应用,比如智能照明、温度监测等。 三、实验步骤 1. 实验器材准备:我们需要准备一台Zigbee协调器、多个Zigbee终端节点、一台电脑和相应的软件开发工具。 2. 网络搭建:首先,我们将协调器和终端节点连接到电脑上,并通过软件开发工具进行配置。然后,我们按照一定的拓扑结构将终端节点连接到协调器上,

形成一个Zigbee网络。 3. 通信测试:在网络搭建完成后,我们可以进行通信测试。通过发送和接收数 据包,我们可以验证网络的可靠性和稳定性。同时,我们还可以通过改变节点 之间的距离和障碍物的影响,来观察Zigbee网络的传输性能。 四、实验结果与分析 在实验过程中,我们成功搭建了一个Zigbee网络,并进行了通信测试。实验结果显示,Zigbee网络具有较高的可靠性和稳定性,即使在节点之间存在一定的 障碍物,数据传输的成功率也很高。此外,我们还观察到Zigbee网络的传输距离较短,适用于室内环境或者小范围的应用场景。 根据实验结果,我们可以得出以下结论: 1. Zigbee网络适用于低功耗、短距离传输的应用场景,比如家庭自动化、智能 城市等。 2. Zigbee网络具有较高的可靠性和稳定性,适用于对通信质量要求较高的应用。 3. Zigbee网络的传输距离较短,需要在设计网络拓扑结构时考虑节点之间的距 离和障碍物的影响。 五、应用展望 基于对Zigbee的实验研究,我们可以看到其在物联网应用中的广阔前景。随着智能家居的兴起,越来越多的家庭开始使用智能设备来实现远程控制和监测。Zigbee作为一种低功耗、短距离通信的技术,可以为智能家居提供可靠的通信 支持。此外,Zigbee还可以应用于工业控制、智能交通等领域,为物联网的发 展提供强有力的支持。 结论

无线传感器网络实验报告模板

无线传感器网络实验报告 专业计算机科学与技术 班级 13级计科1班 学号 姓名

目录 实验一CC2530 I/O基础实验 实验二 CC2530按键中断 实验三 CC2530定时器的使用 实验四串行通信接口发送与接收 实验五 Zigbee点到点无线通信 实验六 Zigbee串口实验 实验七无线温度检测实验 实验八 Zigbee组网实验

实验一CC2530 I/O基础实验 一、实验目的 1.掌握IAR编译软件界面的功能; 2.掌握配置通用IO寄存器的方法; 3.掌握如何编写代码及程序下载。 二、实验内容 1.使用CC2530的IO来控制LED灯循环闪烁; 2.判断按键是否被按下,如果按下,改变LED灯的状态,原先亮的灯灭,原先灭的亮,如此循环下去。 三、相关知识点 cc2530有21个可编程的I/O引脚,P0、P1口是完全的8位口,P2口只有5个可使用的位。通过软件设定一组SFR寄存器的位和字节,可使这些引脚作为通常的I/O口或作为连接ADC、计时器或USART 部件的外围设备I/O口使用。 2.I/O口特性: (1)可设置为通常的I/O口,也可设置为外围I/O口使用; (2)在输入时有上拉和下拉能力; (3)全部21个数字I/O口引脚都具有影响外部的中断事件也能被用来唤醒休眠模式。 3.I/O端口的寄存器如下:

P0:端口0 P1:端口1 P2:端口2 PERCFG:外设控制寄存器 APCFG:模拟外设I/O配置P0SEL:端口0功能选择寄存器 P1SEL:端口1功能选择寄存器P2SEL:端口2功能选择寄存器 P0DIR:端口0方向寄存器P1DIR:端口1方向寄存器 P2DIR:端口2方向寄存器P0INP:端口0输入模式寄存器 P1INP:端口1输入模式寄存器P2INP:端口2输入模式寄存器 P0IFG:端口0中断状态标志寄存器P1IFG:端口1中断状态标志寄存器 P2IFG:端口2中断状态标志寄存器 PICTL:中断边缘寄存器P0IEN:端口0中断掩码寄存器 P1IEN:端口1中断掩码寄存器P2IEN:端口2中断掩码寄存器 PMUX:掉信号Mux寄存器OBSSEL0:观察输出控制寄存器0 OBSSEL1:观察输出控制寄存器1 OBSSEL2:观察输出控制寄存器2 OBSSEL3:观察输出控制寄存器3 OBSSEL4:观察输出控制寄存器4 OBSSEL5:观察输出控制寄存器5 四、实验步骤 1.启动IAR; 2.新建一个IAR工作区,或者打开一个IAR工作区; 3.连接CC Debugger调试器和ZigBee模块、连接CC Debugger到计算机,安装驱动; 4.设置项目参数; 5.编写、编译、下载程序。 五、实验源程序

实验六 物联网综合应用实验(一)

成绩: 物理与电子信息工程学院 物联网工程实践实验报告 实验名称:物联网综合应用实验 班级: 姓名: 学号:

实验六物联网综合应用实验(一) 一.实验目的 1.熟悉物联网组网原理和方法; 2.了解Zigbee传感网络的通信原理; 3.了解物联网中传感器数据的采集方法; 4.学习编写一个Android 应用,实现无线组网网络拓扑图,协调器、路由器、终端节点的通信模式; 5.了解Zigbee传感器网络的通信原理。 一、实验设备 CES-IOT6818实验箱,基于CC2530的Zigbee物联网协调器、路由器、传感终端、控制模块终端。 二、实验原理 Zibee是基FEE21.标准的低功耗个域网协议。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术,是目前嵌入式应用的一-个大热点。Zigbee传感网络的组成,主要分为协调器、路由、终端三部分。其中协调器负责接收网络中的数据,并传送到上层做进一- 步的处理:路由负责网络范围内,与之建立连接的终端的

信息转发:终端则是数据的采集节点,通过传感器采集环境中的各项数据信息。实验中用于组建Zigbee传感网络的设备都是基于TI公司的CC2530A芯片设计的。CC2530A芯片在物联网中可以扮演协调器、路由、终端节点三种角色。不同的网络节点,只需烧录不同的程序即可完成不同的功能。Zigbee网络节点的程序都是基于Zigbee 2007协议栈来完成的,不同的是节点的Zigbee网络应用层的设计不一样。ZigBee的协议分为两部分,IEEE802.15.4定义了物理层和MAC层,ZigBee联盟定义了网络层、安全层和应用层,ZigBee协议栈就是将这些层的协议都集合在一一起,并在应用层上做了-些基本的函数便于用户开发。这样用户只需要在应用层增加自己的应用就可以了,不用深入的与研究协议栈,而且软件的可移植性也比较好。而且T的ZigBee协议栈,还做- 个小的操作系统,进行实时的控制。传感器网络中的实时操作,只需要你在应用层加入需要传感器读取和传递参数的函数,此外,根据采集周期定时的唤醒ZBec的终端古点将数据发送给路由器或者直接发给协调器就可以了。ZigBee的组网点:Zigee技术实现的是自组织网的通信方式,可以用一个简单的例子来说明这个工作方式的特点:当一队伞兵空降之后,每人手里持有一块ZigBee设备模块终端。降落到地面后,只要他们彼此间在网络模块的通信范围内,通过彼此自动寻找,很快就可以形成一个互联互通的ZigBee网络。而且,由于人员的移动,彼此间的联络还会发生变化。因而,模块还可以通过重新寻找通信对象,确定彼此间的联络,对原有网络进行刷新。这就是自组织网。

无线传感网络实验报告

《无线传感网络技术与应用》 实验报告

目录 一、研究背景 (1) 二、研究内容 (1) 三、传感器原理介绍 (1) (一)MQ-2 气体传感器简介 (1) (二)声音检测传感器简介 (2) (三)声光报警器原理 (3) (一)烟雾传感器模块 (4) (二)声音检测传感器模块 (5) (三)声光报警器模块 (7) (四)协调器与终端模块 (8) 五、实验分析 (9) (一)烟雾传感器数据分析 (9) (二)声音检测传感器模块数据分析 (9) (三)声光报警检测传感器模块数据分析 (10) 六、实验中出现的问题 (11) (一)打开文件存在缺失 (11) (二)串口无法识别 (11) (三)安装stm8或stem32时无法打开文件 (11) (四)做数据透传模型实验时无法通信 (11) 七、实验总结 (11)

一、研究背景 近几年,随着我国经济的不断发展和构建和谐社会理念的提出,特别是重大工程对安防行业的刺激和需求,安防行业面临着前所未有的发展机遇。结合当前先进技术提高安全防范系统性能,成为当前安防发展的一个重要课题。 在分析了无线传感网络在国内外安防系统应用现状的基础上,针对安防系统存在的问题,提出一种基于无线传感网络的智能安防系统设计方案。与传统安防系统相比,具有免布线、费用低、布置方便等优点。在综合考虑了当前流行的无线通信技术后,选择具有数据吞吐量小、低功耗、网络容量大等优点的ZigBee 技术作为构建智能安防无线通信网络的关键技术。可以预计,ZigBee 技术将在家庭智能化、安防行业、工业控制等领域获得广泛应用。 二、研究内容 本次课题研究涉及到三个传感器,分别是烟雾传感器、声音检测传感器、声光报警传感器,通过相关程序的烧写到实验板上,根据每个传感器的特点对每个传感器进行测试,通过观察串口终端的数字变化,检查外部环境的变化是否有数据变化。最后根据实验现象进行总结分析。 三、传感器原理介绍 (一)MQ-2 气体传感器简介 MQ-2 气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化 锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。 MQ-2 气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。它的特点在较宽的浓度范围内对可燃气体有良好的灵敏度、液化气、丙烷、氢气的灵敏度较高、长寿命、低成本、简单的驱动电路即可。 该传感器需要施加 2 个电压:加热器电压(VH)和测试电压(VC)。其中VH 用于为传感器提供特定的工作温度。VC则是用于测定与传感器串联的负载电阻(RL)上的电压(VRL)。这种传感器具有轻微的极性,VC 需用直流电源。在满足传感器电性能要求的前提下,VC和VH 可以共用同一个电源电路。为更好利用传感器的性能,需要选择恰当的RL值。

物联网实验报告

实验名称:RFID开发实验 一、实验环境 硬件:UP-MobNet-II型嵌入式综合实验平台,PC机 软件:Vmware Workstation +Ubuntu12.04+ MiniCom/Xshell + ARM-LINUX交叉编译开发环境Rfid_900M模块QT测试程序 二、实验内容 1、了解UHF的基本概念、国际标准、协议内容 2、了解UHF的标准接口 3、了解UHF的应用范围及领域 4、掌握对功率和功放相关命令的操作 三、实验原理 超高频射频识别系统的协议目前有很多种,主要可以分为两大协议制定者:一是ISO(国际标准化组织);二是EPC Global。ISO组织目前针对UHF(超高频)频段制定了射频识别协议ISO 18000-6,而EPC Global组织则制定了针对产品电子编码(Electronic Product Code)超高频射频识别系统的标准。目前,超高频射频识别系统中的两大标准化组织有融合的趋势,EPC Class 1 Generation 2标准可能会变成ISO 18000-6标准的Type c。本文主要讨论的是针对ISO 18000-6 标准的射频识别系统,本节讨论的是ISO 18000-6 协议中与系统架构相关的物理层参数。 ISO 18000-6 目前定义了两种类型:Type A 和Type B。下面对这两种类型标准在物理接口、协议和命令机制方面进行分析和比较。 1.物理接口 ISO 18000-6 标准定义了两种类型的协议—Type A 和Type B。标准规定:读写器需要同时支持两种类型,它能够在两种类型之间切换,电子标签至少支持一种类型。 (1)Type A 的物理接口 Type A 协议的通信机制是一种“读写器先发言”的机制,即基于读写器的命令与电子标签的应答之间交替发送的机制。整个通信中的数据信号定义为以下四种:“0”,“1”,“SOF”,“EOF”。通信中的数据信号的编码和调制方法定义为: ①读写器到电子标签的数据传输 读写器发送的数据采用ASK 调制,调制指数为30%(误码不超过3%)。 数据编码采用脉冲间隔编码,即通过定义下降沿之间的不同宽度来表示不同的数据信号。 ②电子标签到读写器的数据传输 电子标签通过反向散射给读写器传输信息,数据速率为40kbits。数据采用双相间隔码来进行编 码,是在一个位窗内采用电平变化来表示逻辑,如果电平从位窗的起始处翻转,则表示逻辑“1”;如果电平除了在位窗的起始处翻转,还在位窗的中间翻转,则表示逻辑“0”。 (2)Type B 的物理接口 Type B 的传输机制也是基于“读写器先发言”的,即基于读写器命令与电子标签的应答之间交换的机制。 ①读写器到电子标签的数据传输 采用ASK 调制,调制指数为11%或99%,位速率规定为10kbits 或40kbits,由曼彻斯特编码来完成。具体来说就是一种on-offkey 格式,射频场存在代表“1”,射频场不存在代表“0”。曼彻斯特编码是在一个位窗内采用电平变化来表示逻辑“1”(下降沿)和逻辑“0”(上升沿)

WSN实验报告

WSN实验报告 姓名:谢莉(139074388) 李福慧(139074381)专业:物联网工程131班指导老师:卫琳娜 学院:计算机学院

实验二 4.1 GPIO输入输出实验 一.实验内容 主要包含了4个实验:控制LED 灯闪烁,按键控制LED 灯开关,按键控制LED 灯闪烁,OLED 显示。GPIO 输出控制对象为CC2530 模块上的红色和绿色LED,输出置位为0 时LED 灯点亮,置位为1 时LED 灯熄灭。通过不同代码的运行和控制,观察LED 灯的闪烁情况。底板上的显示屏通过运行代码,显示不同的信息。 二.实验目的 1.了解CC2530 的GPIO 结构和配置原理 2.学习配置按键的GPIO 口为输入模式,并采集有效按键 3.如何通过程序控制由按键触发控制LED 灯 4如何通过程序控制由按键触发控制LED 灯闪烁 5.通过CC2530 的GPIO 模拟IIC 总线驱动OLED 显示 三.实验步骤 1.打开文件 2.选择debug 3.点击project中的rebuild all ,然后点击debug,进行编译工程并下载到 目标板 4.运行程序,观察结果 四.实验中遇到的问题及解决方法 节点模块不一样,所以左右的灯控制也会不一样。 五.实验总结 通过实验一,二,三的学习大概熟悉了实验的步骤,所以在做实验的时候也比较顺利,没有遇到什么问题。这个实验是最基础的,主要观察LED灯的变化。 实验三定时器控制实验 一.实验内容

实验包含使用定时器T1和T2,还有定时器T4中断。定时器1 来改变小灯的状态,T1 每溢出两次,两个小灯闪烁一次,并且在停止闪烁后成闪烁前相反的状态。开启定时器2的中断,计数比较溢出后产生中断来改变小灯的状态,T2 每溢出一次,红色小灯状态改变一次(由亮变暗或由暗变亮)。用定时器 4 来改变小灯的状态,T4 每2000 次中断小灯闪烁一轮,闪烁的时间长度为1000 次中断所耗时间。 二. 实验目的 1.了解CC2530 的定时器T1,T2,T4的配置和使用 2.如何通过程序控制CC2530 的T1 驱动LED 灯定时点亮 3. 学习定时器T4 的中断模式使用 三.实验步骤 1.打开文件 2.选择debug 3.点击project中的rebuild all ,然后点击debug,进行编译工程并下载到 目标板 4.运行程序,观察结果 四.实验中遇到的问题及解决方法 因为我们实验使用的节点模块和指导书中的模块不一样,所以现象也不同,主要区别在于闪烁的左右灯不一样,但是不影响实验结果。 五.实验总结 T1实验模块板载的绿色LED 灯(左边)和红色LED(右边)交替闪烁。T2实验输出置位为0 时LED 灯点亮,置位为 1 时LED 灯熄灭,模块板载的绿色LED 灯(左边)由定时器T2 的比较溢出中断改变状态。T4 0 模块板载的红色LED 灯(右边)在T4 产生中断1000 此后开始闪烁,再次中断1000 次后停止闪烁,一直循环执行。这三个实验的现象我们都做出来了,分析了代码有好多不懂的地方,但是在注释和两个人交流的情况下,还是能大概明白的。 实验四中断输入和采集实验 一.实验内容 本次实验主要是做外部输入中断。使用摇杆按键来翻转LED 的状态,按下节点底板上“SW2”键,CC2530 模块上 1 个LED 灯改变当前状态。

zigbee实训报告总结

zigbee实训报告总结 随着物联网技术的不断发展,越来越多的设备需要实现互联互通。ZigBee技术作为一种低功耗、无线、自组织的网络解决方案,被广泛应用于家庭自动化、智能电网、智慧城市等领域。在实践中,我们通过ZigBee实训,深入了解了该技术的原理、特点和应 用场景,并掌握了相关工具和技能。 一、实验概述 ZigBee实训内容丰富,主要包括如下几个方面: 1.理论介绍 介绍ZigBee协议、网络组建和控制、数据传输和安全等方面 内容,理论课程为实验提供理论基础以及实验目标。 2.软硬件环境配置 配置实验所需的软硬件环境,包括配置ZigBee开发套件、Smart RF Flash Programmer、ZigBee网络组件等。

3.实验流程 根据实验指导书,进行基本的ZigBee实验,包括节点组建、数据传输测试、网络性能测试等。 4.实验报告撰写 根据实验结果,撰写实验报告。报告应该包含实验目的、实验过程和实验结果等方面,以便于对实验的进一步复盘、总结和提高。 二、实验结果 通过ZigBee实训,我们深入了解了该技术的原理和特点。ZigBee无线网络结构简单、内存占用少、功耗低,适用于低速数据传输和长期待机的场景,例如家庭自动化和智能电网。在实验过程中,我们通过软硬件环境配置,建立了ZigBee节点、网络组件和数据传输测试,检验了ZigBee的网络性能。具体实验结果如下:

1.节点组建实验 我们通过硬件平台,将ZigBee无线节点进行适当配置,成功构建ZigBee节点网络。通过数据传输测试,我们发现ZigBee节点间的通信速度快,能够满足低速数据传输的需求。 2.数据传输测试实验 我们利用ZigBee开发套件,通过触发器和计数器,连通ZigBee节点,发送和接收数据包。通过数据传输测试实验,我们验证了ZigBee网络的可靠性和稳定性。实验结果表明ZigBee网络能够稳定地传输数据,即使在干扰较多的环境中也能保持数据传输的可靠性。 3.网络性能测试实验 我们通过利用网络组件,对整个ZigBee网络进行性能测试。性能测试包括节点拓扑图、节点关系图和网络性能分析。在实验

无线控制网络综合实验实验报告

无线控制网络综合实验 实验报告 姓名: 学号: 分组编号: 小组成员: 指导老师: 2016年3月

实验3.1 LED灯控制实验 一、实验目的 1、熟悉UP-CUP IOT-6410-II实验系统的硬件组成及使用方法,熟悉Zigbee模块的硬件接口; 2、熟悉和掌握使用IAR集成开发环境,编写程序实现利用CC2530的IO口控制LED闪烁的功能。 二、实验原理 1、硬件原理 CC2530控制LED 的电路原理图如图3-1-1所示。 CC2530核心板上预留了两个LED,采用共阳极驱动方式,分别由CC2530的P1.0和P1.0控制,通过控制这两个IO口输出低电平即可点亮对应LED。 图3-1-1 LED硬件原理图 IO口的控制是通过对CC2530相关寄存器的操作实现的,其中部分IO相关寄存器如图3-1-2所示。具体操作过程见软件设计部分。

图3-1-2部分IO相关寄存器 2、软件原理 (1)、首先设置P1SEL寄存器,选择IO口的通用IO功能; (2)、设置P1DIR寄存器,选择P1.0和P1.1口的输入输出方向为输出方向; (3)、通过设置P1寄存器的第0位和第1位即可控制LED的亮灭,其中P1寄存器是可位寻址的,即可直接使用P1_x操作。 程序主函数如下。 void main(void){ Initial(); //调用初始化函数,初始化P1.0和P1.1口,包括对寄存 //器P1SEL和P1DIR的操作 LED1=0; //LED1点亮 LED2=0; //LED2点亮 while(1){ LED2 = !LED2; //LED2闪烁 Delay(50000); } } 三、实验步骤 1、调整硬件:使用配套USB线连接PC机和UP-CUP IOT-6410-II型设备,设备上电,确保打开Zigbee模块开关供电,并使用CCD_SETKEY选择要使用的Zigbee 模块; 2、创建工程:打开IAR Embedded Workbench for MCS-51嵌入式开发环境,按下列步骤建立新工程;

无线通信技术实验报告

无线通信技术实验报告基于ZIGBEE和STM32智能照明系统的设计 学院:通信与信息工程学院 专业:电子与通信工程 姓名: 学号: 时间:

基于ZIGBEE和STM32智能照明系统的设计 1课题研究目的与意义 物联网(Internet of Tings)作为新一代信息技术的重要组成部分,通过射频识别(RFID)、红外感应器、全球定位系统(GPS)、激光扫描器等信息传感设备,按约定协议把传感网络的任何物品与互联网连接起来,进行信息交换和通讯,实现对物品的智能话识别、定位、跟踪、监控和管理。物联网拥有的特性和作用,使得它广泛应用于智能家居、智能交通、工业监测等领域。 在人们的传统意识中,照明系统仅以照明为目的。传统的照明系统中主要的控制方式有手动控制方式和自动控制方式。其中手动控制方式简单、有效,但是过于依赖人工操作,并且控制相对分散,不能有效管理;自动控制方式主要是由时钟元件、光电元件或两者组合的方式来实现对照明设备的控制,这种控制方式减少了对人员的依赖性,管理相对集中,实现了照明控制的自动化,但却不能对照明系统进行调光控制。 随着生活水平的不断提高,人们对日常生活的无线化、网络化、智能化、节能化的需求越来越强烈,传统的照明控制系统已经无法满足人们对日常生活品质的需求。基于上述原因,为了充分发挥LED灯具在智能建筑中的节能优势,本课题设计了一种基于ZIGBEE和STM32的智能照明系统,从而实现了LED灯的能量优化。 2系统总体方案设计

本设计将系统分为感知层、传输层和应用层三个部分,系统主要由终端节点、路由器节点和协调器节点组成。终端节点主要负责消息的传输和允许其他节点通过它接入到网络中;协调器节点则主要负责网络的建立、维持和管理以及整个网络数据信息的收集、处理和显示等。在这三个节点当中协调器节点是整个网络的核心。本设计主要实现如下功能:1)采用带调光模块的LED灯具,通过程序控制可以实现灯光亮度自动调节,利用室灯光与自然光的相互补偿使室照度保持在一个合适的状态;2)采用照度采集节点,可以实时地采集并监控室照度;3)加入掉电自锁功能即在突然停电的情况下再次来电所有灯具处于关闭状态;4)加入部分情景模式,在不同的室环境需求时可以很方便地对灯光环境进行选择如家人一起看电视时的影院模式,看书写字时的学习模式等。系统总体设计框图如图1所示。 图1 系统总体设计框图 3系统硬件电路设计 系统硬件电路部分主要由协调器节点电路、照度采集节点电路、LED调光节点电路以及路由器节点电路四部分组成。 3.1协调器节点电路设计 协调器节点由STM32F107、CC2530、LCD12864、矩阵键盘、DS18B20和DS1302

相关主题
文本预览
相关文档 最新文档