模拟量输入在使用过程中也十分常见,它在很多场合都应用到,但其用法又各有不同,下面列举一些常见的类型进行说明。
  第一种为采用模拟口读取离散量的状态,如某开关可能有高、低、悬空三种状态均需能准确判断,这种情况下可以采用一个模拟口来采集。进一步的看,可能某些开关并不仅仅只有三种状态,四、五、六甚至更多均有可能,如一些常见的方向盘上的音响开关、巡航开关等,可能有更多状态,通常的做法便是用模拟口来采集。
  第二种为采用模拟口来读取连续量的状态,常用于一些传感器上,如悬架高度传感器、加速位置或油门踏板位置传感器、光线亮度调节开关、光照强度传感器等等。
  下图分别为方向盘上的开关和高度传感器(红框里圈出来的是传感器下摆臂、其感应部分在红框左上角处)。

  采样精度取决于AD转换位数,对于有特别的精度要求的状况,需进行强调,不过一般车用MCU自带的AD口均能满足车上使用的要求,如12位的电压采样可达到2048分之一伏精度,一般情况下这是足够用的。
  谈到AD采样必须提到它的参考电和参考地,其实理论上而言低端输入和高端输入也是有参考电和参考地的,只不过低端输入的参考地直接接车身地了,高端输入的参考电源来自于输入端。对于参考电源,模拟量输入很多时候均应由本模块提供,这块主要由硬件工程师进行worst case分析及在工作电压范围(至少9~16V)内是否能实现准确采样的分析及结合地漂情况来确认是要由本模块提供参考电源及将地返回。如果说不会计算又实在没有比较专业的硬件工程师来帮忙,则建议按经验来做,要是经验也没有就参考别人的做法去做(比如参考其他大厂家的电路)。对于接地,如果输入量是一些实时变化的传感器信号,是需要返回至采样模块的;一些要求高的系统如电源管理相关的,最好也是返回。但有时也要看具体情况,因为若一个AD采样口只用于某个单档开关的状态判定,是很可能不需要返回地的,电源也可接在模块内部、直接采用上拉形式搞定。即实际上外部有可能只接一根线便可。所以在设计时,参考电源的线是接到输入端去还是在模块内部就可以、地线是就近接车身还是接回本模块,可以详细考虑清楚,因为这些均和成本有关(不接回来可以省线束和端口、都是要成本的)。对于这块的系统经验,如果没有很强的分析能力,最好的办法就是对对标车型的电路进行统计分析(因为对标车型的设计一般是经过了实践验证的、可信度高),在保证最设计最简的同时又达到成本最优。
  另一项需要说明的是由于车上的电压变化比较大,一般我们说的9~16V的工作电压范围只是一个概括性的说明,而很多功能或模块的工作电压需根据实际需求定义更细的要求。而通常我们所说的工作电压范围均是指电源电压,而这个“电源电压”并不一定就是模拟采样的参考电源电压,对于不同的使用场合,模拟采样的参考电源可以直接采用整车的12V电源、也可采用进行完电压转换的“5V”(实用时根本不会是精确的5V)电源,后者用于工作电压范围要求更高的场合;实际使用时对于输入量的大小判定采用百分比判定(输入电压比参考电压)比采用绝对值来判定来得更为可靠,但前者要多占用一个MCU口以用于参考电压的采样,而同时该口也兼具了参考电源的诊断功能。
  与前面的开关类似,对于开关式的AD输入也要讲究湿电流、休眠唤醒之类的。这里有人会提及AD信号的唤醒如何处理,现行的做法:对于该AD周期采样,休眠前将采样值存起来(存于哪种内存看具体要求和策略),休眠后周期性醒来检测,如果检测到的新值与旧值之差大于某值(预先定义或标定),则唤醒、进行初始化操作。

  以下是模拟量输入的示意和说明。

A.01.03-模块的输入—模拟量输入的更多相关文章

  1. A.01.02—模块的输入—高端输入

    高端输入即一个高电平信号输入到模块,模块采样时最典型的是采用下拉电阻采样,当然,还有限流电阻和分压电阻,具体可以参见实际电路. 高端输入在汽车上用得不多,这种类型的输入既可以是开关提供的也可以是模块提 ...

  2. Tensorflow学习笔记2019.01.03

    tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...

  3. Python模块01/自定义模块/time模块/datetime模块/random模块

    Python模块01/自定义模块/time模块/datetime模块/random模块 内容大纲 1.自定义模块 2.time模块 3.datetime模块 4.random模块 1.自定义模块 1. ...

  4. A.01.01—模块的输入—低端输入

    汽车电子模块的输入一般包含数字量低端输入.数字量高端输入.模拟量输入.脉宽调制输入.总线信号输入.脉冲信号输入,对于无线信号输入和视频信号音频信号我们不做讨论. 数字量低端输入是应用最为广泛的一种输入 ...

  5. 19 01 03 css 中 reset 模块 设置

    主要就是让到时候 打入代码时候  把一些bug去除   或者 让一些固有的格式取消 /* 将标签默认的间距设为0 */ body,p,h1,h2,h3,h4,h5,h6,ul,dl,dt,form,i ...

  6. 数据分析01 /numpy模块

    数据分析01 /数据分析之numpy模块 目录 数据分析01 /数据分析之numpy模块 1. numpy简介 2. numpy的创建 3. numpy的方法 4. numpy的常用属性 5. num ...

  7. 01. Numpy模块

    1.科学计算工具-Numpy基础数据结构 1.1.数组ndarray的属性 NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成:① 实际的数据② 描述这些数据的元数据 注意数组格式, ...

  8. 01: socket模块

    网络编程其他篇 目录: 1.1 socket理论部分 1.2 socket处理单个连接 和 同时接受多个连接 1.3 socket实现远程执行命令,下载文件 1.4 通过socket实现简单的ssh ...

  9. day 21 01 序列化模块和模块的导入的复习以及包的初识

    day 21 01 序列化和模块的导入的复习以及包的初识 1.序列化模块 什么是序列化模块:数据类型转化成字符串的过程就是序列卷 为什么要使用序列化模块:为了方便存储和网络传输 三种序列化模块: (1 ...

随机推荐

  1. [转帖]Linux 的静态库与动态库

    Linux下的静态库与动态库 2017年02月18日 09:17:13 LLZK_ 阅读数:10257 标签: linux动态库静态库区别使用 更多 个人分类: Linux学习笔记 所属专栏: Lin ...

  2. hihoCoder1033 交错和 数位DP

    题目:交错和 链接:http://hihocoder.com/problemset/problem/1033# 题意:对于一个十进制整数x,令a0.a1.a2.....an是x从高位到低位的数位,定义 ...

  3. 设计模式之原型模式(c++)

    问题描述 看到这个模式,很容易想到小时候看的<西游记>,齐天大圣孙悟空发飙的时候可以通过自己头上的 3 根毛立马复制出来成千上万的孙悟空, 对付小妖怪很管用(数量最重要). Prototy ...

  4. python爬虫之git的安装

      一.初始 1.发展历史 *最开始没有对代码的管理,导致很多东西混乱和丢失. *后来大家想了一个办法,用最简单最笨的方法,各种复制文件夹. *然后就出现了版本控制的工具. 1.单机版:RCS(198 ...

  5. Python深入类和对象

    一. 鸭子类型和多态 1.什么是鸭子类型: 在程序设计中,鸭子类型(英语:Duck typing)是动态类型和某些静态语言的一种对象推断风格."鸭子类型"像多态一样工作,但是没有继 ...

  6. zabbix模板

    https://github.com/xm-y/zabbix-community-repos  https://monitoringartist.github.io/zabbix-searcher/ 

  7. python设计模式第五天【单例模式】

    1. 定义 一个类只有一个实例,提供访问该实例的全局方法 2.应用场景 (1)多线程之间共享对象资源 (2)整个程序空间中的全局变量,共享资源 (3)大规模程序的节省创建对象的时间 3.代码实现(使用 ...

  8. Linux 下 解压zip文件出现乱码

    网上下载了一个文件,鼠标右键提取出来发现中文文件名全部乱码: 打开命令行  unzip -h  可以看到 -O 参数  制定编码解压: 比如: unzip -O CP936 xxx.zip

  9. 排列组合n选m算法

    找10组合算法,非递归 http://blog.csdn.net/sdhongjun/article/details/51475302

  10. Upload Files In ASP.NET Core 1.0 (Form POST And JQuery Ajax)

    Uploading files is a common requirement in web applications. In ASP.NET Core 1.0 uploading files and ...