李鑫 宣子旺 張雍斌 李國建 路林吉
(1國網(wǎng)上海市電力公司,上海,200335;2挪威船級社(中國)有限公司,上海,200336;3上海交通大學(xué)自動化系,上海,200240)
汽車座椅是人們駕駛汽車時的必要配置。只有汽車座椅調(diào)節(jié)至恰當(dāng)?shù)奈恢?,駕駛員才能更加舒適、方便地駕駛汽車。為了解決座椅調(diào)節(jié)的問題,汽車電動座椅應(yīng)運而生。
汽車電動座椅是一種實現(xiàn)駕駛舒適性的可調(diào)節(jié)裝置,同時兼有一定程度的安全功能。電動座椅的發(fā)展過程經(jīng)歷了3個階段:無調(diào)整或簡單調(diào)整階段、電動調(diào)整階段,記憶存儲式調(diào)整階段。未來電動座椅將朝著兩個方向發(fā)展,一個是與汽車主動安全系統(tǒng)等其他電子控制系統(tǒng)更加緊密地聯(lián)系起來,在實現(xiàn)舒適和方便駕駛的功能下更能保護駕駛員的行車安全;另一個是更加智能化,不僅可以對記憶位置進行調(diào)節(jié),還可以通過檢測周圍環(huán)境和駕駛員狀態(tài)智能地調(diào)節(jié)座椅位置,使駕駛員獲得更好地駕駛體驗。
在電動座椅控制系統(tǒng)的軟硬件設(shè)計過程中,因硬件設(shè)計工程師在設(shè)計上容易出現(xiàn)一些疏漏,而且不同的工程師設(shè)計思路也不一樣,同時為了能夠最大程度提高設(shè)計的標(biāo)準(zhǔn)化和可靠性,本文采用基于標(biāo)準(zhǔn)軟硬件模塊數(shù)據(jù)庫的設(shè)計方法來設(shè)計相關(guān)的控制系統(tǒng)軟硬件。具體操作過程是:在硬件設(shè)計方面,首先從標(biāo)準(zhǔn)模塊數(shù)據(jù)庫中選擇不同功能的模塊,然后按照既定規(guī)則組建成硬件電路,這樣不僅可以有效地降低硬件工程師在設(shè)計上的錯誤率,提高設(shè)計效率,也有利于設(shè)計的規(guī)范化和標(biāo)準(zhǔn)化;在軟件設(shè)計方面,工程師從標(biāo)準(zhǔn)模塊庫中調(diào)用需要的功能模塊,由于相應(yīng)的功能模塊已經(jīng)封裝好相關(guān)的底層程序,只需要完成主程序的設(shè)計就可以實現(xiàn)所有功能,這樣便可以提高軟件的開發(fā)效率,實現(xiàn)搭積木式的編程。
本文設(shè)計了一款汽車電動座椅,其電機由靠背肩部電機、靠背電機、高度電機、水平電機等組成,具體如圖1所示。
圖1 汽車座椅及相關(guān)電機運動方向
汽車電動調(diào)節(jié)座椅具有基本模式、舒服模式、復(fù)位模式3種方式。
1)基本模式:通過上位機指令可以控制座椅靠背電機、座墊高度調(diào)節(jié)電機、座墊傾角電機、座墊水平電機4個電機的正轉(zhuǎn)、反轉(zhuǎn)和停止功能。
2)舒服模式:通過上位機指令可以控制靠背肩部電機、腿托前后電機、腿托旋轉(zhuǎn)電機3個電機的正轉(zhuǎn)、反轉(zhuǎn)和停止功能。
3)復(fù)位模式:連續(xù)按兩次模式設(shè)置按鈕,系統(tǒng)進入復(fù)位模式,此時所有電機運行到設(shè)定的零點位置。
電動座椅控制系統(tǒng)上位機和控制器之間可采用有線和無線兩種通信方式,具體為:
1)由于是近距離通信,故可以采用UART有線串口通信。
2)也可以采用無線藍牙通信方式。
電動座椅控制系統(tǒng)采用無刷直流電動機作為動力驅(qū)動,可實現(xiàn)座椅靠背前后調(diào)節(jié)、腿托前后調(diào)節(jié)、座墊傾角位置調(diào)節(jié)等功能,駕駛員可根據(jù)自身的舒適程度進行相應(yīng)的設(shè)置和調(diào)節(jié)。
1.4.1 堵轉(zhuǎn)保護
當(dāng)電機空載運行電流為4A時,若電流大于額定電流的3.5倍以上,則認(rèn)為是電機發(fā)生堵轉(zhuǎn)現(xiàn)象。此時可利用電流互感器,對電機電流值進行采集,并對采集的數(shù)據(jù)進行判斷。對于電機發(fā)生堵轉(zhuǎn),需要采取的措施是關(guān)閉電機轉(zhuǎn)動,查找故障原因。這樣可以保護電機,使其不會因為過載而被燒毀。
電機軸上裝有永久磁鐵,通過電機軸的旋轉(zhuǎn),給供電的霍爾元件輸出高低電平變化脈沖,從而實現(xiàn)轉(zhuǎn)動圈數(shù)計數(shù)。當(dāng)電機正常運行時,其霍爾傳感器位置檢測輸出規(guī)則的高低電平方波(高電平5V,低電平0V)。當(dāng)電機處于堵轉(zhuǎn)時,霍爾傳感器位置檢測輸出高或低電平,因此單片機可以通過電平變化的狀態(tài),判斷電機是否處于堵轉(zhuǎn)狀態(tài)。
1.4.2 控制系統(tǒng)電壓保護
電動座椅控制器采用12V的電源電壓供電。當(dāng)供電電壓跌落到8.0V時或大于15.5V時,單片機停止工作,同時發(fā)出不同聲響的報警音。
1.4.3 輸出端口隔離保護
座椅控制器對信號的采集和輸出,均采用小型雙向隔離光耦,其具有抗干擾能力強、性能穩(wěn)定等優(yōu)點,同時光耦控制板采用容錯設(shè)計,即使控制線斷開,繼電器也不會發(fā)生任何動作。
圖2所示為電動座椅控制系統(tǒng)總體框圖。其中,上位機(計算機)采用無線藍牙或USB通信線與下位機(嵌入式座椅控制器)連接,上位機軟件采用C#語言來設(shè)計相關(guān)界面。上位機操作界面上有M1(基本模式)、M2(舒服模式)、M3(復(fù)位模式)3種狀態(tài)的設(shè)置按鈕,其初始設(shè)定值在出廠時已設(shè)置好,分別點擊M1、M2、M3按鈕,座椅便會自動進行相應(yīng)的運行。此外,上位機操作界面上還有一個復(fù)位按鈕,按下該按鈕,座椅上的7個電機同時轉(zhuǎn)動,系統(tǒng)恢復(fù)到初始狀態(tài)。
圖2 電動座椅控制系統(tǒng)硬件總體設(shè)計框圖
座椅控制器采用具有51內(nèi)核的單片機STC8H8K64U,其可提供豐富的數(shù)字外設(shè)(串口、定時器、高級PWM以及RC、SPI、USB)接口與模擬外設(shè)(超高速ADC、比較器)端口,便于實現(xiàn)各種輸入/輸出控制。電機的正反轉(zhuǎn)可利用16路12V單刀雙擲繼電器進行切換來實現(xiàn)。
為了簡化系統(tǒng)上位機和下位機的編程,降低難度,本文設(shè)計上位機和下位機之間采用藍牙串口透傳模塊通信,這樣二者之間的通信編程就轉(zhuǎn)化為串口編程。本文選擇HC-08藍牙模塊,這是目前行業(yè)內(nèi)采用的一款主流的藍牙模塊,具有低功耗、操作簡單、通信效果好等優(yōu)點。
根據(jù)硬件設(shè)計原理框圖分析,電動座椅控制系統(tǒng)需要16個輸出口控制繼電器、8個輸入口檢測轉(zhuǎn)動圈數(shù)、8個輸入口檢測堵轉(zhuǎn)過流、2個串口連接藍牙模塊,因此本文選用STC8H8K64U開發(fā)板,其端口數(shù)量足夠多,可滿足使用要求。
當(dāng)駕駛員通過上位機上的按鈕調(diào)節(jié)座椅模式時,座椅控制器對上位機發(fā)來的命令字進行解析,以便控制端口的電壓變化,達到開啟或關(guān)閉繼電器、實現(xiàn)電流方向變化的目的。電動座椅的驅(qū)動電機連接在兩個繼電器的動靜觸點上,可利用兩個繼電器的常開與常閉觸點電源的流向變換,實現(xiàn)電機的正反轉(zhuǎn)。
當(dāng)駕駛員按下座椅高度電機朝上的箭頭時,上位機發(fā)出高度電機正轉(zhuǎn)的指令,座椅控制器對指令進行解析后,K1的標(biāo)號輸出高電平,三極管Q1輸出高電平,K1繼電器吸合,此時12V電源的電流經(jīng)過K2繼電器常閉點到直流電機的正極,電機的負(fù)極與K1的常開點相連,K1觸點另一端接地,實現(xiàn)電機正轉(zhuǎn)。當(dāng)轉(zhuǎn)到限位點時,上位機的按鍵顯示紅色。當(dāng)駕駛員按下座椅高度電機向下的箭頭時,則K1和K2功能互換。電機正反轉(zhuǎn)控制控制原理如圖3所示。
圖3 電機正反轉(zhuǎn)控制原理
電動座椅系統(tǒng)整個硬件電路主要由主控模塊、藍牙通信模塊、電機驅(qū)動模塊(繼電器模塊)、霍爾電流檢測模塊、電源轉(zhuǎn)換模塊(12V轉(zhuǎn)5V)、USB轉(zhuǎn)串口模塊、復(fù)位模塊等組成。其中,每種類型的模塊都可以重復(fù)調(diào)用,尤其是電機驅(qū)動模塊和霍爾電流檢測模塊。因此每一類硬件模塊可以設(shè)計出一種典型的應(yīng)用電路增添到模塊數(shù)據(jù)庫中,然后在硬件設(shè)計過程中直接從數(shù)據(jù)庫中調(diào)用相應(yīng)的硬件模塊,應(yīng)用基于硬件與主控模塊之間的連接規(guī)則的硬件電路自動連線算法,最終自動生成系統(tǒng)的整體硬件電路。
系統(tǒng)硬件設(shè)計的具體步驟如下:
1)根據(jù)需求確定硬件的總體設(shè)計框圖;
2)根據(jù)設(shè)計框圖確定各個硬件功能模塊的類型和數(shù)量;
3)從標(biāo)準(zhǔn)數(shù)據(jù)庫中調(diào)用相應(yīng)類型的功能模塊;
4)根據(jù)基于權(quán)重優(yōu)先的硬件連接算法實現(xiàn)各功能模塊之間的自動連接功能;
5)檢查確認(rèn)整體硬件電路設(shè)計是否正確。
電動座椅控制器用來控制座椅電機運動,其核心在于主控程序。主控程序由有線通信、藍牙通信、霍爾計數(shù)、堵轉(zhuǎn)檢測、位置記憶、電機控制等子程序模塊組成。每個模塊可以實現(xiàn)不同的功能,統(tǒng)一由主控程序控制。電動座椅控制器主控程序框圖如圖4所示。
圖4 電動座椅控制器主控程序框圖
1)有線通信模塊:上位機和下位機之間的通信采用波特率為9600、無校驗、4個字符的通信協(xié)議,字符格式為ASCII代碼。
2)藍牙模塊:上位機和下位機之間采用藍牙串口透傳模塊通信,上位機按相關(guān)協(xié)議發(fā)送命令字。
3)霍爾計數(shù)模塊:單片機采用外部中斷計數(shù)方式計數(shù),當(dāng)霍爾由低到高變化1次,數(shù)值上加1,這樣可有效計算電機旋轉(zhuǎn)角度。
4)堵轉(zhuǎn)檢測模塊:單片機利用外部中斷來監(jiān)測霍爾傳感器的輸出電平變化,從而判斷電機是否處于堵轉(zhuǎn)狀態(tài)。
5)位置存儲模塊:通過I2C串行總線,可對EEPROM存儲器的數(shù)據(jù)進行讀出和寫入,從而保存相應(yīng)的電機位置數(shù)據(jù)。
6)復(fù)位模塊:通過上位機的復(fù)位按鈕,可恢復(fù)到出廠設(shè)置狀態(tài)。
7)電機控制模塊:通過繼電器的觸點變換,改變電流的流向,從而實現(xiàn)電機的正反轉(zhuǎn)。
座椅控制器主程序是一個一直在循環(huán)的過程,只要開機,軟件系統(tǒng)將按照圖5所示的流程一直運行。當(dāng)座椅控制器檢測到上位機通過USB或者藍牙發(fā)來的通信數(shù)據(jù)時,便會按照相關(guān)通信協(xié)議進行解析,從而控制相關(guān)電機進行動作。
圖5 座椅控制器主程序流程圖
同步控制是指一個坐標(biāo)的運動指令能夠驅(qū)動多個電機同時運行,通過對多個電機移動量的檢測,將位移偏差反饋到數(shù)控系統(tǒng)獲得同步誤差補償。
1)基本模式:座椅靠背電機、座墊高度調(diào)節(jié)電機、座墊傾角電機、座墊水平電機的機械運動角度和行程各不相同,而且這些電機都需要同步控制。因此,把霍爾傳感器信號作為反饋計數(shù)信號,利用單片機對霍爾傳感器計數(shù),其相關(guān)數(shù)據(jù)可轉(zhuǎn)換為運動行程,確保多個電機同步控制的穩(wěn)定性、控制精度和運行狀況平穩(wěn)。
2)舒適模式:靠背肩部電機、腿托前后電機、腿托旋轉(zhuǎn)電機的行程各不相同,利用霍爾計數(shù)數(shù)據(jù)和電機行程長度的對應(yīng)關(guān)系,將計數(shù)數(shù)據(jù)轉(zhuǎn)換為運動行程。其控制方式和基本模式相似。
3)復(fù)位模式:在運行該模式時,需要以基本模式和舒適模式的最后數(shù)據(jù)為起始數(shù)據(jù),同步控制7個電機運動,采用PID控制算法,以霍爾傳感器為位置檢測反饋信號,確保每一個電機運行穩(wěn)定可靠,座椅系統(tǒng)整體運行到駕駛員最初設(shè)置的位置。
由于主程序控制框圖中各個模塊的底層驅(qū)動程序與系統(tǒng)相關(guān)硬件是關(guān)聯(lián)的,而且所采用的PID控制算法等多種算法的實現(xiàn)程序結(jié)構(gòu)不變,所以可將各個模塊的底層驅(qū)動程序和算法的實現(xiàn)程序封裝成標(biāo)準(zhǔn)子程序,做成軟件模塊數(shù)據(jù)庫。這樣在進行系統(tǒng)軟件設(shè)計時,就可以直接調(diào)用軟件子程序數(shù)據(jù)庫中相應(yīng)的子程序,有效減少軟件編程的工作量,提高設(shè)計效率,也能進一步優(yōu)化軟件架構(gòu),降低調(diào)試難度。
系統(tǒng)軟件設(shè)計的具體步驟如下:
1)在硬件設(shè)計完成的基礎(chǔ)上,編寫相應(yīng)模塊的底層驅(qū)動程序,如電機驅(qū)動程序、藍牙模塊驅(qū)動程序、PID控制算法程序等,將其封裝成標(biāo)準(zhǔn)子程序,導(dǎo)入子程序數(shù)據(jù)庫中;
2)設(shè)計主程序的總體軟件流程圖,梳理控制邏輯;
3)根據(jù)總體軟件流程圖自動生成相關(guān)的全局變量和主程序;
4)在主程序的后面,根據(jù)流程圖的順序依次調(diào)入相關(guān)的標(biāo)準(zhǔn)子程序模塊;
5)判斷流程圖中標(biāo)準(zhǔn)子程序是否多次調(diào)用,如果屬于多次調(diào)用,則只在源程序中出現(xiàn)一次;
6)進行程序測試與優(yōu)化。
電動座椅控制系統(tǒng)設(shè)計完成后,本文對其進行了驗證,整個系統(tǒng)累計測試次數(shù)達5000次,并未發(fā)生一次故障。測試結(jié)果表明:電動座椅可實現(xiàn)基本模式、舒適模式、復(fù)位模式等功能,而且控制系統(tǒng)的穩(wěn)定性好、控制精度高、運行狀況良好。
本文設(shè)計的基于嵌入式軟硬件自動化的汽車電動座椅控制系統(tǒng),具備基本模式、舒適模式、復(fù)位模式等功能,不僅解決了因工程師技術(shù)水平參差不一而導(dǎo)致的達不到客戶要求的情況,同時還避免了設(shè)計過程中要反復(fù)修改、工期拉長的情況。采用自動化設(shè)計方案,可使嵌入式控制系統(tǒng)軟硬件實現(xiàn)模塊化、標(biāo)準(zhǔn)化以及設(shè)計的快速化。自動化設(shè)計方法正在得到越來越多的研發(fā)工程師的認(rèn)可,在嵌入式控制系統(tǒng)的研發(fā)中使用也越來越廣泛。