全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗

  号称全球最低功耗蓝牙单芯片DA14580在可穿戴市场、健康医疗、ibeacon定位等市场得到广泛的应用,但是因为其较为封闭的技术/资料支持导致开发人员有较高的技术门槛,网络上也极少看到有关DA14580的开发技术分享,因此一般企业和一般技术团队都不敢贸然采用该平台,但一旦精通该芯片平台的开发,即可在蓝牙方案应用开发中获得较大的技术优势。

  作者在集成电路领域有较为深厚的积累,在DA14580平台也有丰富的开发经验,接下来将以一个系列文章对DA14580的硬件架构和软件体系进行分析。如需技术咨询,请发邮件[email protected]联系。

  本文分析DA14580的硬件架构和睡眠、唤醒技术。睡眠和唤醒即是低功耗的核心技术。这里从硬件的角度去分析睡眠和唤醒的原理。而睡眠和唤醒的软件框架和实践后续再展开。

一、DA14580硬件架构

  DA14580硬件体系架构如下图:

可见,DA14580包括三个部分:

1)使用ARM公司的cortex M0作为CPUprocessor处理器。

2)使用RivieraWaves公司的IP核作为BLEcore和基带、射频部分。

3)集成时钟管理CMU、电源管理PMU、memory控制存储和其他外围模块控制器,如GPIO、UART、I2C、SPI和timer等等。

  一般地,DA14580用于蓝牙BLE应用时,会使用两个外部晶振,其中16M晶振用于CPU执行相关的模块(如M0和memory),也会分频给部分peripheral。而32K晶振则用于BLE精确基准时钟和睡眠时的低功耗部分电路。

二、DA14580低功耗(睡眠和唤醒)

  蓝牙单芯片的低功耗主要指的是整个硬件系统的睡眠和唤醒。而低功耗主要针对电源和时钟管理。这是由集成电路的特性所决定的。

1.   睡眠

  对于睡眠,从以上架构来看,其包括以下部分:

  1)  CPU睡眠,即cortex M0。根据cortex M0的体系结构,其包括两种睡眠模式:normal sleep和deep sleep,其会映射到M0的寄存器和不同的硬件电路。需要注意的是,CPU在两种模式下并没有多大区别,但是各个SOC厂商在集成cortex M0时会对这两种模式对peripheral部分进行不同的控制。如DA14580会在M0的deepsleep上再细分两种模式,即extended sleep和deepsleep。前者RAM数据是可以保持的,而后者则不保持。

2)BLE core 协议栈、基带和RF射频部分睡眠。对于M0的低功耗来说,有很多的指导文档,但是RivieraWaves的BLE部分的资料极少,方案商都可能没有,只有研发DA14580的dialog公司才有,开发人员只有从DA14580的SDK中理解源码,并通过不断的调试验证来获取低功耗控制的经验。这也是很多公司选择TI而不选择DA作为蓝牙应用的原因。但是DA14580的功耗确实是业界最强,如果能掌握将在物联网产业极具技术优势。

3)peripheral部分睡眠,此部分包括其他集成模块,如memory和UART、GPIO、TIMER、SPI、中断控制等等。DIALOG公司在DA14580的SPEC规格书上也没有公开系统设计的框架图,只有部分寄存器的描述,所以要想精通DA14580的peripheral低功耗控制的方法和调试,也是要花费很多的时间。而且,睡眠和唤醒的调试是相对困难的,需要掌握方法。

4)对于以上的各个部分,我们都是要考虑时钟CLOCK和电源,对于高级CPU可能有动态调频调压,但对于蓝牙单芯片,基本是disable电源和clock。

对于cortex M0来说,WFI指令对应的电路使用一种称为State Retention Power Gating的技术来控制电源,而且结合cotext M0的wakeup interrupt controller模块可以唤醒CPU。对于时钟,则是disable 16M高频晶振。

对于BLE,需要主动disable其时钟[16M或者8M]和电源。BLE的时钟源是32KHz,这里关闭是指BLE的时钟部分,而不是完全disable 32K外部晶振。因为其还需要给唤醒部分提供时钟。

对于peripheral部分,则是关闭电源和时钟,由于其主要使用16M晶振的分频,所以当16M晶振停止工作时,其自然也没有时钟了。

2.   唤醒

  对于DA14580的唤醒,其主要有两个唤醒源。一个是同步唤醒源,来源于BLE的内部定时器(默认10秒)和BLE事件;另一个是异步唤醒源,即唤醒中断,可以配置为任意引脚唤醒,其即使用cortex M0指定的WIC技术。

  WIC(wakeup interruptcontroller)是独立于CPU和中断控制工作的,但WIC检测到电平变化(也可以计数到指定数值时)即会提醒PMU给CPU供电,并启动内部RC震荡电路提供时钟,并维持中断信号给CPU中断部分,这样CPU可以从睡眠中唤醒。

那么,对于DA14580的唤醒,需要注意什么呢?

1)BLE的唤醒定时器设置

2)DA14580的外部唤醒设置

DA14580支持wakuptimer来唤醒,其能够监测任意引脚的电平变化计数,可以是上升沿也可以是下降沿。其通过WIC接入CPU。

三、低功耗代码框架

以上知识只是说明如何做好睡眠和唤醒的设置工作,当CPU执行WFI指令时,即进入睡眠状态。那么,睡眠和唤醒的设置应该在什么时候执行?唤醒之后对唤醒中断产生的消息/事件、BLE timer事件如何处理?还有CPU唤醒中断后返回用户态时要先做什么事情?这些都应该是低功耗代码框架要考虑的因素。

DA14580软件体系决定的消息/事件是基于BLE TIMER基准时钟的,例如内核的定时器ke-timer是BLE-CORE的组成部分,并不是peripheral中的定时器。而schedule函数将处理所有pending的消息事件。这里,假定CPU是由BLE TIMER唤醒的,这时唤醒之后BLE CORE是正常工作的,因此schedule是可以正常执行的。以上为同步唤醒过程。

异步唤醒即是由wakeup timer中断唤醒,唤醒后BLE timer可能还是disable状态。

我们暂且不去区分DA14580的SDK对于异步唤醒中断产生的事件和BLE timer同步唤醒产生的事件。并基于同步唤醒给出低功耗睡眠代码框架:

Voidmain_loop(void)

{

While(1)

  {

  Schedule();//处理完所有的消息事件会返回

  Disable BLE;//关闭BLECORE

  Disable Radio;//关闭射频

  Disable peripheral power domain;//关闭外围控制部分

  Set CPU DEEP SLEEP.//CPU 睡眠设置

  WFI();  //等待中断

  Set CPU active.//唤醒之后CPU设置active状态;在BLE TIMER唤醒中断服务中应该要enable BLE CORE, RADIO, peripheral等部分。

  }

}

如果要同时支持异步中断及其产生的异步消息/事件,同时处理extended sleep和deep那sleep两种模式的影响,那么低功耗代码框架会变得复杂。作者日后再从软件实践的角度详细分析DA14580如何支持低功耗特性。

  嵌入式企鹅圈原创团队由阿里、魅族、nvidia、龙芯、炬力、拓尔思等资深工程师组成。百分百原创,每周两篇,分享嵌入式、Linux、物联网、GPU、Android、自动驾驶等技术。欢迎扫码关注微信公众号:嵌入式企鹅圈,实时推送原创文章!

时间: 2024-10-10 04:49:49

全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗的相关文章

全球最低功耗蓝牙单芯片DA14580的软件体系 -层次架构和BLE消息事件处理过程

在作者之前发表的<全球最低功耗蓝牙单芯片DA14580的系统架构和应用开发框架分析>.<全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗>.<全球最低功耗蓝牙单芯片DA14580的软件体系-RW内核和消息处理机制>三篇文章分析了DA14580的SDK开发目录结构.硬件架构.低功耗.RW内核和消息处理机制.本篇文章将深入到具体的源码去分析DA14580平台的软件层次架构和具体的BLE消息处理过程,以此佐证前面发表的文章. 一.软件层次架构 1.1 BLE协议栈 从中

全球最低功耗蓝牙单芯片DA14580的软件体系 -RW内核和消息处理机制

上一篇文章<蓝牙单芯片DA14580的硬件架构和低功耗>阐述了DA14580的硬件架构和低功耗的工作原理.本文文章阐述该平台的软件体系,并着重分析消息事件的处理机制. 一.DA14580SOC硬件组成和软件体系组成 DA14580芯片硬件架构包括三个部分: 1)使用ARM公司的cortex M0作为CPUprocessor处理器. 2)使用RivieraWaves公司的IP核作为BLEcore和基带.射频部分. 3)集成时钟管理CMU.电源管理PMU.memory控制存储和其他外围模块控制器,

全球主流8位MCU芯片详细解剖No.2:英飞凌 XC866 - 全文

[导读] XC866是新型8位微控制器系列(XC800)的第一代系列产品,集成高性能8051核.片内FLASH及功能强大的外设集.此外,XC800系列产品内部集成的片 内振荡器和支持3.3V或5.0V单电源供电的嵌入式电压调节器(EVR)进一步增强了产品性能并有效地节省了系统成本. 关键词:XC8668位MCU英飞凌 往期系列文章推荐: 全球主流8位MCU芯片详细解剖No.1:飞思卡尔 MC9S08AC60 简介 XC866是 新型8位微控制器系列(XC800)的第一代系列产品,集成高性能805

高通QCA9377 WiFi蓝牙模块芯片介绍

QCA9377将先进的1x1双频段802.11acMUMIMOWiFi+蓝牙5结合在一个高性能.低功耗.小尺寸的芯片系统 (SoC)中. QCA9377 soc设计用于在单芯片解决方案中提供无线局域网和蓝牙低能量技术的卓越集成,QCA 9377 SoC提供低 功率双频(2.4&5 GHz).1流(1x1).802.11ac MU-MIMO和蓝牙5.0技术. QCA9377支持高速WiFi连接,丰富了几乎所有连接设备的媒体体验,并对优化能效,这对于延长便携式设备的电池 寿命至关重要. 采用先进的W

全球最新独角兽榜单出炉 中国公司33家上榜!

全球最新独角兽榜单出炉 中国公司33家上榜! 华股财经2016-09-09 13:39:24阅读(1893)评论(0) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场.举报 全球最新独角兽榜单出炉,中国公司33家上榜!最产独角兽的领域竟是电商.软件服务--(附榜单) 转眼已近2016年最后一季,从去年下半年开始的全球资本寒冬仍在持续.受到英国脱欧.美国大选.中国经济增速下滑.美联储加息等一系列因素影响,全球投资机构普遍对市场持观望态度. Uber.滴

揭开全球第一颗SDN交换芯片的神秘面纱

编者按:全球第一颗SDN交换芯片一直被一层神秘的面纱包围着,小编近日采访了一下盛科网络的张卫峰张总,为您揭开全球第一颗SDN交换芯片神秘的面纱,以下是采访内容. SDN是一个很泛泛的概念,它可以有很多不同的实现方式,而OpenFlow技术是发展最早的,最广为人知的,并且唯一标准化的SDN实现.但是由于一直没有针对OpenFlow的网络交换芯片问世,所有做OpenFlow交换机的设备商都做得很郁闷,用现有的传统交换芯片做出来的OpenFlow交换机,限制都太多,甚至业内有人说,SDN之所以落地缓慢

NXP低功耗蓝牙集成芯片QN9080C的时钟配置

/***************************************************************************************************** Configuration BOARD_BootClockRUN *****************************************************************************************************//* TEXT BELO

联发科RT3662无线路由器双频802.11n系统单芯片

RT3662结合了Rayink的双频 802.11n 系统单芯片,兼容2T3RMAC,BB,2 4/5GHz射频,高性能的500MHz MIPS74KcCPU核心,一个USB主机和一个USB OTG,两个千兆位以太网MAC,一个PCle主机/设备和一个PCI主机 /设备.RT3662采用Ralink OptiLink技术,可进行显性 (explicit) 与隐性 (implicit) 波束成形,带来更佳的效能表现 ,每个频段的数据传输率最高可达至 300Mbit/s. USB端口可以配置为访问数

全球首款支持华为鲲鹏硬件架构,GaussDB T数据库云服务上线华为云

近日,全球首款支持鲲鹏硬件架构的企业级 OLTP 数据库 GaussDB T 的云服务,正式上线华为云.意味着 GaussDB T 除了为企业提供本地部署外,同时具备了在云上为更多企业提供高效.稳定.易用和高价值的 OLTP 数据库服务能力. 华为 GaussDB T 基于创新性数据库内核,提供高性能事务实时处理能力.金融级高可用能力,可以用于金融.政府.运营商.大企业等行业场景,如金融互联网交易.政府或企业自动化办公(OA)等管理支撑系统业务. 华为 GaussDB T 数据库云服务具有如下特