非暴力拆解:小熊派NB-IoT通信扩展板
摘要:相信大家对小熊派的NB-IoT通信扩展板已经非常了解了,但你有真正的了解过其内部构造吗?今天小编不聊技术,带你做一回拆·机·客!
相信大家对小熊派的NB-IoT通信扩展板已经非常了解了,但你有真正的了解过其内部构造吗?今天小编不聊技术,带你做一回拆·机·客!
拆解对象:BC35-G通信模组
BC35-G模组是由移远发布的一款基于海思Hi2115(又称:Boudica150)芯片的NB-IoT通信模组。BC35-G的运行方式支持以下两种:NB-IoT+MCU模式、OpenCPU模式。
NB-IoT+MCU模式是我们常见的一种组合方式(小熊派IoT即是此种组合方式),用MCU作为主控,进行数据采集及控制,MCU向模组发送AT命令来实现设备与互联网的数据交互。OpenCPU是利用模组自身处理能力来完成MCU的工作,从而省去MCU。
让我们脱掉它的“外衣”,看看它的内部构造

今天的主角就是那个最大的芯片:Hi2115,接下来小编就这款NB-IoT芯片进行深度解析。
Hi2115是华为海思研发的第二款NB-IoT通信芯片(第一款是Hi2110),主频48MHz,352KB Flash,64KB RAM,支持3GPP R14标准,在698-960 MHz和1695-2180 MHz的频率范围内工作,系统带宽为200 kHz。

接下来就由浅入深,透过这款芯片的外表来探究它最深处的“秘密”。
Hi2115芯片有三个处理器子系统,以分离不同的功能,方便认证和简化第三方应用程序开发。

Hi2115芯片内部结构框图
Hi2115芯片的三个处理器子系统分别是:
1.应用核处理器(Application):应用核心支持用户在应用程序上执行第三方应用代码
2.安全核处理器(Security Core):安全核心通过验证系统上运行的代码来维护Hi2115的安全性和完整性,也会生成随机数并控制其他两个核心的内存访问。
3.协议核处理器(Protocol Core):协议核心充当通信处理器,构成实现通信协议栈所有层的基础。它包括一个专用的ARM Cortex M0核和一个具有专用片上RAM的Dual-MAC DSP。有一个USIM接口允许与外部SIM操作,以及一个MIPI RFFE接口用于与外部射频电路接口连接。
三个子处理器之间,通过内存共享方式达成数据共享。每个核都独立运行,相互之间没有干扰。应用核可放心开放出所有用户权限,以供用户侧APP开发。
Hi2115芯片有三种工作模式,这三种模式确定了不同节电级别的可用功能。
1.活跃模式(Active)
在此模式下,芯片的所有功能均可用,并且所有处理器都在正常运行。无线电的传输和接收均是在这种模式下执行的。同时待机模式和深度睡眠模式只能在活动模式下进行转换。
2.待机模式(Standby)
在待机模式下,所有的处理器处于非活跃状态,但所有的外围设备(包括DMA和嵌入式Flash)均处于活跃状态。系统时钟处于活跃状态并通过时钟门控与电源门控降低功耗。当所有处理器执行等待中断(WFI)指令时,进入待机模式。
3.深度睡眠模式(Deep-Sleep)
处于此模式时只有32.768kHz的RTC和某些外围设备运行。芯片可以通过RTC中断或者通过外围设备的外部事件发送消息,唤醒处于深度睡眠模式的模块。此模式需要所有处理器输入设置成深度睡眠模式才能进入,然后执行等待中断(WFI)指令。
探索完框架之后,下面我们来具体了解下Hi2115芯片的外设部分:
- 1个通用UART(最高1.5Mbit/s)
- 2个低功耗UART(支持低功耗下异步操作)
- 2个IIC(最高1Mbit/s)
- 2个SPI(最高 24Mbit/s)
- 1个10bit ADC(818 ksps)
- 1个10bit DAC
- 1个高速模拟比较器
- 22个可编程IO(可配置)
Hi2115芯片的40个PIO中,有24个PIO在应用核上可用。对于每个PIO的IO引脚功能均有软件进行控制,包括:方向、中断配置、驱动强度以及集成的上拉和下拉电阻。
了解完前面这些,有没有种拨开云雾见月明的感觉?让我们带着这种feel,继续解析芯片的内部架构。
- 芯片供电
Hi2115芯片由单个电源供电,双模式(PWM / PFM)降压稳压器SMPSU为数字内核供电并针对深度睡眠的电流进行优化。而集成线性稳压器提供了模拟和无线电电源轨道,实现高发射功率和隔离噪声干扰物。这些线性稳压器由第二个片上SMPSU供电,以提高功耗效率,并且为了减少功耗,该芯片可以自动禁用内部无线电电源轨道。 - 参考时钟
Hi2115需要一个低相位噪声参考时钟为PLL和ADC提供频率参考,并且该芯片还需要32.768 kHz的晶振用于定时和深度睡眠唤醒。处理器由内部生成的时钟驱动,不依赖两个参考时钟启动。 - 射频功能
Hi2115芯片的无线电是用于在蜂窝频率下的NB-IoT通信。有两个阻抗为100Ω、可通过外部组件来配置的差分LNA输入,以用于LB(低频带698-960 MHz)和MB(中频带1695-2180 MHz)。发射机有两个阻抗为50Ω的单端输出,一种用于LB,另一种用于MB。
收发器射频端口与天线之间有以下几个部件:
1.TX功率放大器
这是一个能够产生23 dBm输出功率的PA,其具有20-30 dB的增益和足够的线性度,使之满足3GPP要求。
2.TX谐波滤波器
其规格取决于PA的选择。在某些情况下,它可能会集成到PA中,不需要单独使用。
3.TX/RX开关
RF开关将天线连接到PA输出和RX输入, 此开关可由Hi2115的一个或多个PIO控制。
4.RX谐波滤波器
用于滤除电力系统中某一次或多次谐波的装置
5.RX匹配组件/巴伦
Hi2115芯片还支持MIPI RFFE接口v1.0和v2.0,此接口用于控制功率放大器和支持1.8V接口的RF前端模块,且支持的SCLK频率范围为32kHz~26MHz。
非暴力拆解:小熊派NB-IoT通信扩展板的更多相关文章
- 小熊派IoT开发板系列教程正式发布——免费学习
[摘要] 小熊派开源社区针对小熊派IoT开发板首次规划了小熊派未来的系列教程.从基础到进阶的设计,可适应具有不同基础的开发者,通过该系列教程的学习,开发者能够轻松掌握IoT产品的开发.该系列教程包括单 ...
- 华为云MVP熊保松谈物联网开发:华为云IoT是首选,小熊派是神器
摘要:在AI.5G的技术驱动下,物联网行业的发展愈加如火如荼,开发者在技术的快速更迭间,也得乘风破浪跟上新技术的节奏. 在AI.5G的技术驱动下,物联网行业的发展愈加如火如荼,开发者在技术的快速更迭间 ...
- HC大会,华为联合合作伙伴发布一站式物联网IoT开发工具小熊派BearPi
传统的物联网产品开发步骤复杂,涉及硬件开发.软件开发.云端开发等众多流程.而且产品的开发周期长.开发成本高.产品稳定性不佳.维护成本高.而物联网设备本身市场竞争激烈,价格低,设备更新迭代快,所以在保证 ...
- 基于小熊派Hi3861鸿蒙开发的IoT物联网学习【一】
基于小熊派鸿蒙季BearPi-HM_Nano HarmonyOS 鸿蒙系统Hi3861开发板NFC 开发步骤:1.购买开发板:某宝上购买就行 2.安装开发环境 3.下载源码 4.编写案例并执行 开发 ...
- 手把手教你丨小熊派移植华为 LiteOS-M
摘要:本文详细讲解如何移植 LiteOS 到小熊派. 本文分享自华为云社区<小熊派移植华为 LiteOS-M(基于MDK)>,作者: JeckXu666. 前言 之前使用小熊派实现了鸿蒙动 ...
- 如何利用小熊派获取MPU6050六轴原始数据
摘要:使用小熊派开发板,通过硬件IIC与MPU6050六轴传感器模块通信,完成相应寄存器配置,成功获取陀螺仪.加速度计数据. 本问主要讲述使用小熊派开发板+MPU6050六轴传感器,获取加速度计以及陀 ...
- 开发实践丨用小熊派STM32开发板模拟自动售货机
摘要:本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代码,通过云端开发和设备终端开发,实现终端数据在的华为云平台显示. 本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代 ...
- 小程序接入云通信IM
小程序接入云通信IM--插件 小程序微信后台搜索AI情报官组件即可获得小程序云通信IM的即时通信能力
- 小熊派4G开发板初体验
开发板硬件资源介绍 前阵子小熊派发布了一款超高性价比的4G开发板(19.8元包邮),但是板子仅限量1000套.小熊派官方给我送了一块,我们一起来学习学习: 板子做得小巧精致,控制核心用的是移远的EC1 ...
- 实践案例丨利用小熊派开发板获取土壤湿度传感器的ADC值
摘要:一文带你用小熊派开发板动手做土壤湿度传感器. 一.实验准备 1.实验环境 一块stm32开发板(推荐使用小熊派),以及数据线 已经安装STM32CubeMX 已经安装KeilMDK,并导入stm ...
随机推荐
- CF1526C1
题目简化和分析: 给您一个数组,在其中选择若干个数使得: 任意前缀和 \(\ge 0\) 数量尽可能的大 我们可以使用贪心策略,策略如下: 如果当前数为非负,必喝. 而毒药尽可能的多喝,如果喝没了,就 ...
- 16.1 Socket 端口扫描技术
端口扫描是一种网络安全测试技术,该技术可用于确定对端主机中开放的服务,从而在渗透中实现信息搜集,其主要原理是通过发送一系列的网络请求来探测特定主机上开放的TCP/IP端口.具体来说,端口扫描程序将从指 ...
- Spring Cloud OpenFeign系列:简介和使用
目录 一.简介 二.使用 1.创建父工程 2.创建order-service模块 3.创建order-client模块 三.效果 四.配置说明 1.超时配置 全局超时配置 局部超时配置 2.Gzip压 ...
- 什么是Kubernetes
什么是Kubernetes Kubernetes 概述 1.K8S 是什么? K8S 的全称为 Kubernetes (K12345678S),PS:"嘛,写全称也太累了吧,不如整个缩写&q ...
- IPv4:根据CIDR显示地址范围
最近遇到一个很有意思的点,于是就记录下来. CIDR一般是由IP地址和子网掩码组成,即 IP地址/子网掩码 格式. 子网掩码表示前面地址中的前多少位,为网络位,后面部分代表主机部分.例如:192.16 ...
- 数据结构-线性表-单链表(c++)
线性表的运算 求长度GetLength(L),求线性表L的长度 置空表SetNull(L),将线性表置成空表 按位查找Get(L,i),查找线性表L第i个元素 按值查找Location(L,x),查找 ...
- [动态树] Link-Cut Tree
Link-Cut Tree 0x00 绪言 学长们讲 LCT 的时候,我在另一个机房摸鱼,所以没有听到,就回家看 yxc 的补了补. 0x01 什么是动态树 动态树问题, 即要求我们维护一个由若干棵子 ...
- 关于Delphi
# 关于Delphi ··Delphi中使用的面向对象pascal编程语言. ··Pascal语言最初由瑞士苏黎士理工学院的尼古拉斯-沃斯(Niklaus Wirth)教授在1971年设计. ··19 ...
- ABAP 生产订单长文本增强 <销售计划 、物料独立需求 长文本带入 计划订单-生产订单 >
计划订单长文本带入生产订单 尝试在生产订单保存后 用 creat_text 函数 去创建长文本,发现前台不显示,查看 文本抬头底表 STXL 发现有值 ,用READ 函数 读取 能读. DATA:td ...
- Go笔记(1)-变量的详细用法
变量 (1)变量的定义 Go语言是静态类型的语言,所有类型都需要明确的定义. var是声明变量的关键字 使用格式:var 变量名 变量类型 变量命名规范:遵循驼峰格式,首个单词小写,每个新单词的首字母 ...