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

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

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

SpringSecurity中的跨域问题处理方案

《SpringSecurity中的跨域问题处理方案》本文介绍了跨域资源共享(CORS)技术在JavaEE开发中的应用,详细讲解了CORS的工作原理,包括简单请求和非简单请求的处理方式,本文结合实例代码... 目录1.什么是CORS2.简单请求3.非简单请求4.Spring跨域解决方案4.1.@CrossOr

requests处理token鉴权接口和jsonpath使用方式

《requests处理token鉴权接口和jsonpath使用方式》文章介绍了如何使用requests库进行token鉴权接口的处理,包括登录提取token并保存,还详述了如何使用jsonpath表达... 目录requests处理token鉴权接口和jsonpath使用json数据提取工具总结reques

C# 空值处理运算符??、?. 及其它常用符号

《C#空值处理运算符??、?.及其它常用符号》本文主要介绍了C#空值处理运算符??、?.及其它常用符号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、核心运算符:直接解决空值问题1.??空合并运算符2.?.空条件运算符二、辅助运算符:扩展空值处理

浅析Python中如何处理Socket超时

《浅析Python中如何处理Socket超时》在网络编程中,Socket是实现网络通信的基础,本文将深入探讨Python中如何处理Socket超时,并提供完整的代码示例和最佳实践,希望对大家有所帮助... 目录开篇引言核心要点逐一深入讲解每个要点1. 设置Socket超时2. 处理超时异常3. 使用sele

SpringMVC配置、映射与参数处理​入门案例详解

《SpringMVC配置、映射与参数处理​入门案例详解》文章介绍了SpringMVC框架的基本概念和使用方法,包括如何配置和编写Controller、设置请求映射规则、使用RestFul风格、获取请求... 目录1.SpringMVC概述2.入门案例①导入相关依赖②配置web.XML③配置SpringMVC

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺