摘 要:本文根據非接觸式、高精度測速的需求,設計了一種基于ARM的便攜式紅外測速與數據存儲系統。該系統以STM32F407VET6為控制核心,以TCRT5000為測速光電傳感器,利用SDIO接口擴展TF卡,集成了讀卡器和CAN通信電路,并采用M/T法完成了高精度測速,實現了數據存儲、傳輸功能。該系統具有體積小、結構簡單以及便于攜帶的優點,已應用于絡筒機槽筒轉速檢測中。試驗結果表明,該系統轉速精度達到1‰。
關鍵詞:ARM;紅外測速;數據存儲;M/T法
中圖分類號:TN 29" " " " 文獻標志碼:A
在工程實踐中,經常會遇到各種需要測量轉速的場合,例如,在發動機、電動機和機床主軸等旋轉設備的試驗、運動和控制中,常常需要進行分時或連續測量,因此數字測速系統對精度的要求高。針對上述需求,本文設計了一種紅外測速和數據存儲系統。該系統使用紅外反射式光電傳感器,以ARM芯片為核心,采用M/T法計算轉速,系統將速度數據存儲在32 G的TF卡中,根據通信協議利用CAN接口發送速度數據。系統集成了讀卡器電路,可以利用USB線與電腦連接,讀取TF卡中存儲的數據。系統由鋰電池供電,采用低功耗設計,其具有體積小、質量輕以及便于攜帶的優點。
1 系統測速原理
光電檢測是一種非接觸式測量方法,使用光電測速不從被測件汲取能量,不破壞現場環境,因此是一種理想的測速方案。使用紅外線光能夠避免可見光的影響,提高系統的抗干擾能力,因此系統采用紅外光電進行測速。當進行測速時,將自制的黑白編碼盤粘貼在電機軸端。自制的黑白編碼盤是1張貼有白色反光紙條的黑色圓形紙片,如圖1所示。系統使用的測速傳感器是一體化紅外反射式光電傳感器,這個傳感器集成了紅發發射管和接收管。系統測速原理如下:將自制的黑白編碼盤粘貼在電機軸端,將一體化紅外反射式光電傳感器放在距離黑白編碼盤1 mm~30 mm的位置,發射紅外光信號,當遇到編碼盤的黑色部分時,吸收紅外光,接收管不導通,輸出低電平;當遇到編碼盤的白色部分時,反射紅外光,接收管飽和導通,輸出高電平。當粘有黑白編碼盤的電機轉動時,系統接收反映電機轉速的脈沖,穩定、準確地進行測速。
2 系統硬件設計
系統硬件采用ARM芯片STM32F407VET6單片機作為控制模塊的主控單元,外圍模塊包括電源模塊、一體化紅外反射式光電傳感器檢測模塊、CAN通信模塊、TF卡模塊以及讀卡器模塊。系統硬件框如圖2所示。
控制模塊由STM32F407VET6最小系統構成,其包括電源電路、時鐘電路、復位電路以及下載電路等。光電傳感器檢測模塊由光電傳感器TCRT5000和具有施密特觸發功能的SN74HC14D構成,具體電路如圖3所示。TF卡模塊和讀卡器模塊由TF卡、讀卡器芯片GL823K-HCY04、1∶2多路復用器TS3A27518ERTWR和USB接口等構成,TF卡的數據接口與多路復用器TS3A27518ERTWR公共端相連,選通端有兩路,一路與STM32F407VET6的SDIO接口相連,另一路與讀卡器芯片GL823K-HCY04相連。STM32F407VET6控制PD5管腳的高低電平來切換這2路信號。當PD5為低電平時,實現STM32F407VET6向TF卡寫入數據的功能;當PD5為高電平時,實現利用USB讀取TF卡數據的功能。CAN通信模塊由CAN芯片電源隔離電路和CAN通信電路構成。
紅外反射式光電傳感器測得的脈沖信號經過SN74HC14D整形后送入STM32F407VET6的定時器三捕獲通道PA6管腳,當STM32F407VET6捕獲到紅外反射式光電傳感器脈沖信號的上升沿后,開始計數并開啟定時器TIM1、TIM5和TIM8。定時器TIM1用于定時200 ms的測速周期。定時器TIM5的PWM通道1作為高頻脈沖發生器,產生頻率為5 MHz的方波,根據定時器的主從模式使用定時器TIM8進行高頻脈沖計數。當定時器TIM1定時200 ms到達時關閉定時器TIM1、TIM3、TIM5和TIM8并統計定時器TIM3捕獲脈沖上升沿的次數和定時器TIM8高頻脈沖的個數,采用M/T法計算轉速,將轉速數據存儲在TF卡并按照通信協議利用CAN接口發送轉速數據。開啟所有定時器TIM1、TIM3、TIM5和TIM8中斷,重復上述動作,得到轉速的實時數據。
2.1 電源模塊
系統采用7.4 V/3 000 mA的聚合物鋰電池供電,利用7.4 V經同步BUCK電路轉換得到系統5 V電源,由系統5 V電源利用LDO電路得到系統3.3 V電源。電源以及光電傳感器檢測電路如圖3所示。
2.2 紅外反射式光電傳感器檢測模塊
選擇TCRT5000紅外反射式光電傳感器,其是一種一體化反射型光電傳感器,集成了紅外發射管和接收管。發射管是1個紅外發光二極管,接收管是1個高靈敏度的光電三極管[1]。接收管的阻值對光線輕度變化極為敏感,當接收的紅外光線較弱時,其阻值可以達到500 kΩ;當接收的紅外光線較強時,其阻值可以降至30 Ω[2]。紅外反射式光電傳感器檢測電路如圖3所示,光電傳感器發射紅外光信號,當遇到編碼盤黑色部分時,吸收紅外光,沒有紅外光反射,經施密特觸發器整形后輸出低電平;當遇到編碼盤白色部分時,反射紅外光,接收管接收反射光,經施密特觸發器整形后輸出高電平。
2.3 控制模塊
STM32F407系列單片機是一款性能高、成本低的32位ARM微控制器,工作頻率為168 MHz,具有豐富的外設資源,例如FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、RTC和DMA等,集成度極高。綜合考慮成本以及系統后續擴展性,主控單元采用STM32F407VET6單片機。控制模塊包括STM32F407VET6最小系統,其主要功能是捕獲紅外反射式光電傳感器輸出的脈沖數,采用M/T法計算轉速,并定時將速度數據存儲在TF卡中,按照通信協議利用CAN接口發送數據。
2.4 TF卡模塊
由于Flash芯片容量小、成本高和讀寫數據速度慢,因此系統采用讀寫速度快、成本低且易于使用和更換的大容量TF卡。STM32F407VET6自帶SDIO接口,能夠方便地外擴1個32 GB的外部存儲器TF卡。SDIO接口驅動采用4位模式,通信速度最快達到24 Mbit/s。在PCB設計中應注意以下3點。1)TF卡信號走線為單端線,控制阻抗50 Ω。2)TF卡所有的信號線要盡量走在同一層,須做等長處理,以時鐘線為目標,誤差控制在7.620 mm以內。3)TF卡的時鐘信號與其他信號線的間距約為0.508 mm,須做包地處理。
2.5 讀卡器模塊
為了便于讀取TF卡中的數據,系統設計了讀卡器電路。讀卡器電路集成了Type-C接口,如圖4所示。TF卡的數據接口與多路復用器TS3A27518ERTWR公共端相連,選通端有2路,一路與STM32F407VET6的SDIO接口相連,另一路與讀卡器芯片GL823K-HCY04相連。STM32F407VET6控制PD5管腳的高低電平來切換這2路信號,當PD5為低電平時,實現STM32F407VET6向TF卡寫入數據的功能;當PD5為高電平時,利用USB讀取TF卡數據。USB1是Type-C接口,在PCB設計中應做90 Ω的阻抗匹配,USB_P、USB_N應走差分線。
2.6 CAN通信模塊
由于CAN通信具有可靠性高、實時性強以及傳輸速率高的特點,因此系統采用CAN通信。為了提高通信的可靠性和穩定性,保障系統安全,系統設計了CAN通信的隔離電路(如圖5所示)。系統5 V電源經過U8、U9產出隔離的5 V電源,單獨給隔離式CAN收發器CA-IS3050供電。CA-IS3050能夠承受高達5 000 Vrms的隔離電壓,信號傳輸速率最高達1 Mbit/s。電路能夠避免回流燒毀電路板并限制干擾幅度,增強系統的抗干擾能力。
3 系統軟件設計
3.1 M/T測速算法
數字式轉速測量的方法主要有M法、T法和同步M/T法。M法測速是在相等的時間間隔Δt讀取脈沖數M,由M/Δt計算轉速,速度越高,在Δt時間計得的M就越多,由±1個計數脈沖誤差所引起的轉速測量誤差就越小,因此該方法適用于高速。T法測速是根據相鄰2個脈沖時間間隔對應的時鐘脈沖計數值m來計算轉速的,轉速越慢或每轉脈沖數越多,其計數值m就越多,計數器±1個計數脈沖所引起的誤差就越小,因此該方法適用于低速。上述2種方法適用于對轉速測量實時性要求不高的場合。但是在動態測量和實時控制系統中,對轉速測量的實時性要求較高。該系統不僅要保證周期短,而且要保證測速精度高,因此采用M/T法[3-4]進行轉速測量。
采用M/T法進行測速,不僅可以對被測脈沖個數m1進行計數,而且可以對定時器所產生的高頻脈沖的個數m2進行計數。m1反映轉角,m2反映測速時間,經過計算得到轉速。使用該方法測量高速和低速,精度均較高。設f0為高頻時鐘脈沖的頻率,電機每轉1圈,光電傳感器發出p個脈沖,電機的轉速n如公式(1)所示。
3.2 基于M/T法的軟件設計
該系統的軟件設計主要是采集紅外光電傳感器輸出的脈沖信號,采用M/T法計算轉速,定時將速度數據存儲至TF卡中,并按照通信協議利用CAN接口發送轉速數據。系統軟件流程如圖6所示。
具體流程如下。1)系統初始化,主要完成系統時鐘和輸入輸出口初始化。2)CAN通信初始化,完成CAN通信工作模式、波特率以及CAN接口對應管腳和時鐘等配置。TF卡初始化,完成SDIO接口和時鐘的配置。定時器TIM1、TIM5、TIM8的初始化,配置定時器TIM1,實現定時200 ms的功能,來確定測速周期。配置定時器TIM5、TIM8,定時器TIM5的PWM通道一作為高頻脈沖發生器,產生頻率為5 MHz的方波,利用定時器的主從模式使用定時器TIM8進行高頻脈沖計數。3)定時器TIM3初始化,配置PA6為上升沿捕獲通道,并開啟捕獲中斷。4)當定時器TIM3捕獲通道PA6捕獲紅外光電傳感器輸出的脈沖上升沿時,同時開啟定時器TIM1、TIM5和TIM8。當定時器TIM1定時200 ms到達時,關閉所有定時器并統計定時器TIM3捕獲脈沖上升沿的次數和定時器TIM8的高頻脈沖的個數。根據轉速公式計算轉速,將轉速數據存儲在TF卡中并按照通信協議利用CAN接口發送轉速數據。再次開啟所有定時器中斷,進入下一次循環。
4 結語
基于ARM的便攜式紅外測速與數據存儲系統已成功應用于絡筒機槽筒轉速檢測過程中,由于采用一體化紅外反射式光電傳感器和微機化的M/T法數字測速,因此槽筒轉速精度達到±1‰。該系統體積小、成本低以及測量精度高,可以進一步推廣、應用。
參考文獻
[1]車瑋.基于SPCE061A單片機的智能消防車設計[J].自動化與儀器儀表,2016(2):227-229.
[2]劉金棟,高榮.基于光電傳感器的循跡車設計與實現[J].數字技術與應用,2014(1):148.
[3]馮夏永,賓鴻贊.微機轉速測量常用方法與精度分析[J].電子與自動化,1995(2):3.
[4]王文川,韓焱,張丕狀.基于時間-數字轉換的精密時差測量系統設計[J].現代電子技術,2009(4):21-23.