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