[LaunchPad] 【TI首届低功耗设计大赛】微型LCR测试仪-软件与算法篇

snoweaglemcu   2014-12-30 20:56 楼主
       好久不见了,在最后的这几天里,我把关于这个设计剩下的内容补充完整。本篇的内容是软件与算法简述,详细的代码就不贴在这里了,我把用到的外设和部分关键算法写一下。
      先说一下用到的430的外设部分。
      1、通用IO端口,这部分实际没什么好说的,用于控制电路的模拟开关和检测按键之类,一般就是配置好寄存器之后,再从端口寄存器读取或者写入0、1即可。
      2、定时器的比较匹配功能,用于产生方波信号,后续通过滤波电路后生成正弦波,程序就是参考的TI的官方例程,改改数值就好。
      3、ADC,共开了3个通道,分别是主测量通道,电池电压检测和虚拟地电平检测。其中主测量通道的测试由TA3进行精确时基触发,配合外部由过零比较器组成的信号同步电路对信号进行采样。
      4、硬件乘法器,进行复阻抗计算时的数据量很大,大部分为乘除操作,这部分工作直接由硬件乘法器进行,可以有效提升速度。
      5、USART,通过一片CP2102转为USB接口,进行通信(这部分没来得及写)
      6、FRAM,用于存储校准数据(这部分也没来得及写)
      再补充说一点,方便大家对下面算法的理解,这台表最终定下的频点是100Hz,125Hz,1kHz和10kHz,对应主测量通道的采样率分别为6.4kSPS,8kSPS,16kSPS和80kSPS,即每个周期分别采样64、64、16和8点,MSP430运行主时钟8MHz
      下面说算法,大家看之前可以先复习下三角函数和微积分,程序代码因为某些原因无法贴出,但就是通过软件实现的下面的功能。
      (不好意思各位,我发现在帖子里打公式几乎是不可能的,我还是贴Word的截图吧,这样大家都可以好受些........)

      













       这部分运算应该说是非常重要的,至少就我目前了解的东西,包括大部分LCR,当然目前LCR中大部分是用的模拟方式完成上述计算,新型的是用数字方式完成的。嗯.....实际上,就算法这一块,这个微型LCR和最新的精密LCR是基本一样的,只不过,那个采样率可高的多,信号处理也麻烦的多。另外,在网络分析仪、阻抗分析仪中,这个算法也会用到,只不过,信号在进行这一步运算之前,已经变换过了,最麻烦的在变换这一步上。如果大家有兴趣,可以好好算一下。
       网上有“自由轴”和“固定轴”这类说法,实际上是那个参考信号相对测量信号是固定的还是同步变化的而已。最麻烦的鉴相器,就是通过上述算法,把角度分离出来,之前看网上做的LCR使用的那个参考信号并没有用正弦,而是用的差90度的方波,实际和这里用的sin、cos(sin和cos同频差90度)是一个道理,原理在于方波进行傅里叶分解后得到1、3、5......这样的基波和谐波,只有基波是有用的,按照上面的计算,剩下的高次谐波都在整周期乘加运算中变成0了,用sin和cos信号当然会更好,我看到隔壁论坛为这个问题讨论了好多页,其实算一下就是这么一句话的问题。而且,我们很早期的LCR也是用方波做鉴相同步信号的,因为方便啊,直接用个模拟开关切换就好了,另外还有从噪音环境中提取微弱信号的锁相放大器,这个原理有点相通的,可以先看看锁相放大器。


回复评论 (4)

      补充一部分内容,关于低功耗的处理,这部分的大部分工作也应该属于软件。
    作为一种使用电池的仪表,功耗控制相当重要,当然我的理解无非是两点,开源和节流。所谓“开源”,要么利用太阳能等方式实现不断的能量补充,再要么用大点的电池,我只能选后者,搞了一块800mAh的聚合物电池;然后“节流”,就是想办法省电啦。
    以前并没有做过手持设备,甚至430这也是头一次使用,低功耗的更是相当没经验,因此,我在这方面做得实在比较菜,但我会努力提高这方面的设计能力。
    这东西的耗电大户是一大片运放模拟开关构成的模拟电路,即便430再省电,搞不好也会被这些电路抵消掉。我的办法是在数据采集完成后,直接关断模拟部分供电LDO的使能端,使整个模拟区域断电。然后尽可能通过良好的电路设计,降低噪音水平,使数据采集更加稳定,这样就可以降低软件的平均次数,在同样的测试速度下,更加省电一些。
当然一些常规的方法也是必须有的,例如使用COG液晶,使用漏电小的Mos作为单键开关机的开关器件。有朋友给我提议说要注意LDO的选择,目前还没啥经验,不知道选择功耗表现更好的开关型电源是否会引入噪音的问题。
     关于低功耗的问题,还在进一步摸索中
点赞  2014-12-30 21:33
引用: fish001 发表于 2014-12-31 09:06
很详细,一路看着楼主的文章过来,收获不少,谢谢。
多谢朋友支持,互相学习
点赞  2014-12-31 11:10
引用: 鬼眼刀道 发表于 2015-1-4 16:03
楼主讲的算法依照我的理解应该和下图的意思是一样的

    但是我不太明白“主测量通道的测试由TA3进行精确时基触发,配合外部由过零比较器组成的信号同步电路对信号进行采样”中信号同步电路是怎么配合的,是直接检测同步信号的边沿然后在中断中启动定时器TA3进行触发吗?这个同步信号应该只使用一次还是每个信号周期都要进行一次同步?我理解这样做是为了使检测的相位有一个固定的参考,而对于检测幅度是没有关系的(就是任意时刻启动触发对最后的幅度检测没有影响)。
    最近在看锁定放大器相关的东西,但还有一些东西不太懂,看到这有所启发,希望楼主能帮下忙




       嗯,是的,我只不过没有把“数字混频正交变换”这个词拿出来,锁相放大器是做整周期乘加运算后得到一个跟幅值和相位有关的一个直流量,而电桥是分别得到有关电压,电流(其中包含相对相位信息)的量,再多做一次复数除法U/I,得到复阻抗(即包含相位的)。
       这个过零比较器是检测LCR信号源的,我是选择在信号源的正向过零点启动TA3和ADC,分别测试电压和电流信号,采样率是和信号频率严格关联的,比如1kHz频率下采样率是64kHz,即一个周期采集64点,这时的正交本振参考数组也是64点,然后进行乘加操作,相当于一次积分过程。由于我只有一个ADC,那么测试完电压后,控制模拟开关转到电流通路,同样进行一次同步过程,即在信号源正向过零点启动转换。这样的话,被测器件的电压信号和电流信号的测量触发位置都被关联到信号源,也就是激励信号。只有纯电阻,电压电流才会和信号源完全同步,纯电容电流超前电压90度,纯电感电压超前电流90度,但实际上不可能这么绝对。但我们可以把信号源作为0度,电压和电流信号以此为基准计算角度偏移,做电压和电流的复数除法就可以得到相位差。相位差与幅度没有关系,只要能做到对信号源相位严格的同步,就没有问题。其实,由于我每次都是从过零点开始采样,而且是整周期采样,采样率固定,幅度测量是稳定的,当然如果从任意位置开始采样,但保证是整周期采样的话,也行的,想想就是这样,积分上也可以证明。
       另外,有那种多核心的ADC,即同步采样ADC,就可以省掉那个同步电路,因为对它来讲,电流电压是两条独立通道,但是进行同步采样,采样率和采样时间确定,那么采回来的电压和电流数据的相位差就是确定的。这种ADC在电力行业常用,用来计算功率因数,其实也是计算角度。
       希望我说的可以帮助到你!
   
点赞  2015-1-4 20:02
引用: a828378 发表于 2015-1-1 02:22
之前学习较忙没来注意。我找了下大概是这个帖子。你可以看看。https://bbs.eeworld.com.cn/thread-440575-1-1.html
LDO上,不是在特别高低功耗要求的时候我一般选用TPS799XX系列.但对于TPS782XX系列他独特的优点就是静态电流低。但是相比Vdo会比之前大一些。这两款好像TI都有提供样片申请。
DCDC开关电源那个我没有细看,但一般在轻载下跳跃模式纹波都会比额定负载时候大。考虑DCDC+π型滤波或者加LDO,地的设计也重要。这个lZ应该是已经注意了。但具体情况还要再看你咯。
但认真的部分就还真是模拟电路的耗电。LZ可以仔细研究研究。运放选型应该是可以更省电,在尽量保持性能的情况下。做样品可以只考虑性能。做产品就还要考虑成本。
确实是看着LZ的作品很是喜欢就多提了两句。以上只是个人看法,欢迎提意见~~





谢兄弟支持,我来认真看一下!
点赞  2015-1-4 20:03
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复