摘 要: 設計了一種基于CAN總線的自動離合器控制器,采用高性能微處理器XC878完成離合器控制器軟硬件開發。設計了離合器執行電機的驅動電路及自動離合器控制程序。針對離合器與發動機協調控制的需要,設計了CAN總線節點接口電路及一套簡單、實用、高效的CAN總線通信協議。試驗表明,所設計的自動離合器控制器在功能上滿足實際應用的需要,CAN通信模塊能夠準確無誤地收發數據,可靠性高。
關鍵詞: CAN總線; ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS" title="ACS">ACS; XC878單片機
隨著社會的發展,人們對汽車的舒適性和安全性要求越來越高,而手動檔汽車因其繁重的選換檔及離合器操作增加了駕駛難度。對于駕駛新手而言,又會產生坡道起步易熄火、油耗大、離合器磨損嚴重等問題[1]。自動檔汽車雖然駕駛操作簡單,但其造價高,開發難度大。本文設計的電控自動離合器ACS(Automatic Clutch System)是在手動變速箱基礎上安裝電控系統,取消離合踏板,實現自動離合。ACS的優勢十分明顯:與手動擋相比,其駕駛操控更為簡單,具有加速快、駕駛舒適的特點;與自動變速器汽車相比,ACS具有造價便宜、維修方便、經濟、省油。
1 系統功能
ACS將現代電子控制技術用于控制干式摩擦離合器,模擬優秀駕駛員的操縱動作和感覺,實現最佳的離合器結合規律,其實質是為汽車駕駛員配備一個操縱離合器的機械人,實現自動離合器的功能。本文設計的ACS控制器主要實現了如下幾大功能。
(1)換檔離合:控制器接收到換檔信號后,離合器迅速自動分離,換檔到位后離合器自動結合,結合規律由電控單元依據汽車行駛工況確定。
(2)坡道起步:駕駛員踩制動踏板,啟動發動機,將換檔手柄置于一檔或倒檔,松開手制動器,解除制動后不踩油門踏板汽車能夠自動慢速行駛,起步平穩,沖擊小,不熄火。
(3)熄火保護:汽車行駛過程中,車速和發動機轉速低于設定值后離合器自動分離,車速和發動機轉速高于設定值后離合器再自動結合。
(4)CAN通信:ACS控制器通過CAN總線接口與發動機控制器實現數據通信,為離合器與發動機的協調控制提供數據支持。
2 系統的硬件設計
2.1 控制器組成
自動離合器控制器原理框圖如圖1所示。本系統的微處理器選用英飛凌高性能的8位微處理器XC878CM,工作頻率最高可達27 MHz,其片內硬件資源十分豐富,片內集成了MultiCAN控制器、捕獲/比較單元6(CCU6)、高性能ADC模塊等。XC878CM出色的性能完全滿足本系統的設計需要。本系統的硬件部分主要包括電源模塊、數據采集模塊、CAN通信模塊、執行電機驅動模塊等。
(1)電源模塊 整車低壓控制系統通過12 V電池供電,8位MCU采用5 V供電。所以本系統需要采用電源芯片進行電壓的轉換和隔離。本系統選用英飛凌電源芯片TLE4290,該芯片可提供穩定的5 V電壓,誤差在2%以內,輸入電壓最高可達42 V。經測試,其工作可靠,滿足系統要求。
(2)CAN通信模塊 CAN通信模塊使用XC878CM片內MultiCAN控制器和英飛凌高速CAN收發器IFX1050G作為CAN通信的硬件組成。CAN模塊負責離合器控制器和發動機控制器之間的數據交換和共享,為發動機與離合器的協調控制提供數據通信支持。
(3)執行電機驅動模塊 本系統使用的執行電機為額定電壓為12V的直流電機。單片機使用一個IO口控制執行電機的轉動方向,一路PWM輸出控制電機的轉速。PWM波由單片機內含的CCU6模塊配置為比較模式產生。單片機通過英飛凌電機驅動芯片BTS7810K實現對執行電機的控制。
(4)數據采集模塊 本系統采集的數據主要有三種類型:開關量、模擬量、頻率量。開關量主要是指點火信號和駕駛員的掛檔信號等,通過單片機的I/O口采集。XC878CM單片機片內集成一個帶有8路模擬輸入選擇的高性能10 bit模數轉換器,可方便地用于模擬量的采集。XC878CM內含的CCU6模塊可配置工作在捕獲模式,用于采集車速傳感器發送來的頻率量信號。由于汽車環境干擾較大,信號采集電路需添加濾波、電壓調理等電路。此外,對于頻率量采集,由于接收的是脈沖信號,還需要使用施密特觸發器進行脈沖信號的整形。
2.2 電機驅動電路設計
離合器執行機構采用12 V直流電機驅動,單片機采用脈寬調制PWM技術控制電機轉速。PWM調速方法以控制簡單、動態響應效果好、調速范圍寬等優點成為應用十分廣泛的調速方法[2]。對直流電機轉動方向的控制需要通過搭建H橋電路實現,由于自行搭建的H橋電路及柵極驅動電路往往在可靠性方面很難保證。因此,本文選擇了集成的電機驅動芯片BTS7810K來驅動離合器執行電機。芯片BTS7810K是一款全橋電機驅動芯片,其內部集成了H橋電機驅動電路及柵極驅動電路,其工作頻率高達1 kHz以上,可方便可靠地實現對直流電機的控制。BTS7810K正常工作模式的輸入輸出特性如表1所示。
電機驅動電路如圖2所示,單片機使用一個I/O口輸出控制電機轉向,一路PWM輸出控制電機轉速。兩路控制信號通過一個與門和兩個非門組成的接口電路連接到驅動芯片的輸入端IH1、IH2。這樣做是為了保證兩個輸入端不同時為高電平,防止橋臂直通問題的出現,提高系統的安全性和可靠性。
2.3 CAN節點接口設計
CAN總線是德國Bosch公司20世紀90年代初為解決現代汽車中眾多控制與測試儀器之間的信息交換而開發的一種串行通信協議網絡[3]。它具有傳輸速率高、可靠性強和實時性好等特點,正好符合ACS與發動機協調控制的通信需要。對發動機和離合器進行綜合控制,充分利用發動機電子控制系統控制發動機轉速及時、準確的特點, 使之與離合器相互協調配合,將有利于離合器取得更好的控制效果,進而提高換擋品質[4]。
CAN節點硬件電路主要包括:帶有 CAN 控制器的微控制器和用于數據收發的CAN 收發器。本文選用的微處理器XC878CM帶有片內的CAN控制器,主要負責CAN的初始化和數據處理。MultiCAN模塊集成了除收發器外CAN總線控制器的所有功能。此外,MultiCAN還具有先進的驗收濾波功能、先進的數據管理、先進的中斷管理等優良特性。CAN 的收發器種類很多,本設計中選用英飛凌公司的高速收發器IFX1050G。CAN節點的接口電路圖如圖3所示。
3 軟件設計
電控單元ECU的控制軟件主要由離合器控制程序和CAN總線通信程序組成。
3.1 離合器控制軟件設計
離合器的控制程序包括三個部分:離合器分離控制程序、起步結合控制程序、換擋結合控制程序。其中分離控制程序比較簡單,ECU得到分離指令后,離合器全速分離,并且準確地在完全分離點停止即可。離合器的控制難點在于起步結合控制。離合器的起步結合過程既要保證車輛起步的平穩性、舒適性、起步不熄火,又要保證起步的快速性,減少滑摩功的產生,延長離合器使用壽命。因此,要取得較好的控制效果除了對離合器的結合量進行控制外,還要對離合器的結合速度進行控制,并通過與發動機的協調控制,提高控制效果。圖4為起步結合控制軟件流程圖。換擋過程中離合器的結合控制與起步控制在控制策略上類似,在此不再贅述。
3.2 CAN通信協議設計
CAN通信協議包括物理層、數據鏈路層和應用層。物理層和數據鏈路層是通過硬件實現的,在使用CAN通信時,需要開發者自行定義應用層協議。構造應用層協議的主要任務是ID分配、定義消息周期、確定信號與消息的映射關系。設計要考慮的主要因素有數據傳輸的實時性要求、數據的相對重要程度、與數據相關的應用控制算法對數據的時間要求等。國際上存在一些現有的標準,如CANopen、SAE J1939等。在一些利用簡單的通信協議就可以滿足要求的情況下,采用復雜的協議會造成資源浪費,用戶在應用時也會覺得諸多不便,反而限制了靈活性。本文設計的CAN總線網絡中僅有離合器控制器和發動機控制器兩個節點。針對僅有兩個節點的實驗平臺,本文從協議實現的代碼量、目標系統的信息量、軟件的開發成本等角度出發,定義一種簡單可靠的CAN協議。具體的通信協議定義如表2所示,標識符用來表示信息的優先級,標識符越小優先級越高。
4 CAN通信測試實驗
本文實驗是在自行搭建的離合器模擬實驗平臺上進行的。本實驗平臺是由離合器控制板、加速踏板、剎車踏板、相關傳感器、離合器執行機構及發動機模擬控制板組成。離合器控制板與發動機模擬控制板之間通過CAN總線通信。圖5為實驗過程中通過CAN總線傳送的檔位變化信息,圖6為通過CAN總線傳遞的加速踏板開度信號。
本文提出了一套電控自動離合器的控制器方案,并進行了系統的軟硬件開發,初步實現了自動離合器的基本功能,設計了CAN總線接口。在實驗平臺上驗證了控制器方案及CAN通信模塊的可行性和可靠性,為實車試驗打下基礎。
參考文獻
[1] 許曉紅.AMT汽車離合器自動控制系統的研制[D].蘇州:蘇州大學,2008.
[2] 莫易敏,姚琳,湯春球. 基于ATmega16的無刷直流電機調速系統[J].機電工程,2010,27(6):58-60.
[3] 吳慧英.基于CAN總線的工業測控系統應用研究[D].北京:北京航空航天大學,1996.
[4] 李永軍, 牛銘奎, 葛安林. 基于CAN總線的機械式自動 變速器綜合控制研究[J].農業機械學報,2000,31(2):12-
15.