1、无线传感器网络技术应用第一章第一章 基础知识介绍基础知识介绍1.1嵌入式嵌入式系统开发基本系统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍开发环境与过程介绍1.5 CC2531处理器简介处理器简介第第1章章 基础知识介绍基础知识介绍1.1嵌入式嵌入式系统开发基本系统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍开发环境与过程介绍1.5CC2531处理器简介处理器简介1.1嵌入式系统开发基本嵌入式系统开发基本规范规范项目规范更多地是指文档性的内容与一些要求。在一个
2、嵌入式系统开发过程中,项目规范大体类似于系统开发、软件开发的项目规范,但是增加了嵌入式系统的一些特点。一般而言,系统开发均需要经过:需求分析、系统分析、系统设计、系统实现、系统测试与试运行、系统评估等几个典型阶段。1.1嵌入式系统开发基本嵌入式系统开发基本规范规范1.嵌入式系统项目规范简介嵌入式系统项目规范以一个系统开发的全过程为主要线索,在此过程中形成的需求文档、设计图纸、软件算法文档、源代码、可运行文件、连线说明、使用说明、讲解文件等等一系列文件。在实际嵌入式系统开发过程当中,关于项目规范问题依照各个公司的规定有所区别,但是不能没有规范。图1.1小型项目规范文档包图1.1嵌入式系统开发基本
3、嵌入式系统开发基本规范规范2.教材简述的嵌入式系统项目规范说明1、问题描述文档(需求分析文档或任务发布文档)2、系统分析文档3、硬件原理图文档4、硬件PCB文档5、软件算法设计文档6、软件源代码7、系统硬件连接图文档8、系统测试文档9、使用说明书10、讲解用PPT无线传感器网络技术与应用第一章第一章 基础知识介绍基础知识介绍1.1嵌入式嵌入式系统开发基本系统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍开发环境与过程介绍1.5 CC2531处理器简介处理器简介第一章第一章 基础知识介绍基础知识介绍1.1嵌入式嵌入式系统开发基本系
4、统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍开发环境与过程介绍1.5 CC2531处理器简介处理器简介1.2嵌入式软件嵌入式软件开发过程开发过程本节重点介绍嵌入式软件开发过程,这个过程指导了课程基础篇部分知识的讨论。对于小规模的嵌入式软件系统开发通常遵循如下几个比较标准的过程:第一步:深入学习原理图,了解PCB图。第二步:深入学习器件手册第三步:根据器件手册编写软件算法第四步:创建工程编写软件代码第五步:调试与试运行代码1.2嵌入式软件嵌入式软件开发过程开发过程1.深入学习原理图,了解PCB原理图是整个嵌入式硬件的重要指导文
5、档,该文档明确了处理器连接的外部器件有哪些,是以何种方式进行连接的。这里,通过连接何种器件以及何种连接方式,我们可以简要分析这种连接到处理器的时候,处理器获取的是何种数据:串行数据还是并行数据。1.2嵌入式软件嵌入式软件开发过程开发过程2.深入学习器件手册器件手册决定了如果操作这个器件,比如:处理器、集成块芯片等。器件手册读者完全可以理解为使用说明书,并且器件手册就是器件的使用说明书。只是区别是一般的说明书是直接使用,而器件手册这种“说明书”需要你通过编程来使用这个器件而已。1.2嵌入式软件嵌入式软件开发过程开发过程3.根据器件手册编写软件算法既然涉及到编程,那么应当如何去编程?这里需要根据深
6、入学习器件手册,来找到编程中要使用到的编程思路与过程。这个编程思路就是软件编写的前提条件,这个思路实际上就是编程的算法。注意到这个算法不是无中生有的,它是来自于对器件手册的深入学习,与对器件手册的高度熟悉;读者在慢慢积累嵌入式软件开发中的经验过程中,不断深入了解器件手册,逐步掌握在器件手册中找到编程过程的方法,并能将这些过程编写成一些比较合适的算法,以便于后续进行代码的编写。1.2嵌入式软件嵌入式软件开发过程开发过程4.创建工程编写软件代码该过程是嵌入式开发的必要过程,创建基本的嵌入式软件开发工程、配置工程、依据前面编写的算法、编写应用软件的算法,最后将算法“翻译”成软件代码。1.2嵌入式软件
7、嵌入式软件开发过程开发过程5.调试与试运行代码建立工程并编写完软件之后,就需要对软件进行调试,并在嵌入式系统板电路上运行该代码,以确定应用功能的实现。无线传感器网络技术与应用第一章第一章 基础知识介绍基础知识介绍1.1嵌入式嵌入式系统开发基本系统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍开发环境与过程介绍1.5 CC2531处理器简介处理器简介第一章第一章 基础知识介绍基础知识介绍1.1嵌入式嵌入式系统开发基本系统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍
8、开发环境与过程介绍1.5 CC2531处理器简介处理器简介1.3算法基本算法基本概念概念算法通常被定义为“解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制”。我们可以简单理解算法为:算法就是为了能够使用计算机语言编程来解决问题的步骤。1.3算法基本算法基本概念概念这里,算法在实际应用上有如下几个关键特征:(1)必须保证能够解决问题(2)必须是一系列步骤(3)必须能够通过某种方式转变为计算机程序一般学术界定义算法的关键特征是五个:有穷、确定、可行、有输入、有输出。我们认为在确保能解决问题的前提下,算法的核心目标有两个:一个就是确定解决问题的方法
9、,这个方法最终转变为具有先后次序的流程;第二个就是要能够转化为程序,这是因为算法所确定的流程最终需要计算机程序语言来实现,并且由计算机执行由算法确定的思路来解决问题。1.3算法基本算法基本概念概念是否能够正确编写一个算法,决定了后面编写的程序是否正确。但是掌握算法的设计相对比较难,这是由于算法设计需要两方面的知识:一个方面是能够找到一个解决问题的方法,第二个是该方法能够使用计算机语言描述。【要点】对于设计算法需要掌握的两方面知识而言:(1)找到解决问题的方法:基本上只要清楚了解问题是什么,多数人都能找方法,只是方法好不好的问题(算法的优劣)。(2)能够使用计算机语言描述:这个相对“找到解决问题
10、的方法”而言难得多,因为必须对计算机运行过程、内存逻辑架构等有所了解。从满足程序设计角度而言,尤其需要掌握内存的逻辑结构。下面我们通过一个简单的例子来说明算法的设计方法。我们的例子定义为一个“问题”。1.3算法基本算法基本概念概念问题:求圆面积初步分析:实际上,要求计算机帮助我们解决问题的时候,首先需要考虑到计算机的特性:事情是一步一步来完成的(即程序是一条一条执行的)。求圆的面积首先需要知道圆的半径,因此第一步就是给出圆的半径;然后就用已知的半径计算 值;最后这一步尤其重要:显示到屏幕上(这一步很关键,如果你不告诉计算机显示到屏幕上,计算机将什么都不做,那么计算的结果就不知道是什么)。1.3
11、算法基本算法基本概念概念整理:经过分析,我们整理初步的算法如下:第一步:给出园的半径r第二步:计算 值第三步:显示计算的结果深入分析:问题1:计算机如果运行程序,用户是不是知道他到底要做什么?也就是说,用户用你的软件的时候,你应该有个提示之类的信息,用于引导用户去使用你的软件。那么这里用户要做的只是给出r值即可。问题2:初步算法的三个步骤是很清楚的,不能先计算 值,这是由于不知道r是多少;因此,第一步与第二步之间是有明确的先后顺序的。当然也不能先显示结果,因为还没算出来。1.3算法基本算法基本概念概念通常的错误算法如同下面的两种写法:常见错误算法示例问题3:怎么输入r值?这个问题就需要知道一点
12、计算机知识。显然是使用键盘输入!因此第一步更精确的算法是:使用键盘输入r值。第一步:计算第二步:输入r值第三步:输出结果第一步:输入r值第二步:输出结果第三步:计算1.3算法基本算法基本概念概念问题4:计算 值。这里很容易出错,原因是计算的结果通常需要保存。而如果仅仅是计算,则结果算完之后直接被丢弃了。也就是说:计算机计算的结果是临时的,要么使用临时结果,要么保存计算结果。因此第二步更精确的算法是:保存 的计算结果。最终算法如下:第一步:提示用户输入半径r第二步:从键盘输入半径r第三步:计算并保存结果第四步:显示该结果问题:很简单的东西搞得这么复杂,为什么要这样做问题:很简单的东西搞得这么复杂
13、,为什么要这样做?无线传感器网络技术与应用第一章第一章 基础知识介绍基础知识介绍1.1嵌入式嵌入式系统开发基本系统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍开发环境与过程介绍1.5 CC2531处理器简介处理器简介第一章第一章 基础知识介绍基础知识介绍1.1嵌入式嵌入式系统开发基本系统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍开发环境与过程介绍1.5 CC2531处理器简介处理器简介1.4开发环境与过程开发环境与过程介绍介绍开发环境是IAR Embedde
14、d Workbench 4.51.4开发环境与过程开发环境与过程介绍介绍下面我们用一个简单的例子来让读者初步体验整个开发的过程。这个例子的目标是:让开发板上的四个LED灯闪烁。【IAR环境下CC2531单片机开发的基本步骤】第一步:连接开发板第二步:启动IAR开发环境第三步:新建文件夹第四步:在IAR中创建工程第五步:配置工程第六步:输入C代码第七步:编译与调试第八步:试运行观察运行效果1.4开发环境与过程开发环境与过程介绍介绍第一步:连接开发板连接开发板的时候,将USB线连接到SmartRF04EB仿真器,USB线另外一头连接到计算机;SmartRF04EB仿真器输出线输出的是一个标准JTA
15、G/ISP、10PIN(10针)的接口,1.4开发环境与过程开发环境与过程介绍介绍第二步:启动IAR开发环境。1.4开发环境与过程开发环境与过程介绍介绍第三步:新建文件夹在计算机任意找一个盘,例如:D盘,在根目录下面建立一个文件夹,用于存储创建工程文件中生成的全部文件。我们创建的文件夹名称为:myWorkSpace1.4开发环境与过程开发环境与过程介绍介绍第四步:在IAR中创建工程创建完文件夹之后,需要创建IAR工程,以便于后续进行程序设计工作。注意到创建工程的目标是:为了写代码调试硬件而用。点击projectCreate New Project点击该命令之后,在弹出的对话框中点击OK。然后弹
16、出保存该工程的对话框,输入工程名(自己给工程命名,一般用英文名),我们输入的工程名称为:myProject点击保存按钮来保存工程,完成之后在左边Workspace中会出现我们刚才命名的工程1.4开发环境与过程介绍开发环境与过程介绍下面需要创建一个空的C文档,以便于后续在该C文档中编写代码控制CC2531节点硬件。点击FileNewNew File命令创建一个空的编辑文档在打开的空文档中按下Ctrl+s按钮保存当前打开的文档,注意后缀名为.c。我们命名为testLed.c保存后在左边Workspace下面Files中的myProject行上点击右键,添加testLed.C文档到工程点击FileS
17、ave All命令,保存工作空间。本文工作空间的命名为:myWorkspace1.4开发环境与过程介绍开发环境与过程介绍第五步:配置工程在创建工程完成之后,需要对工程进行配置。配置工程的主要目的是,让IAR集成开发环境“知道”用户到底需要对哪种处理器进行开发工作。由于我们是对CC2531处理器进行开发工作,因此配置工程的目标是使得当前工程能够配合开发CC2531节点。工程配置的主要内容为三个项目:General Options(一般选项)、Linker(连接器)、Debugger(调试器)。myProject高亮行上点击右键点击Options按钮1.4开发环境与过程介绍开发环境与过程介绍在弹出
18、的工程配置窗口中,需要配置的项目有三类:General Options(一般选项),Linker(连接器),Debugger(调试器)General Options(一般选项)配置:首先点击General Options(一般选项),在General Options(一般选项)中需要配置三个标签:Target(目标,指针对哪种处理器)、Data Pointer(数据指针)、Stack/Heap(堆/栈),三个标签的详细配置如下1.4开发环境与过程介绍开发环境与过程介绍DataPointer设置(General Options(一般选项)配置)然后点击Data Pointer标签进行配置,Num
19、ber of DPTRs中选择1。即:只使用一个数据指针1.4开发环境与过程介绍开发环境与过程介绍Stack/Heap配置(General Options(一般选项)配置)1.4开发环境与过程介绍开发环境与过程介绍Linker连接器的配置:Linker(连接器)部分的配置也有三个标签需要配置,分别是:Output、Extra Output、Config三个部分Output(输出)标签:点击在Output标签,在Allow C-Spy-specific extra output file前面的框中打勾(点击一下该框即可打勾)。意思是,允许C语言指定监控附加输出文件1.4开发环境与过程介绍开发环境
20、与过程介绍Extra Output(附加输出)标签(Linker配置)点击Extra Output标签,在Generate extra output file前面的框中打勾。意思是:产生附加的输出文件。选中该项目后,在编译成功之后会自动产生可以被CC2531处理器识别的HEX可执行文件。并且在下方的Output file内的Override default前面打勾,并将文件名的后缀.sim名改成.hex1.4开发环境与过程介绍开发环境与过程介绍Config(配置)标签:点击Config标签,在Linker command file(连接器命令文件)项目下面的Override default(改
21、写缺省值)前面的框中打勾,并点击下面的.按钮,重新定位Linker command file到如下目录:D:Program Files(x86)IAR SystemsEmbedded Workbench 5.48051configlnk51ew_cc2531.xcl注意:作者的计算机将IAR继承开发环境安装到了D盘Program Files(x86)目录下。读者在操作的时候,点击了.按钮之后,只需要再点击两次“向上”按钮就可以定位到该目录下。请注意:必须是config目录下面的lnk51ew_cc2531.xcl文件。1.4开发环境与过程介绍开发环境与过程介绍Debugger(调试)标签的配置
22、:在Debugger标签中仅有Driver(驱动)一项需要配置,点击Driver下拉框,选中:Texas Instruments(德州仪器公司)1.4开发环境与过程介绍开发环境与过程介绍第六步:输入C代码。代码实现了一个LED闪烁的功能第七步:编译与调试第八步:试运行观察运行效果操作演示无线传感器网络技术与应用第一章第一章 基础知识介绍基础知识介绍1.1嵌入式嵌入式系统开发基本系统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍开发环境与过程介绍1.5 CC2531处理器简介处理器简介第一章第一章 基础知识介绍基础知识介绍1.1嵌
23、入式嵌入式系统开发基本系统开发基本规范规范1.2嵌入式软件开发过程嵌入式软件开发过程1.3算法基本概念算法基本概念1.4开发环境与过程介绍开发环境与过程介绍1.5 CC2531处理器简介处理器简介1.5 CC2531处理器处理器简介简介1、器件手册(DataSheet)SWRU191无线传感器网络技术与应用第二章第二章 通用通用I/O2.1通用通用I/O部分基本原理部分基本原理2.2通用通用I/O部分基本操作过程部分基本操作过程2.3通用通用I/O操作示范操作示范第二章第二章 通用通用I/O2.1通用通用I/O部分基本原理部分基本原理2.2通用通用I/O部分基本操作过程部分基本操作过程2.3通
24、用通用I/O操作示范操作示范2.1通用通用I/O部分部分基本原理基本原理CC2531有21个数字输入/输出引脚,可以配置为通用数字I/O或外设I/O信号,配置为连接到ADC、定时器或USART外设。这些I/O口的用途可以通过一系列寄存器配置,由用户软件加以实现。I/O端口具备如下重要特性:21个数字I/O引脚可以配置为通用I/O或外部设备I/O输入口具备上拉或下拉能力具有外部中断能力21个I/O引脚都可以用作于外部中断源输入口。因此如果需要,外部设备可以产生中断,外部中断功能也可以从睡眠模式唤醒设备2.1通用通用I/O部分部分基本原理基本原理2.1通用通用I/O部分部分基本原理基本原理五个步骤
25、是进行开发的基本要点:第一步:深入学习原理图,了解PCB图。第二步:深入学习器件手册第三步:根据器件手册编写软件算法第四步:创建工程编写软件代码第五步:调试与试运行代码2.1通用通用I/O部分部分基本原理基本原理无线传感器网络技术与应用第二章第二章 通用通用I/O2.1通用通用I/O部分基本原理部分基本原理2.2通用通用I/O部分基本操作过程部分基本操作过程2.3通用通用I/O操作示范操作示范第二章第二章 通用通用I/O2.1通用通用I/O部分基本原理部分基本原理2.2通用通用I/O部分基本操作过程部分基本操作过程2.3通用通用I/O操作示范操作示范2.2通用通用I/O部分基本操作过程部分基本
26、操作过程2.2通用通用I/O部分基本操作部分基本操作过程过程通过原理图的分析,我们可以知道对P1口中P1_0、P1_1、P1_3、P1_4四个引脚的编程操作是控制LED1、LED2、LED3、LED4四个LED的关键。那么首先,P1_0、P1_1、P1_3、P1_4四个引脚是什么?注意到本章是讨论通用I/O,读者也应当能够联想到这四个引脚是I/O引脚。CC2531有多少个I/O引脚?总共有21个可用的I/O引脚。为什么?这是因为器件手册上是这么说的。CC2531的P1_0、P1_1、P1_3、P1_4四个引脚如何操作?需要查看器件手册。那么是否能解决控制LED亮灭的问题,就变成了对P1_0、P
27、1_1、P1_3、P1_4四个引脚是否能够进行操作的问题,最终变成了深入研究器件手册的问题2.2通用通用I/O部分基本操作部分基本操作过程过程如果读者从TI公司的官方网站上下载了CC253x的系列器件手册,则该文档的名称为:swru191f.pdf文档,在该文档的78页起第七章(chapter 7)中详细介绍了I/O的操作。该文档对应的中文文档名为:2.4GHz IEEE 802.15.4和ZigBee 应用的CC253X片上系统解决方案用户指南。I/O端口部分在第70页。2.2通用通用I/O部分基本操作部分基本操作过程过程通过查阅器件手册我们大致可以得到如下的操作过程:第一步:设置P1SEL
28、寄存器选中对应的P1_x端口第二步:设置P1DIR寄存器设置对应的P1_x端口的方向第三步:编写应用代码国外器件手册的命名都是很有意义的,例如:P1SEL中SEL是Select或是Selection的简写,意思是选择。P1DIR中DIR表示Direct或是Direction,意思是方向。那么上面的步骤可以理解为,先选择P1口的某个I/O端口线,然后再设置P1口的某个I/O端口线的方向。无线传感器网络技术与应用第二章第二章 通用通用I/O2.1通用通用I/O部分基本原理部分基本原理2.2通用通用I/O部分基本操作过程部分基本操作过程2.3通用通用I/O操作示范操作示范第二章第二章 通用通用I/O
29、2.1通用通用I/O部分基本原理部分基本原理2.2通用通用I/O部分基本操作过程部分基本操作过程2.3通用通用I/O操作示范操作示范2.3通用通用I/O操作操作示范示范应用目标:完成四个LED灯的交替闪烁功能。说明:当LED1与LED3亮起的时候,LED2与LED4熄灭当LED2与LED4亮起的时候,LED1与LED3熄灭2.3通用通用I/O操作操作示范示范算法2.1 四个LED交替闪烁算法第一步:系统初始化1.1选中LED1LED4连接到P1口对应的4个I/O端口线1.2设置这四根I/O端口线为输出第二步:在无限循环中完成如下工作2.1点亮LED12.2点亮LED32.3熄灭LED22.4熄
30、灭LED42.5延时一段时间2.6点亮LED22.7点亮LED42.8熄灭LED12.9熄灭LED32.10延时一段时间操作演示无线传感器网络技术与应用第三章第三章 外部中断外部中断3.1 中断基本原理中断基本原理3.2 外部中断部分基本操作过程外部中断部分基本操作过程3.3 外部中断操作示范外部中断操作示范第三章第三章 外部中断外部中断3.1 中断基本原理中断基本原理3.2 外部中断部分基本操作过程外部中断部分基本操作过程3.3 外部中断操作示范外部中断操作示范3.1 中断中断基本原理基本原理外部中断:外部中断是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将
31、迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后又返回被中断的程序处,继续执行下去。CC2531处理器中有18个中断源,每个中断源都有它自己的位于一系列SFR(特殊功能寄存器)寄存器中的中断请求标志,相应标志位请求的每个中断可以分别使能或禁用。中断分别组合为不同的和可以选择的优先级别.3.1 中断中断基本原理基本原理中断概览表3.1 中断中断基本原理基本原理中断的概念:中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行3.1 中断中断基本原理基本原理中断处理指的是:处理器处理该
32、突发事件的情况。中断屏蔽:处理器也可以选择对突发事件不予理睬,这种行为就是中断屏蔽。中断优先级:对每一种突发事件分配一个“中断优先级”,当同时有两个或两个以上的中断事件发生,先处理优先级高的中断,后处理优先级低的中断。中断嵌套:中断处理程序尚未执行完时又产生行的中断。如果后来的中断优先级高于正在执行的中断服务程序,则处理器暂停正在执行的中断服务程序,转而去执行优先级更高的服务程序,执行完之后,执行本中断服务程序,最后返回执行主程序。无线传感器网络技术与应用第三章第三章 外部中断外部中断3.1 中断基本原理中断基本原理3.2 外部中断部分基本操作过程外部中断部分基本操作过程3.3 外部中断操作示
33、范外部中断操作示范第三章第三章 外部中断外部中断3.1 中断基本原理中断基本原理3.2 外部中断部分基本操作过程外部中断部分基本操作过程3.3 外部中断操作示范外部中断操作示范3.2 外部中断部分基本操作外部中断部分基本操作过程过程3.2 外部中断部分基本操作外部中断部分基本操作过程过程当没有按下按钮的时候:VCC通过电阻R5直连到标号KEY,也就是直接连接到P1_2引脚。此时P1_2引脚接收到高电平,也就是“1”信号。简化图如图3-6所示:3.2 外部中断部分基本操作外部中断部分基本操作过程过程当按下按钮的时候:如图3-7所示,点A直接通过按钮连接到地线,实际上就是引脚P1_2引脚直接连接到
34、地线,也就是“0”信号。如果读取P1_2按钮,得到“1”表示按钮没有被按下;如果读取P1_2按钮,得到“0”表示按钮被按下3.2 外部中断部分基本操作外部中断部分基本操作过程过程一般对于图3-5的设计,我们这里直接给出使用外部中断的具体程序设计流程如下(详细内容请读者查阅器件手册与百度):(1)主程序中使用中断的步骤如下:第一步:设置P1_2引脚为输入引脚第二步:配置P1口为能够接收中断(中断边沿为上升沿(0-1跳变)产生中断)第三步:打开P1_2引脚的中断第四步:打开整个P1口的中断第五步:打开全局中断(2)中断服务程序中的代码大致思路:第一步:关闭全局中断(表示只使用本中断)第二步:判断是
35、否为P1_2产生的中断如果是,对按键去抖动操作(考虑到手按下按钮是不会按得很稳定的)按钮功能处理第三步:打开全局中断(再次允许接收全局中断)无线传感器网络技术与应用第三章第三章 外部中断外部中断3.1 中断基本原理中断基本原理3.2 外部中断部分基本操作过程外部中断部分基本操作过程3.3 外部中断操作示范外部中断操作示范第三章第三章 外部中断外部中断3.1 中断基本原理中断基本原理3.2 外部中断部分基本操作过程外部中断部分基本操作过程3.3 外部中断操作示范外部中断操作示范3.3 外部中断操作外部中断操作示范示范应用目标:应用目标:使用P0口的外部中断功能。开始四盏灯全灭,当第一次点按SW1
36、键,LED1灯亮;而后每点按SW1键一次,LED灯亮的个数加1;当四盏灯全亮时,再次点按SW1键,则四盏灯全灭,重新回到初始状态.3.3 外部中断操作示范外部中断操作示范3.3 外部中断操作外部中断操作示范示范主程序部分算法:初始化系统部分的算法第一步:初始化系统第二步:在无限循环中做根据按钮按下的次数情况次数1:亮LED1次数2:亮LED2次数3:亮LED3次数4:亮LED4其他:LED全灭第一步:设置P1_2引脚为输入引脚第二步:配置P1口中断边沿为上升沿触发中断第三步:打开P1_2引脚的中断第四步:打开整个P1口的中断第五步:打开全局中断中断部分算法第一步:关闭全局中断第二步:如果是按钮
37、产生的中断按键去抖动计算按钮按下的次数清除中断标志第三步:打开全局中断操作演示无线传感器网络技术与应用第四章第四章 系统时钟源与系统时钟源与定时器定时器4.1 系统时钟源与定时器基本原理系统时钟源与定时器基本原理4.2 系统时钟源与定时器部分基本操作过程系统时钟源与定时器部分基本操作过程4.3 系统时钟源与定时器操作示范系统时钟源与定时器操作示范第四章第四章 系统时钟源与系统时钟源与定时器定时器4.1 系统时钟源与定时器基本原理系统时钟源与定时器基本原理4.2 系统时钟源与定时器部分基本操作过程系统时钟源与定时器部分基本操作过程4.3 系统时钟源与定时器操作示范系统时钟源与定时器操作示范4.1
38、 系统时钟源与定时器系统时钟源与定时器基本原理基本原理高速32MHZ时钟系统概要图低速32.768KHZ时钟概要图时钟源4.1 系统时钟源与定时器系统时钟源与定时器基本原理基本原理定时器属于CC2531处理器中的一个部件,该部件在手册中名称叫:Timer,在CC2531处理器中共有4个定时器定时器4.1 系统时钟源与定时器系统时钟源与定时器基本原理基本原理常用定时器1定时器1的功能描述如下:五个捕获/比较通道上升沿、下降沿或任何边沿的输入捕获设置、清除或切换输出比较自由运行、模或正计数/倒计数操作可被1,8,32或128整除的时钟分频器在每个捕获/比较和最终计数上生成中断请求DMA触发功能定时
39、器1中有一个16位计数器,在每个时钟边沿(时钟源工作一次)递增或递减。时钟边沿周期由寄存器中的CLKCON.TICKSPD二进制位确定,它提供了从0.25MHz到32MHz的不同的时钟频率(可以使用32MHz外部晶振作为时钟源)。在定时器1中由寄存器中的T1CTL.DIV二进制位设置的分频器值进一步分频,这个分频器值可以是1、8、32或128。因此当32MHz晶振用作系统时钟源时,定时器1可以使用的最低时钟频率是1953.125Hz,最高是32MHz。当16MHzRC振荡器用作系统时钟源时,定时器1可以使用的最高时钟频率是16MHz。无线传感器网络技术与应用第四章第四章 系统时钟源与系统时钟源
40、与定时器定时器4.1 系统时钟源与定时器基本原理系统时钟源与定时器基本原理4.2 系统时钟源与定时器部分基本操作过程系统时钟源与定时器部分基本操作过程4.3 系统时钟源与定时器操作示范系统时钟源与定时器操作示范第四章第四章 系统时钟源与系统时钟源与定时器定时器4.1 系统时钟源与定时器基本原理系统时钟源与定时器基本原理4.2 系统时钟源与定时器部分基本操作过程系统时钟源与定时器部分基本操作过程4.3 系统时钟源与定时器操作示范系统时钟源与定时器操作示范4.2 系统时钟源与定时器部分基本操作系统时钟源与定时器部分基本操作过程过程我们建议在对CC253X处理器在进行任何控制操作之前都应当最先设置好
41、系统的时钟源,因此时钟源的操作与设置问题是关键问题。在器件手册第四章的时钟操作中提到:使用CLKCONCMD寄存器中的OSC二进制位设置系统时钟。并且,注意到手册中还特别提到了“注意改变CLKCONCMD.OSC位不会立即改变系统时钟。时钟源的改变首先在CLKCONSTA寄存器中的OSC二进制位与CLKCONCMD寄存器的OSC二级制位相等的时候生效。这是因为在实际改变时钟源之前需要有稳定的时钟,还要注意CLKCONCMD.CLKSPD位反映系统时钟的频率,因此是CLKCONCMD.OSC位的映像。”4.2 系统时钟源与定时器部分基本操作系统时钟源与定时器部分基本操作过程过程系统时钟源初始化部
42、分在操作系统时钟源的时候应当遵循如下顺序:第一步:设置系统时钟源寄存器CLKCONCMD以确定系统主时钟的频率;第二步:读取CLKCONSTA寄存器的值;第三步:比较CLKCONSTA寄存器的值与CLKCONCMD寄存器的值是否相等,如果相等表示系统主时钟已经准备好了。上述三个步骤是使用主时钟的基本过程,尤其注意第三步应当必须等待主时钟准备好,这样整个系统才能在系统时钟的控制下正常工作,这是一般的软件设计当中最早需要编写的代码部分。4.2 系统时钟源与定时器部分基本操作系统时钟源与定时器部分基本操作过程过程定时器的基本操作过程定时器的基本操作过程在本章介绍过,任何内部部件的操作都需要在系统主时
43、钟操作结束以后进行,定时器模块也不例外。对于定时器模块的操作参考器件手册,其中主要操作方法的介绍为“一般来说控制寄存器 T1CTL 用于控制定时器操作,状态寄存器 T1STAT 保存中断标志。”定时器有三种工作模式:自由运行模式、模模式、正计数/倒计数模式4.2 系统时钟源与定时器部分基本操作系统时钟源与定时器部分基本操作过程过程自由运行模式在自由运行操作模式下,计数器从0 x0000开始,每个活动时钟边沿增加1。当计数器达到0 xFFFF(溢出),计数器载入0 x0000,继续递增它的值,如图4-6所示当达到最终计数值0 xFFFF时,设置标志IRCON.T1IF和T1STAT.OVFIF。
44、如果设置了相应的中断屏蔽位TIMIF.OVFIM以及IEN1.T1EN,将产生一个中断请求。自由运行模式可以用于产生独立的时间间隔,输出信号频率4.2 系统时钟源与定时器部分基本操作系统时钟源与定时器部分基本操作过程过程模模式当定时器运行在模模式,16位计数器从0 x0000开始,每个活动时钟边沿增加1。当计数器达到T1CC0(溢出),寄存器T1CC0H:T1CC0L保存的最终计数值,计数器将复位到0 x0000并继续递增。如果定时器开始于T1CC0以上的一个值,当达到最终计数值(0 xFFFF)时,设置标志IRCON.T1IF和T1CTL.OVFIF。如果设置了相应的中断屏蔽位TIMIF.O
45、VFIM以及IEN1.T1EN,将产生一个中断请求,模模式可以用于周期不是0 xFFFF的应用程序。4.2 系统时钟源与定时器部分基本操作过程系统时钟源与定时器部分基本操作过程正计数/倒计数模式计数器反复从0 x0000开始,正计数直到达到T1CC0H:T1CC0L 保存的值,然后计数器将倒计数直到0 x0000,如图4-8所示。这个定时器用于周期必须是对称输出脉冲而不是0 xFFFF的应用程序,因此允许中心对齐的PWM输出应用的实现。在正计数/倒计数模式,当达到最终计数值时,设置标志IRCON.T1IF和T1CTL.OVFIF。如果设置了相应的中断屏蔽位TIMIF.OVFIM以及IEN1.T
46、1EN,将产生一个中断请求4.2 系统时钟源与定时器部分基本操作过程系统时钟源与定时器部分基本操作过程从上述三种工作方式大致能够了解到如下要点:控制寄存器 T1CTL 用于控制定时器操作;状态寄存器 T1STAT 保存中断标志,用于判断;需要将定时器设置为自由运行模式、模模式、正计数/倒计数模式三种工作模式中的某一种。因此,编程要点如下:第一步:设置好主时钟;第二步:设置T1CTL寄存器,设置内容为定时器的:通道、分频方式、工作方式;第三步:使用定时器。这里的使用可以直接采用主程序查询,也可以使用中断,如果使用中断则需要编写中断子程序无线传感器网络技术与应用第四章第四章 系统时钟源与系统时钟源
47、与定时器定时器4.1 系统时钟源与定时器基本原理系统时钟源与定时器基本原理4.2 系统时钟源与定时器部分基本操作过程系统时钟源与定时器部分基本操作过程4.3 系统时钟源与定时器操作示范系统时钟源与定时器操作示范第四章第四章 系统时钟源与系统时钟源与定时器定时器4.1 系统时钟源与定时器基本原理系统时钟源与定时器基本原理4.2 系统时钟源与定时器部分基本操作过程系统时钟源与定时器部分基本操作过程4.3 系统时钟源与定时器操作示范系统时钟源与定时器操作示范4.3 系统时钟源与定时器操作系统时钟源与定时器操作示范示范应用目标应用目标(系统时钟源部分(系统时钟源部分):设置系统的时钟源为32MHZ然后
48、观察LED1与LED2的交替闪烁速度然后设置系统的时钟源为16MHZ然后观察LED1与LED2的交替闪烁速度重复上述操作4.3 系统时钟源与定时器操作系统时钟源与定时器操作示范示范时钟源操作的要点选择对应的时钟源:设置CLKCONCMD寄存的OSC二进制位读CLKCONSTA的状态当CLKCONSTA的OSC二进制位与CLKCONCMD的OSC二进制相等的时候,表示时钟源已经稳定4.3 系统时钟源与定时器操作系统时钟源与定时器操作示范示范应用应用目标目标(定时器部分)(定时器部分):用定时器1来改变LED1和LED2的状态,T1每溢出30次,LED1、LED2亮灭状态同时改变一次。4.3 系统
49、时钟源与定时器操作系统时钟源与定时器操作示范示范算法设计第一步:系统初始化,统计溢出次数清零第二步:在无限循环中做如果是定时器1发出的中断清除中断标志溢出次数加一如果溢出次数为30次溢出次数清零LED1和LED2的状态取反第一步:选中LED1和LED2对应的I/O口第二步:设置这些I/O口的方向第三步:设置LED1和LED2的初始状态(亮LED1,灭LED2)第四步:设置系统工作的主时钟为32MHZ第五步:设置定时器1为:通道0、8分频、自动重载模式无线传感器网络技术与应用第五章 串行通讯5.1 串行通讯基本原理5.2 串行通讯部分基本操作过程5.3 串行通讯操作示范第五章 串行通讯5.1 串
50、行通讯基本原理5.2 串行通讯部分基本操作过程5.3 串行通讯操作示范5.1 串行通讯基本原理上位机与单片机系统通过RS232串行通讯线进行连接,连接的时候仅仅使用其必须的三根线,2-RX、3-TX、5-GND。5.1 串行通讯基本原理在实际当中有两种串行通讯硬件设计方案,一种是基本RS232串口通讯模块,第二种是USB转RS232串口通讯模块。5.1 串行通讯基本原理第一种:使用DB9接头的RS232标准的硬件设计方案5.1 串行通讯基本原理硬件设计原理5.1 串行通讯基本原理USB到串口设计原理无线传感器网络技术与应用第五章 串行通讯5.1 串行通讯基本原理5.2 串行通讯部分基本操作过程