cc2530入门教程-增强版基础技能综合实训案例(基础版)-题目需求

一只爱蜜蜂的小学习 一只爱蜜蜂的小学习     2022-09-09     267

关键词:

【CC2530入门教程-增强版】基础技能综合实训案例(基础版)-题目需求

广东职业技术学院  欧浩源

一、引用

    不管是简单的单片机应用,还是复杂的嵌入式系统,在我看来它们的本质结构是差不多的,都离不开“内核+外设”的典型架构,它们之间的区别更多是在内核性能高低和外设丰富程度上。
    在前面的《CC2530入门教材》系列的6个课程中简述了该微控制器最常用的五大基础模块。目前关于CC2530的教材书籍对各个单一功能模块的简述有很多,但将各个模块融合成为一个综合性的实训案例分析的却很不多见。 因此,在本综合实训案例中,会将前面讲述的五大基础技能模块融合在一起,结合实际的应用场景,进行一个系统性的整体设计,既可以锻炼各个外设模块的开发能力,又能培养物联网整体项目设计的基本思维

二、案例应用背景与功能

    本案案例模拟一个仓库照明设备的数据采集系统,由一个现场测控终端和一个上位机应用软件组成,两者通过串口建立数据交互通道。
    测控终端上电后,首先对照明设备逐一进行检测,然后向上位机发送一个终端上线命令帧,告诉上位机终端已正常上线;然后开始以每0.2秒采样一次的频率采集现场的光照数据和设备状态,并对现场光照度进行判断,如果光照低于已设置好的阈值,则自动打开应急灯,否则自动关闭应急灯。当终端收到到上位机的数据采集命令帧后,会以每0.2秒一帧的频率向上位机传送现场的光照度数值和两个照明设备的开关状态。当现场报警被触发后,终端将停止所有的工作,并向上位机发送现场报警命令帧,同时四个灯同时闪烁,以示现场发送报警。只有在收到上位机的解除报警命令帧后,测控终端才恢复初始状态,并重新向上位机发送一个终端上线命令帧,然后进入正常工作状态。
    在上位机应用软件中,首先设置好串口参数并建立串口数据通道,然后根据案例的功能需求开始采集终端数据,然后将各种信息和数据可视化,并实现照明设备远程控制和现场报警解除等功能。

三、测控终端的设计

    测控终端是一个以CC2530微控制器为核心的光照度数据采集和现场照明设备测控的设备。该终端的硬件电路以TI官方推荐的评估板为蓝本,市面上大部分的开发板都是这样的结构,有4个指示灯2个按钮,具体引脚安排如下:

    LED5:手动照明灯。
    LED6:自动应急灯。
    LED3:数据采集指示灯。
    LED4:秒闪指示灯。
    SW1:照明灯开关按钮。
    SW2:现场报警按钮。

    按照案例应用的功能需求,测控终端应该实现如下功能:
    <1> 上电后,通过一个跑马灯程序实现各个照明设备的检测。
    <2> 初始化和设备检测完成后,按照通信规约向上位机发送一个终端上线命令帧,表示测控终端已经进入正常工作状态。
    <3> 利用定时器1实现0.2秒的定时和1秒的定时,在0.2秒的时候,进行光照度传感器的电压数据采集,并进行阈值比较从而决定自动应急灯的开和关;当到达1秒的时候,更换秒闪灯的开关状态,实现秒闪功能。
    <4> 通过外部按键检测程序,实现手动控制照明灯。
    <5> 设计外部中断程序,在中断服务函数中实现现场报警功能。现场报警触发后,停止定时器功能、光照数据采集和按键响应功能,四个灯同时闪烁,但保持串口通信连接,随时准备接收上位机的报警解除命令帧。
    <6> 最重要的是串口通信功能,特别是各种命令帧的完整接收、正确解析和顺利执行。这是整个测控终端的核心部分,也是整个设计最难的部分,更是最容易出现BUG的部分。
    <7> 当收到上位机启动数据采集命令帧后,点亮数据采集指示灯,以每0.2秒一帧的频率向上位机发送系统数据帧;当收到关闭上数据采集命令帧后,关闭设局采集指示灯,停止向上位机传送系统数据帧。
    <8> 主函数的设计不行以前的那么简单,除了前面的设备初始化之外,在死循环中还有分析终端的各种运行状态,外部按键响应以及远程命令执行等功能。

四、上位机软件的设计

    上位机通过串口与测控终端连接,模拟远程监控现场作业以及控制现场的重要设备。
    打开上位机软件,将出现下面的界面,主要有串口连接和现场测控两个版面。首先,上位机软件对串口的参数进行设置,然后打开串口,建立上位机和测控终端的数据交互通道。这时候实际的工作还没有开始。

    串口打开后,将测控终端复位,这时候上位机软件收到一个终端上线命令帧,识别出终端的ID号后,激活“远程控制”中的“开始采集数据”按钮。在“现场数据监测”中,有一个只读的文本框,在这里会显示上位机收到的每一帧的原始数据。
    点击“开始采集数据”按钮,测控终端会收到一个启动数据采集命令帧,然后会以每0.2秒一帧的频率向上位机发送系统数据帧,报告现场的光照数据和照明设备状态。同时,上位机软件的“打开照明灯”按钮也可以使用了。这个按钮除了可以远程对现场的照明灯进行开关之外,还会根据现场照明灯的工作状态自动切换开关功能。

    现场报警被触发后测控终端会向上位机发送报警命令帧,上位机收到报警命令后,立即显示现场报警信息,禁止“远程控制”中的两个按钮,并激活“解除报警”按钮。 在上位机软件中按下“解除报警”按钮后,会向测控终端发送一个解除报警命令帧。终端收到该命令后立即解除现场报警,并重新发送终端上线命令帧。上位机收到该命令帧后,将恢复初始的终端上线工作工作状态。

五、通信规约的设计

    通信规约的设计往往容易被忽视,然而它却是是系统设计的核心内容,也是设计者对系统功能需求的理解,更是上位机和测控终端数据交互的法则。
    本案例的通信规约比较简单,主要规定数据帧的结构和功能。系统的命令数据帧的长度固定,为8个字节,由帧头地址域命令域数据域和校验帧尾这六个部分组成,具体格式如下:

    <1> 帧头和帧尾为固定的两个数值:0xAF 0xFA。
    <2> 每个测控终端都有自己独一的ID号,地址域为终端的ID号,其中0xFF的为广播地址,所有终端响应该命令帧。
    <3> 和校验为前面6个字节相加256取模。
    <4> 在数据域中,前面两个字节表示关照数据,第三个字节表示照明设备的开关状态。
    <5> 命令域中的含义,详见下面的“具体命令操作”。

六、具体命令操作

<1> 终端上线命令帧。
    在测控终端上电初始化完成后,由终端向上位机发送该命令帧。上位机通过该命令帧可以知道下行下行测控终端的ID号及在线状态。

<2> 启动数据采集命令帧。
    终端收到该命令帧后以5Hz的频率向上位机传送光照电压数据及照明设备状态。该命令帧由上位机向终端发送。

<3> 关闭数据采集命令帧。
    终端收到该命令帧后停止向上位机传送光照电压数据及照明设备状态。该命令帧由上位机向终端发送。

<4> 系统数据帧。
    将测控终端的光照数据和设备状态上传致上位机,该数据帧由终端向上位机发送。

    data1:表示电压数据的高8位。
    data2:表示电压数据的低8位。
    data3:每一位表示一种照明设备,0表示关闭,1表示开启。
      bit0--表示照明灯的开关状态。
      bit1--表示应急灯的开关状态。

<5> 远程打开照明灯。
    测控终端接收到该命令帧,打开照明灯。该命令帧由上位机向终端发送。

<6> 远程关闭照明灯。
    测控终端接收到该命令帧,关闭照明灯。该命令帧由上位机向终端发送。

<7> 现场报警命令帧。
    测控终端的报警按钮被触发时发送报警命令帧。该命令帧由终端向上位机发送。

<8> 解除报警命令帧。
    现场情况处理完毕,由上位机发送命令解除报警。该命令帧由上位机向终端发送。

七、结语

    虽然这个测控终端的功能不算复杂,在程序设计上有些地方也进行了简化,但是五脏俱全,一个实际应用项目中该涉及的关键部分都涉及到了。就单一功能来看,每一个都没有难点。难是难在怎么把这个单一的功能串联起来形成一个完成特定业务逻辑的系统,而且还有应对外部事件相应和远程信息交互。有兴趣的朋友不妨自己设计一个完整的程序,这个对你个人的开发能力是一个有力的提高哦。
    不管是CC2530还是其他的微处理器,它们都是解决问题的工具而已。掌握微处理器中每个功能模块固然重要,而然灵活应用微控制器中的功能外设解决实际的项目需求才是最终目的。而要达到这个水平,没有其他办法,只有亲力亲为,不断开发实践,不断积累经验。作为一个合格的嵌入式系统设计师,除了精通嵌入式开发之外,掌握常见的上位机应用开发也是非常有必要的。

cc2530入门教程-增强版基础技能综合实训案例(基础版)-题目需求

【CC2530入门教程-增强版】基础技能综合实训案例(基础版)-题目需求广东职业技术学院 欧浩源一、引用  不管是简单的单片机应用,还是复杂的嵌入式系统,在我看来它们的本质结构是差不多的,都离不开“内核+外... 查看详情

cc2530强化实训03定时器间隔定时实现按键n连击(代码片段)

...按键N连击【题目要求】   2018年全国职业院校技能大赛“物联网技术应用”国赛(高职组)中关于感知层开发的难度陡然增大,三个题目均在Zigbee协议栈下完成。其中第一个题目“仓库温湿度智能控制系统”考查了按... 查看详情

cc2530入门教程-03cc2530的中断系统及外部中断应用

第3课 CC2530的中断系统及外部中断应用广东职业技术学院 欧浩源一、中断相关的基础概念     内核与外设之间的主要交互方式有两种:轮询和中断。 轮询的方式貌似公平,但实际工作效率很低,且... 查看详情

cc2530强化实训02普通延时函数实现按键的长按与短按(代码片段)

【CC2530强化实训02】普通延时函数实现按键的长按与短按【题目要求】   用一个按键实现单击与双击的功能已经是很多嵌入式产品的常用手法。使用定时器的间隔定时来计算按键按下的时间是通用的做法,然而,使用... 查看详情

cc2530强化实训03定时器间隔定时实现按键长按与短按(代码片段)

【CC2530强化实训03】定时器间隔定时实现按键长按与短按【题目要求】   虽然用普通的延时函数能够实现按键长按与短按的判别,但是在实际的工程应用和项目开发中并不好用也不灵活。更多得是借助定时器的间隔定... 查看详情

cc2530入门教程-05cc2530的串行接口原理与应用

第5课 CC2530的串行接口原理与应用广东职业技术学院 欧浩源一、并行通信与串行通信    微控制器与外设之间的数据通信,根据连线结构和传送方式的不同,可以分为两种:并行通信和串行通信。  &n... 查看详情

cc2530入门教程-06cc2530的adc工作原理与应用

第6课 CC2530的ADC工作原理与应用广东职业技术学院 欧浩源一、A/D转换的基本工作原理    将时间上连续变化的模拟量转化为脉冲有无的数字量,这一过程就叫做数字化,实现数字化的关键设备是ADC。  ... 查看详情

c语言学生成绩管理系统课程设计

...学科领域所覆盖及延伸的知识点应用到具体的实例当中,增强学生的动手能力、应用理论的能力以及团队协作能力,复合高职高专的培养目标,能够培养出具有实际动手能力的技能型人才。三、实施步骤与方法1.查阅资料、搜集... 查看详情

stc8051与cc2530单片机有撒不同

STC8051是MCS51为核的单片机,CC2530是以增强型8051为核心开发的的产品。这就是其本质的区别。请看百度百科给的说明:CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其它强大的... 查看详情

cc2530学习路线-基础实验-gpio按键控制led灯亮灭(代码片段)

目录1.前期预备知识1.1新大陆Zigbee模块按键电路图1.2CC2530相关寄存器1.3CC2530中断走向图1.4使用C语言为51单片机编写中断程序1.5*函数指针2.程序代码THEEND1.前期预备知识1.1新大陆Zigbee模块按键电路图由上图可知,Zigbee模块的SW1按钮... 查看详情

cc2530学习路线-基础实验-gpio控制led灯亮灭(代码片段)

目录1.前期预备知识1.1新大陆ZigBee模块LED灯电路1.2CC2530相关寄存器1.3寄存器操作技巧1.4CPU空转延时1.4操作流程图2.程序代码TheEnd1.前期预备知识1.1新大陆ZigBee模块LED灯电路从上两的两个电路可知1.LED1连接在LED-LINK上,而LED-LINK是从CC... 查看详情

计算机实训报告范文5篇

...过上机操作形式,潜移默化地进行综合操作素质的训练,增强学生综合运用所学知识解决实际问题的能力。实训内容:word文档与e_cel表格的编辑与操作。短短三天的计算机实训结束了,通过这三天的实训,我学到了很多的知识,... 查看详情

alb技术笔记基于多线程方式的串行通信接口数据接收案例

...浩源1、案例背景    在本博客的《【CC2530入门教程-06】CC2530的ADC工作原理与应用》中实现了电压数据采集的程序设计,传感器模块以每1秒发送一帧数据的形式通过串口向上位机发送电压数据。其数据帧由4个字节组... 查看详情

html基础2——综合案例3——创建考试报名表格

1<html>23<head>4<title></title>5</head>67<body>8<tablewidth="600px"height="500px"cellspacing="0"border="1">9<tr>10<tdalign="left">姓名</td>11& 查看详情

html基础2——综合案例2——复杂的嵌套列表

1<html>23<head>4<title></title>5</head>67<body>8<ultype="disc">9<li>太阳</li>10<li>月亮</li>11<li>地球</li>12<listyle="list-s 查看详情

cc2530学习路线-基础实验-串口通讯发送字符串(4未完待续)

目录1.前期预备知识1.1串口通讯电路图1.2实验相关寄存器1.2常用波特率设置本章未完待续.....原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上。1.前期预备知识1.1串口通讯电路图从上图可见,CC2530芯片通... 查看详情

cc2530属于啥单片机

...丰富(主要多了用于实现zigbee协议栈的硬件),应该属于增强型51单片机吧。https://wenku.baidu.com/view/ecfa9704bed5b9f3f90f1ce1.htmlTI官网的手册应该更好,英语好的话看那个吧参考技术A51系类单片机本回答被提问者采纳 查看详情

html基础2——综合案例1——如何用iis配置网站

 1.打开iis 如果机子上面没有iis,可以先装一个,不同的系统可能安装步骤不一样,至于iis的安装方法,大家可以去百度找找。 2.准备网站源程序 既然要配置网站,肯定要先准备好网站源程序,网站源程序可以去... 查看详情