【CC2640】CC2640架构及原理
CC2640和CC2640R2F的区别是什么?
CC2640和CC2640R2F是低功耗蓝牙SOC的解决方案,两颗芯片的基本架构和工作原理相同,实现的功能略有不同。
CC2640芯片组成?
主MCU(Main CPU):
主MCU是一颗ARM Cortex-M3的处理器,主要运行的是客户的应用程序,同时也包含TIRTOS和底层的驱动。RF射频部分(RF Core):
射频核,是一个不开放的M0,专门控制射频操作,这部分的操作控制主要由BLE协议栈来完成,BLE产品的开发一般都是在App操作,可以完全不需要关心这部分的操作。传感器控制器(Sensor Control Engine):
Sensor Control Engine,SCE,是CC2640和CC2640R2F区别其他TI BLE SOC一个特有的部分,是一个16位的MCU,独立主MCU Cortex-M3和射频核M0工作,可以在系统其他部分都关掉的情况下,独立实现对外部传感器的采集,从而保持整个系统运行的低功耗。外设(Peripherals)
外设接口,则包含了GPIO,Timers(定器),UART/SPI,I2C,I2S,DMA,硬件的AES加密。
CC2640系统是如何工作达到低功耗的?
- 首先可以看到,当整个系统处于Standby模式的时候,系统RTC和RAM还在保持,这时候功耗是1个微安,如果在ShutDown模式,也就是系统RTC和RAM不在保持的状态下,整个系统的功耗则是小于0.15微安;
- 然后当主MCU进入到工作状态的时候,系统功耗大约为3个毫安,而且由于是M3的内容,BLE协议栈和应用程序的处理速度是非常功耗的,在有BLE事件需要处理的时候M3快速处理完成,整个系统又可以切换到低功耗状态;
- 当需要有射频收发的时候,RF核才打开工作,TX/RX过程大概是6个毫安,同样的当发送和接受处理完成之后,RF核又处于关闭状态;
- 通过使用SEC可以控制外部传感器的数据采集,在系统的采集的整个过程中,系统的其他部分都可以保持关闭,这时候整个系统的平均功耗可以达到微安级别。
对使用Sensor Control Engine的介绍
Sensor Control Engine 是一个16位的RSIC的MCU,有自己独立2K的SRAM,可以独立于主MCU Cortex M3工作,因此可以帮助M3继续采集传感器的数据,从而达到整个系统的低功耗运作。通过整个模块我们可以操作各式各样的传感器,例如,运动检测器、电容式触摸按键、加速度传感器,ADC采样等,另外,当你的系统需要多个串口的时候,也可以通过Sensor Control Engine实现除外设之外的多一个串口,Sensor Control Engine 独立主MCU编程,因此就引出了我们另外的一个工具:Sensor Control Studio。
如何对Sensor Control Engine进行编程?
Sensor Contro Studio简称SCS,是一个集成了外部编译环境和调试环境的开发工具。它包含了一个直观的人机操作界面和内键的应用程序实例。使用这个工具的开发可以总结为三个步骤:
参考工具已经提供的多种对不同外设操控的例程,使用类C语言在工具中编程,完成任务的初始化、执行和结束,这个任务运行在SensorControlEngine自己独立的内存找那个。
在工具的测试界面,测试和调试自己的编程任务执行。(如果任务正确执行,就可以执行第三步)
导出代码,并把代码整合应用应用到主工程应用程序中去。
Sensor Control Engine进行编程详细每一步的步骤?
在Sensor Contro Studio的主界面,我们可以选择适合自己应用的例程打开,并基于整个例程修改自己的应用,一个工程最多可以包含8个Task,每个Task都由初始化代码、执行代码和终止代码组成这些代码部分可以使用类C语言进行编程,可以调用的系统接口全部列表显示在屏幕的右下角,可以参考工具的内键文档,了解每个接口的函数说明。如果需要配置使用到的PIN脚定义可以进入IO Mapping进行配置。在完成Task的编程之后,可以进入Task Testing模块对Task运行进行调试。调试模式多种多样,例如:单步调试、设置断点调试等等,这个工具都可以支持。单个任务以一个预先定义好的间隔时间来工作,如果工程中有多个任务,则可以对每个任务设置自己的间隔时间。当我完成了对SensorControl的编程之后,进入Code Generate模块。
进入Generate Code模块,点击Generate Driver Source Code,即可导出程序的映像以及基于TIRTOS的相关驱动,Sensor Control Engine程序的映像即固件,实际上是一段二进制的数组,将数组和连同一起导出的驱动整合到主CPU的应用程序中去即可完成对Sensor Control Engine的操控。
【CC2640】CC2640架构及原理相关推荐
- atitit.jndi的架构与原理以及资源配置and单元測试实践
atitit.jndi的架构与原理以及资源配置and单元測试实践 1. jndi架构 1 2. jndi实现原理 3 3. jndi资源配置 3 3.1. resin <database> ...
- QQ视频直播架构及原理
作者:王宇(腾讯音视频高级架构师) 自我介绍下,毕业以来加入腾讯,一直从事客户端研发,身处互联网公司,踏着互联网的浪潮,一直在浪尖行走,从最早的PC QQ,到移动时代的手Q,再到腾讯物联的嵌入式,以及 ...
- Tomcat架构与原理
Tomcat架构与原理 架构图 原理 ①.用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得. ②.Connector把该请求交给它所 ...
- 45 张图深度解析 Netty 架构与原理
作为一个学 Java 的,如果没有研究过 Netty,那么你对 Java 语言的使用和理解仅仅停留在表面水平,会点 SSH 写几个 MVC,访问数据库和缓存,这些只是初等 Java 程序员干的事.如果 ...
- 分布式事务架构设计原理
随着业务需求的复杂化,企业应用规模不断扩大,在后端开发中经常会遇到以下问题: 业务的并发要求非常高,对应的业务需要通过微服务拆分,甚至分库分表等架构设计才能满足并发需求,此时业务操作无法在同一个数据库 ...
- Netty架构与原理详解
本文来详细说下netty架构设计与原理 文章目录 概述 Netty 基础 Netty 是什么 Netty 的应用场景 Java 中的网络 IO 模型 Java NIO API 简单回顾 缓冲区(Buf ...
- 万字详解Oracle架构、原理、进程,学会世间再无复杂架构
学习是一个循序渐进的过程,从面到点.从宏观到微观,逐步渗透,各个击破,对于Oracle, 怎么样从宏观上来理解呢?先来看一个图,这个图取自于教材,这个图对于从整体上理解ORACLE 的体系结构组件,非 ...
- 读书笔记:大型网站技术架构-核心原理与案例分析
李智慧<大型网站技术架构-核心原理与案例分析> 性能 可用性 伸缩性 扩展性 安全性 总结 这本书组织的很不错,语言精练,篇幅也不长,对网站架构的要点讲的狠清楚透彻,思路清晰.主要围绕架构 ...
- Spark SQL架构工作原理及流程解析
Spark SQL架构工作原理及流程解析,spark sql从shark发展而来,Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析.逻辑执行计划翻译.执行计划优化等逻辑. Sp ...
- 详解Oracle架构、原理、进程,学会世间再无复杂架构
详解Oracle架构.原理.进程,学会世间再无复杂架构 学习是一个循序渐进的过程,从面到点.从宏观到微观,逐步渗透,各个击破,对于Oracle, 怎么样从宏观上来理解呢?先来看一个图,这个图取自于教材 ...
最新文章
- 1024 Palindromic Number
- PyQt5 简易计算器
- 用函数fopen_s打开数据文件
- python引入导入自定义模块和外部文件
- pytorch 生成随机数Tensor的方法 torch.rand torch.randn torch.normal torch.linespace
- ckeditor4.x操作之在页面中引入(一)
- 高中计算机教案excel,高一信息技术Excel教案.doc
- annotation-driven 配置详解
- mac air 2019安装双系统
- 玄秘塔碑-唐代柳公权创作书法作品
- 2007年教育技术学专业硕士点招生简章
- 错误: 找不到或无法加载主类的解决办法
- 进行图像增广的15+种功能总结和Python代码实现
- 两个不同局域网电脑如何互相访问
- 转载:ORA-01034和ORA-27101的解决方法,oracle无法打开解决办法
- 信贷违约风险评估预测-kaggle项目
- python调用mysql数据_python使用mysql数据库(虫师)
- ID3,ID4.5,CART树
- Word2003公式编号设置
- ae制作的mg如何用到html,【教程】AE表达式常用的函数-制作MG动画必备