• [技术干货] 嵌入式基础1:I2C
    1. 简介I2C (Inter-Integrated Circuit),是一种串行通信总线,用于连接微控制器及其外围设备,实现主控制器和从器件间的主从双向通信,是一种同步半双工通信(两端时钟频率一致,双向通信,但不能同时进行数据收发)。2. 原理I2C通信属于串行通信,具有两根串行信号线:数据线(SDA),时钟线(SCL)。如下图所示,主控制器与从器件(一个或多个)都通过两根信号线连接,信号线上主机和从机都可以扮演发送器和接收器的角色。为确保传输过程的指向准确性,每个接到I2C总线上的器件都有唯一的地址(7位从器件专用地址码),可实现制定从机的定向传输与群发传输。图1,I2C总线物理拓扑图2.1 信号类型同时,为确保传输稳定,所有连接在同一I2C总线上的设备共用一个时钟。I2C 总线在传送数据过程中共有以下几种类型信号:(1) 开始信号/结束信号    SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。    SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。    在这里插入图片描述在这里插入图片描述(2) 应答信号/非应答信号    IIC 总线协议规定,每传送一个字节数据后(8bit),都要有一个应答信号以确定数据传送是否被对方收到。即一个字节传输的8个时钟过后的第9个时钟期间,接收器必须回一个ACK应答信号给发送器,这样才能进行数据传输。    应答信号由接受设备产生,在SCL为高电平期间,接受设备将SDA拉低为低电平,表示数据传输正确,产生应答(ACK),SDA拉高则表示数据传输失败,产生非应答位(NACK)。    在这里插入图片描述(3) 闲置状态/被占用状态    在主机发送起始信号后,且未发送终止信号期间,总线处于被占用状态。    发送终止信号后,总线处于闲置状态,SCL与SDA同时为高电平。    在这里插入图片描述2.2 总线读写流程I2C总线进行数据传送时,SCL时钟信号为高电平期间,SDA数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。 当一个字节按数据位从高位到低位的顺序传输完后,紧接着从机将拉低SDA线,回传给主设备一个应答位ACK, 此时才认为一个字节真正的被传输完成 ,如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。I2c总线写通信过程:    主机在检测到总线空闲的状况下,首先发送一个START信号掌管总线;    发送一个地址字节(8 bit),其中bit0-6位为从机地址,存放从机唯一地址;bit7位为读写位(R/W),0表示write主机 ->从机,1表示read 从机->主机;    主机发送地址时,总线上每个从机都会将7位地址与自己的地址进行比较,若相同,则将匹配成功,发送应答信号(ACK),确定发送器和接收器;    主机收到ACK后开始发送第一个字节(Command),对应从机中要写入的寄存器;    从机接收到Command后,从机发送ACK;    主机收到ACK后开始发送第一个数据字节:bit0-7(8bit数据,高到低),从机收到数据后,发送应答ACK;    继续发送数据,n帧;    主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;    图2,I2C总线写通信过程    I2c总线读通信过程:    主机产生START信号,随后发送从机地址(7bit)+0(Write);    *方向仍然是写,待接收到从机发送的ACK应答后,配对成功。    主机接收到ACK后,发送8bit内存地址(Command对应从机相应寄存器地址),从机接收到后,内部寻址并提取数据,返回ACK;    主机接收到ACK后,重新产生START信号,再一次发送从机内存地址,(7bit)+1(Read),从机接收到后返回ACK;    *方向设置为读,主机设置为接收模式    主机接收到ACK后,做好接收从机信息的准备,现在即可接收1bit的数据。    *主机不向从机发送应答信号,接收完毕后直接发起终止信号。    主机接收全部数据后,产生STOP信号,终止通信,总线变为闲置状态。
  • [技术干货] ISO/IEC 5055:软件代码质量的标尺(2)
    1.1.3. 质量模型的应用范围质量模型的应用范围包括与软件和软件密集型计算机系统的购置,需求,开发,使用,评估,支持,维护,质量保证和控制以及审核相关的各个方面,从而支持对软件和软件密集型计算机系统的规范和评估。例如,开发人员,获取者,质量保证和控制人员以及独立评估人员(尤其是负责指定和评估软件产品质量的人员)可以使用这些模型。使用质量模型可从产品开发过程中受益的活动包括:确定软件和系统要求;验证需求定义的全面性;确定软件和系统设计目标;确定软件和系统测试目标;确定质量控制标准,作为质量保证的一部分;识别软件产品和/或软件密集型计算机系统的接受标准;确定质量特征的度量以支持这些活动。1.2. 系统和软件产品质量的度量(ISO/IEC 25023)ISO/IEC 25023描述了如何应用ISO/IEC 25010中定义的软件质量模型的8个特征来衡量软件产品的质量。但在ISO/IEC 25023中定义的措施主要是在行为级别而不是源代**定质量问题的级别上测量质量。为了补充ISO/IEC 25023中的度量级别,于是有了ISO 5055。2. 自动源代码质量度量(ISO/IEC 5055)软件产品的质量可能导致产品产生不可接受的运营风险或过度成本。因此在源代码级别建立质量检测措施的标准是非常重要的,但目前的ISO/IEC 25000系列标准中,用于控制软件产品质量的源代码级别只提供一小部分措施。 这就促成了ISO/IEC 5055的标准制定,通过这个标准来检测和统计违反源代码中的良好架构和编码实践的违规行为,以便能对软件产品质量做出评估。同时ISO/IEC 5055中更新这些措施的主要目标是将其适用于嵌入式软件,这对于越来越多的嵌入式设备和物联网尤其重要。传统上在IT应用中实现的功能现在被移动到嵌入式芯片。由于已发现本文档中指定的措施中包含的弱点可适用于所有形式的软件,因此嵌入式软件未在本规范中单独处理。ISO 5050提供了一套工程规则,通过影响业务的的四个关键因素:安全性、可靠性、可维护性、性能效率,用以评估软件系统的内部结构。这些因素确保了产品成为值得信赖、可靠和可扩展性的软件系统。金融机构、政府、电信、制造商、系统集成商和其他人可以利用ISO 5055来避免软件产品造成的服务中断、声誉损害或过度的IT成本。他们还可以使用它来客观地向监管机构、董事会或利益相关者展示关键系统的结构状况。ISO 5055规则允许通过软件分析平台自动检测严重的结构缺陷。ISO/IEC 5055 参照了CISQ Quality Measures (2020)的质量评估标准,并已在CWE 4.2版本中引入了CWE的缺陷枚举中,并创建了CWE-1305 Quality Measures (2020)。有关CWE-1305缺陷视图可参考前期的《话说CWE 4.2的新视图》, 以及《话说CWE 4.3的新视图 - 数据保护检查》中有关CISQ的另一个数据保护视图CWE-1340 CISQ Data Protection Measures。注:部分图片引自北京2021/04/22日的“CISQ网络研讨会:ISO 5055自动化代码质量评估国际标准”中Bill Curtis 博士主题演讲的ppt。
  • [技术干货] 【智简联接,万物互联】华为云·云享专家连利波:做IoT技术的弄潮儿
    到2020年底,全球217亿个连接设备中,有117亿将是IoT设备连接。这一数据来自IoT Analytics,并预计到2025年,受5G等新技术推动,将有309亿台联网的IoT设备。从2005年11月17日,ITU正式提出“物联网”概念,到2009年物联网被正式列为国家五大新兴战略性产业之一,写入十一届全国人大三次会议政府工作报告。物联网被称为继计算机、互联网之后,世界信息产业的第三次浪潮。时间和技术出现浪潮,当然也会出现一些弄潮儿,连利波就是其中一位。对IoT的热爱:将兴趣做成事业,连利波在研究生期间学的是控制工程学,但他却对嵌入式开发十分的感兴趣,在大学期间就开始研究嵌入式开发。在2010年,那个时候还属于物联网发展的第一阶段,越来越多的设备通过移动网络、Wi-Fi、蓝牙、RFID、ZigBee等连接技术连接入网。在当时,连利波还猜测ZigBee通信技术可能会在智能家居这个领域应该会火爆起来。毕业之后,在2017年连利波进入物联网圈子。17年的物联网通信在用LoRa技术,它的传输距离远,城镇可达2-5 Km,郊区可达15 Km。在惊讶技术的进步同时,连利波对物联网的发展也更加关心了。随后在2018年的时候,正式接触和应用NB-IoT通信技术。随着学习和使用的不断加深,华为云IoT平台上的产品和技术吸引到了连利波。他利用华为云推出的IoT课程和实践内容,在华为云老师的帮助下,逐渐掌握了NB-IoT通信的特点和优势,让连利波对华为云IoT平台有了更深的认知。连利波利用自己的所学知识,在2019年的华为开发者大赛IoT赛道获得优胜奖奖励。从事物联网工作3年以来,连利波和团队同事共同努力,开发了基于LoRa的用电数据采集系统,并完成了基于信噪比优化的LoRa组网算法。连利波团队还联合华为推出了基于NB-IoT的智慧园区能效管理解决方案,开发出多个能耗采集系统的建设,分别在西安、成都、深圳、佛山等地落地。不仅如此,连利波团队还开发出多协议多通信方式的物联网采集终端并获得专利,实现了传统透传方式的采集系统到自主可控采集系统的转变,极大节省了物联网通信带宽和费用。建设不是核心,融合才能创造价值相比较早期,物联网通信技术有了很大的进步,但缺乏行业标准,体现在传感器、模组、平台、应用等方方面面。连利波讲到,仅仅是换一个模组,不是要改硬件,可能就是要修改软件。而且,在感知层的设备协议更是五花八门,就一个设备(除国家电网定义的dlt645协议外),每个厂家的协议都是不同的,用户要做各种协议解析。不仅如此,物联网平台也只是规范设备接入自家平台的协议,不同平台之间的互通性很差。其实,通信技术并不是当前物联网发展的瓶颈,而是在于要去发掘客户真正的需求,只有认真了解了需求才能够真正解决用户问题。一个设备要接入网络并不是什么复杂的事情,物联网只是基础建设,不同行业数据的融合才可能为用户创造出价值。并不是一个设备接入互联网,就简单远程控制一下。现在的物联网建设,仅在设备适配与改造方面就已经让用户付出了很大的成本,不同厂家的设备平台又很难互通,收效甚微。必须要逐步建立统一的标准才有利于物联网的持续发展,而这需要各行各业的通力协作,也更需要我们一起为物联网的良好持续发展贡献力量。
  • [技术干货] 【智简联接,万物互联】华为云·云享专家刘文龙:变革传统嵌入式编程开发,IoT开发首选LiteOS
    与其说传感器是一个硬件设备,不如说它是我们人体感官的延伸。试想一下,我们被丰富且微小的传感器所包围,它们时刻监测我们健康,通过云端算法,如同加密的 “私人医生”一样,帮助我们预防疾病风险;城市和生活也会被丰富的传感器网络所包围,时刻检测温湿度、空气质量,由此开启和关闭空气净化装置,实时改善城市的环境……这也是刘文龙所构想的物联网世界,他认为未来的世界,传感器将包含人类五感的功能,部分甚至能代替和制造五感的效果。那么,这样一个有些“荒诞”,又有些“理想化”的世界,从哪里开始呢?与IoT结缘,感知世界的另一种方式刘文龙算是物联网行业的老兵了,在嵌入式领域有着10多年的工作经验。他和物联网的渊源最早可以追溯到他上大学那会,回忆起当初做物联网开发的那段经历,刘文龙提到了一个有趣的项目。当时他在学校实验室开发一个精密的形变检测产品,用于测试大坝微小变化。其原理是利用24位AD对一个形变片上的微小电压进行测试,采样后利用Δ-∑滤波器进行滤波,然后通过MCU进行中值处理后得到一个新的数据点,最后将数据发送到中央监控器,监控被测物体微米或是纳米级别的形变,来预判一些事故的发生。可见一个小小的传感器蕴藏的能量是不可估量的,刘文龙迷恋于此。所以,毕业后他一直从事嵌入式开发的工作,尤其以伺服嵌入式软件开发和物联网应用开发为主。10年的行业经验,也让刘文龙对物联网市场的变化感同身受。        单一的传感器能收集到的数据是有限的,以前也没有合适的技术能将这些数据价值最大化。但通过物联网技术,可以把传感器的参数采集后通过安全加密的方式传输到云端,在云端大数据和AI的支撑下,赋能这些传感器。最终,无处不在的IoT设备让我们更好地控制和感知我们的世界。在刘文龙看来,IoT无处不在,用于测量空气的温度、湿度、PM2.5,用于生产安全的燃气浓度、烟感等等,更多智能的传感器和云端算法正融入到我们的生活。LiteOS:速度快、周期短、高可靠工欲善其事必先利其器,万物互联的美好图景始于物联网应用的开发,这也是刘文龙接触华为云后最受益匪浅的地方。他在学习华为云IoT课程时了解到华为云的嵌入式操作系统LiteOS,自此就是一发不可收的项目开发之路。在刘文龙看来,LiteOS可以很好地进行实时线程的控制,首先保证了传感器采样对时间的要求。其次,LiteOS的设计能够加速开发者项目的落地,以它提供的传感器框架为例,由于统一了接口,开发者选择已有的传感器驱动进行开发或是依照框架设计传感器驱动时,能直接调用应用程序,不仅缩短开发周期,也减少不靠谱代码造成的影响。刘文龙举了个开发实操的案例:利用SR04超声波传感器进行距离采样。如果使用原有的裸机开发,需要自己做定时的采样,开启定时器中断,然后检测中断的时间,按照这个时间计算处理,再通过时间扫描将数据发送到云端。但是用LiteOS后,我只需要把SR04的超声波检测模块添加到SensorHub框架,然后利用轮询传感器采样,将数据转成Json格式直接发到云端。这几步操作只需LiteOS创建几个线程,写几行语句就能实现,比原有逻辑的开发思路简单多,再加上华为在安全上做的工作,还能保证运行后的可靠。更优秀的是,华为在保证系统足够安全可靠的情况下,还增加了IoT Studio数据平台的服务接口,这样从数据采集、网络协议(MQTT、CoAP等)传输到IoT Studio也只要几行指令即可完成。软件的便利性让刘文龙颇为感慨,“这在原有的嵌入式编程上是不可想象的,华为云IoT工具的效率和安全性并重,既降低开发者的使用门槛,也给嵌入式设备更好地赋能。”现在手上有新项目,刘文龙第一考虑就是LiteOS,它既有优质的框架能直接选用,也可以更好得完成项目算法的迁移。经过几个项目的历练,刘文龙认为,“未来嵌入式MCU必将从裸机开发到RTOS开发,因为现在的程序可靠性高,编程也简单,相应的项目产出也快了。”不过,LiteOS解决的只是物联网应用的开发,真正让传感器智能的还要靠设备(数据)上云后带来的数据价值。IoT+AI赋能,让设备“活”起来数据上云后,用传统的方式面对这些数据感觉很无力:既没有好的大数据算法,也没有相应的大型服务支持。但现在有了IoT数据接入服务DIS,一切难题便可迎刃而解。DIS可以连接AI开发平台ModelArts实现AI的运算,并把结果反馈回IoT平台到开发板进行命令执行。具体流程如上图所示:边端设备将数据传输到IoT 平台,数据以JSON格式转入到DIS,再通过对象存储服务OBS将边端数据传送到ModelArts,数据经过预先制定的边端模型训练后在AI开发平台上实现功能。这就是从端边的数据采集到云端AI运行,再将结果输出到IoT平台监控和终端设备执行命令的全流程。以此类推,在智慧城市、智慧工厂这样大的场景中,我们也可以将传感器收集到的数据加载到AI模型中,从而预判场景的变化,如城市人口的移动数据、各个景点空气质量数据、工厂的生产进度……这样就能高效地进行城市建设,为工厂设备的使用进行预判维护,提高生产力和效率。可以预见的是,伴随着云服务、AI、边缘计算的深入结合,万物互联,以传感器为代表的物物感知时代,离我们真的不远了。
  • 正在消失的MCU与MPU之间的界限
            曾有一段时间,微处理器(MPU)与微控制器(MCU)是截然不同的两种设备,微控制器完成“控制”相关的任务,根据外界信号刺激产生反应,微处理器主要执行处理功能,对数据处理和计算能力的要求较高。但如今由于内存架构的变化,两者之间的界限正在变得模糊。图片源自 Shutterstock        事实上,可以通过多种方式区分微处理器和微控制器,只是业界尚未对他们的区分标准达成共识。不过已经有一些人得出结论,目前两者之间的准确区分都已经不再重要了。      “近年来,MCU和MPU之间的区别变得越来越模糊。”西门子业务部门的嵌入式软件技术专家Colin Walls说,“最初,MCU在一个芯片上集成了CPU、内存和外围设备,如今大多数MCU依然如此,但因为MCU具有足够强大的功能来支持更复杂的应用程序,附加外部存储器的MCU也变得常见。”计算芯片的两个市场        曾经有一段时间,计算芯片分为两个截然不同的市场,大部分芯片设备主要针对主流计算,性能是最主要的考虑因素,这些单片微型计算机被称之为“微处理器”,为个人计算机和更大的系统提供动力。        如今我们可以在各种类型的笔记本电脑、台式机和服务器中看到它们,值得注意的是,它们是通用引擎,旨在运行事先未知的任何数量的程序,主内存是DRAM,非易失性存储是硬盘驱动器或固态硬盘。        在不那么主流的嵌入式计算世界里,需要适度计算能力和专门用途,设计好的程序可能在固件中运行,以便让整个系统(包括程序和所有系统)在出货之前得以验证,内存需求将受到更多限制,可以将用于存储代码的SRAM和非易失性内存与CPU集成到同一块芯片上,关键一点,实时响应通常很重要。        嵌入式计算机也倾向于在有特殊I/O需求的环境中使用,一些可能是在驱动电动机,另一些可能是在处理声音或读取传感器。将专用外围设备接口硬件集成到同CPU和内存相同的芯片上十分有效,这会产生具有不同特性的各种芯片。总的来说,CPU与SRAM、非易失性存储器和专用外设集成在一起的被称之为“微控制器”。        微处理器发展至今已经多达64位,而微控制器依然是8位居多,但在这中间发生了一些变化,使得两者之间的区别更加模糊。        集成式闪存是MCU的重要特征,不过这类闪存尚未在拥有最先进节点的微控制器上使用,因此许多以微控制器形式销售的设备都使用外部闪存而不是嵌入式闪存,此外还使用外部DRAM。        实际上,一个称之为“shadowing”的过程可以从外部闪存中获取代码,并将其复制到DRAM中,然后从中执行代码,而且为了提高性能,缓存也可以包括在内。这使得CPU/内存子系统与MPU几乎没有区别。那么现在的MCU就是MPU吗?不再有区别了吗?当下可区分MCU与MPU的因素如今的MCU和MPU十分相似,但依然在很多方面有一些细微的区别,这包括CPU功能、位数、操作系统、时序要求、核心数量等方面。在CPU功能方面,如果CPU具有复杂的流水线,具有预测执行和其他超标量功能,则可以将其视为MPU,但是转变的确切位置并没有明确界定。在位数上,8位设备更有可能被视为MCU,64位设备很可能被视为MPU。不过最早的却是MPU是4位,这更像是历史问题,而不是决定性的特征。也可以根据计算机可运行的操作系统进行分类,如果它运行Linux,则可以将其称为MPU。如果它仅允许较小的实时操作系统,甚至只运行裸机,则可以将其称为MCU,这为能够运行的Linux的设备留出了许多中间地带。在时序方面,MCU通常用于需要硬或软实时响应的应用程序,MPU通常不能用于这一目的。一般也将多核处理器视为MPU,尤其是在内核相同且管理对称的情况下。不过专用设备可能具有多个处理器,有些专用于诸如数字信号之类特定任务的处理器也会被认为是MCU,因此通过核心数目判断是MPU还是MCU并不是一个准确的依据。从使用目的来看,可以认为通用设备是MPU,单用途设备是MCU,但这实际上只关乎设备的使用方式,如果在不明确使用目的的情况下使用任何设备,那时候如何称呼这一设备呢?通常全功能MPU不会具有专用外围设备,这在很大程度上是因为它们是通用的,而不是面向特定应用,因此你可能会认为只要有这样的外围设备,就是MCU,但是事实并非如此,缺少外围设备也并不意味着就是MPU。从上面的分析来看,每个特征因素都会存在缺陷,结果无法令人满意,那么行业专家又是怎么认为的呢?MCU和MPU已成过时的术语        Cadence IP集团产品行销总监Marc Greenberg对此表示:“我不知道MCU与MPU之间的区别是否存在某些官方的定义,经过简单的检索似乎表明,裸片上存在NVM的为MCU,但各种MPU上都有NVM的某些位,MPU也可能在同一片裸片上具有MCU,那又是什么呢?最小的无缓存处理器可能仍具有一些寄存器和SRAM,用RTL编码的定序器与从ROM执行的通用处理器真的有区别吗?显然MCU和MPU之间的区别有些随意,这意味着这一界限并不明确甚至可以随心所欲。当我想到MPU时,我想到的是用于控制通用计算机的设备,例如台式机、服务器、平板电脑等。”        Cadence高级工程师Grant Martin认为:“根据维基百科的解释,MCU是在单个金属氧化物半导体集成电路芯片上的小型计算机,MPU是一种计算机处理器,在MOSFET结构的单个或多个集成电路上结合了中央处理单元的功能。”     “如果深入研究,MPU具有CPU的功能,因此它是计算机处理器,而MCU则是更完整的计算机,这意味着MCU内包含MPU,这与常识相反。具有多个处理器核心的16路服务器处理器是否不再是MPU?而是一种多核异构SoC?”    “例如,一部手机可能包括多个应用程序处理内核,用于音频、视频、图像处理的多个DSP,一个或两个用于在屏幕上呈现图像的GPU以及一个仅用于娱乐目的的神经网络处理单元——MCU。从我的角度来看,行业应该放弃这些过时的术语,使用更精确更具描述性的术语。”Grant Martin继续说。        西门子业务部门Mentor的高级产品经理Jeff Hancock则认为:“从系统软件的角度来看,MCU有望适用于直接解释和控制硬件传感器和执行器的应用。这种访问通常涉及一致且可靠的指令时序,这与通用MPU的需求相矛盾。通用MPU旨在优化吞吐量,而MCU通常会优化延迟。因此,如果是需要处理大型数据库,MPU更合适,如果是要精细的机电控制,那么MCU更合适。        Jeff Hancock还说:“外部存储器和缓存肯定让MCU的标准有所变化,但这距离将MCU等同于MPU还有很长的路要走。特别是并不是所有MCU中的所有处理单元都专门使用外部存储器,也可以使用隔离的子系统构建系统,这些子系统允许关键的工作负载和不太关键的应用程序级系统并行继续。”     “从软件工程师的角度看,这是一个有趣的挑战,在不连续的地方可能有两个内存区域,集成式内存虽小,但速度更快,因此最好留给对速度有高要求的代码,例如实时操作系统。这意味着开发工具必须足够灵活以将代码正确地映射到存储器上,而RTOS必须足够小适合片上存储器。”西门子业务部门的嵌入式软件技术专家Walls补充到。        Tortuga Logic的高级硬件安全工程师Nicole Fern表示:“过去,MCU与嵌入式系统相关联。在嵌入式系统中,低成本和低功耗的要求比性能更为重要。但是随着移动计算和IoT边缘计算的出现,许多嵌入式系统现在需要复杂的处理,这样就产生了面向嵌入式领域看起来更像MPU的MCU产品,为带有外部存储器和高速缓存的器件提供了更高的性能和可配置性。这种情况下,术语MCU和MPU之间的差异仅取决于是否集成CPU系统。”        Arm的低功耗IoT业务高级总监Thomas Ensergueix也认为:“近年来,MCU和MPU之间的界限已经模糊。MCU和MPU之间的主要区别之一是软件和开发。MPU将支持丰富的OS,如Linux和相关的软件堆栈,而MCU通常将专注于裸机和RTOS。在决定哪种硬件平台、MCU或MPU最有效之前,由软件开发人员决定哪个软件环境和生态系统最适合他们的应用。        “随着现在MCU已经过渡到32位,我们还看到了性能的急剧提高,这有助于缩小MCU和MPU之间的差距。例如:许多基于Arm Cortex-M7的MCU可提供100多个Dhrystone MIPS,或在CoreMark中提供2,000多个点。这些设备中的许多设备还具有非常大的内置存储器,或者提供快速接口来连接外部存储器。这确保了性能和内存不再是MCU的瓶颈,并使它们更接近低端MPU。”小结        如今MPU与MCU之间是否有明确的界限真的重要吗?可能不重要了。因为无论我们将其称之为什么,应用程序都有附带要求,这些要求将决定使用哪个设备。本文编译自https://semiengineering.com/mpu-vs-mcu/原文作者Bryon Moyer来源:雷锋网 吴优  https://www.leiphone.com/news/202012/EMCDZGuavN3VlNzd.html
  • [技术干货] 2021年编程选Java的8大理由,JAVA前景如何?
    大多数人选择Java可能只是因为听说Java前景好、Java比较好找工作、Java语言在TIOBE排行榜上一直位于前三等等之类的原因,但是Java具体好在哪里,心里却是没有什么概念的。今天娜娜米就带大家一起了解一下,学编程选Java的8大理由。1、Java广受欢迎Java仍然是世界上最受欢迎的编程语言之一,有无限多种方法使用Java。根据2019年月TIOBE指数和IEEE Spectrum排名,Java依然是最受欢迎的编程语言。2、薪资可观最新的一些报告证明,Java程序员是业内薪资最高的程序员之一。根据全球数字化业务媒体机构Quartz的分析,拥有Java技能有利于提高薪资。职业规划公司Gooroo在2015年薪资和需求报告中指出,Java仍然是美国、英国和澳大利亚最受欢迎和薪资最高的编程语言之一。根据全球就业相关内容搜索引擎Indeed.com对职业排名的报告显示,2016年2月美国Java开发人员招聘职位的平均薪资为102,000美元。3、Java程序员市场紧缺雇主对Java编程技能有着很高的需求。Java是广泛使用的编程语言,拥有庞大的客户群。Java程序员如今虽然很火,但市场依旧是供不应求的,而且在待遇上Java程序员也比大多数其他语言编程人员要高,因此学习Java还是大有可为,学好后,不用担心自己的所学没有用武之地。java 项目大全:www.1b23.com4、Java无处不在据估计,全球范围内有超过30亿部设备运行Java,超过其他任何一种语言。Java被用于全球最知名的众多网站中,包括eBay.com、Linkedin.com、Amazon.com和Facebook.com。Java尤其适用于在几乎任何行业中开发企业应用等,包括金融服务、医疗保健和制造业。这也意味着Java方面的工作比较好找,另一点是在做Java开发时如果遇到问题,可以很容易从网上找到解决办法。5、简单易学Java是一个面向对象的编程语言,容易理解。而且略去了多重加载、指针等难以理解的概念。并且实现了自动垃圾回收,大大简化了程序设计。6、安全高效的工具选择编程语言的一个重要因素是:能够确保工作效率的优秀开发工具。许多工具都是免费或者开源提供。NetBeans和Eclipse都是集成开发环境(IDE)空间的最佳证明。而且,Java充满安全性,Java中没有指针,这样就没有办法直接访问内存了。另外Java也不容易出现内存泄露。7、充满激情的Java社区全球约有900万名Java开发人员,创造了一个充满活力和积极进取的Java社区,大家共同努力发展壮大这个功能强大的编程语言。它能够通过多种方式融入你的整个职业生涯中。8、Java拥有强大的发展路线图Oracle仍将遵循强大的路线图致力发展Java。同时Java有着更快的更新频率,Oracle计划将该平台模块化,同时提高安全性和使用性能。这将使Java扩展更为轻松,可用于从大型软件系统到小型设备的各种设备规模,其中包括嵌入式物联网处理器。以上就是娜娜米为大家介绍的Java开发的8大优势的相关内容啦,希望对大家有所帮助。
  • [技术干货] 初识物联网【四】万物互联的LPWA
    @[TOC](https://bbs.huaweicloud.com/community/usersnew/id_1583552184752389) # 什么是LPWA LPWA(Low Power Wide Area)低功耗广域网,他解决了传统网络不能应对一些物联网场景的通信问题,低功耗广域网中比较为世人熟知的是**Sigfox、LoRa、NB-IoT** ![image-20200817094254780.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202008/17/101322jxff2ylfnykhedbk.png) ## Sigfox SigFox这一通信技术由法国的SigFox公司拥有,其主要打造**低功耗、低成本**的无线物联网专用网络,SigFox也是商用化速度比较快的一个LPWA网络技术 SigFox网络利用了**UNB(超窄带)技**术,传输功耗水平非常低,且能维持一个稳定的数据连接,通常他的传输速率只有100bps,其网络拓扑是一个可拓展的**高容量的网络**,具有非常低的能源消耗,同时保持**简单和易于部署**的基于星型单元的基础设施 ![image-20200817094608347.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202008/17/101507ms2kvuzqwywhid7e.png) SigFox无线链路使用免授权Sub-G的ISM射频频段频率根据国家法规有所不同,在欧洲广泛使用868MHz,在美国是915MHz ## LoRa LoRa是基于开源的MAC层协议的低功耗广域网标准,同时基于Sub-GHz的频段使其更易以较低功耗远距离通信 ![image-20200817095857577.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202008/17/10135444skuv07eleht2vm.png) LoRa是美国semtec公司采用和推广的一种基于**扩频技术**的**超远距离无线传输方案**,这一方案改变了以往关于传输距离与功耗的折中考虑方式,为用户提供了一种**远距离、长电池寿命、大容量**的系统进而扩展传统网络。 目前LoRa网络也已经在世界多地进行试点或部署 ## NB-IoT NB-IoT是目前LPWA领域最火的一项技术,是构建于蜂窝网络的窄带物联网,只消耗大约180KHz 的宽带,可直接部署于GSM网络、UMTS网络、LTE网络以降低部署成本,实现平滑升级 | | NB-IoT | SigFox | LoRa | | :--------------------: | :----: | :----: | :--: | | 构建在运营商蜂窝网络上 | √ | × | × | | 基于Sub-GHz | √ | √ | √ | | 授权 | √ | × | × | * NB-IoT聚焦于低功耗广覆盖物联网上 ![image-20200817100710739.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202008/17/101404wcj3jgujjkbmelk0.png) 可以广泛应用于**远程抄表、资产追踪、只能停车、智慧农业**等。
  • [交流分享] CoreMark_V1.0移植指南
    1 CoreMark软件介绍CoreMark是一款评估处理器综合性能的测试程序,2009年由eembc(嵌入式微处理器基准协会)的shay gal-on开发,包含流水线操作、整形操作和数据访问等操作。CoreMark针对最普通的操作构造包括矩阵操作(用来评估数学运算)、链表操作(用于评估指针操作)、状态机(评估跳转)和CRC计算(嵌入式中的常用算法)等等。2 编译环境准备本次测试环境采用TaiShan 2280 V2服务器,操作系统为Centos7.6,在安装操作系统时选择“开发包模式”。   3 下载CoreMark源代码CoreMark的官网:http://www.eembc.org/coremark/index.php,点击下载后会跳转到github,直接下载最新版本即可。4 编译安装把下载的源码包上传至服务器,unzip coremark-master.zipcd coremark-master/make5 运行测试5.1 测试命令cd coremark-master/make5.2 测试示例5.2.1 运行CoreMark:5.2.2 查看测试结果:CoreMark得分为主程序每秒的迭代次数,即Iterations/Sec,另外一个重要的指标是CoreMark/MHz:CoreMark/MHz = (Iterations/Sec) / CPU_freq。测试结果可以通过run1.log查看:  6 备注CoreMark没有调用大量的库函数,编译器无法针对其作出特别的优化,从而尽可能减少编译选项的影响,因此CoreMark正在逐步取代Dhrystone。
  • [技术干货] 3分钟了解物联网三大技术的未来争夺战!
    低功耗广域物联网的诸多标准,如NB-IoT、LoRa、SigFox等,正在用各自擅长的技术和应用抢夺IoT风口,以争取在这片广阔的市场上占得先机。物联网通过通信技术将人与物、物与物进行连接,在智能家居、工业数据采集等区域网通信场景一般采用短距离通信技术,对于广范围、远距离的连接则需要远距离通信技术。在生活中的应用场景(如远程抄表、环境监测、智能停车、位置追踪等)时,我们需要一种覆盖广、成本低、部署简单、支持大连接的物联网,因此低功耗广域物联网(Low-Power Wide-Area Network,简称LPWAN)应运而生。并且,以这些应用场景为主导的物联网数量将占到物联网总连接数的60%。LPWAN可分为两类:一类是工作于未授权频谱的LoRa、SigFox等技术;另一类是工作于授权频谱下,3GPP支持的2/3/4G蜂窝通信技术,比如EC-GSM、eMTC、NB-IoT等。 LPWAN 专为低带宽、低功耗、远距离、大量连接的物联网应用而设计,与传统的物联网技术相比,LPWAN有着明显的优点:与蓝牙、Wi-Fi、Zigbee、802.15.4等无线连接技术相比LPWAN技术距离更远;与蜂窝技术(如GPRS、3G、4G等)相比连接功耗更低。在物联网通讯的发展中,NB-IoT已经获得全面性的支持,未来相关应用的市场荣景可期。LoRa与SigFox虽然受到NB-IoT强大的挤压,但因为物联网应用还属于成长中的市场,这两个技术已逐渐找到与NB-IoT区隔的发展道路,未来的发展重点是创造良好的消费者使用体验,朝着正确的航道加速、起飞。物联网通讯是这两年产业最热门的话题之一,尤其在5G三大愿景中正式定义为mMTC(Massive Machine Type Communication),未来物联网的联网规模将大幅超越过去的人联网,每平方公里网络节点甚至高达100万个。低功耗广域网(Low Power Wide Area Network, LPWAN)技术简单、应用广泛,将是MTC早期的切入点,包括NB-IoT、LoRa、SigFox等都是相关的明星级技术,而未来3GPP的MTC标准陆续订定之后,可以支持更多不同类型的物联网应用。事实上,在过去物联网概念尚未成熟时,已有许多利用2G/3G技术的机器通讯(Machine to Machine, M2M)应用,如车队管理、物流、工业等B2B应用,未来几年市场需求将持续成长。在现有2G/3G/4G模块的基础之下,2018年NB-IoT、LoRa、SigFox大力拓展新兴应用市场,加上LTE Cat. M1,与未来可满足更多高传输速率、高移动性、定位、低耗电、语音等功能的MTC标准,共同建构物联网通讯的产业面貌。NB-IoT:中国的物联网标准  NB-IoT产业2017年开始起步,2018年进入加速阶段,2019年将要正式起飞。从技术标准发展来看,2016年3GPP R13版本发表NB-IoT技术,2017年大厂高通(Qualcomm)与海思(HiSilicon)相继推出支持初版标准的芯片,年底联发科进一步推出R14版本芯片,更有许多芯片厂商陆续宣布投入NB-IoT,市场蓬勃发展,同时也刺激了通讯模块厂商的脚步。自2016年6月16日,NB-IoT 技术协议获得3GPP无线接入网(RAN)技术规范组会议通过以来,我国随后就出台一系列政策支持 NB-IoT 发展。2017年5月,工信部发布《电信网编号计划(2017年版)》,新编号中增加了物联网网号,将“140XX~144XX”明确为物联网网号。2017年6月16日,工信部下发《关于全面推进移动物联网(NB-IoT)建设发展的通知》,《通知》对2017年到2020年的NB-IoT标准、NB-IoT设备、NB-IoT芯片、NB-IoT模组、NB-IoT测试、NB-IoT应用、NB-IoT网络的发展,部署了“定量”的任务。2017年6月20日,工信部发布2017年第27号公告,从三方面明确了 NB-IoT 系统频率的使用要求。2017年8月7日,工信部批准同意了部分单位提出的电信网码号资源有关申请,对2017年第10批《中华人民共和国电信网码号资源使用证书》颁发结果进行公示,其中就包括了物联网号段分配。有了中国政府和中国市场对NB-IoT的全力支持,NB-IoT如日中天。  三大运营商NB-IoT部署进度NB-IoT的发展离不开芯片和模组等产业链上游厂商的发力。华为的Boudica120、Boudica150;高通的MDM9206;联发科的MT2625。除此之外,锐迪科、英特尔、中兴微电子等公司也有自己的芯片规划。  网络部署情况中国是现今NB-IoT最大部署市场,随着2017年中国国务院和工信部发文,引导物联市场健康有序发展,NB-IoT产业生态在中国蓬勃发展。NB-IoT产业联盟、移动物联网联盟的成立吸引了一千多家企业布局NB-IoT市场,智慧抄表、智能停车、智慧医疗、智能物流等四十多个行业应用已启动规模商用部署,预计年底中国NB-IoT连接数将达1亿。海外NB-IoT发展也即将进入快车道。在NB-IoT商用快速增长、产业蓬勃发展的带动下,原有LoRa的支持者们也逐步尝试转向NB-IoT阵营。  NB-IoT网络架构NB-IoT网络架构方案NB-IoT 组网主要分成5 个部分:NB-IoT 终端:支持各行业的IoT 设备接入;NB-IoT 基站:主要是指LTE 基站;NB-IoT 核心网:NB-IoT 基站和NB-IoT云的连接枢纽;物联云平台:各类业务的处理及反馈的中心;应用服务中心:既可以获取到本中心的NB-IoT 业务数据,也可以完成对NB-IoT 终端的控制。  NB-IoT应用由政府推动的公共事业与智慧城市建设,都是NB-IoT的主要应用,包括最常被提到的智能三表(水表、电表、燃气表)、智慧路灯、停车管理、环境监测等。事实上,NB-IoT今年已证明将在公共事业、服务与智慧城市建设等领域,取得主导性的发展地位。NB-IoT由电信营运商建置网络并提供服务,网络建置与原先的无线通信基地台一致,在人口稠密的都会区,4G LTE讯号完善,只需透过最简易的软件升级,不需重新布建网络;采用授权频段,公共服务质量有保障,只要谈好服务费率,商业模式建立也相对简易。2018下半年到2019年,将有更多类型、更大规模的NB-IoT应用导入。LoRa:LPWAN无人能敌的最强者  LoRa是美国半导体制造商Semtech借助其并购的法国公司Cycleo所开发的无线通信技术LoRa,在这个基础上与IBM合作完成规范,并由Semtech、IBM、Cisco为核心所组成的LoRa联盟推动相关发展。2016~2017年备受期待,有可能成为物联网时代的Wi-Fi,因为其采用非授权频段,技术简易、应用方便,开放的生态圈也提供与电信领域较远的资通讯厂商插旗物联网通讯的机会,很快的就吸引数百家厂商加入产业联盟,台湾地区也有许多厂商大力投入。省掉授权频段权利金,背后又有思科(Cisco)、IBM、阿里巴巴、腾讯这些大厂力挺,甚至许多电信商也押宝,技术、产品都在2017年以前就Ready,产业推动时程较NB-IoT更有优势。不过,从2017~2018年,LoRa发展受到NB-IoT强大的竞争压力,业界传出不少撤换网络解决方案的传闻,主要原因分为内部与外部两个面向,外部原因就是NB-IoT的大规模推动,原先推动较顺利的LoRaWAN与其应用领域重迭性高,尤其像前述公共事业的物联网应用,没有大型的服务商如电信业者来扮演与政府合作的角色。内部原因则是LoRa技术1.0版未达最大的省电效果,讯息传送采用类似广播的方式,会出现终端与服务器不同步的问题,导致重要讯息遗漏,掉封包的状况经常出现;另外,LoRa虽然芯片几乎都掌握在Semtech手上,但因为验证与互通测试服务还不成熟,也会造成不同厂商终端设备互通互连的瓶颈。去年底,无管局发布了“征求意见稿”。意见稿里有一条细则,规定“470-510MHz的非授权频段,限单频点使用,不能用于组网应用”。LoRa本就用于物联网,如此一刀切非授权频谱的物联网应用,意味着频段内LoRa等物联网通信技术均请出国门,频段内的千亿产业链及生态均被扼杀。最终在LoRa支持者们的努力下,这件事情最终没有定论。但无管局并未明确透露何时推出新的政策,对身在其中的人们来说,这是没有落地的“靴子”。LoRa主导厂商当然也知道现在的困境,尽管整体市场还在成长中,不过在产业中受瞩目的程度降低却是不争的事实。网络部署情况目前LoRa联盟已有500多个成员,在100多个国家提供服务,58家联盟成员运营商在41个国家运营,67家公共网络运营商,从美国、中国到俄罗斯、东南亚、南美,实现在全球范围内的广泛覆盖。其全球网络覆盖情况如下图所示:LoRaWAN网络架构从LoRaWAN网络架构来看,主要有以下几部分:终端节点(End Nodes)、集中器/网关(Concentrator/Gateway)、回程(Backhual)、网络服务器(Network Server)、应用服务器(Application Server)。终端节点(End Nodes):终端节点是在最左边,异步地广播数据包到网络。遵循Aloha网络规范,保证终端设备可以大部分时间处于空闲模式,功耗少于1uA。 这种方法可确保在小型电池上的应用可以实现10至15年的使用寿命。集中器/网关(Concentrator/Gateway):通过终端节点广播的数据包将会被网络中的一个或多个网关获取。网关有一个多信道和多数据速率的射频嵌入式设备,可以扫描和检测任何活动信道上的数据包并进行解调。回程(Backhual):网关通常有一个以太网的回程,然而,目前一些部署使用了2G、3G、4G、Wi-Fi、NB-IoT、以太网等作为回程。网络服务器(Network Server):核心网络是LoRaWAN系统的重要组成部分。 它承载所有需要的智能来管理网络并将数据分发到其他服务器。应用服务器(Application Server):LoRaWAN协议支持不同类型的网络。一些网络提供商也是应用提供商。因此,在LoRaWAN网络架构图图中最右侧的应用服务器可以与网络服务器分别托管或与网络服务器集成在一起托管。  LoRa应用LoRa正在全球范围内应用部署,因为其低功耗、深度覆盖、容易部署等优势使得其非常适用于要求功耗低、距离远、大量连接以及定位跟踪等的物联网应用,如智能抄表、智能停车、车辆追踪、宠物跟踪、智慧农业、智慧工业、智慧城市、智慧社区等等应用和领域。  SigFox:国外最火的LPWAN技术  Sigfox是一家法国公司,成立于2009年,创建了连接低功耗设备的无线网络,主要用于低功耗物联网,如:电表等,这类应用需要连续地发送少量的数据。Sigfox希望建立第一个仅供用于物联网的全球蜂窝连接的公司,其基础设施完全独立于现有的网络(如电信移动网络)。SigFox是自行建构一个产业生态体系(Ecosystem),由SigFox负责全球共同的网络营运与云端平台管理,再透过各地特许的网络营运商SNO(SigFox Network Operator)提供服务,原则上单一地区由单一业者负责,其经营理念为“One Globe, One Network. One Globe, One Contract.”,截至目前为止讯号涵盖已达46个国家和地区,预计在2018年底达到60个国家和地区的网络部署。SigFox尤其适合跨国性的物联网应用,如资产追踪。SigFox在台湾的营运商优纳比(UnaBiz)在Computex 2018也邀请多家发展SigFox解决方案的厂商展出相关服务。Sigfox正在推出首个全球性的物联网网络,可以监听数十亿的对象广播数据,而无需建立和维护网络连接。在无线连接的世界中,这种独特的方法是没有信令开销的,紧凑和优化的协议,而物不依赖于网络。Sigfox提供了一种基于软件的通信解决方案,所有的工作和计算的复杂性都是在云端进行的,而不是在设备上。所有这一切,大大降低了能源消耗和连接设备的成本。  网络部署情况由于物联网连接使用低数据速率,Sigfox网络利用了超窄带,UNB技术。传输功耗水平非常低,而仍然能维持一个稳定的数据连接。Sigfox无线链路使用免授权的ISM射频频段。频率根据国家法规有所不同,但在欧洲广泛使用868MHz,在美国是915MHz。Sigfox网络中单元的密度(基于平均距离),在农村地区大约30-50km,在城市中常有更多的障碍物和噪声距离可能减少到3-10km之间。整个Sigfox网络拓扑是一个可扩展的、高容量的网络,具有非常低的能源消耗,同时保持简单和易于部署的基于星型单元的基础设施。  SIGFOX网络全球部署情况根据官方数据,截止上半年Sigfox 在 29 个国家建有应用网络,主要为欧洲国家,如:西班牙、法国、俄罗斯、英国、荷兰、德国等,覆盖 170 万平方公里。  Sigfox网络架构由上图可以看出,Sigfox网络架构可以分为三部分。中间部分Sigfox Gateway和Sigfox Cloud部分由Sigfox公司提供,也就是Sigfox网络和Sigfox网络服务器或设备管理服务器由Sigfox提供。左边终端部分Sigfox则是开放的,与多个RF芯片公司合作无线前端的连接,为用户提供多RF芯片供应商的选择,但终端必须符合Sigfox网络认证。右边的部分则是业务的应用,包括应用服务器和Web客户端或App等。  Sigfox的应用以行业部分来看,Sigfox应用主要集中在工业、共用事业、农业、公共部门等领域。按用例来看,Sigfox应用主要集中在智能计量、智能跟踪、温度检测上。  Sigfox在中国的第一个项目2018年1月,“中法合作 成都国际智慧养老服务示范社区”Sigfox项目签署。项目总投资约3亿欧元,由Sigfox物联网公司和KRG智慧养老公司提供物联网技术标准和智慧养老技术解决方案,中国联通提供技术运营支持。KRG智慧养老公司针对独居的老人及行动不便者开发了智能居家新一代远程养老监护系统,提供基于Sigfox物联网技术的新一代远程协助解决方案,能够观测到可能将上述人员置于危险境地的跌到、不适和等反常行为。  LPWAN技术正各自起飞  2018年是物联网通讯正式商用化的元年,尤其是NB-IoT,根据资策会MIC的研究显示,今年LPWAN模块市场将挑战第一个1亿规模,该会产业分析师曾巧灵指出,上半年NB-IoT多功能整合模块市价都在10~15美元左右,对于诉求大规模简易的应用来说,成本压力沉重,不过下半年NB-IoT模块出货已经逐渐放量,加上投入的芯片、模块厂商越来越多,模块价格有下降到8~10美元的趋势。世界各地电信营运商的NB-IoT服务在2017年下半年陆续开台,市场推动力量加大,2019年以后NB-IoT模块将出现高度成长,预计2021年LPWAN联网装置数量规模将高达8亿(图1),其中约7亿是NB-IoT与eMTC这类授权频段技术产品,尤其以中国与欧洲市场的发展最为强劲。  2017~2021年LPWAN联网装置数量另一研究单位IHS Markit的看法也相当乐观,预测到2021年IoT联网数量将超过10亿。从2014年到2021年的年复合成长率(CAGR)高达206%,中国的物联网市场在政府的大力支持下,中国三大营运商的物联网连接从2014年的5,350万成长到2016年的1.62亿,中国政府在策略上希望主导NB-IoT的产业发展,也让中国成了全球NB-IoT发展的火车头与观察指标。而在非授权频段的LPWAN市场中,LoRaWAN在2017年出现高于预期的成长,据了解,Semtech的LoRa芯片出货量超过1,000万颗,IHS Markit预计LoRaWAN的联网节点数量到2021年将增加到近3亿。针对另一个明星级的LPWAN技术SigFox,IHS Markit的看法则较为保守,整体而言,NB-IoT已经成为现阶段物联网通讯的霸主,LoRa与SigFox的早发领先优势已经逐渐消失,不过在物联网的高度成长趋势下,LoRa与SigFox也积极寻求合适的领域与应用。整体而言,NB-IoT已经获得全面性的支持,其实与去年业界的看法一致,大部分物联网通讯厂商投入的方向也以NB-IoT为主,部分两边押宝的厂商大都将策略重心放在NB-IoT,还有更多先前观望的厂商,已经确定要投入NB-IoT的发展,未来相关应用的市场荣景可期。另外,LoRa与SigFox虽然受到NB-IoT强大的挤压,但因为物联网应用还属于成长中的市场,这两个技术的市场也在不断成长。或许在不久的将来,也会在单一物联网模块内整合LoRa或NB-IoT等不同的无线网络通讯技术,像是在偏远工厂,以LoRa形成局域网络内设备间的数据传输,再将数据传送到外部的LTE网络,整合多个厂区的数据进行整体分析。  LPWAN三大技术阵营的主要半导体供货商  总结NB-IoT带动的不仅仅是自身产业生态阵营的快速发展,也让LoRa、Sigfox等其他低功耗广域网络技术获得了绝佳的市场教育机会,尤其是LoRa以及以此为基础制定的广域网络规范LoRaWAN,在过去一年多的时间里,国内外从业者对LoRa并不陌生,而且有大量基于LoRa的物联网应用案例已经落地。思科(Cisco)、IBM、阿里巴巴等巨头力挺LoRa,上个月腾讯也宣布加入LoRa联盟,腾讯云副总裁王慧星表示:“LoRaWAN已经实现了快速增长,我们认为,它在LPWAN市场上与NB-IoT高度互补。加入LoRa联盟将使我们能够影响LoRaWAN的技术开发、推进相关的物联网应用,并通过与全球其他LoRaWAN供应商建立紧密的合作关系来加强推进我们的云业务。”总的来说,LoRa与SigFox已逐渐找到与NB-IoT区隔的发展道路,未来两年的发展重点应该是创造良好的消费者使用体验,包括硬件终端芯片/模块的降价、软件服务的完善与便利性等,真正从正确的航道加速、起飞。来源:李震物联
  • [课程内容] C++实践教学精品课标准
    C++实践教学精品课标准课程地址课程概述:本课程适合作为高等学校计算机专业及相关专业C++语言程序设计课程的教材,可供从事计算机软件开发人员参考使用。本课程主要介绍了C++语言编程相关知识,重点介绍C++语言概述、函数、类与对象、数据共享与保护、数组、指针、字符串、继承、派生、多态、群体类和群体数据的组织、泛型、C++标准模板库、流类库、输入输出及异常处理。 通过本课程,学生能够学习并了解C++语言语法,体会和领悟面向对象程序设计方法和泛型程序设计方法的优势,结合课程中的编程练习题,能够进一步加深学生动手能力,提升学生对C++知识的掌握和实际应用。材料数作业数习题数五星推荐搭配1591288《C++习题库》含376道习题 作者介绍华为云教育,本课程由华为云教育内容开发团队开发完成,团队主要负责教育解决方案内容开发和建设。包括但不限于课件、视频、习题、代码、案例项目、实训课等。  课程定位:本课程根据人才培养目标,制定涵盖低级,中级,高级等多级分类的知识点、原理、定理等课程体系,满足人才培养需求,包括知识要求、能力要求、素质要求。C++语言为C语言的进阶,学习它是很有必要的,做人工智能的研究,想要深入底层,TensorFlow的核心是用C++写的;做游戏开发,包括端游和网游后台,以发挥计算机的全部性能,需要C++;做智能硬件、嵌入式或硬件驱动开发,C++会提供更多工具,生产效率更高。 岗位及从业方向:岗位:游戏开发工程师、服务器开发工程师、应用开发工程师、C++逆向开发工程师、嵌入式开发工程师、图像处理工程师。从业方向:服务器端开发、游戏开发、虚拟现实仿真、数字图像处理、网络安全、黑客攻防、破解等方向。 前/后导课程:C++语言程序设计可以说是C语言程序设计的进阶课程,学好《计算机应用基础》、《C语言程序设计》,会让你学习起来简单得多。《计算机应用基础》——>《C语言程序设计》——>《C++程序设计》、《Java程序设计》、《数据结构》 本课程的主要任务是:1.    掌握面向对象程序设计的各种概念、机制及其用法2.    掌握C++泛型程序设计,熟练编写各类模板3.    熟练使用C++的标准模板库4.     初步具备用C++语言和面向对象的方法开发大型程序的能力5.    通过学习本课程,让学习本课程的人有一个扎实的计算机基础,对计算机架构,操作系统,编程语言,计算机网络有一个本质的认识,做到以不变应万变,并且可以独立开发模仿一些常用的软件工具和网站以及安卓程序,解决日常生活中遇到的各种计算机问题。6.    考核达标后,基本达到入职企业所需具备的软件开发职业素质。7.    培养学生严肃,认真一丝不苟的工作作风。培养学生积极思考,通过算法编程题,锻炼思维能力,培养创新能力。8.    为以后深入其他任何计算机领域奠定坚实的根基,未来才能够走的更远,站的更高,解决一般程序员无法解决的问题,成为优秀的人才。 本课程知识教学目标:1.了解计算机程序设计语言的基本知识。2.掌握基本类型、表达式、数据的输入输出、算法的基本控制结构及枚举类型。3.掌握函数的定义、调用、参数传递、函数种类和使用。4.掌握类和对象的使用、构造函数、析构函数、UML类图、结构体、联合体。5.掌握数据共享、数据保护、多文件结构,了解编译预处理命令。6.掌握指针、数组的定义和使用。7.掌握类的继承与派生、派生类的构造定义和析构函数的使用。8.了解并掌握多态性的概述、运算符重载、虚函数和抽象类的使用。9.掌握函数模板与类模板的定义和使用及排序方法的分类使用。10.掌握泛型程序设计与C++标准模板库。11.了解流的概念及流类库结构、掌握输入输出流。12.   理解异常处理的思想,掌握C++异常处理的实现。       教学大纲:第1章绪论1)     计算机程序设计的发展2)     面向对象的方法3)     面向对象的软件开发4)     信息的表示和存储5)     程序的开发过程通过本章节的学习,学生可以:1)     了解 计算机程序设计语言的发展、计算机语言的分类2)     掌握信息的分类、几种进位计数制的转换3)     理解源码、反码、补码的定义及使用4)     掌握定点数、浮点数、数的表示范围及非数值信息的表示5)     了解程序开发的过程 第2章C++简单程序设计1)     C++语言概述2)     基本数据类型和表达式3)     数据的输入与输出4)     算法的基本控制结构5)     枚举类型通过本章节的学习,学生可以:1) 了解 C++ 语言发展和应用2) 掌握 C++能够处理的基本数据类型和表达式3) 了解IO流、简单IO格式控制。4) 理解并掌握算法的基本控制结构及使用方法,包括if、switch、while、do-while、for、break、continue、goto语句5) 掌握枚举类型的定义和使用 第3章函数1)     函数的定义与使用2)     内联函数3)     带默认参数值的函数4)     函数重载5)     使用C++系统函数通过本章节的学习,学生可以:1)     学会函数的定义及使用2)     理解函数调用的形式、掌握嵌套调用和递归调用3)     掌握函数参数传递的定义及使用方法4)     理解并掌握内联函数的使用、注意事项及内联函数的应用5)     掌握带默认参数值的函数的使用6)     学会函数重载如何使用及注意事项7)     了解C++系统函数8)     学会将一段功能相对独立的程序写成一个函数第4章类与对象1)     面向对象程序设计的基本特点2)     类和对象3)     构造函数和析构函数4)     类的组合5)     UML图形标识6)     结构体7)     联合体通过本章节的学习,学生可以:1)     了解面向对象的基本概念2)     掌握类和对象的声明使用3)     掌握构造函数及析构函数定义和使用4)     理解类的组合、会使用向前引用声明5)     了解UML类图6)     掌握结构体的定义和初始化7)     学会联合体的声明、内存分配及使用方法 第5章数据的共享与保护1)     标识符的作用域与可见性2)     对象的生存期3)     类的静态成员4)     类的友元5)     共享数据的保护6)     多文件结构和编译预处理命令通过本部分的学习,使学生:1)     熟练掌握函数原型的作用域、局部作用域、类作用域、文件作用域2)     理解可用性的概念3)     了解什么是动态生存期和静态生存期,掌握变量的生存期与可见性4)     掌握静态数据成员的声明和使用5)     理解友元的定义,学会友元函数的使用6)     了解数据的共享、保护7)     掌握C++程序的一般组织结构8)     理解外部函数和外部变量的定义及使用方法9)     掌握标准C++库10)  学会编译预处理命令的使用 第6章数组、指针与字符串1)     数组2)     指针3)     动态内存分配4)     用vector创建数组对象5)     深拷贝与浅拷贝6)     字符串通过本部分的学习,使学生:1)     熟练掌握一维数组、二维数组、对象数组的概念、声明与使用2)     了解内存空间的访问方式3)     掌握指针的赋值及运算4)     理解动态内存分配及动态的使用5)     学会用Vector创建数组对象6)     理解深拷贝和浅拷贝的定义和使用7)     掌握用字符数组处理字符串的方法8)     熟练使用String类 第7章继承与派生1)     类的继承与派生2)     访问控制3)     类型兼容规则4)     派生类的构造、析构函数5)     派生类成员的标识与访问通过本部分的学习,使学生:1)     理解类的继承关系,学会使用继承关系实现代码的重用2)     了解继承与派生的概念、目的3)     理解派生类的声明及生成过程4)     掌握公有继承、私有继承、保护继承的定义及使用方法5)     了解类型转换的规则6)     掌握继承时及单一继承时构造函数的使用7)     了解作用域限定8)     掌握虚基类的引入、声明和作用9)     熟练掌握虚基类及其派生类构造函数的使用 第8章多态性1)     多态性概述2)     运算符重载3)     虚函数4)     抽象类通过本部分的学习,使学生:1)     理解多态的概念,学会运用多态机制2)     掌握多态的概念、类型及实现3)     学会重载“+”“-”运算符的使用4)     理解运算符重载的规则5)     掌握运算符重载为成员函数6)     掌握运算符重载为非成员函数7)     了解并掌握虚函数的概念和声明8)     了解为什么使用虚析构函数和使用方法9)     掌握纯虚函数的定义和使用10)  了解抽象类的作用和使用 第9章群体类和群体数据的组织1)     函数模板2)     类模板3)     线性群体4)     群体数据的组织通过本部分的学习,使学生:1)     理解函数模板的概念和定义方法2)     了解并掌握类模板的作用和声明以及使用3)     理解线性群体的概念4)     掌握动态数组类模板的使用5)     熟练掌握链表的基本操作:生成结点、**结点、查找结点、删除结点、遍历链表、清空链表6)     了解栈的概念,掌握栈的基本状态:栈空、栈满、一般状态7)     掌握什么是队列及队列的基本状态:队空、队满、一般状态8)     掌握循环队列的定义和使用 第10章泛型程序设计&C++标准模板库1)     泛型程序设计及STL的结构2)     迭代器3)     容器的基本功能与分类4)     顺序容器5)     关联容器6)     函数对象7)     算法通过本部分的学习,使学生:1)     了解泛型程序设计的基本概念2)     了解STL概念及组成3)     理解迭代器的分类、迭代器的区间4)     了解并掌握迭代器的辅助函数的使用5)     掌握输入流迭代器、输出流迭代器的使用6)     理解容器的基本功能和分类7)     了解顺序容器的接口和基本操作8)     了解三种顺序容器的特性9)     掌握顺序容器**迭代器的方法10)  学会以顺序容器为基础构建一些常用数据结构11)  了解优先级队列定义及使用12)  掌握关联容器分类和的基本功能13)  掌握函数对象的定义和使用14)  了解STL算法概念和分类15)  学会使用不可变序列算法、可变序列算法、排序和搜索算法、数值算法 第11章流类库与输入输出1)     IO流的概念及流类库结构2)     输出流3)     输入流4)     输入/输出流通过本部分的学习,使学生:1)     了解IO流的概念及流类库结构2)     掌握输出流的分类及如何构造输出流对象3)     学会**运算符和操纵符的使用4)     掌握文件输出流成员函数的三种类型及使用5)     理解二进制输出文件6)     掌握字符串输出流的功能和应用7)     了解输入流的分类8)     掌握输入流对象的构造方法9)     学会使用提取运算符10)  理解输入流相关函数的使用方法11)  掌握字符串输入流功能和应用12)  理解并掌握输入/输出流两个重要的类 第12章异常处理1)     异常处理的基本思想2)     C++异常处理的实现3)     异常处理中的构造与析构4)     标准程序库异常处理通过本部分的学习,使学生:1) 了解异常处理的基本思想2) 掌握异常处理的语法和异常接口声明3) 了解异常处理中的构造与析构4) 了解标准程序库异常处理方法5) 学会标准程序库的异常类的使用课时建议:序号课 程 内 容学  时  数合计理论教学实践教学实训教学教学实习1绪论222C++简单程序设计4223函数6424类与对象151235数据的共享与保护6426数组、指针与字符串6427继承与派生6428多态性5419群体类和群体数据的组织4410泛型程序设计&C++标准模板库54111流类库与输入输出2212异常处理321总计644816 教学过程与方法目标:建议在进行该课程的教学过程中,充分利用classroom平台的在线判题和授课能力,在讲完每个章节之后,通过在C++语言习题库中,根据该章节的知识点选择客观题(选择、判断、填空)等,进行选题出题,进行上课期间的随堂作业,在3~5分钟内,学生需要完成作业并提交,老师通过平台反馈的数据,及时了解学生对该章节知识点的掌握情况,对大部分学生都答错了的习题所对应的知识点,需要重点再讲解。 另外,可以通过C++语言习题库,根据知识点选择适量的在线编程题,作为作业下发给学生进行课后编程练习,通过学生提交的代码以及完成功能的正确率,对相关知识点进行重点讲解,通过课后编程题练习,也可以有效的提升学生的动手编程能力,这样就达到了不仅仅能掌握理论知识,还能动手将理论和实际相结合,提升学生的动手能力。在教学到第5章左右,可以结合classroom平台,给学生布置一些相对复杂的C++语言单人工程型习题,培养学生项目开发的能力,以及团队合作精神。 考核要求:(1)考核包括,期末考核70%,平时30%(2)理论考核采用闭卷形式,时间100分钟(3)题型为填空、选择、程序设计(4)考试内容分配:基础60%,综合40%(5)试卷难度分配:基本内容60%,适中内容30%,难度内容10%(6)技能考核方式是上机操作,主要考核程序改错和编程,通过classroom平台完成作业的提交,在线编程等。 参考文献:《C++语言程序设计》(第4版)郑莉 清华大学出版社   
  • [课程内容] C语言实践教学精品课介绍
    C语言实践教学精品课课程链接地址课程概述:本课程适合作为高等学校计算机专业及相关专业C语言程序设计课程的教材,也可作为计算机等级考试参考书,还可供从事计算机软件开发人员参考使用。主要包含,C语言概述,数据类型,基本语句与结构化程序设计,数组,函数和模块化程序设计,指针,预处理命令,复杂数据类型,文件。附有习题,习题覆盖知识重点,题型丰富。期望通过本课程的学习,你不只是简单地能够掌握一种语言的语法,还能理解隐含在语法背后的思想,并初步具备灵活使用这些思想进行编写程序解决实际问题的能力。如果你掌握了这些,你会发现,迈向成功的最后一步不过是选择一种合适的编程工具而已。 材料数作业数习题数五星推荐搭配1361399《C语言习题库》含863道习题 作者介绍华为云教育,本课程由华为云教育内容开发团队开发完成,团队主要负责教育解决方案内容开发和建设。包括但不限于课件、视频、习题、代码、案例项目、实训课等。  课程定位:本课程根据人才培养目标,制定涵盖低级,中级,高级等多级分类的知识点、原理、定理等课程体系,满足人才培养需求,包括知识要求、能力要求、素质要求。本课程作为编程语言的基础课程及入门课程,特别适合于刚刚接触编程语言或需要进一步提升编程能力学生和开发者。学完这门课程后,同学们可以更快更容易的学习和了解其他更为高级的编程语言,如C++、JAVA、Python等,为学生今后从事其他方面的工作做好坚实的基础。 岗位及从业方向:岗位:嵌入式系统开发工程师,硬件底层开发工程师,驱动程序开发工程师,Linux应用程序开发、算法开发工程师等岗位。从业方向:软件工程后端、软件工程数据库、硬件底层及嵌入式、全栈开发、大数据、人工智能等算法开发。 前/后导课程:C语言程序设计作为计算机类各专业必修的计算机技术基础课程,是数据结构、 c++ 、Java、操作系统等课程的前导课程。是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。C语言程序设计的前导课为《计算机应用基础》《计算机应用基础》——>《C语言程序设计》——>《C++程序设计》、《Java程序设计》、《数据结构》 本课程的主要任务是:1.通过学习本课程,学生可以掌握基本的程序设计过程和技巧。2.具备熟练应用云上开发集成环境进行C语言的编写,具备本地安装编译环境,熟悉linux基本命令,会通过gcc、gdb等c语言编译工具对C程序进行编译与调试的能力。3.具备初步的高级语言程序设计能力。会通过C语言程序设计简单的应用程序,如计算器等。具备通过C语言程序进行项目开发的能力。4. 考核达标后,基本达到入职企业所需具备的软件开发职业素质。5.培养学生严肃,认真一丝不苟的工作作风。培养学生积极思考,通过算法编程题,锻炼思维能力,培养创新能力。 本课程知识教学目标:1.了解程序设计的基本知识。2.了解C程序的基本特点、初步知识和构成。3.掌握顺序结构、选择结构、循环结构的C程序的构成及编程技巧;。4.掌握函数定义、调用和编程技巧。5.掌握数组的定义和使用。6.掌握指针的定义和使用。7.掌握结构体和共用体的定义和变量的使用。8.了解并掌握变量的存储分类、作用域和生存期。9.了解编译预处理。10.了解位运算符及运算规律。11.了解并熟悉文件操作。 教学大纲:第1章C语言基础知识1)     C 语言的历史背景2)     C 语言的特点3)     C 语言源程序的结构4)     掌握算法的基本概念与特征5)     掌握结构化程序设计的基本概念通过本章节的学习,学生可以:1)     了解 C 语言的背景2)     掌握 C 语言程序的结构3)     理解 C 语言程序设计的风格 第2章C语言程序设计基础1)     C语言发展史2)     C语言应用3)     C语言与其他高级语句C++、JAVA之间的关系4)     C语言编写的基本步骤5)     C语言的标识符通过本章节的学习,学生可以:6)     了解 C 语言发展和应用7)     掌握 C 语言与其他语言间的关系8)     掌握编写C语言程序的基本步骤 第3章基本数据类型、运算符与表达式1)     常量与变量2)     整型数据3)     实型数据4)     字符型数据5)     变量赋初值6)     各类数据之间的混合运算7)     算述运算符与算术表达式8)     赋值运算符与赋值表达式9)     逗号运算符与逗号表达式通过本章节的学习,学生可以:1)     了解基本类型及其常量的表示法2)     掌握变量的定义及初始化方法3)     掌握运算符与表达式的概念4)     理解 C 语言的自动类型转换和强制类型转和赋值的概念。 第4章基本输入输出和顺序程序设计C 语句概述1)     赋值语句2)     字符数据的输入与输出3)     格式输入与输出4)     顺序结构程序设计举例通过本章节的学习,学生可以:1)     了解 C 语句的概念及种类2)     掌握 C 语言常用的输入 / 出方式3)     掌握顺序结构程序设计 第5章选择结构程序设计1)     关系运算符与关系表达式2)     逻辑运算符与逻辑表达式3)     if 语句4)     switch 语句通过本部分的学习,使学生:1)     熟练掌握 if … else 的三种语法2)     理解 switch 与 break 语句的作用 第6章循环结构程序设计1)     goto 语句构成循环2)     while 语句3)     do-while 语句4)     for 语句5)     循环的嵌套6)     break 与 continue 语句通过本部分的学习,使学生:1)     熟练掌握循环结构设计的三种语法2)     理解循环嵌套和跳出循环语句的控制3)     通过使用循环语句,可以实现从1+2+…+N的简单程序设计 第7章数组1)     一维数组的定义与引用及初始化;2)     一维数组程序设计及应用;3)     二维数组的定义与引用及初始化;4)     二维数组的简单程序设计;5)     字符数组的定义、引用及初始化;6)     字符串的存储及程序设计;通过本部分的学习,使学生:1)     了解一维数组、二维数组的基本概念2)     掌握数组类型变量的定义与引用3)     掌握数组元素的引用 第8章函数1)     函数的定义2)     函数的参数和函数的值3)     函数的调用4)     函数的嵌套调用5)     函数的递归调用6)     数组作为函数参数7)     变量作用域8)     变量存储类别通过本部分的学习,使学生:1)     掌握函数的定义与调用2)     掌握函数参数的传递方式3)     理解变量存储类型的概念及各种存储类型变量的生存期和有效范围4)     理解并分辨函数的嵌套调用与递归调用5)     了解带参数的 main 函数 第9章指针1)     指针与地址的概念2)     量的指针和指针变量的指针变量3)     数组的指针与指向数组的指针变量4)     字符串的指针与指向字符串的指针变量5)     指针与函数6)     指针数组7)     二级指针通过本部分的学习,使学生:1)     了解指针与地址的概念2)     掌握指针变量的定义、初始化及指针的运算3)     掌握指针与数组、指针数组、二级指针等知识4)     了解指针与函数的概念5)     掌握指针作为函数参数的应用 第10章预处理命令1)     宏定义2)     “文件包含”处理通过本部分的学习,使学生:1)     了解预处理的概念及特点2)     掌握有参宏与无参宏的定义及使用 第11章复杂数据类型(结构体、共用体、枚举等)3)     结构体类型的说明及结构体类型变量的定义4)     结构体变量的引用5)     结构体变量的初始化6)     结构体数组7)     指针与结构体数组8)     链表9)     共用体10)  typedef通过本部分的学习,使学生:1)     掌握结构体和共用体类型的说明、结构体和共用体变量的定义及初始化方法2)     掌握结构体与共用体变量成员的引用3)     领会存储动态分配和释放4)     理解链表的基本概念,掌握基本操作5)     了解枚举类型变量的定义6)     了解 typedef 的作用 第12章文件1)     文件类型指针2)     文件的打开与关闭3)     文件的读写通过本部分的学习,使学生:1)     掌握标准设备输入 / 输出函数的使用2)     掌握缓冲文件系统的使用 课时建议:序号课 程 内 容学  时  数合计理论教学实践教学实训教学教学实习1C语言概述222数据类型、运算符与表达式5413顺序结构3214选择结构5415循环结构10826数组10827函数10828预处理命令5419指针108210结构体、共用体76112文件541总计725814 教学过程与方法目标:建议在进行该课程的教学过程中,充分利用classroom平台的在线判题和授课能力,在讲完每个章节之后,通过在C语言习题库中,根据该章节的知识点选择客观题(选择、判断、填空)等,进行选题出题,进行上课期间的随堂作业,在3~5分钟内,学生需要完成作业并提交,老师通过平台反馈的数据,及时了解学生对该章节知识点的掌握情况,对大部分学生都答错了的习题所对应的知识点,需要重点再讲解。 另外,可以通过C语言习题库,根据知识点选择适量的在线编程题,作为作业下发给学生进行课后编程练习,通过学生提交的代码以及完成功能的正确率,对相关知识点进行重点讲解,通过课后编程题练习,也可以有效的提升学生的动手编程能力,这样就达到了不仅仅能掌握理论知识,还能动手将理论和实际相结合,提升学生的动手能力。在教学到第5章左右,可以结合classroom平台,给学生布置一些相对复杂的C语言单人工程型习题,培养学生项目开发的能力,以及团队合作精神。 考核要求:(1)考核包括,期末考核70%,平时30%(2)理论考核采用闭卷形式,时间100分钟(3)题型为填空、选择、程序设计(4)考试内容分配:基础60%,综合40%(5)试卷难度分配:基本内容60%,适中内容30%,难度内容10%(6)技能考核方式是上机操作,主要考核程序改错和编程,通过classroom平台完成作业的提交,在线编程等。 参考文献:《C程序设计》 谭浩强 清华大学出版社《C程序设计习题解答与上机指导》 谭浩强 清华大学出版社 
  • [基础介绍] IoT介绍
    IoT(Internetof Things)是物联网的简称,简单地说,就是物物互联的网络。其基础依然是互联网,但网络连接扩展到任意物体之间。物联网通过使物理上独立的物体实现网络连接功能,来进行信息交换和通信,以实现对物体的识别、监控、定位和控制等功能。IoT可广泛地应用于智能电表、精准农耕、工业自动化、智能建筑、POS机、环境监控和远程医疗等场景。以智能电表这类业务为例。这些UE的位置通常是固定不动的,因此不存在切换(handover)的需求。UE与基站之间的通信不会很频繁,而且每次传输的只是很小的数据量,这些数据传输对时延也不敏感。但与传统的LTE设备相比,单小区需要接入的UE数量可能高了几个数量级。如果使用传统的LTE技术,会给现有的网络带来很大的负担。与此同时,物联网设备经常安装在没有电源的地方,因此可能需要完全依靠电池来供电,并且换电池的成本非常高昂。在某些情况下,电池的寿命甚至决定了整个设备的寿命。因此,电池使用寿命的优化对物联网设备来说非常重要。另一方面,物联网设备的覆盖条件可能很差,例如位于地下室,因此需要显著地提高(室内)覆盖才能满足物联网的需求。物联网设备的需求量通常很大,因此需要将其成本控制在较低的范围内。NB-IoT的目标是将每个模块的价格控制在小于5美元的范围。物联网技术主要包括应用于局域网的物联网技术,包括WiFi、Zigbee或Bluetooth(蓝牙)等,以及应用于广域网的物联网技术,包括Sigfox、LoRa和蜂窝IoT等。物联网的快速发展,对无线通信技术提出了更高的要求,主要是为低速率、低功耗、低成本、广覆盖和海量物联网设备连接而设计的LPWAN(LowPower Wide Area Network)技术应运而生。LPWAN主要的技术标准包括非3GPP主导的LoRa和SigFox,以及3GPP主导的蜂窝IoT,包括eMTC和NB-IoT等。本系列文章主要关注广域网的蜂窝IoT技术NB-IoT的实现。后续我们还将重点比较LoRa和NB-IoT这两个最具发展前景的低功耗广域网技术。
  • [技术干货] 4G工业无线路由器的性能、特点及工作原理
    4G工业级无线路由器是指利用4G LTE网络达到数据远程无线传输功能的工业级户外高速无线上网终端.4G路由器采用高性能的工业级处理器,内置嵌入式实时操作系统与4G模块通信,采用串口、以太网LAN、以太网WAN、Wi-Fi作为本地通讯方式,可同时连接串口设备、以太网设备和WIFI设备,实现数据透明传输和路由功能.4G工业级无线路由器分为:移动4G路由器、联通4G路由器、电信4G路由器、全网通4G路由器,通过内置的4G模块决定兼容的网络制式,一般向下兼容3G、2G,在4G信号不稳定的地区会自动切换.工业级应用的4G路由器一般比市面上民用级4G无线路由器要求更稳定,更能适应在恶劣气候环境下的连续工作,同时成本也更高。目前广泛应用于物联网产业链中的M2M行业,如智慧生活、智能电网、智能交通、工业自动化、智能建筑、公共安全、环境监测、智慧农业等领域。
  • [交流分享] 【和你一起聊聊NB-IoT】快速简单了解NB-IoT是什么
    NB-IoT的出现背景从传输距离上区分,物联网通信技术可以分为两类,一类是短距离通信技术,代表技术有Zigbee,Wi-Fi,Buletooth,Z-wave等,典型的应用为智能家居;另一类是广域网通信技术,业界一般定义为LPWAN(低功耗广域网),典型的应用为智能抄表。LPWAN技术又可分为两类:一类是工作在非授权频段的技术,如Lora,Sigfox等,这类技术大多是非标、自定义实现;一类是工作在授权频段的技术,如GSM、CDMA、WCDMA等较为成熟的2G/3G蜂窝通信技术,以及目前逐渐部署应用、支持不同category终端类型的LTE及其演进技术,这类技术基本都在3GPP或3GPP2等国际标准组织进行了标准定义。NB-IoT既是2015年9月在3GPP标准组织中立项提出的一种新的窄带宽蜂窝通信LPWAN技术。NB-IoT属于LPWAN家族最开始出现的是LTE-M,后来进化成CIoT,NB-LTE跟NB-CIoT进一步融合形成NB-IoT,即NB-CIoT+NB-LTE=NB-IoTNB-IoT是由华为、高通和Nevl联合推出NB-LTE是由爱立信、诺基亚等厂家提出为解决什么应用需求而生为迎合未来IoT万物互联的发展趋势,具更低成本、低功耗、广覆盖、低速率特点的LPWAN技术将扮演重要角色。长期以来,3GPP制式运营商的物联网业务主要依靠成本低廉的GPRS模块,然而由于Lora、Sigfox等新技术的出现,GPRS模块在成本、功耗和覆盖方面的传统优势受到威胁,于是在2014年3月的GERAN #62会议上3GPP提出成立新的研究项目“FS_IoT_LC”,研究演进GERAN系统和新接入系统的可行性,以支持更低复杂度、更低成本、更低功耗、更强覆盖等增强特性。NB-IoT正是源于面对非3GPP技术挑战,开展GSM技术的进一步演进和全新接入的研究。当前,全球电信运营企业普遍面临市场饱和、增长乏力等问题,移动M2M巨大的市场潜力及低成本优势,吸引运营商积极投入。无需移动性,小数据量,对时延不敏感。NB-IoT的优势• 强链接:在同一基站的情况下,NB-IoT可以比现有无线技术提供50-100倍的接入数。一个扇区能够支持10万个连接,支持低延时敏感度、超低的设备成本、低设备功耗和优化的网络架构。举例来说,受限于带宽,运营商给家庭中每个路由器仅开放8-16个接入口,而一个家庭中往往有多部手机、笔记本、平板电脑,未来要想实现全屋智能、上百种传感设备需要联网就成了一个棘手的难题。而NB-IoT足以轻松满足未来智慧家庭中大量设备联网需求。• 高覆盖:NB-IoT室内覆盖能力强,比LTE提升20dB增益,相当于提升了100倍覆盖区域能力。不仅可以满足农村这样的广覆盖需求,对于厂区、地下车库、井盖这类对深度覆盖有要求的应用同样适用。以井盖监测为例,过去GPRS的方式需要伸出一根天线,车辆来往极易损坏,而NB-IoT只要部署得当,就可以很好的解决这一难题。• 低功耗:低功耗特性是物联网应用一项重要指标,特别对于一些不能经常更换电池的设备和场合,如安置于高山荒野偏远地区中的各类传感监测设备,它们不可能像智能手机一天一充电,长达几年的电池使用寿命是最本质的需求。NB-IoT聚焦小数据量、小速率应用,因此NB-IoT设备功耗可以做到非常小,设备续航时间可以从过去的几个月大幅提升到几年。• 低成本:与LoRa相比,NB-IoT无需重新建网,射频和天线基本上都是复用的。以中国移动为例,900MHZ里面有一个比较宽的频带,只需要清出来一部分2G的频段,就可以直接进行LTE和NB-IoT的同时部署。低速率、低功耗、低带宽同样给NB-IoT芯片以及模块带来低成本优势。模块预期价格不超过5美元。网络组成 企业微信截图_15487238873731.png (13.46 KB, 下载次数: 1)下载附件2019-1-29 09:08 上传全球大多数运营商使用900MHz频段来部署NB-IoT,有些运营商部署在800MHz频段。中国联通的NB-IoT部署在900MHz、1800MHz频段。中国移动的NB-IoT部署在900MHz频段。中国电信的NB-IoT部署在800MHz频段,频率只有5MHz。常见部署方式      NB-IoT有三种运营模式,一种是独立的运营商的网络外面重做;第二种是在LTE的保护带上,实际上它主要的原理是上行是采用OFDMA,前后保留10khz的保护带,它有两种子载波间隔,一种是3.75khz的,另一种是间隔15khz的;第三种是带内模式:可利用LTE载波中间的任何资源块。
  • [专题汇总] 【华为物联网开发从入门到精通连载1】第二课 在线预约华为OceanConnect远程实验室【转】
    上节课,我们一起学习了“正确认识物联网开发及物联网云平台”,今天也跟大家复习下上节课的知识点:物联网开发除了硬件开发,还有网络开发和平台开发。OceanConnect作为面向运营商和企业/行业领域的统一开放云平台,向上集成各种行业应用,向下接入各种传感器、终端和网关,更多知识点,点击这里。 了解了OceanConnect是什么,大家是否想自己操作下这个平台,感受下OceanConnect承上启下的魔力?今天贴心的小编就教大家如何在线预约华为远程实验室OceanConnect资源。在学习如何预约华为远程实验室OceanConnect资源前,我们先了解下,华为远程实验室是什么。 华为远程实验室基于华为产品的开放能力,为开发者提供云化的在线自助预约、开发调测服务,降低开发者门槛,提升开发效率,致力于解决方案的孵化和应用创新。目前已上线45个实验室环境,包括:1个解决方案场景环境:融合指挥解决方案。12个生态领域环境:云计算、大数据、 物联网、视频、企业云通信、 SDN、企业移动安全、 CloudCaaS、eLTE、IES、运营商运营管理、移动开放工场。了解了这么多,下面请单击下方图片,一起学习下如何在线自助预约华为远程实验室OceanConnect环境吧。学习完第二课的童鞋,恭喜你,你离物联网大咖又近了一步。 第二课结束后,大家已经预约了OceanConnect的实验室环境,下节课,我们将会教大家通过预约的OceanConnect实验室环境,制作并导入设备Profile文件。【已经上线】第三课 制作并导入设备Profile文件。