桑任仲,蔡艷波,馬世璽,王一婷
(東風汽車集團股份有限公司技術中心電子電器部,湖北 武漢 430058)
目前在各種換擋器中,小汽車上的自動擋一般只有P、R、N、D這4個位置信號,或者是P、R、N、D、+、-這6個位置信號。手動擋上位置根據變速器的擋位數決定,多數為1、2、3、4、5、N、R這7個位置,并且是雙排或者三排排列。但是在一些大型的商用車和貨車上面,換擋器很多是單排排列的,而且擋位最多的操作桿位置有1、2、3、4、5、6、7、N、R1、R2等超過10個位置。在這樣的條件下,每個擋位之間的距離很近,各個位置的信號相互干擾的可能性就很大了。
目前換擋器操作桿位置信號的采集,絕大部分采用磁信號的方式采集操作桿的位置信號,具體為:在操作桿上的某個位置加上磁鐵,當操作桿移動到某個位置,就會觸發相應位置的傳感器,從而換擋器的ECU就能讀到當前的傳感器狀態,得到操作桿當前的位置。
霍爾效應從本質上講是運動的帶電粒子在磁場中受洛侖茲力作用引起的偏轉。當帶電粒子 (電子或空穴) 被約束在固體材料中,這種偏轉就導致在垂直電流和磁場的方向上產生正負電荷的聚積,從而形成附加的橫向電場。
根據霍爾效應制作成的傳感器叫做霍爾傳感器,霍爾傳感器分為線型霍爾傳感器和開關型霍爾傳感器兩種。其中本課題中采用的是開關型霍爾傳感器來進行電路設計,通常也稱為霍爾開關。
如圖1所示,其中Bnp為工作點“開”的磁感應強度,BRP為釋放點“關”的磁感應強度。當外加的磁感應強度超過動作點Bnp時,傳感器輸出低電平,當磁感應強度降到動作點Bnp以下時,傳感器輸出電平不變,一直要降到釋放點BRP時,傳感器才由低電平躍變為高電平。Bnp與BRP之間的滯后使開關動作更為可靠。
霍爾的特性可以分為雙極性、單極性、線性、全極性4種。
1) 雙極性:感應南北磁場的變化,通常南 (S) 極感應,霍爾輸出低電平,直到北極 (N) 靠近,芯片輸出狀態翻轉為高電平,如此往復。
2) 單極性:只感應單向磁場,通常南 (S) 極靠近時輸出低電平,當南 (S) 極離開時,芯片輸出狀態翻轉為高電平,北 (N) 極感應始終是輸出高電平。
3) 線性:芯片的輸出電壓與磁場強度成正比,根據感應到的磁場極性和強度,芯片輸出電壓上升或下降。
4) 全極性:感應南 (S) 北 (N) 磁場的變化,在南(S) 磁場和北 (N) 磁場下均感應輸出高低電平變化信號。
根據擋位的設計需求,選用了HAL543單極性高靈敏度的霍爾開關,它的工作電壓在3~30V,磁場Bnp和BRP分別為120G和60G,工作的溫度-40~150℃,它由反向電壓保護、電壓調整器、霍爾電壓發生器、信號放大器、史密特觸發器和集電極開路的輸出級組成。
對一個永磁鐵的磁感應強度,它的兩端的磁場強度最大,但是軸線上移動的話,距離越遠,磁場強度越小,具體的磁場強度的變化滿足如下公式:

式中:L——圓柱體高度;x——軸心線上距離。
從公式 (1) 中可以得出,磁場強度會隨著距離增加而迅速降低,要觸發霍爾開關Bnp就必須要在一定范圍內,不能太遠,但是太近也會造成其他擋位的霍爾開發被觸發,或者在離開這個擋位時,磁場強度不能低于BRP而關閉不了此霍爾開關。因此在霍爾開關與磁鐵的距離是設計中重點考慮的一項。
在換擋器中,擋位的信號是最重要的,將擋位信號的采集放在優先級最高,只要信號發生變化,就直接進行處理,以確保擋位的信息能及時傳遞進來。所以在電路設計時將這些霍爾開關的信號接入單片機的中斷口,以便軟件能進行中斷響應。
電路板PCB設計一般依據于機械結構的設計,一個機械設計的模塊定下來之后,整個操作桿的移動范圍就定下來了。每個擋位操作桿停的位置也定下來后,在電路板布置的時候,需要將每個霍爾開關與每個操作桿停止的位置一致,在垂直方向上,操作桿上磁鐵的位置和霍爾開關是重合的,這樣才能保證磁場強度足夠大,觸發相應的霍爾開關。
先在底層的程序中,將霍爾開關的接入口定義成中斷接口,在設計中斷類型的時候將它們設置成下降沿觸發,即只要有霍爾開關是從關信號變成開信號就會觸發中斷程序,當進入中斷程序再進行程序的判斷,具體的算法如圖2所示。
一款多擋位信號的手動換擋器在產品驗收的時候,發現某個擋位信號無法讀取,即當操作桿移動至某個位置的時候,發出來的信號沒有變化。

圖2 擋位信號采集的軟件流程圖
通過軟件排查時,發現程序雖然進入了中斷程序但是進入邏輯判斷語句后就直接跳出了,說明程序在邏輯判斷時沒有找到相應的程序入口,它就直接跳出了,致使數據沒有存入CAN緩存區,導致換擋器發出的信息也就不會變化。
用示波器對霍爾開關的輸出信號進行檢測時,換擋器操作桿移動這個發出信號的位置再移回來,示波器抓到的波形如圖3所示,在示波器的綠色波形進入下降沿的時候,表示這時該位置霍爾開關已經開啟,但是此時的黃色波形還是低電平,說明它對應的霍爾開關還沒有關閉,此時采集進來的霍爾開關信號有2個起作用,所以程序進入中斷程序后找不到對應的擋位信息,擋位信息不能進入CAN的數據緩存器;相反后面黃色波形進入下降沿的時候,綠色已經變成高電平了,所以這時程序進入中斷程序,采集到的信息就有對應的擋位信息,即可將此信號存入CAN緩存器。

圖3 采集到的霍爾開關信號波形
由于此換擋器是一個多擋位的手動換擋器,有1、2、3、4、5、6、7、8、N、R1、R2共11個擋位,而且操作桿的設計運行軌跡也是在一個平面內,造成了操作桿停留的位置也很多,對應的霍爾開關在電路板的布置比較緊密;再加之有些器件存在個體性差異和器件安裝時存在著一定的安裝誤差,從而造成了某些霍爾開關之間的距離較近,當操作桿上的磁鐵在某個擋位時,觸發了一個霍爾開啟,但另一個開關卻還沒有關閉的現象。
由于之前的程序設計時,為快速響應擋位信息的采集,采用了中斷處理程序,在程序進入中斷時,直接采集擋位信息,此時讀到的是2個霍爾開關同時開啟的信息,由于不能有2個擋位信息同時出現的工況,所以判斷這次讀取到的擋位信息為無效值。程序只有每觸發一次霍爾開關才會執行一次中斷,當這次中斷完畢后,沒有新的觸發信息,程序就不會再進入中斷程序,即使后面出現了準確的擋位信息,由于進入不了中斷程序導致后面的擋位信息無法讀取到。
由于換擋器操作桿的運動都需要一定的時間,從一個擋位到下一個擋位一般在200~300ms,所以進入中斷后,針對這個程序進入讀取不到有效擋位信息時,需要等到操作桿真正進入有效擋位信息,才能讀取擋位信息。于是在軟件的邏輯設計時,又重新設計了一套軟件算法,即采用中斷程序和循環掃描兼顧的方案,軟件流程圖如圖4所示。
程序進入中斷程序之后,就開始設置一個標志位,判斷擋位已經發生變化了,再以50ms的周期進行程序掃描,來判斷當前的擋位信息是否有效,當信息為有效值,才進行記錄,并將此最新的擋位信息發送出去,將之前設計的標志位清零。這樣既能保證對擋位信息的快速響應,也具有很強的糾錯能力,能夠過濾掉一些無用的擋位信息。
按照上述方案進行整改后,之前有擋位丟失的換擋器已經沒有再出現擋位丟失的現象,而且后續所有的換擋器也未再出現擋位丟失,說明整改方案的算法是準確的。