基于ARM的CAN总线元素灯同步寻峰算法设计

2016-02-07 08:10王庆辉黄望远卜德全
沈阳化工大学学报 2016年4期
关键词:总线分布式能量

王庆辉, 黄望远, 卜德全, 李 月

(1.沈阳化工大学 信息工程学院, 辽宁 沈阳 110142; 2.沈阳华光精密仪器有限公司, 辽宁 沈阳 110036)



基于ARM的CAN总线元素灯同步寻峰算法设计

王庆辉1, 黄望远1, 卜德全1, 李 月2

(1.沈阳化工大学 信息工程学院, 辽宁 沈阳 110142; 2.沈阳华光精密仪器有限公司, 辽宁 沈阳 110036)

针对分布式原子吸收分析仪器开发中元素灯寻峰算法设计,提出一种基于CAN同步时序的寻峰算法.采用STM32CPU作为控制核心,基于CAN总线通信作为同步时序来实现元素灯寻峰算法的设计.从硬件和软件两方面介绍其CAN同步时序、寻峰算法设计、数据采集处理的实现过程,最后通过实际测试验证寻峰算法的正确性以及实用性.

原子吸收分光光度计; 寻峰; CAN总线; 同步

人类的生活、生存环境受到的威胁越来越大,最主要是农残和重金属两大物质,目前国内外大多数都采用原子吸收光谱仪(AAS)进行检测,因此,原子吸收光谱仪的设计开发越来越受到人们的重视[1-3].在AAS的元素灯模块中,电机转动到某个理论位置,此时的光路可能并不是能量最大的路径,为了更好地采集到光能,需要寻找能量最优的路径,这个过程就是元素灯寻峰[4].元素灯寻峰设计是整个元素灯模块核心的部分,主要体现在寻峰算法上,算法设计不当,直接影响光能量的采集,最终导致所测元素的含量检测不准确[5].目前常见的寻峰算法有蒙特卡罗(Monte Carlo)算法、直接比较法、导数法、二次插值数值微分法、三点寻峰算法等.在实际应用中,根据不同应用采用不同的方法[6-9].这些算法实现起来比较复杂,且易受噪声干扰.而采用CAN[10]总线通信的同步算法,增强了稳定性,也很好地解决噪声干扰所带来的问题.同时传统的集中式控制方式,系统无法并行进行控制,极大影响了系统控制效率;而采用分布式、模块化设计思想,代替传统的集中式控制方式,不仅提高设备的可靠性,更能显著提高系统反应速度,提升设备性能[11].因为寻峰操作分布在两个模块内协作完成,采用传统的利用I/O同步线控制方式,不仅增加了系统布线,占用了芯片 I/O 口资源,设计不当还易发生烧毁电路情况.

本文采用STM32作为主控芯片,以CAN通信网络连接主控、元素灯、单色仪模块,实现分布式控制设计方式.以ADS1158高分辨率芯片来实现能量采集,同时采用CAN总线同步通信方式,减少了I/O口的使用,提高了可靠性[12].最终实现了寻峰过程模块间同步算法设计,达到了设计要求.

1 系统设计及关键技术

元素灯寻峰设计过程是由原子吸收分析仪器中主控、元素灯模块、单色仪模块采用CAN总线通信来实现的.具体涉及到两方面技术.其一是CAN总线分布式控制设计,实现主控与其他模块之间的并行控制.其二是寻峰算法的设计,利用CAN同步通信技术,即元素灯模块采用CAN通信同步告知单色仪模块进行能量采集,每一次能量采集成功后,单色仪模块通过CAN通信进行反馈,从而实现模块间同步通信寻峰算法.系统结构模型如图1所示.

图1 系统结构图

Fig.1 System structure diagram

2 硬件实现

2.1 模块设计

元素灯寻峰过程需要硬件部分的元素灯、单色仪模块来配合完成.两模块都是以STM32CPU作为控制核心,设计过程比较相似.其硬件模块框图如图2所示.

图2 基于STM32的模块结构框图

Fig.2 Based on the STM32 module structure diagram

2.2 ADS1158接口设计

设计中单色仪模块采用ADS1158芯片对能

量进行采集.ADS1158是美国TI公司生产的多通道(16单端或8差分)、高精度(16位)、高速(扫描速度为1.8~23.7 KSPS)的高性能模/数转换芯片.为了提高数据的采集精度,系统采用高精度和低温漂的5V电压基准芯片REF5050,同时采用SPI通信方式与STM32进行通信.

2.3 CAN驱动接口设计

CAN控制器通常需要一个CAN收发器与外接电路实现通信,这里选用飞利浦公司的TJA1050芯片.硬件电路如图3所示,其工作电压为5院V,工作电流为100 μA,信号传输速率可达1 Mb/s.TJA1050共有8个引脚,电源引脚VCC连接到5 V电源,数据输入信号TXD与STM32F407VGT6的CAN控制器数据输出引脚CAN1_TX(PA12)连接,数据输入信号RXD与CAN控制器的数据输入引脚CAN1_RX(PA11)连接.S为工作模式选择信号,当S连接到逻辑低电平时,收发器TJA1050工作在高速模式下,此时收发器的工作速率达到最高,在这里选择收发器高速模式,S通过0 Ω电阻R176连接到地.为了提高数据通信的抗干扰性和可靠性,匹配总线阻抗,在CANH与CANL之间并联一个终端电阻R180,其典型值一般为120 Ω,参考电压输入引脚不连接.

图3 TJA1050硬件电路图

Fig.3 TJA1050 hardware circuit diagram

3 软件实现

3.1 CAN同步通信机制

为实现元素灯寻峰,找寻能量最大值,在软件算法过程中,采用CAN通信协议实现模块间同步通信.CAN通信首先要进行波特率的配置,通过配置发送过程中各个环节的时间量子数和CAN的时钟关系来进行实现.将波特率配置为500 kbit/s.这里更关心的是CAN同步通信过程中,元素灯与单色仪之间如何实现CAN同步通信机制.如图4所示,在元素灯寻峰过程中,元素灯每发一帧数据给单色仪,单色仪都会在执行能量数据采集之后,给元素灯一个确认帧.设定在t>500 μs(T=500 μs)的情况下认为确认超时,超时情况下将该帧数据丢弃,然后实行超时重传,再等待相应重传确认.通过这样一个机制来保证CAN通信传输过程中数据的可靠稳定传输.

图4 元素灯、单色仪模块CAN同步通信

Fig.4 Elements of light,a monochromator module CAN synchronoμs communication

3.2 元素灯寻峰算法设计

寻峰算法设计流程如图5所示.元素灯定位到准确位置后,切光镜从灯位理论位置重定位到理论位置负200步,延时10 μs后,给单色仪同步指示信号,然后等待,直到单色仪同步响应信号;然后步进电机正转一个步距,延时10 μs后,同步指示单色仪,单色仪模块进行能量数据的采集,并将数据进行保存.共需要采集400个光能量值,而每一个光能量值都是通过采集50个能量值进行求平均得到.即电机每转动一步,单色仪模块都要进行50次采集,然后进行求平均处理,并保存数据.如果能量最高点出现平台现象,即能量差值小于峰值的1.5 %,定位到平台的中间位置;如果在寻峰过程中能量小于0.005,则定位到理论位置上.然后等待单色仪同步响应信号;依次进行下去,直到切光镜到达理论位置正200步;最后等待单色仪计算完成,单色仪计算完成后使用事件触发通信方式给元素灯箱发送定位参数,元素灯箱据此参数进行相对定位.

图5 元素灯寻峰流程

Fig.5 Element lamp for peak flow chart

4 寻峰结果仿真

寻峰算法设计结束后,对单色仪模块采集保存的从-200到+200步内的400个光能量值进行仿真处理,结果如图6所示.光能初始采样值不会为0,最小值为0.6 V左右,最大值为1.5 V左右,用MATLAB形成能量曲线,可以直观地看出能量峰值在第200个点的位置.单色仪将该位置数据以CAN同步方式通知元素灯模块,元素灯切光镜进行相应的动作,从而实现元素灯寻峰.能量采集过程中,硬件设计以及电机转动,都会对能量的采集产生影响,可以看到采集过程中的噪声存在.

图6 元素灯寻峰能量图

Fig.6 Element lamp for peak energy diagram

图7为元素灯寻峰实物图,主要由主控模块、元素灯箱模块,单色仪模块组成.图中采用CAN总线实现模块间连接进行通信.

图7 元素灯寻峰实物图

Fig.7 Element lamp for peak physical figure

5 结束语

设计了一种采用分布式CAN总线实现元素灯寻峰算法的方案,从MATLAB的仿真图可以直观得出寻峰最大值.同时采用图7所示元素灯寻峰实物图,多次寻峰测试结果表明:每次寻峰历时约为10 s,平均每次通信采集过程约500 μs.元素灯电机转动一步,对应单色仪都能准确获取50个光能量数据,到400步结束后,能按照设计要求准确完成400组数据的采集,没有数据丢失,且元素灯都能获取到单色仪所传回的相应的寻峰值.可见该CAN同步通信协议在该寻峰设计中达到了性能可靠性、稳定.在实际分布式多模块同步通信过程的应用中,采用CAN总线的同步方法有着重要的现实意义.

[1] 李昌厚.原子吸收分光光度计仪器及其应用的最新进展[J].生命科学仪器,2006,4(4):3-8.

[2] 李昌厚.现代光谱仪器及其应用的最新进展[J].光谱仪器与分析,2011(Z1):180-181.

[3] 李昌厚.现代科学仪器发展现状和趋势[J].分析仪器,2014(1):119-121.

[4] 谢玉萍,支国瑞,李存根,等.原子吸收光谱仪自动寻峰方式的不足及对策[J].河南冶金,2005,13(4):51-53.

[5] 徐进飞.基于STM32的脑电信号采集与处理系统[D].济南:山东师范大学,2012:16-30.

[6] 朱梅,张淼,胡立章,等.光纤布拉格光栅中心波长检测中的寻峰算法[J].光通信研究,2011(5):60-63.

[7] 邵善锋,李玉河,刘家亮,等.基于CAN总线的分布式控制系统设计[J].工程机械,2014,45(1):48-49.

[8] 曾国强,葛良全,罗耀耀,等.基于改进型模拟退火模型的X荧光光谱寻峰方法的研究[J].光谱学与光谱分析,2013(9):2583-2585.

[9] 陈勇,王坤,刘焕淋,等.三点寻峰算法处理光纤布拉格光栅传感信号[J].光学精密工程,2013,21(11):2752-2754.

[10]李芳,刘鲁源,吕伟杰.CAN总线位定时和同步机制的分析[J].电子产品世界,2005,12(9):106-107.

[11]王毅峰,李令奇.基于CAN总线的分布式数据采集与控制系统[J].工业控制计算机,2000,13(5):34-35.

[12]刘维弋,金远平.基于CAN总线的通信系统的设计与实现[J].计算机技术与发展,2007,17(12):208-209.

Design of Seak Peak Synchronization Algorithm for AAS Based on CAN Bus

WANG Qing-hui1, HUANG Wang-yuan1, BU De-quan1, LI Yue2

(1.Shenyang University of Chemical Technology, Shenyang 110142, China;2.Shenyang Huaguang Precision Instrument Co., Ltd., Shenyang 110036, China)

A new seek peak algorithm based on CAN synchronization sequence is proposed for the design of element light in the development of distributed atomic absorption spectrometry.The STM32 CPU as the control core,based on CAN bus communication is used as the synchronous timing to achieve the element lamp seek peak algorithms design,the correctness and practicability of the algorithm is verified by the actual test.

AAS; seek peak; CAN bus; synchronization

2014-07-16

王庆辉(1972-),男,黑龙江齐齐哈尔人,副教授,博士,主要从事无线传感器网络的研究.

2095-2198(2016)04-0362-04

10.3969/j.issn.2095-2198.2016.04.015

TP212.6

A

猜你喜欢
总线分布式能量
能量之源
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
分布式光伏热钱汹涌
诗无邪传递正能量
分布式光伏:爆发还是徘徊
基于DDS的分布式三维协同仿真研究
CAN总线并发通信时下位机应用软件设计
开年就要正能量
多通道ARINC429总线检查仪