嵌入式工程师应当具备软硬件系统+业务逻辑的设计能力,我想就从“高精度测量”这一个点来简单讨论,在此仅做总体思路的阐述,权作记录。
嵌入式工程师的成长轨迹不应当是包罗万象,追逐时新,而应当是更加专业更加专注,不断补足短板,最终目的是做出优秀的产品。九层之台起于垒土,做每一件事都有一个学习曲线或者成长曲线。
第一阶段:
假如你要做一个温度表,或许再简单不过,我可以使用DS18B20,LM35,LM73…………现成的器件,加个显示就行,最后成品是一个台式的温湿度表。
目的:温湿度表
硬件:LM35集成IC、湿度IC、光照强度IC等集成块,MCU,电源,显示屏(定制LCD)
软件:相关串行通信通信协议,单片机编程,适当软件滤波,读取显示到LCD
第二阶段:
再进一步,我需要探头测温,可选PT100,使用恒流源方案,电压放大后片内ADC采样,最后实现了一个带温度探头的温度计;考虑到探头封装大小,测温范围、温度反馈实时性等问题,有时测温需要热电偶探头,电路上需要电压放大后ADC采集,一般软件冷端补偿,最后实现了一个市面上最常见的温度表。
目的:测温表
硬件:PT100探头、K型热电偶探头,恒流源电路,运放电路,ST32片内12位ADC,可调电阻校准,LCD显示
软件:相比于原来,增加ADC编程,软件滤波
第三阶段:
考虑到开发进度、设计难度选用集成芯片可能会获得更好的效果,例如TI的热电偶采集芯片集成了可编程运放和高分辨率ADC,从硬件到软件简化了设计,类似的集成IC还有ADI的AD8495,AD7705等
目的:提高开发效率,增加可靠性
硬件:ADS1240,MCU,主要在于集成芯片的配套电路。
软件:相比于原来,增加SPI或者IIC通信读取片外ADC数据,软件滤波等,主要在于芯片驱动
下一阶段:
以上实现,只考虑了功能实现而没有考虑性能指标。温度表作为测量仪器必须具备准确度、稳定性,与此同时在功能上还需要考虑校准、记录、多路测温等。
提个问题:如何测量0.01的温度变化?
这就是要实现高精度测量,需要软硬件的结合,不过首先要解决高精度高稳定性的硬件系统设计问题。正因如此,芯片厂商的“一步到位”的单芯片方案不再适用,因为无法提供更好指标,功能电路不可调控。
走到这一步,可能会受限于基础器件的性能指标,或许PT100、PT1000、各型热电偶本身精度就无法实现结果的可重复性,加上电路温漂、基准的稳定性等,因此对选型提出了更高要求。与此同时,软件处理需要精细化,要考虑闭壳校准、自校准、归零等。如果业务中需要处理更宽范围的测量,还需要切换量程,如果要多路,那需要选通电路。如果需要实现更加实用(酷炫)的功能那需要更复杂的底层软件支持或者上位机软件支持。需要学习和深入的点还是很多的,在此提出一些问题点。
有以下多个问题点需要着重说明(待完善):
问题点1:高分辨率不等于高精度
问题点2:所见,并非所得,长期稳定性才是关键
问题点3:基准是精确的基础,温度(温漂)是最大的敌人
问题点4:保护电路与高精度的冲突与平衡
问题点5:模拟开关与继电器对精度的影响
问题点6:示波器是否可以当万用表使用呢
普通(便宜)示波器一般都是8位高速AD采样芯片,试想一个普通万用表使用的是16位AD,如果没有量程切换,直接测试,示波器的精度极差,可能5V,10V还能分辨到1mv,当测试24V时,24/1024远不及1mv。如果算上量程切换,调节示波器垂直分辨率(先分压后放大进示波器),首先噪声水平提高,可能示波器看到的是难以读值的波形,其次示波器的垂直分辨率调节十分有限,普通示波器无法在直流24V中放大到1mv分辨率(实际测试DS1102E 100M)。所以示波器当不了万用表。
是否要反问,那电源纹波测试为什么可以看到mv的结果呢?
那是因为纹波交流分量怎么可能到24000mv?八位的AD,1v量程上是有足够的精度去分辨纹波的。
归根结底,两者的设计初衷就不一样,各自对另一方的优势那是先天不足。最后想说,拿着示波器的人不一定是懂硬件,拿着万用表的人或许是真的懂。
问题点7:精密电阻如何选型
AE、VISHAY的高精密(低温漂)电阻十分地优秀,新货买不起,拆机件还能用吧。
还有一种高精密网络电阻(匹配电阻),如ADI的LT5400这一类。
参考:
《AE精密电阻规格书.pdf》
URL:https://download.csdn.net/download/hxkrrzq/12019238
《DIY 2440 数字多用表参考(上) 作者:mengxin.pdf》
URL:https://download.csdn.net/download/hxkrrzq/12019222
<未完..>