物联网的嵌入式编程

简介: 嵌入式编程是物联网设备工作方式的重要组成部分。您可能需要学习C/C++并获得一些实际的电子经验,以掌握生产中的这些关键系统。

5.9.19-embedded-programming-1068x656_副本.jpg

嵌入式编程在使设备满足人们的需求方面具有悠久的历史。但是,它在很大程度上仍然被应用程序编程所掩盖。当应用程序程序员采用相对高级的面向对象的语言(如C ++或Java)或图形化应用程序开发环境(如MATLAB)时,嵌入式程序员依然在使用C语言编程。它们总是被应用程序程序员所淘汰。如今,即使是业余爱好者也可以使用简单的语言来开发应用程序并与世界分享,而嵌入式程序员则需要对硬件和固件有深刻的了解,以及如何编写可以在资源经常受限的环境中执行的程序。随着物联网(IoT)的出现,平衡最终可以改变。现在,许多新的恒温器,烤面包机,手表和灯泡都配备了处理器和连接功能,市场需要更多的嵌入式程序员来对这些设备进行编程,并需要更简单的工具来使这些编程器能够在不陷入低级硬件的情况下编写代码。

什么是嵌入式编程

Techopedia对嵌入式编程的定义是“一种特定的编程类型,它支持创建面向消费者或面向企业的设备,这些设备不象全尺寸笔记本电脑和移动设备那样在传统操作系统上运行。”嵌入式编程的理念是驱动当今IT市场中数字家电和设备发展的一部分。

简单地说,嵌入式编程是为小型计算机设计和编写程序,这些计算机嵌入传统PC、笔记本电脑或智能手机以外的设备中。它使微控制器能够唤醒以前的哑设备,如恒温器、照明系统、停车设备等。

嵌入式编程和物联网

从工程的角度看,物联网描述了一个由微处理器控制的嵌入式设备的网络,该网络直接或间接连接到Web。因此,物联网的三个支柱是:


  • 嵌入式编程
  • 网络技术
  • 信息技术

物联网很快将无处不在。因此,嵌入式设备很快也将无处不在。

简要介绍一下物联网改变行业的一些方式:

1)工业:工业机械和控制,温度监测和异常检测。

2)医疗保健:血压监测器,心跳监测器,健身追踪器,嵌入式药物输送。

3)航空航天和国防:飞行控制系统,驱动,空气和热管理,发动机功率监测和控制。

4)智能家居:家庭安全系统,摄像头,电视和厨房电器。

深入嵌入式系统

有人说,世界上每一个复杂的系统都可以简化为两个概念领域:软件和硬件。嵌入式系统或多或少地代表了这些领域的交叉点:硬件和软件。

探索嵌入式硬件

典型的嵌入式开发板分为五个模块:处理器,内存,输入设备,输出设备和总线控制器。

嵌入式系统的硬件组件

1)处理器

嵌入式处理器可以分为两类:普通微处理器使用单独的集成电路作为存储器和外设;微控制器使用片上外设,降低了功耗、体积和成本。其中一些例子包括:


  • 微控制器CPU):一种智能设备,用于计算用户分配的任务,并通过精确计算构建小型应用程序。
  • 片上系统SoC):在单个集成电路上包括CPU,外围设备(计时器,计数器等),通信接口(I²C,SPI,UART)和电源管理电路。
  • ASIC处理器专用集成电路):由公司或制造商设计用于特定应用。
  • DSP处理器:消除噪声并提高音频和视频应用程序的信号质量。

2)内存

内存用于存储设备上正在使用的数据。嵌入式系统中使用的存储器类型的一些示例包括非易失性RAM(随机存取存储器),易失性RAM,DRAM(动态随机存取存储器)等。

3)输入设备

输入设备(例如传感器,开关,光电二极管,光耦合器等)从外界捕获数据,以进行处理或从设备中导出。

4)输出设备

输出设备,包括LCD(液晶显示器)或LED(发光二极管)显示器、七段式显示器、蜂鸣器和继电器,响应来自微控制器外部的输入事件。

5)总线控制器

总线控制器是一种通信设备,可在嵌入式系统内部的组件之间传输数据。使用最广泛的总线控制器是串行总线(I2C,SPI,SMBus等),RS232,RS485和通用串行总线(USB)。

探索嵌入式软件

嵌入式软件(有时称为固件)是为设备驱动程序、操作系统和应用程序以及错误处理和调试编写的。

嵌入式系统的软件组件

1)设备驱动

设备驱动程序是为特定硬件编写的一段嵌入式代码。

2)操作系统OS)或MicroOS

嵌入式系统有一系列的操作系统,包括实时操作系统(RTOS)、移动嵌入式、单机和网络嵌入式系统。

现在,大多数嵌入式软件都是用两种语言编写的:C和C++。就语法而言,C和C++之间没有太大区别。但是,C++具有一些附加功能,例如增强的安全性和与实际应用程序的紧密性,而C被认为更可靠,并且通过与硬件直接交互具有更好的性能。

创建嵌入式产品时的主要注意事项

开始编写直接影响物理对象的软件的最佳方法是探索嵌入式平台,例如Arduino,Raspberry Pi或Particle。

要开发可行的产品,您应该采取以下步骤:

步骤1. 学习C或C++

这是许多人停止学习的地方,因为这些语言可能很难学习。但是,如果要编写嵌入式软件,则必须学习C/C++(可能最终是Rust)。

步骤2. 学习一些基本的电子产品

至少要了解电压,电流,功率,电阻和欧姆定律。

步骤3. 获取基本设备

嵌入式程序员与物理世界进行交互,因此,诸如烙铁,数字万用表(DMM)和硬件调试器/ JTAG适配器(例如ST-Link或OLMEX适配器)或逻辑分析仪之类的工具将有所帮助。

步骤4. 选择一个微控制器和工具链

要使程序运行,您需要一个微控制器才能真正运行它,一个编译器会编译该微控制器的代码,并使用其他工具将程序加载到您的硬件上。微控制器与工具链结合的一个例子是arm-gcc和openOCD工具链支持的STM32微控制器。

步骤5. 了解数据表Datasheets

在实际坐下来编写代码的第一行之前,您需要了解(最终用户)规范。

步骤6. 检查组件

分析并挑选制造产品所需的组件(软件和硬件)。

步骤7. 设计产品

设计始终是任何开发周期中最关键的阶段。嵌入式编程的特殊性是您必须分别开发硬件和软件部分,然后再将它们集成。

步骤8. 开发原型

原型是一个示例版本,旨在测试使用选定的硬件和软件工具根据规范开发的概念。

步骤9测试应用程序

有了原型后,就可以运行测试用例来挖掘应用程序的潜力。

步骤10部署应用程序

测试完应用程序之后,将在真实环境中检查结果,以实现概念验证(一种用于验证想法的技术)。

步骤11支持和升级

如果需要,您应该准备提供支持并使用新功能升级应用程序。

现在您已准备好开始改变世界!


原文链接
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
传感器 机器学习/深度学习 人工智能
物联网
第三节物联网 1.物联网的概念 物联网是新一代信息技术的重要组成部分,英文名称是"The Internet of Things”。顾名思义,物联网就是物物相连的互联网”,其核心和基础仍然是互联网,是在互联网基础上延伸和扩展的网络。物联网基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通,具有智能、先进、互联三个重要特征。物联网是通过智能感知、识别技术与普适计算、泛在网络的融合应用,被称为继计算机、互联网之后世界信息产业发展的第三次浪潮 2.物联网的特征 (1) 全面感知: 物联网上部署了海量的多种类型传感器,每一个传感器都是一个信息源,不同类别的传感器所捕获
|
传感器 监控 物联网
|
数据可视化 安全 物联网
浅谈“物联网”
物联网时代 我们的生活都有哪些改变?
365 0
|
物联网 Linux 开发工具
W800带你玩转生活物联网
本次体验产品是一款基于IoT Wi-Fi/蓝牙 SoC 芯片W800的调试板卡,兼容Arduino接口。支持作为Wi-Fi/蓝牙模块与其他MCU主板对接调试,也支持作为主控设备进行开发调试。
W800带你玩转生活物联网
|
传感器 监控 安全
什么是CBRS及其对物联网有何帮助?
为企业客户解决问题的应用程序推动物联网继续发展。在企业环境中,物联网解决方案的最大障碍之一是可靠和低成本的无线连接。之前Wi-Fi、蓝牙、LoRa、Zigbee等都曾尝试解决这个问题,而CBRS (Citizens Broadband Radio Service)则是为企业物联网提供了一个可行的替代方案。
606 0
什么是CBRS及其对物联网有何帮助?
|
物联网 5G 测试技术
5G准备好用于物联网了吗?
5G终于来了。但是,对于现在正在计划IoT项目的任何人来说,5G的好处是什么?它真的是可行的选择吗?
372 0
5G准备好用于物联网了吗?
|
物联网 5G vr&ar
|
人工智能 物联网 区块链
|
边缘计算 安全 物联网安全