版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一讲第二讲1. cc2530通用I/O口有21个:P0/P1/口个8个;P2口5个,其中,P1_0、P_1有20mA的驱动能力,其余只有4mA2. IO口配置相关的寄存器(3个)PxSEL: P0SEL、P1SEL、P2SEL,每个寄存器是1byte,分别用来设定3个口的工作模式。IO的两种工作模式:1.普通IO口模式:点灯、监测按键输入2.片上外设模式:作为串口或者其他非普通IO口PxDIR:P0DIR/P1DIR/P2DIR,每个寄存器占一个字节,用来设定IO口作为输入还是输出PxINP:P0INP/P1INP/P2INP: 输入情况下,注意P2INP寄存器后3位的用法(见下图):输出示
2、例(以P0_0为例):1) 设置P0_0为普通IO口工作模式,非片上外设:P0SEL=0xFE(&11111110)2) 让P0_0作为输出用,非输入监测用:P0DIR=0x01(+ 00000001)3) 输出(如P0_0=0或P0_0=1等)。输入示例(让P1_2作为输入):1) 设置P1_2为普通IO口工作模式,非片上外设:P1SEL=0xfd(11111011)2) 让P1_2作为输入检测用,非输出用P1DIR=0xfd(11111011)3) 选择上拉、下拉或三态中的一种输入(因为上电的时候寄存器默认为0,所以IO口都默认工作在普通IO口输入、上下拉模式)4) 检测用:If
3、(P1_2= =0 or 1)Else总结:由此可见,当芯片上电初始化后,3组IO口默认工作在普通IO口下的输入监测、上拉输入模式。自己编程示例:第三讲:外部中断检测 中断有3级开关:CPU中断总开关-IO口组中断开关-IO组内某口中断开关中断信号触发类型选择:上升、下降因此,某IO口产生中断需配置:1) CPU中断开关打开;EA=1;2) 该口所在的IO组中断打开;P0组的中断开关在IEN1的第5位;P1组的中断开关在IEN2的第4位;P2组的中断开关在IEN2的第1位;3) 该口中断打开;P0IEN;8位寄存器。例如要把P0_2脚的中断开关打开,就要把该寄存器的第2位在程序中置1P1IEN
4、P2IEN4) 配置中断信号的触发方式PICTL寄存器(8位)中断函数:编程示例:#pragma vector=P0INT_VECTOR_Interrupt void zd().P0IFG=0;/为避免死循环需要先清零,该寄存器有8位,分别为P0组8个脚的标志位,若某个脚产生中断,则该位置1,故出中断函数时要清零。P0IF=0;/CPU中断标志清零第四讲:时钟的切换和控制串口时钟:cc2530片内有4个时钟源,芯片工作时必须使用一高一低频进行搭配,使用两个寄存器进行对其配置以及当前状态标志。配置时钟源:CLKCONCMD命令寄存器:8位寄存器D6位用于高频时钟的选择;D7位用于低频时钟的选择;
5、0表示外部,1表示内部?(视频里)芯片进行无线通信时必须将时钟切换到32MHz的石英晶振上CLKCONSTA除了时钟状态标志外还有时钟分频功能参考代码如下:串口串口0有两组备用位置:备用位置1为P0_2和P0_3; 备用位置2为P1_4和P1_5。到底选择哪组由PERCFG寄存器的第0位配置,0表示备用1,1表示备用2.串口编程示例(部分):第五讲:DIY无线通信模块射频通信注意:1) 数据不能直接被发送出去,必须调制到高频载波上发送以提高通信效率,接收设备再解调恢复原始数据。IEEE802.15.4 ISM信道:2.4GHz频段/915GHz频段/896GHz频段实验中ZigBee大约工作在
6、2.4GHz频段(16个信道)2) 什么是信道?2405M 11号信道2410M 12号信道2415M 13号信道.2480M 26号信道信道一致的两个收发模块才能进行收发!3) 网络地址(网络短地址)、PANID(个域网ID)网络短地址:类似于计算机以太网的局域网,每台计算机都有唯一的一个IP地址。在ZigBee网络中,每一个通信模块都有一个通信地址,即网络短地址;网络短地址为2个字节。PANID:为了区分不同的ZigBee网络为每个ZigBee网络标示的ID,2个字节。4)每一个CC2530芯片上都有一块RAM存放发送和接收数据,缓冲区。都是128byte。模块通信编程示例(以视频中板子为
7、例)下图是主程序(主函数):#define SHORT_ADDR0 XREG( 0x6174 )#define SHORT_ADDR1 XREG( 0x6175 )/宏映射到CC2530的RAM上,操作宏就是操作对应地址上的RAM。发送模块的主函数里做了哪些工作:1) 板子上需要用到的资源初始化;2) 设置本模块的网络短地址;3) 等待按钮中断。4) 发生按钮中断时,在按钮中断里调用void RFSend(char*pstr,char len);函数把数据发送出去射频发送函数的定义如下:发送命令寄存器使用循环将数据压入发送缓冲区以上为数据发送做准备注意:RFST是数据发送寄存器射频接收函数定义
8、如下:引脚取反点灯如果倒数第三个字符为宏定义的7再通过串口发出去便于调试读第一个字节判断这一串数据后面字节数数码管配置程序:板子上其他硬件资源配置程序(均已模块化):实验中,使用key3按键控制另一模块的LED灯,该按键的中断程序如下图:发送数据,发送内容可见其定义其中涉及到该板子系统自定义的宏(如ON_LED0),参考如下 :总结:ZigBee既需要软件上(协议栈)的支持,也需要硬件上支持协议就是基于某硬件上数据进行传输的格式第六讲:协议栈之操作系统抽象层 OSAL1、操作系统是什么?能干什么事?为什么要在Zigbee里面引入操作系统他和Zigbee是什么关系?Main()While()A;
9、B;/新加入B段代码后会对A段代码产生影响。Delay();/浪费CPU的资源。及时使用定时器也会使得代码繁琐/为了提高代码执行效率、便于管理代码、提高软硬件资源的利用率、提高整个程序效率,便引入了操作系统。协议栈就是按照一定格式对数据进行打包、拆包以及一些其他功能的程序。协议栈里面有一个类似操作系统的东西(OSAL)传统程序:Main()While()A;/采集数据B;/处理数据C;/报警、打印引入操作系统后:A;/采集数据-模块化一个任务(功能、函数)1(ID)B;/处理数据C;/报警、打印任务的定义:在操作系统中实现某种功能的一块代码任务由一个全局变量来标识ID:任务ID char任务通
10、信:使用全局变量来标记任务执行状态、交流信息如Char a=0来标记任务1正在执行,当为0时,主程序检测到该任务已完成,采取其他操作。Main()osal_init_system( )/初始化每一个任务osal_start_system( )每一个任务:1) 其内容由其自己的功能代码定义,代码在任务(处理)函数里,每个函数名是一个16位的地址,2) 有自己的任务ID号3) 每个任务都有一个用来通信的全局变量,为2个字节,存于16位的数组中,即16位变量tasksEvents任务ID,如:tasksEvents0tasksEvents1操作系统初始化函数osal_start_system( )进
11、入之后,是一个死循环:不管得检查每一个任务的通信变量是否为零如果为0,则反复检查,如果不为零,则通过该变量的下标找到其任务ID号码,在通过该ID号从tasksAst找到相应的任务函数进行处理这就是OSAL的运作原理。事件:按钮按下以后产生中断,中断把某个任务通信的16位变量的某一位置1(还有其他一些操作)消息:向某一个任务发送消息就是把任务通信的16位变量的某一位置1,通信变量里面不同的位代表不同的消息调度:调度某一个任务就是运行某一个任务协议栈置操作系统抽象层按钮实验代码跟踪找到按键中断函数,half_key.c文件,里面的中断代码执行(通信变量置位等)完后发消息给主函数,检测到后进入处理函
12、数。怎么配置按钮中断、小灯:OnBoard.c一些全局的函数和变量配置在 half_key.c配置一些寄存器和宏(注释:Ctrl+K,取消shift+Ctrl+K)OSAL实际发消息机制1) 按钮按下进入half_key.c2)操作系统的函数:延迟发送的时间发送消息是哪一种事件向哪个任务发送消息即(hal_drivers.c)OSAL 是TI公司开发的一个类似OS的调度软件,并不是真正的OS第七讲:协议栈之组网通信在无线传感器网络里,按照其网络功能将ZigBee模块分为协调器、路由器、终端这三者在网络中的不同点:1) 协调器是WSN的发起者,创建网络,路由器和终端加入该网络2) 网络地址,加入
13、到协调器所创建的网络里的节点(协调器、路由器、终端)都会获得一个在该网络里唯一的16位地址(2byte),即网络地址(网络短地址),并且,协调器的网络地址永远是0x0000,其余节点的网络短地址是不确定的3) 除了协调器之外,其他节点如要加入网络,需要待加入节点的父节点介绍引入,注意:终端节点是不能充当父节点的,其他均可个域网ID(PANID):区分不同ZigBee网络的网络标识ID4) 端点:每个加入到ZigBee网络里的无线模块均是一个节点,每个节点里逻辑上存在若干个端点,模块间的收发消息均需指定一个端点进行,因此节点间通信的本质是端点间的通信,端点中有若干簇,端点号可以不同,但是簇号要一致。ZigBee网络广播通信配置流程:<协调器>1) 接收部分首先定义一个节点,定义一个端点描述符(结构体)簇(数组)ID16位填写端点描述符然后进行注册,注册完成后(端点和任务绑定),端点便可以接收消息了,外部从指定端点发来的数据都会引发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年创新药专利组合价值评估与交易谈判
- 护理伦理与职业精神培养
- 2026年城市绿廊 林带降噪除尘效应量化评估方法
- 2026年政府储备粮承储企业资格认定与监管要求
- 电信行业物联网技术在智能制造中的应用方案
- 梳齿板伸缩缝监理实施细则
- 敏感指标:护理敏感质量提升策略
- 2026年“自然光”显示标准在护眼显示产品中的落地应用
- 2026年高强高模型碳纤维热处理工艺路线设计与优化
- 2026年检查检验结果跨机构互认平台建设指南
- 民主决策、民主管理、民主监督制度
- 《助人技术:探索、领悟、行动三阶段模式》札记
- 2023广西桂林市桂林市七星区专职化社区工作者招聘聘前(第五批)笔试历年典型考题及考点剖析附答案带详解
- 铁路路基工程施工质量验收标准TB-10414-2018全部表格
- 边坡危石处理方案
- 软件工程与UML全套PPT完整教学课件
- 学前儿童依恋的类型及成因
- YY/T 0033-2000无菌医疗器具生产管理规范
- GB/T 41316-2022分散体系稳定性表征指导原则
- 舍弃小聪明,拥有大智慧
- CB/T 3780-1997管子吊架
评论
0/150
提交评论