王慶輝, 黃望遠(yuǎn), 卜德全, 李 月
(1.沈陽化工大學(xué) 信息工程學(xué)院, 遼寧 沈陽 110142; 2.沈陽華光精密儀器有限公司, 遼寧 沈陽 110036)
?
基于ARM的CAN總線元素?zé)敉綄し逅惴ㄔO(shè)計(jì)
王慶輝1, 黃望遠(yuǎn)1, 卜德全1, 李 月2
(1.沈陽化工大學(xué) 信息工程學(xué)院, 遼寧 沈陽 110142; 2.沈陽華光精密儀器有限公司, 遼寧 沈陽 110036)
針對分布式原子吸收分析儀器開發(fā)中元素?zé)魧し逅惴ㄔO(shè)計(jì),提出一種基于CAN同步時序的尋峰算法.采用STM32CPU作為控制核心,基于CAN總線通信作為同步時序來實(shí)現(xiàn)元素?zé)魧し逅惴ǖ脑O(shè)計(jì).從硬件和軟件兩方面介紹其CAN同步時序、尋峰算法設(shè)計(jì)、數(shù)據(jù)采集處理的實(shí)現(xiàn)過程,最后通過實(shí)際測試驗(yàn)證尋峰算法的正確性以及實(shí)用性.
原子吸收分光光度計(jì); 尋峰; CAN總線; 同步
人類的生活、生存環(huán)境受到的威脅越來越大,最主要是農(nóng)殘和重金屬兩大物質(zhì),目前國內(nèi)外大多數(shù)都采用原子吸收光譜儀(AAS)進(jìn)行檢測,因此,原子吸收光譜儀的設(shè)計(jì)開發(fā)越來越受到人們的重視[1-3].在AAS的元素?zé)裟K中,電機(jī)轉(zhuǎn)動到某個理論位置,此時的光路可能并不是能量最大的路徑,為了更好地采集到光能,需要尋找能量最優(yōu)的路徑,這個過程就是元素?zé)魧し錥4].元素?zé)魧し逶O(shè)計(jì)是整個元素?zé)裟K核心的部分,主要體現(xiàn)在尋峰算法上,算法設(shè)計(jì)不當(dāng),直接影響光能量的采集,最終導(dǎo)致所測元素的含量檢測不準(zhǔn)確[5].目前常見的尋峰算法有蒙特卡羅(Monte Carlo)算法、直接比較法、導(dǎo)數(shù)法、二次插值數(shù)值微分法、三點(diǎn)尋峰算法等.在實(shí)際應(yīng)用中,根據(jù)不同應(yīng)用采用不同的方法[6-9].這些算法實(shí)現(xiàn)起來比較復(fù)雜,且易受噪聲干擾.而采用CAN[10]總線通信的同步算法,增強(qiáng)了穩(wěn)定性,也很好地解決噪聲干擾所帶來的問題.同時傳統(tǒng)的集中式控制方式,系統(tǒng)無法并行進(jìn)行控制,極大影響了系統(tǒng)控制效率;而采用分布式、模塊化設(shè)計(jì)思想,代替?zhèn)鹘y(tǒng)的集中式控制方式,不僅提高設(shè)備的可靠性,更能顯著提高系統(tǒng)反應(yīng)速度,提升設(shè)備性能[11].因?yàn)閷し宀僮鞣植荚趦蓚€模塊內(nèi)協(xié)作完成,采用傳統(tǒng)的利用I/O同步線控制方式,不僅增加了系統(tǒng)布線,占用了芯片 I/O 口資源,設(shè)計(jì)不當(dāng)還易發(fā)生燒毀電路情況.
本文采用STM32作為主控芯片,以CAN通信網(wǎng)絡(luò)連接主控、元素?zé)?、單色儀模塊,實(shí)現(xiàn)分布式控制設(shè)計(jì)方式.以ADS1158高分辨率芯片來實(shí)現(xiàn)能量采集,同時采用CAN總線同步通信方式,減少了I/O口的使用,提高了可靠性[12].最終實(shí)現(xiàn)了尋峰過程模塊間同步算法設(shè)計(jì),達(dá)到了設(shè)計(jì)要求.
元素?zé)魧し逶O(shè)計(jì)過程是由原子吸收分析儀器中主控、元素?zé)裟K、單色儀模塊采用CAN總線通信來實(shí)現(xiàn)的.具體涉及到兩方面技術(shù).其一是CAN總線分布式控制設(shè)計(jì),實(shí)現(xiàn)主控與其他模塊之間的并行控制.其二是尋峰算法的設(shè)計(jì),利用CAN同步通信技術(shù),即元素?zé)裟K采用CAN通信同步告知單色儀模塊進(jìn)行能量采集,每一次能量采集成功后,單色儀模塊通過CAN通信進(jìn)行反饋,從而實(shí)現(xiàn)模塊間同步通信尋峰算法.系統(tǒng)結(jié)構(gòu)模型如圖1所示.
圖1 系統(tǒng)結(jié)構(gòu)圖
Fig.1 System structure diagram
2.1 模塊設(shè)計(jì)
元素?zé)魧し暹^程需要硬件部分的元素?zé)簟紊珒x模塊來配合完成.兩模塊都是以STM32CPU作為控制核心,設(shè)計(jì)過程比較相似.其硬件模塊框圖如圖2所示.
圖2 基于STM32的模塊結(jié)構(gòu)框圖
Fig.2 Based on the STM32 module structure diagram
2.2 ADS1158接口設(shè)計(jì)
設(shè)計(jì)中單色儀模塊采用ADS1158芯片對能
量進(jìn)行采集.ADS1158是美國TI公司生產(chǎn)的多通道(16單端或8差分)、高精度(16位)、高速(掃描速度為1.8~23.7 KSPS)的高性能模/數(shù)轉(zhuǎn)換芯片.為了提高數(shù)據(jù)的采集精度,系統(tǒng)采用高精度和低溫漂的5V電壓基準(zhǔn)芯片REF5050,同時采用SPI通信方式與STM32進(jìn)行通信.
2.3 CAN驅(qū)動接口設(shè)計(jì)
CAN控制器通常需要一個CAN收發(fā)器與外接電路實(shí)現(xiàn)通信,這里選用飛利浦公司的TJA1050芯片.硬件電路如圖3所示,其工作電壓為5院V,工作電流為100 μA,信號傳輸速率可達(dá)1 Mb/s.TJA1050共有8個引腳,電源引腳VCC連接到5 V電源,數(shù)據(jù)輸入信號TXD與STM32F407VGT6的CAN控制器數(shù)據(jù)輸出引腳CAN1_TX(PA12)連接,數(shù)據(jù)輸入信號RXD與CAN控制器的數(shù)據(jù)輸入引腳CAN1_RX(PA11)連接.S為工作模式選擇信號,當(dāng)S連接到邏輯低電平時,收發(fā)器TJA1050工作在高速模式下,此時收發(fā)器的工作速率達(dá)到最高,在這里選擇收發(fā)器高速模式,S通過0 Ω電阻R176連接到地.為了提高數(shù)據(jù)通信的抗干擾性和可靠性,匹配總線阻抗,在CANH與CANL之間并聯(lián)一個終端電阻R180,其典型值一般為120 Ω,參考電壓輸入引腳不連接.
圖3 TJA1050硬件電路圖
Fig.3 TJA1050 hardware circuit diagram
3.1 CAN同步通信機(jī)制
為實(shí)現(xiàn)元素?zé)魧し澹覍つ芰孔畲笾?在軟件算法過程中,采用CAN通信協(xié)議實(shí)現(xiàn)模塊間同步通信.CAN通信首先要進(jìn)行波特率的配置,通過配置發(fā)送過程中各個環(huán)節(jié)的時間量子數(shù)和CAN的時鐘關(guān)系來進(jìn)行實(shí)現(xiàn).將波特率配置為500 kbit/s.這里更關(guān)心的是CAN同步通信過程中,元素?zé)襞c單色儀之間如何實(shí)現(xiàn)CAN同步通信機(jī)制.如圖4所示,在元素?zé)魧し暹^程中,元素?zé)裘堪l(fā)一幀數(shù)據(jù)給單色儀,單色儀都會在執(zhí)行能量數(shù)據(jù)采集之后,給元素?zé)粢粋€確認(rèn)幀.設(shè)定在t>500 μs(T=500 μs)的情況下認(rèn)為確認(rèn)超時,超時情況下將該幀數(shù)據(jù)丟棄,然后實(shí)行超時重傳,再等待相應(yīng)重傳確認(rèn).通過這樣一個機(jī)制來保證CAN通信傳輸過程中數(shù)據(jù)的可靠穩(wěn)定傳輸.
圖4 元素?zé)?、單色儀模塊CAN同步通信
Fig.4 Elements of light,a monochromator module CAN synchronoμs communication
3.2 元素?zé)魧し逅惴ㄔO(shè)計(jì)
尋峰算法設(shè)計(jì)流程如圖5所示.元素?zé)舳ㄎ坏綔?zhǔn)確位置后,切光鏡從燈位理論位置重定位到理論位置負(fù)200步,延時10 μs后,給單色儀同步指示信號,然后等待,直到單色儀同步響應(yīng)信號;然后步進(jìn)電機(jī)正轉(zhuǎn)一個步距,延時10 μs后,同步指示單色儀,單色儀模塊進(jìn)行能量數(shù)據(jù)的采集,并將數(shù)據(jù)進(jìn)行保存.共需要采集400個光能量值,而每一個光能量值都是通過采集50個能量值進(jìn)行求平均得到.即電機(jī)每轉(zhuǎn)動一步,單色儀模塊都要進(jìn)行50次采集,然后進(jìn)行求平均處理,并保存數(shù)據(jù).如果能量最高點(diǎn)出現(xiàn)平臺現(xiàn)象,即能量差值小于峰值的1.5 %,定位到平臺的中間位置;如果在尋峰過程中能量小于0.005,則定位到理論位置上.然后等待單色儀同步響應(yīng)信號;依次進(jìn)行下去,直到切光鏡到達(dá)理論位置正200步;最后等待單色儀計(jì)算完成,單色儀計(jì)算完成后使用事件觸發(fā)通信方式給元素?zé)粝浒l(fā)送定位參數(shù),元素?zé)粝鋼?jù)此參數(shù)進(jìn)行相對定位.
圖5 元素?zé)魧し辶鞒?/p>
Fig.5 Element lamp for peak flow chart
尋峰算法設(shè)計(jì)結(jié)束后,對單色儀模塊采集保存的從-200到+200步內(nèi)的400個光能量值進(jìn)行仿真處理,結(jié)果如圖6所示.光能初始采樣值不會為0,最小值為0.6 V左右,最大值為1.5 V左右,用MATLAB形成能量曲線,可以直觀地看出能量峰值在第200個點(diǎn)的位置.單色儀將該位置數(shù)據(jù)以CAN同步方式通知元素?zé)裟K,元素?zé)羟泄忡R進(jìn)行相應(yīng)的動作,從而實(shí)現(xiàn)元素?zé)魧し?能量采集過程中,硬件設(shè)計(jì)以及電機(jī)轉(zhuǎn)動,都會對能量的采集產(chǎn)生影響,可以看到采集過程中的噪聲存在.
圖6 元素?zé)魧し迥芰繄D
Fig.6 Element lamp for peak energy diagram
圖7為元素?zé)魧し鍖?shí)物圖,主要由主控模塊、元素?zé)粝淠K,單色儀模塊組成.圖中采用CAN總線實(shí)現(xiàn)模塊間連接進(jìn)行通信.
圖7 元素?zé)魧し鍖?shí)物圖
Fig.7 Element lamp for peak physical figure
設(shè)計(jì)了一種采用分布式CAN總線實(shí)現(xiàn)元素?zé)魧し逅惴ǖ姆桨福瑥腗ATLAB的仿真圖可以直觀得出尋峰最大值.同時采用圖7所示元素?zé)魧し鍖?shí)物圖,多次尋峰測試結(jié)果表明:每次尋峰歷時約為10 s,平均每次通信采集過程約500 μs.元素?zé)綦姍C(jī)轉(zhuǎn)動一步,對應(yīng)單色儀都能準(zhǔn)確獲取50個光能量數(shù)據(jù),到400步結(jié)束后,能按照設(shè)計(jì)要求準(zhǔn)確完成400組數(shù)據(jù)的采集,沒有數(shù)據(jù)丟失,且元素?zé)舳寄塬@取到單色儀所傳回的相應(yīng)的尋峰值.可見該CAN同步通信協(xié)議在該尋峰設(shè)計(jì)中達(dá)到了性能可靠性、穩(wěn)定.在實(shí)際分布式多模塊同步通信過程的應(yīng)用中,采用CAN總線的同步方法有著重要的現(xiàn)實(shí)意義.
[1] 李昌厚.原子吸收分光光度計(jì)儀器及其應(yīng)用的最新進(jìn)展[J].生命科學(xué)儀器,2006,4(4):3-8.
[2] 李昌厚.現(xiàn)代光譜儀器及其應(yīng)用的最新進(jìn)展[J].光譜儀器與分析,2011(Z1):180-181.
[3] 李昌厚.現(xiàn)代科學(xué)儀器發(fā)展現(xiàn)狀和趨勢[J].分析儀器,2014(1):119-121.
[4] 謝玉萍,支國瑞,李存根,等.原子吸收光譜儀自動尋峰方式的不足及對策[J].河南冶金,2005,13(4):51-53.
[5] 徐進(jìn)飛.基于STM32的腦電信號采集與處理系統(tǒng)[D].濟(jì)南:山東師范大學(xué),2012:16-30.
[6] 朱梅,張淼,胡立章,等.光纖布拉格光柵中心波長檢測中的尋峰算法[J].光通信研究,2011(5):60-63.
[7] 邵善鋒,李玉河,劉家亮,等.基于CAN總線的分布式控制系統(tǒng)設(shè)計(jì)[J].工程機(jī)械,2014,45(1):48-49.
[8] 曾國強(qiáng),葛良全,羅耀耀,等.基于改進(jìn)型模擬退火模型的X熒光光譜尋峰方法的研究[J].光譜學(xué)與光譜分析,2013(9):2583-2585.
[9] 陳勇,王坤,劉煥淋,等.三點(diǎn)尋峰算法處理光纖布拉格光柵傳感信號[J].光學(xué)精密工程,2013,21(11):2752-2754.
[10]李芳,劉魯源,呂偉杰.CAN總線位定時和同步機(jī)制的分析[J].電子產(chǎn)品世界,2005,12(9):106-107.
[11]王毅峰,李令奇.基于CAN總線的分布式數(shù)據(jù)采集與控制系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2000,13(5):34-35.
[12]劉維弋,金遠(yuǎn)平.基于CAN總線的通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,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-),男,黑龍江齊齊哈爾人,副教授,博士,主要從事無線傳感器網(wǎng)絡(luò)的研究.
2095-2198(2016)04-0362-04
10.3969/j.issn.2095-2198.2016.04.015
TP212.6
A