劉文英,鄒洪波,王 東,劉光宇*
(1.杭州電子科技大學(xué) 信息與控制研究所,浙江 杭州 310018;2.集瑞重工研究院,安徽 蕪湖 241080)
隨著電子設(shè)備的不斷增加造成導(dǎo)線數(shù)量增加,使得在汽車內(nèi)有限的空間中布線變得日益困難,從某種程度上限制了汽車電子功能的拓展。采用總線技術(shù),并通過(guò)電控系統(tǒng)網(wǎng)絡(luò)化控制[1]能有效減少線束使用,降低車內(nèi)布線難度?,F(xiàn)有LIN 總線組合開(kāi)關(guān)基于SCI/UART 數(shù)據(jù)格式,采用單主機(jī)多從機(jī)模式,總線由3 根導(dǎo)線組成(電源、地線和數(shù)據(jù)線)[2-3]。由于每個(gè)組合開(kāi)關(guān)上器件I/O 口數(shù)量有限,則能檢測(cè)的開(kāi)關(guān)量也有限,在應(yīng)用中若需增加開(kāi)關(guān)量進(jìn)行功能擴(kuò)展,需要接入多個(gè)組合開(kāi)關(guān)。但由于過(guò)多節(jié)點(diǎn)將導(dǎo)致網(wǎng)絡(luò)阻抗過(guò)低、降低通訊效率,一個(gè)LIN 網(wǎng)絡(luò)中節(jié)點(diǎn)總數(shù)不宜超過(guò)16[4],使得組合開(kāi)關(guān)的擴(kuò)展受到限制。隨著汽車總線中通訊節(jié)點(diǎn)和數(shù)據(jù)流量持續(xù)增加,節(jié)點(diǎn)日益復(fù)雜,使得汽車總線在重量、布置、成本、通信效率等方面面臨困境。
本研究針對(duì)現(xiàn)有組合開(kāi)關(guān)不易擴(kuò)展、應(yīng)用不靈活等問(wèn)題,設(shè)計(jì)一款基于CAN 總線和UART 總線的汽車組合開(kāi)關(guān)。由于采用CAN 總線通訊的組合開(kāi)關(guān)只使用兩根線進(jìn)行通訊,不僅可提高數(shù)據(jù)傳輸?shù)目煽啃院桶惭b便捷性,同時(shí)可減少線束的使用。使用者應(yīng)用該組合開(kāi)關(guān)時(shí),只需將組合開(kāi)關(guān)主節(jié)點(diǎn)連接到車內(nèi)CAN總線上,根據(jù)需要連接部分從節(jié)點(diǎn),便可檢測(cè)多個(gè)開(kāi)關(guān)節(jié)點(diǎn)的按鍵狀態(tài)。不僅可減少線束使用,方便車內(nèi)布線,而且易于擴(kuò)展,可至少連接30個(gè)開(kāi)關(guān)節(jié)點(diǎn),擴(kuò)展的各從節(jié)點(diǎn)上的開(kāi)關(guān)信號(hào)的對(duì)應(yīng)功能可由使用者根據(jù)需要在汽車電控單元自行定義。該組合開(kāi)關(guān)還設(shè)計(jì)低功耗模式,具有休眠、喚醒功能。
該組合開(kāi)關(guān)由一個(gè)主節(jié)點(diǎn)和多個(gè)開(kāi)關(guān)從節(jié)點(diǎn)組成,整體結(jié)構(gòu)如圖1 所示?;赟TM32 系列微控制器的主節(jié)點(diǎn)作為組合開(kāi)關(guān)的核心,負(fù)責(zé)協(xié)調(diào)各開(kāi)關(guān)節(jié)點(diǎn)與汽車電控單元間的通訊。主節(jié)點(diǎn)一方面通過(guò)串行通訊總線檢測(cè)各開(kāi)關(guān)節(jié)點(diǎn)的按鍵狀態(tài),并將電控單元的工作指示傳送給各開(kāi)關(guān)節(jié)點(diǎn)。另一方面通過(guò)CAN 總線與汽車電控單元通訊,上傳實(shí)時(shí)檢測(cè)的按鍵狀態(tài)。汽車電控單元根據(jù)接收到的按鍵狀態(tài)操作相應(yīng)的設(shè)備,并將設(shè)備當(dāng)前的工作狀態(tài)通過(guò)主節(jié)點(diǎn)反饋給各開(kāi)關(guān)節(jié)點(diǎn)作為工作指示。
圖1 組合開(kāi)關(guān)結(jié)構(gòu)框圖
主節(jié)點(diǎn)是組合開(kāi)關(guān)的核心,由STM32 最小系統(tǒng)、電源模塊、CAN 收發(fā)單元及串行通訊電平轉(zhuǎn)換電路組成。主節(jié)點(diǎn)采用ST 公司Cortex-M3 內(nèi)核的32 位閃存微處理器STM32F103C8T6[5],其內(nèi)部集成了CAN 控制器和串行通訊接口。該處理器具有3種低功耗模式:睡眠模式、停止模式和待機(jī)模式,在停止模式,其功耗可以低至幾十個(gè)微安。
整車為組合開(kāi)關(guān)提供的電源為24 V,經(jīng)過(guò)可調(diào)輸出穩(wěn)壓器LM2576D2T_ADJR4G 降壓后給各開(kāi)關(guān)節(jié)點(diǎn)及主節(jié)點(diǎn)上的5 V 芯片供電。LM2576 的工作電路如圖2 所示。LM2576 具有7 V~45 V 寬輸入電壓范圍,TTL 關(guān)斷能力[6]。其最大輸出電流有3 A,這樣的帶載能力保證系統(tǒng)可以連接至少30個(gè)開(kāi)關(guān)節(jié)點(diǎn)。組合開(kāi)關(guān)進(jìn)入休眠模式后,主要功耗為穩(wěn)壓器的靜態(tài)功耗,為降低系統(tǒng)的休眠功耗,筆者在設(shè)計(jì)中使用NE555 定時(shí)器控制LM2576 的使能引腳,使其在系統(tǒng)休眠期間間歇式工作。在系統(tǒng)進(jìn)入休眠模式前,STM32 輸出NE555 使能信號(hào),使NE555 工作輸出一定占空比的定時(shí)信號(hào)POWER_OFF,控制LM2576 使其定時(shí)關(guān)斷,在其關(guān)斷期間使用1 000 μF 電容儲(chǔ)能為進(jìn)入休眠狀態(tài)的組合開(kāi)關(guān)主從節(jié)點(diǎn)供電。
圖2 電源模塊電路
CAN 總線自20 世紀(jì)80年代初由Bosch 公司開(kāi)發(fā)以來(lái),迅速得到廣泛應(yīng)用,成為汽車領(lǐng)域應(yīng)用最廣泛的總線標(biāo)準(zhǔn)[7-8]。汽車內(nèi)部有2 條CAN 通訊線(CANH和CANL)貫通車身,構(gòu)成CAN 網(wǎng)絡(luò)的主干通訊通道,所有CAN 節(jié)點(diǎn)可以掛接在主通道的任意位置。該組合開(kāi)關(guān)也設(shè)計(jì)了CAN 總線通訊接口,可以作為一個(gè)獨(dú)立的節(jié)點(diǎn),直接掛在總線上。STM32F103C8T6 內(nèi)部集成了CAN 控制器,只需外加CAN 收發(fā)器即可工作。本研究選用CAN 收發(fā)器NCV7340D12R2G[9],該器件具有正常和靜默2種工作模式,由8 號(hào)引腳控制,在靜默模式下其典型功耗僅為10 μA。
主節(jié)點(diǎn)與開(kāi)關(guān)節(jié)點(diǎn)采用UART 串行通訊,接口采用三線制,分別是5 V 電源線、信號(hào)線和地線。為了防止電源線上的傳導(dǎo)干擾引入通信線路,本研究使用單獨(dú)的信號(hào)線通訊,另外為了減少線束,收、發(fā)數(shù)據(jù)共用一根信號(hào)線。信號(hào)線上采用24 V 的電壓通信,以提高信號(hào)傳輸過(guò)程的抗干擾能力,主節(jié)點(diǎn)和開(kāi)關(guān)節(jié)點(diǎn)各設(shè)計(jì)了相應(yīng)的電平轉(zhuǎn)換電路,將24 V 的信號(hào),分別轉(zhuǎn)換為3.3 V和5 V 的串行通訊信號(hào),送給各自的主控制芯片。
主節(jié)點(diǎn)串行接收電平轉(zhuǎn)換電路如圖3 所示,VIN為信號(hào)線。當(dāng)開(kāi)關(guān)節(jié)點(diǎn)發(fā)送信號(hào)為5 V 高電平時(shí),經(jīng)過(guò)從節(jié)點(diǎn)內(nèi)部電平轉(zhuǎn)換電路將信號(hào)轉(zhuǎn)換為24 V 在信號(hào)線上傳輸,VIN 端為24 V 高電平,此時(shí)圖3 中三極管Q3、Q4都截止,主節(jié)點(diǎn)串行接收引腳USART2_RX上為3.3 V 高電平。反之,所有三極管都導(dǎo)通,USART2_RX 上為低電平。主節(jié)點(diǎn)串行發(fā)送端到開(kāi)關(guān)節(jié)點(diǎn)的接收端也有類似的電平轉(zhuǎn)換電路。這樣設(shè)計(jì)的目的主要是為了使三極管在串行通訊空閑時(shí)的高電平下都關(guān)斷,降低通訊線路上的功耗。
圖3 主節(jié)點(diǎn)串行接收電平轉(zhuǎn)換電路
開(kāi)關(guān)節(jié)點(diǎn)包含串行通訊電平轉(zhuǎn)換電路、按鍵輸入電路及背光燈控制電路。主控芯片采用宏晶公司的51 單片機(jī)STC11F02[10]。該芯片成本低且滿足低功耗要求,在休眠模式下最低功耗為0.1 μA[11]。除了2個(gè)外部中斷信號(hào)可將CPU 從掉電模式喚醒,還有3個(gè)復(fù)用引腳信號(hào),分別是2個(gè)定時(shí)/計(jì)數(shù)器信號(hào)輸入引腳INT/T0/P3.4、INT/T1/P3.5和串口接收引 腳INT/RxD/P3.0[12],為開(kāi)關(guān)節(jié)點(diǎn)休眠、喚醒功能的硬件設(shè)計(jì)提供了方便的選擇。開(kāi)關(guān)節(jié)點(diǎn)的按鍵檢測(cè)電路中,通過(guò)π 型濾波電路在硬件上提前給按鍵輸入做消抖處理,外加起保護(hù)作用的壓敏電阻,防靜電浪涌和尖脈沖。按鍵背光燈由51 單片機(jī)STC11F02 控制,通過(guò)定時(shí)器中斷在其控制引腳產(chǎn)生PWM 輸出,經(jīng)過(guò)硬件上的二階濾波電路濾掉交流分量,留下直流分量,實(shí)現(xiàn)亮度可調(diào)。
組合開(kāi)關(guān)主節(jié)點(diǎn)通過(guò)輪詢的方式查詢各開(kāi)關(guān)節(jié)點(diǎn)的按鍵狀態(tài),每個(gè)開(kāi)關(guān)節(jié)點(diǎn)都有相應(yīng)的地址編號(hào)。主節(jié)點(diǎn)流程圖如圖4 所示,系統(tǒng)上電后先進(jìn)行初始化,包括時(shí)鐘、定時(shí)器、外部中斷、串行中斷、CAN 控制器等。
圖4 主節(jié)點(diǎn)程序流程圖
主節(jié)點(diǎn)給開(kāi)關(guān)節(jié)點(diǎn)的指令有4種,分別是在線節(jié)點(diǎn)查詢指令、節(jié)點(diǎn)狀態(tài)查詢指令、工作指示指令及休眠指令。組合開(kāi)關(guān)主節(jié)點(diǎn)會(huì)定時(shí)對(duì)所有預(yù)留的地址口進(jìn)行在線節(jié)點(diǎn)查詢,若某地址上有節(jié)點(diǎn),則會(huì)收到該地址上開(kāi)關(guān)節(jié)點(diǎn)的響應(yīng),之后主節(jié)點(diǎn)只對(duì)在線的節(jié)點(diǎn)發(fā)送按鍵狀態(tài)查詢和硬件工作指示指令。休眠命令采用廣播的方式,各開(kāi)關(guān)節(jié)點(diǎn)收到休眠命令后停止串行通訊,進(jìn)入休眠狀態(tài)。主節(jié)點(diǎn)重復(fù)進(jìn)行休眠命令廣播和在線節(jié)點(diǎn)查詢,直至確認(rèn)所有地址口上都無(wú)節(jié)點(diǎn)在線后才進(jìn)入休眠狀態(tài)。需要注意的是由于收、發(fā)共用一根信號(hào)線,開(kāi)關(guān)節(jié)點(diǎn)在收到休眠指令后要先關(guān)閉串口,進(jìn)入掉線狀態(tài),以備主節(jié)點(diǎn)查詢確認(rèn)是否所有節(jié)點(diǎn)都已掉線,開(kāi)關(guān)節(jié)點(diǎn)延時(shí)待主節(jié)點(diǎn)先休眠后,再進(jìn)入休眠狀態(tài),以免提前休眠而被串口接收引腳上的外部中斷喚醒。
各開(kāi)關(guān)節(jié)點(diǎn)初始化后,通過(guò)串行中斷接收主節(jié)點(diǎn)的指令。開(kāi)關(guān)節(jié)點(diǎn)程序流程圖如圖5 所示。系統(tǒng)收到指令后先校驗(yàn)地址編號(hào),判斷若為該節(jié)點(diǎn)的地址,則對(duì)收到的指令進(jìn)行解析處理,根據(jù)收到的指令類型作相應(yīng)的響應(yīng)或操作。當(dāng)汽車電控單元給組合開(kāi)關(guān)發(fā)休眠指令時(shí),組合開(kāi)關(guān)主節(jié)點(diǎn)和各開(kāi)關(guān)節(jié)點(diǎn)后先后進(jìn)入休眠狀態(tài)。系統(tǒng)休眠后既可以通過(guò)汽車電控單元發(fā)送CAN 信號(hào)到STM32F103C8T6 的外部中斷由上而下地喚醒組合開(kāi)關(guān),也可以通過(guò)組合開(kāi)關(guān)里的任意開(kāi)關(guān)節(jié)點(diǎn)按鍵按下產(chǎn)生的外部中斷,由下而上地喚醒整個(gè)系統(tǒng)。
圖5 開(kāi)關(guān)節(jié)點(diǎn)程序流程圖
經(jīng)過(guò)軟、硬件結(jié)合調(diào)試,該組合開(kāi)關(guān)帶30個(gè)節(jié)點(diǎn)時(shí),采用9 600 bit/s 的波特率可以可靠通信,檢測(cè)到各個(gè)開(kāi)關(guān)節(jié)點(diǎn)上的按鍵狀態(tài)。在系統(tǒng)進(jìn)入休眠模式時(shí),本研究通過(guò)設(shè)置使主節(jié)點(diǎn)上的 CAN 收發(fā)器、STM32F103C 及所有開(kāi)關(guān)節(jié)點(diǎn)都進(jìn)入掉電模式,系統(tǒng)功耗為7.3 mA,而各芯片的待機(jī)功耗都為微安級(jí),經(jīng)測(cè)試發(fā)現(xiàn),此時(shí)主要為L(zhǎng)M2576 的靜態(tài)功耗。為降低組合開(kāi)關(guān)的休眠功耗,加入NE555 延時(shí)調(diào)壓節(jié)能電路。在系統(tǒng)進(jìn)入休眠模式前,STM32 輸出NE555 使能信號(hào),使NE555 工作輸出一定占空比的定時(shí)信號(hào),控制LM2576 使其定時(shí)關(guān)斷,在其關(guān)斷期間使用1 000 μF電容儲(chǔ)能為進(jìn)入休眠狀態(tài)的系統(tǒng)供電。
NE555 工作電路如圖6 所示。其中D2、D3為二極管,NE555 使能后,C1、C2通過(guò)R2、D2構(gòu)成的RC 回路充電,當(dāng)達(dá)到THR 的閾值電壓時(shí),NE555 的OUT和DISC 引腳輸出低電平。之后C1、C2通過(guò)R3、D3構(gòu)成的RC 回路放電,當(dāng)達(dá)到TRIG 信號(hào)的閾值低電壓時(shí),NE555 的OUT和DISC 引腳輸出高電平。通過(guò)C1、C2周期性地充、放電,使NE555 輸出一定時(shí)信號(hào)。調(diào)節(jié)R2、R3的阻值可調(diào)節(jié)C1、C2充、放電時(shí)間,即可設(shè)置NE555 輸出的定時(shí)信號(hào)占空比。
圖6 NE555 工作電路
經(jīng)測(cè)試,系統(tǒng)休眠功耗與NE555 定時(shí)器輸出信號(hào)的占空比關(guān)系如表1 所示??梢?jiàn)占空比越小,即LM2576 間歇性工作的時(shí)間越短,組合開(kāi)關(guān)休眠功耗越低。需要注意的是,1 000 μF 電容儲(chǔ)能有限,測(cè)試發(fā)現(xiàn)當(dāng)NE555 輸出占空比小于1/6時(shí),由于供電不足,系統(tǒng)產(chǎn)生掉電復(fù)位,不能保持休眠狀態(tài),因此目前系統(tǒng)的最低功耗調(diào)到了3.8 mA。應(yīng)用時(shí)也可以通過(guò)換用更大容值的2 000 μF 儲(chǔ)能電容,將系統(tǒng)功耗調(diào)至更低的3.2 mA,此時(shí)已達(dá)到臨界值,之后再往下調(diào)占空比,系統(tǒng)功耗不會(huì)再下降,甚至?xí)捎诠╇姴蛔銌拘研菝吣J健?/p>
表1 低功耗測(cè)試結(jié)果
該組合開(kāi)關(guān)改變了傳統(tǒng)的點(diǎn)對(duì)點(diǎn)控制方式,主節(jié)點(diǎn)與汽車電控單元采用CAN 總線通訊,主節(jié)點(diǎn)與從節(jié)點(diǎn)采用單信號(hào)線通訊,減少線束使用,方便車內(nèi)布線。不僅易于擴(kuò)展,可以掛載至少30個(gè)開(kāi)關(guān)節(jié)點(diǎn),且在設(shè)計(jì)的過(guò)程中考慮了實(shí)際應(yīng)用的低功耗、低成本的要求,在軟件和硬件上進(jìn)行了有效的低功耗設(shè)計(jì)和處理。經(jīng)測(cè)試,其性能良好,在休眠模式下功耗設(shè)計(jì)僅為3.8 mA。
目前在歐美的每輛汽車上都至少有一個(gè)CAN 節(jié)點(diǎn),我國(guó)在CAN 總線領(lǐng)域起步較晚,但市場(chǎng)潛力很大?,F(xiàn)今車身網(wǎng)絡(luò)大多只應(yīng)用于中高檔車,自主汽車品牌的車輛大多價(jià)格低廉,大多數(shù)這類汽車還采用傳統(tǒng)的點(diǎn)對(duì)點(diǎn)控制方式,尚未采用CAN 總線產(chǎn)品,而進(jìn)一步的發(fā)展趨勢(shì)是把車身網(wǎng)絡(luò)推廣向中檔、經(jīng)濟(jì)型轎車甚至農(nóng)用運(yùn)輸車。隨著民族品牌的發(fā)展,汽車工業(yè)的發(fā)展和科技水平的提高,產(chǎn)品的不斷進(jìn)步,對(duì)CAN 總線應(yīng)用的需求也越發(fā)迫切?;贑AN 總線接口的低功耗、低成本汽車組合開(kāi)關(guān)具有一定的應(yīng)用價(jià)值。
[1]南金瑞,劉波瀾.汽車單片機(jī)及車載總線技術(shù)[M].北京:北京理工大學(xué)出版社,2005.
[2]王 鑫.組合開(kāi)關(guān)中燈控開(kāi)關(guān)的失效原因及解決方案[J].汽車電器,2009(9):29-31.
[3]馬春紅,王旭東,呂寶良,等.基于CAN/LIN 總線的車燈控制系統(tǒng)的設(shè)計(jì)[J].哈爾濱理工大學(xué)學(xué)報(bào),2006,11(1):116-119.
[4]東風(fēng)汽車有限公司.一種基于LIN 總線的新型汽車組合開(kāi)關(guān):中國(guó),200620099701[P].2006-10-31.
[5]巍 巍,李澤滔.CAN 總線汽車組合開(kāi)關(guān)體系的研究與開(kāi)發(fā)[J].中國(guó)西部科技,2009,23(8):36-37.
[6]張 志.CAN/LIN 混合車身網(wǎng)絡(luò)在東風(fēng)載貨車上的開(kāi)發(fā)及應(yīng)用[D].北京:清華大學(xué)汽車工程學(xué)院,2006.
[7]宋 立.基于CAN 總線的車身網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[D].上海:上海交通大學(xué)電子信息與電氣工程學(xué)院,2008.
[8]付 曉.CANBUS 總線在組合開(kāi)關(guān)及其監(jiān)控系統(tǒng)中的應(yīng)用[J].電氣開(kāi)關(guān),2012,50(5):67-68.
[9]凡海峰.基于CAN 總線的汽車車身控制系統(tǒng)研究[D].南京:南京航空航天大學(xué)機(jī)電學(xué)院,2009.
[10]蔣淑霞,韓志剛,周永軍.基于CAN/LIN 總線車身網(wǎng)絡(luò)優(yōu)化設(shè)計(jì)與CAN 通信實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2011(6):48-51.
[11]劉紅麗.基于RS485 總線的組合開(kāi)關(guān)保護(hù)測(cè)控系統(tǒng)[J].電氣開(kāi)關(guān),2010,48(4):75-77.
[12]崔儲(chǔ)斌,周孟然.基于ARM 的智能組合開(kāi)關(guān)的研究[J].科技咨詢,2008(18):1-3.