物联网的嵌入式编程

article/2025/10/30 14:20:34

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支持和升级

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

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


原文链接

http://chatgpt.dhexx.cn/article/lucMxvUb.shtml

相关文章

嵌入式编程 交通灯显示

要求: 实验平台:MDK5 Proteus8 单片机:AT89C51 1、当A、B道均有车时轮流放行。A道放行10秒,B道放行10秒,转换时黄灯亮0.5秒。时间显示采用数码管显示。 2、一道有车时,另一道无车时,立即让有车的…

嵌入式编程规范及注意事项

嵌入式系统已经在各行各业中得到了广泛的应用,随着人们的生活向信息化,智能化的发展,嵌入式技术将彻底融入到我们的生活,在我们的生活当中扮演越来越重要的角色。对于嵌入式系统来讲,嵌入式软件相当于嵌入式系统的灵魂…

嵌入式编程学习路线图-精心总结

大家好!我是木荣君,今天给大家分享一下嵌入式软件开发学习路线图。这是我按照自己最开始学习嵌入式的时候的学习路线,并且结合自己在多年开发工作中所涉及的知识精心总结的嵌入式软件开发思维导图。这是木荣君精心总结的,花费了不…

嵌入式软件编程模式

文章目录 嵌入式软件编程模式基于周期调用的运行模式基于中断的前后台运行模式基于事件队列的运行模式带时间信息的事件队列运行模式周期任务运行框架 整理自:《AI嵌入式系统:算法优化与实现》 本章介绍嵌入式软件编程模式和通用软件优化方案。嵌入式软件…

其实嵌入式编程还是很难很复杂的

关注、星标公众号,直达精彩内容 来源:coolbacon 能从PC机器编程去看嵌入式问题,那是第一步;学会用嵌入式编程思想,那是第二步;用PC的思想和嵌入式的思想结合在一起,应用于实际的项目&#xff0c…

嵌入式开发常用技巧及编程知识

嵌入式开发常用技巧及C/C知识 引言查询程序占据的内存大static 静态变量介绍static在函数中的用法 ‘##’连接符断言函数宏定义与条件变量#if...#else...#endif选择是否使用串口调试 memcpy函数void 指针指针大小 字符串小写转大写字符串大写转小写字符串命令处理将某几位清0&a…

嵌入式程序编写方法与规范

嵌入式程序编写方法与规范 前言 本文主要讲解嵌入式单片机程序的编写方法以及编写规范,以MSP430单片机作为例子,无论是51,AVR还是STM32单片机都同样适用,本文对C语言各种语法各种关键字进行详细解释,对操作物理地址的方法进行剖析…

嵌入式系统C语言编程基础

目录 关于本环节前言专栏为什么进行本环节 小测验解答 C语言复习1.循环与分支2.作用域与存储类3.内存与指针指针 4.位操作(1)位操作的用途(2)位运算符(3)用法:掩码(4)用法:打开位、关闭位、转置位(5)用法:查看某一位的值(6)用法:移…

密码学学习笔记三:同余定理

同余定理 我们在《密码学学习笔记二:RSA加密法》里面提到过同余,此处把同余作为补充知识,单独写一篇文章讲解一下。 同余定理是数论中的重要概念。给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除&a…

简单理解-同余定理

本文章仅用于笔记。部分知识点来源于网络,授权请联系作者(947043511qq.com)。 直接抛出自己的理解: 2个不同的整数a、b,被一个整数m相除时,得到相同的余数,那么我就可以称a、b同余。 因为a、b同…

以太坊EVM源码注释之执行流程

以太坊EVM源码分析之执行流程 业务流程概述 EVM是用来执行智能合约的。输入一笔交易,内部会将之转换成一个Message对象,传入 EVM 执行。在合约中,msg 全局变量记录了附带当前合约的交易的信息,可能是为了一致,这里也…

【密码学探秘】EVM链和并行执行交易

概述 在web3.0世界中,交易的处理性能一直是公链面临的一大技术挑战,如何在不降低安全性和去中心化程度的前提下显著的提升区块链交易的TPS无疑成为众多公链技术专家追逐的目标。以Solana、Aptos为代表的新一代公链的出现更是吹响了通过并行执行交易来攻…

MATLAB计算EVM函数

function [rmsEVM,maxEVM,pctEVM,numSym] EVMcalculate(RxSig,TxSig)%RxSig为接收信号解调后复基带信号;TxSig是发射信号的复基带信号。 %计算接收信号EVM和画星座图 %RxSig,TxSig长度要一样; evm comm.EVM(‘MaximumEVMOutputPort’,true,… ‘XPerce…

通信算法之149:EVM测量

1.星座图 h scatterplot(sqrt(sps)*txSig(sps*span1:end-sps*span),sps,offset); hold on scatterplot(rxSigFilt(span1:end-span),n,offset,bx,h) scatterplot(dataMod,n,offset,r,h) legend(Transmit Signal,Received Signal,Ideal,location,best) 2. 眼图 Eye Diagram D…

以太坊虚拟机 EVM(2)Solidity运行原理

作者:储雨知|FISCO BCOS 核心开发者 引 言 作为一门面向智能合约的语言,Solidity与其他经典语言既有差异也有相似之处。 一方面,服务于区块链的属性使其与其他语言存在差异。例如,合约的部署与调用均要经过区块链网…

IMA/EVM完整性检测代码分析

IMA/EVM完整性检测 IMA(Integrity Measurement Architecture)是一个内核安全子系统,用于检测文件或数据的完整性和安全性。IMA的hook机制指的是内核接口钩子(kernel interface hooks),用于向IMA注册和实现…

为何Cable Loss没补好 EVM会变差

当EVM不好 或是灵敏度不好时 先别急着找硬件问题 先检查Cable Loss 先说结论 先谈谈标题 为何Cable Loss没补好 EVM会变差 多数射频功放输出 会接一个耦合器 将输出功率 耦合到收发器 用意是校正时 侦测输出功率的正确性与否 假设天线头为20dBm Cable loss为5dB 假设天线头…

TI毫米波级联雷达评估板 MMWCAS-DSP-EVM 和MMWCAS-RF-EVM

1. 前言 本文主要是TI的MMWCAS-DSP-EVM 和MMWCAS-RF-EVM 两块评估板的一些使用心得和毫米波雷达的学习总结。 2. 相关原理 毫米波(mmWave)是一类使用短波长电磁波的特殊雷达技术。通过捕捉反射的信号,雷达系统可以确定物体的距离、速度和角度。毫米波雷达可发射波…

DCA1000EVM使用指南

DCA1000EVM使用指南 一、开发环境 1、硬件 AWR1243/xWR1443/xWR1642BOOST(本文以IWR1642BOOST为例)DCA1000EVM5V/2.5A(电流要求不小于2.5A)电源适配器1个或2个 micro USB线2条RJ45网线1根60引脚Samtec连接线(DCA100…

EVM误差矢量幅度

EVM误差矢量幅度是衡量调制精度的一个主要指标,镜像频率的抑制度对EVM的影响取决于镜像频率的抑制度,一般镜像频率抑制度达到31dBc时,对EVM的影响约为5%。镜像频率对信号的影响是因为镜像频率的信号带宽与所需信号的带宽一样,而无…