




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重 庆 交 通 大 学本科实验报告课程名称: 交换原理与通信网技术 专 业: 通信工程 年 级: 2010级 学 号: 姓 名: 学 院: 信息科学与工程学院 指导教师: 许 登 元 职 称: 副 教 授 成 绩: 2013年6月信息学院实验报告实验项目名称1、 实验目的1、 学习使用GAINSJ开发套件硬件资源的DIO口基本配置和中断相关知识,学习使用回调函数和队列函数。2、 学习使用GAINSJ开发套件串口的基本设置和应用3、 学习使用GAINSJ开发套件如何基于IEEE802.15.4协议栈和Jennic集成外设API组网并通信。学习星型网络的建立和低功耗模式的设置应用,掌握使用按键对灯进行无线控制。2、 实验原理 本综合实验涉及到三个主要部分:以下简述各部分的实验原理两种中断:队列函数中断处理机制:Application Queue API只能与IEEE 802.15.4 stack一起使用,它提供了应用、协议栈及硬件驱动等基于队列的接口。该API用来处理所有来自IEEE 802.15.4 MAC子层和片上外设的中断。回调函数中断处理机制:回调函数由用户自己定义传递给外设API。当中断发生时,这些函数被底层软件直接调用。由于回调函数运行在中断前后,它们必须迅速返回才能不延迟程序执行时间,与之相比,队列函数有时候更加适合,因为它的中断处理不是发生在中断前后。两种中断处理方式的不同点: 队列函数:函数u32AppQApiInit() 必须被调用,用来初始化事件队列应用接口(在源代码Interrupts1.c里所示)。回调函数:函数u32AppApiInit() 必须被调用,不使用的参数可以设成NULL(如源代码Interrupts2.c所示)。这个调用确保中断矢量表的初始化正确,了解更多的参数设置参看802.15.4 Stack API Reference Manual (JN-RM-2002)。回调函数需要被寄存,当中断发生时调用此函数,寄存一个回调函数可以通过指向作为寄存器函数参数的中断处理函数的指针来完成,寄存中断处理函数可以在Interrupts2.c里说明:vAHI_SysCtrlRegisterCallback(vDIOInterruptCallback); 这里指向vDIOInterruptCallback()的指针作为参数,函数vDIOInterruptCallback()负责中断处理,必须与PR_HWINT_APPCALLBACK 类型一致。也就是不能有返回值,必须有两个uint32 参数,因此vDIOInterruptCallback() 定义如下:PRIVATE void vDIOInterruptCallback (uint32 u32Device, uint32 u32ItemBitmap); 使用masks确定中断源:一旦中断发生,中断源通过使用masks JN5121-Timers对照协议栈提供的信息来决定,如产生中断的设备ID号(u32Device)和一个消息位(u32ItemBitmap),范围值参见Integrated Peripherals API Reference Manual (JN-RM-2001)。例子Interrupts1.c 里的vProcessIncomingHwEvent()函数和Interrupts2.c里的vDIOInterruptCallback()函数都有说明。 if ( (u32Device = E_AHI_DEVICE_SYSCTRL) & (u32ItemBitmap & E_AHI_DIO9_INT) 上面代码判断中断是否来自DIO9,系统控制器处理由比较器,唤醒定时器和DIO产生的中断。因此,通过对比消息位与DIO9 mask来确定中断源。一旦源决定,这个中断可以被正确的处理。初始化代码相同处: 1引脚方向设置,DIO9与SW1连接作为输入,DIO14与LED1连接作为输出:vAHI_DioSetDirection(E_AHI_DIO9_INT, 0); vAHI_DioSetDirection(0, E_AHI_DIO14_INT); 2输入和输出初始化设置,输入引脚全都上拉使能,输出引脚DIO14设为高,使得LED灯灭。vAHI_DioSetPullup(!E_AHI_DIO14_INT, E_AHI_DIO14_INT); vAHI_DioSetOutput(E_AHI_DIO14_INT, 0);3中断条件设置,即中断采用上升沿还是下降沿触发, 这里中断采用下降沿触发:vAHI_DioInterruptEdge(0,E_AHI_DIO9_INT); 4中断使能:vAHI_DioInterruptEnable(E_AHI_DIO9_INT, 0);使用GIANSJ开发套件的三个传感器板实现基于IEEE802.15.4的无线灯控应用实验原理:实验基于1个Coordinator节点和2个End device节点组成星型网络。作为Coordinator节点的LEDs D1-D2模拟灯,作为End device 节点的SW2作为灯开关。每块End device节点的SW2按下去后,触发控制灯节点的亮和灭,如图3-20所示。本系统没有定期请求数据发送,因此不使用定期信标。这样End device大部分时间就能处于低功耗睡眠模式。Coordinator模拟灯,需永久供电,不断倾听来自End device的数据。当End device节点开关按下后,控制其从睡眠模式唤醒并在其重新回到睡眠前发射数据包给Coordinator。Coordinator接收到数据包后,触发灯的亮灭。在无信标使能星型网络里,Coordinator选择完PAN ID和短地址后发起网络。一旦网络发起,协调器等待设备加入,每个设备加入网络后被分配一个短地址,用来后面的通信。如果至少有一个设备加入网络,协调器可以起到灯的作用,当它等待接收到从设备发出的数据包后触发灯的亮灭。设备在所有信道上发射信标请求,进行信道扫描以发现协调器。如果协调器运行正常,当它所在的信道接收到请求后,产生信标。协调器接收到信标后,设备与协调器结合并加入发现的网络。3、 使用仪器、材料硬件: PC机一台GAINSJ节点5个软件: code:blocksJennic Flash Programmer4、 实验步骤(1) 启动code blocks,在C:Jenniccygwinjennicdeveloper路径下的“Test DioInterrupts”文件夹建立一个工程DioInterrupts1。(2) 在新建工程中“JN51xx_15_4-main.c”文件里编辑代码或者直接将“JN51xx_15_4-main.c”文件从工程中去掉,而在工程中加入Interrupts1.c。添加消息队列处理文件AppQueueApi.c,右击Source,选择Add files,其所在目录为:JenniccygwinJennicSDKCommon|Source,”,这里选择的是Release目录。(3) 点击左上角的(Build)或(Rebuild)进行编译,无误的会有如下提示:目标文件生成目录选为“Release”,编译工程在JN5139_Build目录的Release文件夹下生成“DioInterrupts1.bin”文件。(4)重复上面3步,新建“DioInterrupts2.cbp”工程后编译,在Build目录的Release文件夹下生成“DioInterrupts2.bin”文件。(5)将串口线连到节点上,打开Jennic Flash Programmer,给节点上电,下载程序DioInterrupts1.bin到开发板节点。注意:需要烧写程序时,必须在打开“Jennic Flash Programmer”后再给节点上电。(6)关掉“Jennic Flash Programmer”软件,并重新启动节点,可以观察到节点电源灯亮,LED1和LED2暗。按下并松开SW1,对应的LED1变亮,再次按下并松开SW1,对应的LED1变灭,同样按下并松开SW2,可以看到对应的LED2的变化。(7)重复步骤(5)、(6),下载程序DioInterrupts2.bin到开发板节点。可以用同样的方式使用按键对灯进行控制。(1)启动code block,在C:Jenniccygwinjennicdeveloper路径下的“uarttest”文件夹建立一个工程“uarttest.cbp”。工程类型选择15.4。(2)删除自动生成的“JN51xx_15_4-main.c”,在“uarttest.cbp”工程中添加文件。.c文件包括AppQueueApi.c、serial.c、serialq.c、uart.c、uarttest.c,.h文件包括config.h、serial.h、serialq.h、uart.h,这些代码都可以在所给代码文件夹中的source文件夹中找到,把这些文件复制到该工程的Source文件夹中。然后选择编译完成的目标文件所在地址。添加后如下图所示:(3)编译工程在JN5121_Build目录的Release文件夹下生成uarttest.bin文件。(4)将串口线连到节点上,打开Jennic Flash Programmer,给节点上电,下载程序到开发板节点。注意:需要烧写程序时,必须在打开“Jennic Flash Programmer”后再给节点上电。(5)关掉“Jennic Flash Programmer”软件,并重新启动节点,可以观察到节点电源灯常亮,SW1闪烁。打开串口调试助手,波特率选择19200,在字符串输入框里输入字符或字符串,然后发送,在接受框里可显示发送的内容。如图2-13所示:启动Code:Blocks软件,新建一个工程,在默认路径C:JennicctgwinJennicSDKApplication 下新建一个新建一个工程:Light添加消息队列处理文件 AppQueueApi.c ,右键点击SourceAdd Files其所在目录为C:JenniccygwinJennicSDKCommonSource,选择Relese模式:接下来要编写主函数。编译工程,在工程Build目录的Release文件夹下生成Light.bin文件。将串口线连接到节点上,打开Jennic Flash Programmer软件,给节点上点,下载程序到开发板节点作为Coordinator。注意:需要烧写程序时,必须在打开Jennic Flash Programmer软件后再给节点上电。重复上述步骤,下载程序LightSwinch.bin文件到另外两个开发板节点作为End device。关掉Jennic
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水资源保护与开发利用合作协议
- 农业生物技术合作开发协议签署书
- 2024高中英语刷题首秧基础练能力练Unit3TheMillionPoundBankNoteSectionⅢGrammar含解析新人教版必修3
- 自考行政管理的技能培养与实践应用试题及答案
- 2025餐厅服务员劳动合同
- 真实场景中的建筑工程考试试题及答案
- 重点关注2025年建筑试题及答案
- 2025年合同履行与风险评估的英文文献综述
- 建筑工程协作与沟通技巧试题及答案
- 2025货物购销合同模板
- 幼儿园各类档案借阅登记表
- Q∕GDW 11445-2015 国家电网公司管理信息系统安全基线要求
- java考试管理系统源代码开题报告外文翻译英文文献计001
- 蒸汽疏水阀性能监测斯派莎克工程中国有限公司-Armstrong
- 机械创新设计技术结课论文
- 人教版九年级历史中考【政治经济专题复习课件44张】(共44张)
- T∕CSEA 6-2018 锌镍合金电镀技术条件
- 湘教版初中地理会考重点图复习汇集
- 年产10万吨飞灰水洗资源综合利用项目可行性研究报告模板
- 俄罗斯国歌歌词 中,俄,音对照
- MMT肌力评定表
评论
0/150
提交评论