通信新技术综合训练报告(7)

2018-12-09 16:58

通信新技术综合训练报告 实验八 ADC及数据采集实验

建网N成功Y节点加入成功Y进入休眠模式NN按键终端SW0Y按键终端SW1采集温度并发送Y采集电压并发送NN按键终端SW2Y采集温度电压并发送Coordinator接受数据写入PC机串口Coordinator接受数据写入PC机串口Coordinator接受数据写入PC机串口

流程图解析:节点加入成功后,就如休眠模式,当检测到有DIO口中断时,唤醒定时器完成数据包的采集发送。由流程图可以看出:分别按下SW0~SW2,分别采集温度、电压、温度和电压。 2.程序流程图:

节点加入成功后,PC机经串口发送数据,Coordinator将数据发送给EndDevice。当EndDevice接受到数据后,将数据的信息和数据的长度保存在Flash内存中;断电再启动时。自动将协议栈的内容恢复,将数据发送出去,Coordinator接收数据,经显示在PC机的串口窗口上。 流程图如下:

开始延迟一会建网N成功?Y节点入网保存数据的内容和大小写入Flash内存中成功?YPC机经串口发数据NY断电?N协调器接收数据Coordinator发送数据经串口写入PC机窗口中等待上电EndDevice接收数据

31

通信新技术综合训练报告 实验八 ADC及数据采集实验

四、实验结果与分析

1. EndDevice的SW0 时,PC机的串口调试工具输出窗口上显示采集温度值。按动EndDevice的SW1时,PC机的串口调试工具输出窗口上显示采集电压值。按动EndDevice的SW2 时,PC机的串口调试工具输出窗口上显示采集电压和温度值。

2. 接通电源,建网节点加入完成后,经PC机串口发送数据,发完后,关闭电源。等会从新接通电源,我们会发现PC机窗口显示刚才发的数据。

分析:节点加入成功后,EndDevice接受到数据后,将数据的信息和数据的长度保存在Flash内存中;断电再启动时。自动将协议栈的内容恢复,将数据发送出去,Coordinator接收数据,经显示在PC机的串口窗口上。

五、存在问题和解决方法

1. 再设计进入休眠模式时,刚开始很难理清楚合适进入休眠模式,何时唤醒定时器;后理清头绪,方才好编写程序。

2.在掉电保护中,关闭电源从新开启时,PC机串口不显示发送的数据,后查明原因,EndDevice可以不保存Coordinator的地址,因为协调器的地址是定的0x00;但是Coordinator必须保存EndDevice的地址,两者之间才可以进行断电启动后保持两者之间的通信。

心得体会

通过了为期四周的无线网络的实验,我们初步了解了ZigBee。熟悉Jnnice—WSN的开发环境。首先我们对硬件进行初步的了解,JN5139 芯片所设计的 WSN 开发板的外围电路以及复位电路、电源电路、和DIO口的分布。再设计程序时我们首先要知道硬件的电路连接和主芯片的了解,之后才可以就行软件的设计,相当于标准C中的main函数,

再设计课题时,开始头绪很凌乱,无从下手。经过老师的指导,了解了Jnnice—WSN的开发环境中得语言,虽然基于C的编写,当时由于C语言有区别。C语言有主函数,启动时从main()开始运行,当时Jnnice—WSN开发环境是从 AppColdStart( ) 开始运行;结点上电后将从这里开始运行程序。也了解到一些专用 函数,例如:初始化协议栈函数、中断响应函数、BOS定时响应函数等等。 再设计程序时,我们也深刻指导做任何事情都要恒心和毅力。坚持不懈,成功的必将使我们自己。不懂就问这时学习的重要环节,当我们遇到困难时,团队之间讨论;在没有解决办法的情况下,我们要学会利用我们身边的资源--咨询老师。

总的来说,在这四周的专业设计中,虽然我们过得很艰辛,但是我们受益也很大。学到了许多知道,让我们将理论与实际结合。使我们设计能力有了明显的提高,熟悉设计一相课题的流程图及步骤。先画流程图,按流程图设计软件程序。巩固我们C语言的基础,为我们即将毕业的学子,温习c的知识。同时也提高了我们分析C语言的能力和熟读C的能力。

32

通信新技术综合训练报告 实验八 ADC及数据采集实验

1.Coordinator程序:

/****************************************************************************/ /*** Include files ***/ /****************************************************************************/ #include \#include \#include \

#include //#include #include \#include \#include #include

/****************************************************************************/ /*** Macro Definitions ***/ /****************************************************************************/

#define HW_INT_Q_SIZE #define HW_INT_Q_PTR_MASK

33

附件ADC及数据采集实验

32 0x1f

通信新技术综合训练报告 实验八 ADC及数据采集实验 //#define APP_TICK_PERIOD_ms

500

/****************************************************************************/ /*** Type Definitions ***/ /****************************************************************************/

typedef struct {

uint32 u32Device; uint32 u32ItemBitmap; } tsHwIntData;

typedef struct

{

tsHwIntData asHwIntData[HW_INT_Q_SIZE]; volatile uint8 u8ReadPtr; volatile uint8 u8WritePtr; } tsHwEventQueue;

/****************************************************************************/ /*** Local Function Prototypes ***/ /****************************************************************************/ PRIVATE void vInit(void); //函数申明

PRIVATE void vAddDesc(void);

/****************************************************************************/ /*** Exported Variables ***/ /****************************************************************************/

/****************************************************************************/ /*** Local Variables ***/ /****************************************************************************/ tsHwEventQueue sHwEventQueue;

PRIVATE bool_t bNwkStarted = FALSE;

//PRIVATE bool_t NextReadStart = TRUE ; PRIVATE uint16 DstAddress = 0 ;

PRIVATE bool_t LED0 = FALSE; PRIVATE bool_t LED1 = FALSE; PRIVATE uint16 u16data = 0x0000;

PUBLIC void AppColdStart(void) {

HAL_GDB_INIT();

34

通信新技术综合训练报告 实验八 ADC及数据采集实验 HAL_BREAKPOINT();

WSN_CHANNEL; // 设置信道号

WSN_PAN_ID; // 设置网络ID vInit(); // 初始化函数 }

PUBLIC void AppWarmStart(void) // 热启动 {

AppColdStart(); }

PRIVATE void vInit(void) // 初始化函数 {

JZS_u32InitSystem(TRUE); // 初始化ZigBee协议栈 vLedInitFfd(); // 初始化LED灯 vLedControl(0,TRUE); // LED0亮 vLedControl(1,TRUE); // LED1 亮 vLedControl(2,FALSE); vLedControl(3,FALSE);

//vAHI_HighPowerModuleEnable (TRUE, TRUE ); (void)bBosRun(TRUE); // 启动BOS环境 }

// Bos周期性调用函数

void JZA_vAppEventHandler(void) { }

// 中断响应函数

PUBLIC void JZA_vPeripheralEvent(uint32 u32Device, uint32 u32ItemBitmap) { }

PUBLIC void JZA_vAppDefineTasks(void) { }

35

JZS_sConfig.u32Channel JZS_sConfig.u16PanId

= =


通信新技术综合训练报告(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:蒙脱土性质研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: