畢恩興
(西安鐵路職業技術學院 陜西 西安 710014)
“飛思卡爾”智能車一般由:前瞻(路徑傳感器)、核心控制器、驅動器、測速模塊等部分組成[1]。為提高模型車的控制精度,引入車速閉環控制對于模型車在運行過程中的狀態控制是十分重要的。
文獻[1]與文獻[2]僅對速度測量傳感器的工作原理及如何安裝速度傳感器進行了說明,沒有考慮在實際的使用過程中如何從測速算法角度減小測速誤差,以及對不同數字測速算法的優缺點進行比較分析。筆者主要針對速度傳感器的信號輸出特點,設計了速度信號處理電路,針對數字測速的特點分別對M法、T法、M/T法這3種測速算法進行了分析、比較,最終選擇了測速范圍廣、測速誤差在一定范圍內較小的適合模型車測速的M/T法作為模型車測速算法并加以實現。通過實驗對測速算法進行了比較、分析,證明了理論分析的正確性,并為智能車測速提供了程序設計范例。
測速電路主要是由測速傳感器與信號處理電路組成。測速傳感器的功能是將速度信號轉換為電信號。信號處理電路的功能是將傳感器輸出的信號轉換為單片機可以識別的信號。
智能車競賽中,測速傳感器一般由發光二極管、光敏三極管與光柵組成,其工作原理是利用光柵遮擋發光二極管,使光敏三極管輸出頻率與轉速成線性關系的電壓信號,其結構如圖1所示[3]。

圖1 測速傳感器結構圖Fig.1 Speed sensor structure
針對速度傳感器的特點,在模型車車輪轉動時,通過光柵遮擋發光管,從而使光敏三極管產生頻率與速度成線性關系的電壓信號。對于單片機而言,由于是數字芯片,對于頻率與速度成線性關系的模擬電壓信號是不能直接識別的,故在此采用信號處理電路對速度信號進行調整,使其變為可以被單片機識別的數字脈沖信號。具體的信號處理流程如圖2所示,信號處理電路圖如圖3所示[4]。

圖2 速度信號處理流程Fig.2 Speed signal processing flow
由圖2可知,該信號處理電路首先對速度電壓信號進行削波處理,其次經過低通濾波器對高頻干擾進行濾除,通過遲滯比較電路將信號整形為正負電壓的方波信號,由于單片機只能識別邏輯正電平,故采用施密特觸發器與二極管D75將負電平去除從而得到可以被單片機識別的數字信號。

圖3 速度信號處理電路Fig.3 Speed signal processing circuit
測速模塊硬件的主要功能是:將頻率隨轉速變化的模擬信號送入信號處理電路,最終轉換成數字脈沖信號。單片機通過對脈沖計數就可以得到轉速的具體數值,該測量方法屬于數字測速的范疇。常用數字測速方法有:M法、T法和M/T法。
在一定的時間Tc內測取測速電路輸出的脈沖個數M1,用以計算這段時間內的平均轉速,稱為M法測速。如圖4所示。把M1除以Tc就可得到測速電路輸出脈沖的頻率f1=M1/Tc,所以又稱頻率法。電動機每轉一圈共產生Z個脈沖,把f1除以Z就得到電動機的轉速。在習慣上,時間Tc以秒為單位,而轉速是以每分鐘的轉數r/min為單位,則電動機的轉速為

上式中,Z和Tc均為常值,因此轉速n正比于脈沖數M1高速時M1大,量化誤差較小,隨著轉速的降低誤差增大,轉速過低時M1小于1,測速裝置便不能正常工作。所以M法測速只適用于高速段[5]。

圖4 M法測速原理Fig.4 M speed measurement algorithm
在測速電路兩個相鄰輸出脈沖的間隔時間內,用一個計數器對已知頻率為f0的高頻時鐘脈沖進行計數,并由此來計算轉速,稱作T法測速,如圖5所示。在這,測速時間源于編碼器輸出脈沖的周期,所以又稱周期法。在T法測速中,準確的測速時間Tt是用所得的高頻時鐘脈沖個數M2計算出來的,即Tt=M2/f0,則電動機轉速為

高速時M2小,量化誤差大,隨著轉速的降低誤差減小,所以T法測速適合用于低速段與M法恰好相反[5]。

圖5 T法測速原理Fig.5 T speed measurement algorithm
在M法和T法結合起來,即檢測Tc時間內測速電路輸出的脈沖個數M1,又檢測同一時間間隔的高頻時鐘脈沖個數M2,用來計算轉速,稱作M/T法測速。設高頻時鐘脈沖的頻率為f0,則準確的測速時間Tt=M2/f0,而電動機轉速為:

采用M/T法測速時,應保證高頻時鐘脈沖計數器與測速電路輸出脈沖計數器同時開啟與關閉,以減小誤差,如圖6所示。只有等到測速電路輸出脈沖前沿到達時,兩個計數器才同時允許開始或停止計數[5]。

圖6 M/T法測速原理Fig.6 M/T speed measurement algorithm
綜上所述,3種方法中M法在高速時誤差較小,低速時誤差較大。T法在低速時誤差較小,高速時誤差較大。M/T法測速范圍較廣,在高速時相當于M法,低速時相當于T法。對于智能車而言從啟動、加速到高速運行,速度范圍較廣,為了能夠在各種情況下對車速進行精確測量,采用M/T法較為適合。
M/T法的原理如圖6所示。該算法需要兩個脈沖計數器、一個允許計數定時器。并且要求兩個脈沖計數器根據脈沖邊沿同時開啟與關閉,故需要對脈沖信號的邊沿進行捕捉。Freescale MC9S12DG128單片機的ECT模塊可以實現定時功能,并且可以實現對脈沖邊沿捕捉的功能。
1)脈沖輸入捕捉、定時模塊
脈沖輸入捕捉、定時模塊的功能是:脈沖輸入捕捉中斷、定時器計數。與該模塊相關的控制寄存器有:TSCR1、TSCR2、ICSYS、TIOS、TCTL4、TIE。其分別可以完成:定時器使能、定時器分頻、輸入捕捉緩沖使能、觸發模式設定、邊沿觸發類型設定、中斷使能等功能[6-8]。
2)脈沖累加計數模塊
該模塊的功能是:實現對外部輸入脈沖進行累加計數。與該模塊功能相關的控制寄存器有:PACN01、PBCTL。分別可以實現:脈沖累加結果存儲、脈沖累加計數器級聯、脈沖累加計數器使能功能[6-8]。
3)模數向下計數定時模塊
該模塊的功能是:實現長度可控的定時,采用16位減法計數的方法。可以實現對允許計數時間的定時。與該模塊相關的控制寄存器有:MCCTL、MCCNT。分別可以實現:計數器工作模式設定、中斷使能、計數器使能、分頻系數設定、定時器初值設定等功能[6-8]。
速度測量算法主要通過3個模塊來實現:脈沖輸入捕捉定時模塊、脈沖累加計數模塊、模數向下計數定時模塊。測速程序主流程圖如圖7所示。

圖7 M/T法測速算法流程圖Fig.7 Flow chart of M/T method
由圖7可知,測速算法的實現,主要通過兩個中斷程序:脈沖輸入捕捉中斷程序、模數向下計數中斷程序,的嵌套實現。在中斷嵌套的同時,采用脈沖累加功能對測速電路輸出脈沖進行計數得到M1值,采用主定時器脈沖計數功能得到M2值,已知高頻脈沖計數頻率,通過公式3即可得到轉速。接下來就詳細介紹兩個模塊的實現流程。
1)脈沖輸入捕捉定時模塊
該模塊主要完成:輸入脈沖的邊沿捕捉、高頻定時脈沖的計數、脈沖累加計數功能。具體的程序流程圖如圖8所示。其中,實線方框內,箭頭所指的是相關寄存器設置所產生的功能說明,圖8左側流程圖為寄存器初始化等待中斷流程說明,右側流程圖為脈沖上升沿捕捉中斷響應程序,通過中斷程序設置固有長度定時器啟動,并且計算定時長度內的固有高頻脈沖數目M2。

圖8 脈沖捕捉定時模塊流程圖Fig.8 Flow chart of capture pulse timing module
2)模數向下定時計數模塊

圖9 模數向下定時計數模塊流程Fig.9 Flow chart of MCCNT module
該模塊主要實現:允許計數時間Tc的定時。具體的程序流程圖如圖9所示。其中,圖9左側流程圖為模數向下計數器控制寄存器初始化等待流程,右側流程圖為模數向下計數定時器中斷響應程序。在中斷響應程序中對測速電路輸出數字脈沖進行計數可以得出M1值,已知Z值,由通過公式3可求出具體的轉速 n(r/min)。
M/T算法實現主要包含:脈沖輸入捕捉初始化、脈沖捕捉中斷響應函數、模數先下計數定時中斷3部分。


為了對測速算法的準確性進行比較與分析,采用信號發生器模擬測速傳感器輸出信號,將標準信號發生器產生信號頻率值與測速算法所得頻率值進行比較。具體的實驗測試結果如表1所示。

表1 實驗測試結果Tab.1 Experimental results
根據表 1所測數據,令 δ為誤差率,根據 δ=(誤差/被測量)×100%,通過給定頻率的變化可以得出不同算法的誤差率變化曲線如圖10所示。

圖10 誤差率曲線Fig.10 Error rate curve
由圖10可以看出,采用不同的測速算法后實際的測試效果是不同的:M法適用于測量高速段;T法適用于測量低速段;M/T法測速范圍較廣,低速相當于T法測速,高速相當于M法。
通過對“飛思卡爾”智能模型車的測速模塊進行研究,根據速度傳感器的信號特點設計了測速信號處理電路。依據數字測速原理,對不同的速度測量方法進行了分析與比較,確定了M/T測速算法的適應性最廣,準確度最高。并以MC9S12DG128單片機為硬件開發環境實現了該算法,并通過實驗證明了其可靠性。
[1]韓毅,秦緒鑫,趙軒.基于反射式黑白碼盤的模型車測速裝置[J].計算機工程與設計.2009,30(24):5793-5795.
HAN Yi,QIN Xu-xin,ZHAO Xuan.Speed device of model car based on black and white stripe[J].Computer Engineering and Design.2009,30(24):5793-5795.
[2]雷貞永,謝光驥.飛思卡爾智能車舵機和測速的控制設計與實現[J].電子設計工程.2010,18(2):91-92.
LEI Zhen-yong,XIE Guang-ji.Design and implementation of Freescale smart car steering gear and gun control[J].Electronic Design Engineering.2010,18(2):91-92.
[3]彭軍.傳感器與檢測技術[M].西安:西安電子科技大學出版社,2003.
[4]林濤.模擬電子技術基礎[M].重慶:重慶大學出版社,2003
[5]陳伯時.電力拖動自動控制系統[M].北京:機械工業出版社,2003.
[6]邵貝貝.單片機嵌入式應用的在線開發方法[M].北京:清華大學出版社,2007.
[7]劉曉生,王宜懷.嵌入式系統使用HCS12微控制器的設計與應用[M].北京:航空航天大學,2008.
[8]孫同景,陳桂友.Freescale 9S12十六位單片機原理及嵌入式開發技術[M].北京:機械工業出版社,2008.