嵌入式软件的模拟量数字化处理

2023-12-14 13:44

本文主要是介绍嵌入式软件的模拟量数字化处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 引言

在嵌入式系统中,模拟量通过采样调理电路,转换为电压信号,送入MCU的AD采样口,由MCU的A/D转换单元,实现模数转换,MCU通过PWM(或其他的DA方式)实现了数模转换。此外MCU对外存在对外的通信接口,使得MCU内的数据实现了可视化。

2.模拟量在嵌入式系统的功能

在嵌入式系统中,数字化的模拟量,在MCU内的处理主要包含了如下环节:A/D采样单元、数字控制单元、PWM调制单元,计算单元、检测及保护单元、通信单元等组成。

3.常见的模拟量数字化处理方式

在实际操作中,常见有如下三种处理方式:

(1)AD结果直接应用的方式:该方式将AD结果读取后,直接作为模拟量的数字化结果应用于图 2所示的各个功能模块。各个功能模块内的比较、计算的数值经过线下计算后应用于嵌入式软件内。

(2)AD结果标幺后应用的方式;该方式根据系统的额定设置值,将当前值与额定值得比值作为当前该模拟量的数值,再应用于图 2所示的各个功能模块。各个模块内的比较、计算的数值经过线下(或线上)的计算获得相应的标幺值,应用于嵌入式系统中。

(3)AD结果“归一”后应用的方式;该方式的“归一”指的是“归一”到国际单位。即将模拟量采样的数值经过一定的数值变换,转换为与国际单位一样的数值,再应用于图 2所示的各个功能模块。各个模块内的比较、计算的数值直接应用于嵌入式系统中。

4.“归一”的AD采样方式

(1)“归一”的AD处理方式

模拟信号的A/D采样如图3所示(以TIDSP为例),模拟信号经过相应的采样调理电路,输入AD采样口,DSP内的AD采样单元读取采样结果后置于寄存器内,嵌入式软件读取相应结果,进行如下的软件处理:

(1)扣除叠加的1.5V偏置(如果硬件电路添加了偏置电路):采取A:-2048*16;B:^0x8000

(2)零偏校准;

(3)“归一”化A/D处理:*Ksoft,获得与国际单位相同的模拟量

    1. (2)“归一化处理的优缺点

优点:

  • 经过AD处理完成的模拟量,用于数字控制、计算、检测及保护、PWM调制、通信等单元的数值只有一种数据格式,软件格式清楚
  • 软件清晰,有利于简化程序,提高程序的可继承性、可移植性;
  • 数据结构清晰,减少编程人员犯错的机会,较少Bug,利于软件调试(尤其是控制部分的调试)

缺点:

  • 需要充分考虑数值范围、数据溢出的情况:过度的提高数值范围,使得精度大大缩减,影响了数值的精度;
  • 需要充分考虑数据精度问题:过度考虑数值精度,将影响数值的范围。同时,无意义的提高数值精度也是无意义的。

这篇关于嵌入式软件的模拟量数字化处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/492755

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Java利用@SneakyThrows注解提升异常处理效率详解

《Java利用@SneakyThrows注解提升异常处理效率详解》这篇文章将深度剖析@SneakyThrows的原理,用法,适用场景以及隐藏的陷阱,看看它如何让Java异常处理效率飙升50%,感兴趣的... 目录前言一、检查型异常的“诅咒”:为什么Java开发者讨厌它1.1 检查型异常的痛点1.2 为什么说