地址:湖南郴州市北湖区南岭大道1690号

郑总:13786538932(微信同号)

业务1部:0735-2161318

业务1部:0735-2161338

传真:0735-2161318

邮箱:xingcai@hyzs.net


新闻中心

首页 > 新闻中心

单芯片便携电子秤重系统实现方案

发布时间:2024-10-06 08:27:11 来源:必一运动官网  

  传统上,设计秤重、测力、转矩及压力测量系统时,广泛采用全桥接电阻传感器的方法。大多数桥接传感器都要求较高的激励电压(通常为10 v),同时输出较低的满量程差动电压,约为2 mv/v。传感器的输出通常由仪表放大器加以放大,经过发大后的信号,再由高精度模数转换器 (adc) 进行数字化,最后再用一个通用的mcu作进一步处理与显示。通常情况下,adc并不集成在mcu中。这种方法虽然可以实现满量程的adc输入电压,但桥接传感器的激励电压高达10 v,功耗较大,而且使用的芯片数量也较多,加大了电源管理的复杂度。

  现在,通过在msp430f42x芯片中集成带有差动输入的16位 - adc和增益高达32的可编程增益放大器(pga),实现了单芯片秤重系统。整个系统只需用3 v电池供电,不但能效高,且成本低。此外系统还提供lcd驱动器及掉电保护功能。

  msp430f42x系列是基于快速闪存的超低功耗微,片上集成了三个16位 - adc(sd16),这些adc还带有pga,能够将传送来的信号放大最高32倍。桥接传感器可以直接连接到微上,图1给出了该系统的电路图。

  将全桥接传感器负激励信号连接至终端x1-1,正激励信号连接至终端x1-4,由msp430的端口引脚p2.0与p2.1供电。这样,在测量期间或在电子秤工作于待机状态的情况下,就可以不用电桥激励电压,从而降低功耗。传感器的电桥电阻为1 200 (典型值),电源电压为3 v,激励状态下耗电2.5 ma。将桥接传感器的输出信号连接至x1-2与x1-3,通过两个低通滤波器之后输入sd16的输入通道a0。

  当最大负载为10 kg时,全桥接传感器具有2 mv/v的额定满量程差动输出电压。要使传感器信号能够实现1 g的精度,总共需要1万次计数,并显示在lcd显示屏上。如果桥接传感器获得3 v的激励电压,则满量程输出电压为:3 v x 2 mv/v = 6 mv。也就是说,1 g的重量转换为电压形式可等效为:6 mv / 10 kg x 1g = 0.6 v。为了实现1 g的测量精度,所用adc的lsb电压应比上述小四倍,即 0.6 v / 4 = 0.15 v。

  sd16可用内置的1.2 v参考电压工作,也可用外部连接的参考电压工作。图1中给出的是用外部电阻分压器来提供参考电压。由于桥接传感器由相同电压的电源供电,这样做的好处是能够实现独立于激励电压(vcc)的比例输出原则。如果桥接传感器由vcc供电而sd16模块采用内部参考电压,那么测量结果就会随vcc在电池使用寿命中的变动而发生差异。当电源电压为3v时,使用图1中所示的外部电阻分压器得到的参考电压为:

  r9与r10的分压比(divider ratio)r9/r10的选择使生成的参考电压保持在容许的vref范围内,这时vcc从3 v下降至2.7 v。sd16 模块的最小电源电压为2.7 v。其详细电压范围及其他参数,可参考msp430f42x数据表(slas421)。sd16的参考电压决定着满量程差分输入电压,即vref/2。由于数据转换器为双极,因此adc的lsb电压为:

  该lsb值经过最大增益为32的pga后,电压值可降至0.605 v。但该值比设计目标值0.15 v仍然高出大约四倍,为此还需要将该值进一步放大。为了不添加外部组件,可以采用更多的 sd16输出位。sd16模块内部数字抽取滤波器能够提供总共24位的访问。可将数字滤波器输出的额外两位添加给16位转换结果,并将18位输出信号进行低通过滤(如进行多结果平均),这样adc的lsb电压就可降至0.151 v。

  msp430f427的片上lcd驱动器可直接采用接口与一般的 lcd 模块连接。在本应用中采用了 softbaugh公司的4-mu 7.1数码lcd—sblcda4。电阻器r5、r7与r8提供了lcd驱动器模块所用的电压阶梯。采用32 khz的晶振作为系统时钟参考,用于驱动lcd并在应用工作过程中周期性地从低功耗模式唤醒。此外,系统还为电子秤操作提供了连接至p1.0的按钮(sw1)。

  msp430f427 单芯片秤重软件有c语言(f42x_weigh_ scale.c)与汇编语言(f42x_weigh_scale.s43)两种版本。两种源代码功能相同,但汇编语言版本更小。上电复位时,msp430首先进行外设初始化,包括禁用看门狗定时器,配置lfxt1振荡器负载电容用于外部晶振,初始化lcd、基本定时器及sd16转换器模块。sd16的0通道经过配置,采用双输入通道(channel pair)a0,并用sd16模块内部pga放大信号达32倍增益。转换器由smclk计时,频率为1 048 567 hz,并启用连续转换模式。关于sd16操作的详细信息可参考msp430x4xx系列用户指南(slau056)。图2为软件主流程图。

  在源代码中,将两个32位字calmin与calmax分配到msp430闪存段a以便保存校验数据。上电后,软件检查上述常量是否具备有效值。如果两个位置都包含相同的值(如设备编程后的 0xffffffff),校验模式则被激活,否则进入测量模式。变量programmode用于跟踪当前程序状态(测量模式、校验模式、断电模式)并作出相应设置。

  随后,msp430进入低功耗模式lpm0,启用中断。lpm0作为smclk驱动sd16,在应用有效运行且采集adc数据时不得关闭。此后,整个程序流程由中断驱动,共启用三个中断源。基本计时器isr每0.5秒执行一次,主要用于触发测量进程的启动(见图3),端口1 isr用于处理按钮事件,每次 a/d 转换后,调用sd16 isr来处理结果(见图4)。

  在校验模式中可获得两个数据点。变量calmin用于存储a/d结果,其显示值等于0 g,而calmax存储的a/d结果显示值为10 000 g。cal lo或cal hi显示出的数据用来说明哪个校验数据点正被处理。按下按钮sw1后,当前sd16的转换结果被读取并存储到临时变量中。校验结束后,系统内的自动编程将这两个数据点编入infoa快闪信息存储器段,这时软件进入测量模式。

  至此,sd16转换进程每0.5秒启动一次,由基本定时器isr定时。转换中,桥接传感器上电,dco 启用。这时msp430在lpm0模式下运行。为了实现所需的精度,软件采用低通滤波器,采集多个18位a/d转换结果,并进行累加。每次转换后,sd16 isr按照sd16采样率(4 khz)执行。在采集实际数据前,反变量voltagesettlectr逐渐减小为0,这就使电压能在桥接传感器上电后12毫秒内达到稳定。sd16 isr采集了256个结果之后,用累加和除以256,得到最后的18位结果。上述过程也可形容为采样数据由256到1的抽选。包括电压稳定时间在内,sd16模块每0.5秒钟运行约75毫秒。

  随后,将该18位的计算结果与此前的值进行比较。仅当值变化时才计算新的显示值并更新显示。这就能够避免不必要的32位整数乘法及除法。

  为了将 a/d的测量结果转换为实际的物理重量值,系统使用了两点校验机制。显示值根据以下公式计算:

  从calmax到calmin的范围反映到从0到cal_min_max_span的范围。cal_min_max_span 默认设置为10 000,等于桥接传感器的最大机械负载10 kg。需注意:由于施加给sd16模块的差动信号的缘故,18位a/d转换结果是带符号的,整个程序中都使用带符号的代数算法。这样,也可显示出负的重量值。测量结束之后,sd16模块禁用,dco在退出时进入lpm3关闭模式,而桥接传感器则断电以降低电流消耗。

  只要按下按钮sw1会立即使转换失效,关闭lcd显示屏并进入lpm3模式。在这种模式下,应用电路吸收的电流不到1 a,而32 khz的振荡器仍然运行。如果需要的线模式来进一步降低电流消耗。再次按下按钮sw1,应用便恢复正常的工作。在这种模式下,sd16模块每0.5秒钟约运行75毫秒,得出新的计算结果后,显示屏也随之更新。在此期间,msp430消耗的电流约1 ma。桥接传感器的激励及参考电压的生成在此期间还需要3 ma的额外电流。在测量间隙内,msp430消耗电流约3 a,其中包括了lcd驱动器用于显示计算结果的电流。因此,总的平均应用电流消耗量在正常工作期间为600 a。若想在任何时间内重新进入校验模式,只需按下按钮sw1至少5秒钟即可实现。