基于MC33993的車用多路開關(guān)檢測(cè)接口電路設(shè)計(jì)
隨著汽車電子技術(shù)的飛速發(fā)展,汽車內(nèi)部所用到的開關(guān)元件也日益復(fù)雜而繁多,因此,可靠實(shí)時(shí)地對(duì)這些開關(guān)量進(jìn)行檢測(cè)已成為汽車電子硬件設(shè)計(jì)必須解決的問題。傳統(tǒng)的開關(guān)檢測(cè)接口電路設(shè)計(jì)多采用電阻、電容等分立元件與單片機(jī)直接相連,這樣往往有如下弊端:
整個(gè)開關(guān)系統(tǒng)的可靠性得不到保證,給汽車安全帶來隱患:
由分立元件設(shè)計(jì)的開關(guān)觸點(diǎn)容易發(fā)生氧化,縮短了開關(guān)的使用壽命:
過多使用分立元件,浪費(fèi)大量的單片機(jī)I/O資源,降低了CPU的利用率。
針對(duì)上述問題,本文采用飛思卡爾公司生產(chǎn)的多路開關(guān)檢測(cè)器件MC33993設(shè)計(jì)了一款車用多路開關(guān)檢測(cè)接口電路。實(shí)驗(yàn)證明其工作性能良好。安全性高。
2 MC33993介紹
MC33993是一款可編程多路開關(guān)檢測(cè)接口器件,可檢測(cè)22路開關(guān)量輸入信號(hào),并將檢測(cè)到的開關(guān)狀態(tài)通過SPI(串行外圍接口)發(fā)送給單片機(jī)。MC33993還具有22路模擬多路開關(guān)功能,用以讀取多路模擬輸入信號(hào),模擬輸入信號(hào)經(jīng)緩沖器由模擬多路開關(guān)輸入以供微處理器讀取。除此之外,MC33993還可為傳感器提供電源。作為模擬傳感器的輸入、控制管理系統(tǒng)電源等。
MC33993的主要特性如下:
與單片機(jī)的通信接口:采用3.3V/5 v SPI接口協(xié)議:
8路可編程輸入SPO~SP7:開關(guān)可接電源正極,也可接地;
14路接地輸入SGO~SGl3:開關(guān)只能接地;
自動(dòng)喚醒功能:開關(guān)狀態(tài)的變化可將其從睡眠狀態(tài)中隨時(shí)喚醒;
中斷:開關(guān)狀態(tài)變化引起中斷;
可編程濕性電流:16 mA或20 mA。濕性電流可以防止觸點(diǎn)氧化。
MC33993的基本功能是檢測(cè)多路開關(guān)的狀態(tài)和作為多路模擬開關(guān),微處理器通過與MC33993的SPI接口通信,向MC33993發(fā)送控制命令字,開關(guān)狀態(tài)的變化引起中斷,微處理器又通過SPI接口讀取開關(guān)狀態(tài)。
MC33993有正常和休眠兩種工作模式。休眠模式可以降低系統(tǒng)的能耗,只有當(dāng)給器件發(fā)送休眠控制字時(shí),它才由正常模式進(jìn)入休眠模式。休眠模式中,開關(guān)狀態(tài)發(fā)生變化、中斷信號(hào)下降沿、片選信號(hào)下降沿、喚醒信號(hào)下降沿和定時(shí)器中斷均可以使MC33993進(jìn)入正常工作模式。正常模式在作為監(jiān)測(cè)開關(guān)狀態(tài)之用時(shí),單片機(jī)可經(jīng)SPI接口與MC33993通信對(duì)其進(jìn)行編程設(shè)定。
3 多路開關(guān)檢測(cè)接口電路設(shè)計(jì)
3.1 硬件電路設(shè)計(jì)
筆者設(shè)計(jì)的多功能開關(guān)節(jié)點(diǎn)中將開關(guān)狀態(tài)的檢測(cè)和節(jié)點(diǎn)通訊在一個(gè)模塊中實(shí)現(xiàn),微處理器采用PIC18F2480單片機(jī),這是一款PIC18系列高性能MCU,采用先進(jìn)的RISC架構(gòu),具有增強(qiáng)型內(nèi)核,32級(jí)堆棧和多種內(nèi)部和外部中斷源,內(nèi)部帶有CAN控制器,可以方便的實(shí)現(xiàn)CAN通訊[2]。多路開關(guān)中,22路按鍵開關(guān)分別與MC33993的SP0~SP7和SG0~SG13共22個(gè)輸入引腳相連,其中與SPn相連的開關(guān)閉合時(shí)接電源正端(通過編程實(shí)現(xiàn)),與SGn相連的開關(guān)閉合時(shí)接地,所有開關(guān)閉合時(shí)狀態(tài)為1,斷開時(shí)狀態(tài)為0。PIC18F2480單片機(jī)通過SPI通信讀取MC33993的開關(guān)狀態(tài)量,這兩個(gè)器件均有專門的SPI接口,因此他們之間的SPI通信實(shí)現(xiàn)起來很容易;MC33993的SO、SI、CS、SCLK和INT引腳分別與PIC18F2480的RC4/SDI、RC5/SDO、RC2/CCP1、RC3/SCK和RB1/NT1四個(gè)引腳相連。
MC33993與PIC18F2480單片機(jī)的連接電路如圖1所示。
3.2 工作原理
首先PIC18F2480通過SPI接口對(duì)MC33993進(jìn)行初始化設(shè)置,設(shè)定MC33993的工作方式,當(dāng)開關(guān)被按下或斷開時(shí),MC33993的輸入口狀態(tài)發(fā)生變化,使之從睡眠模式中被喚醒,并立刻向處理器PIC18F2480發(fā)送讀取開關(guān)狀態(tài)量的中斷請(qǐng)求,處理器識(shí)別中斷并通過SPI接口讀取開關(guān)狀態(tài)的變化,然后執(zhí)行相應(yīng)的操作。
3.3 開關(guān)檢測(cè)接口電路軟件的設(shè)計(jì)
開關(guān)檢測(cè)軟件設(shè)計(jì)包括初始化程序和讀取開關(guān)狀態(tài)的程序兩部分。
初始化程序主要完成對(duì)MC33993內(nèi)部幾個(gè)相關(guān)寄存器的命令字的設(shè)置,例如復(fù)位寄存器、濕性電流控制寄存器、SPn設(shè)置寄存器等。
讀取開關(guān)狀態(tài)是在中斷服務(wù)子程序中實(shí)現(xiàn)。當(dāng)開關(guān)狀態(tài)變化時(shí),MC33993產(chǎn)生中斷。PIC18F2480進(jìn)人中斷服務(wù)程序,通過SPI接口讀取。MC33993開關(guān)狀態(tài)。
在軟件設(shè)計(jì)過程中,MC33993讀寫函數(shù)在初始化程序和開關(guān)狀態(tài)讀取程序中都會(huì)被調(diào)用,是整個(gè)開關(guān)檢測(cè)軟件設(shè)計(jì)的關(guān)鍵。下面給出整個(gè)多路開關(guān)檢測(cè)接口電路軟件設(shè)計(jì)的流程圖和MC33993讀寫函數(shù)void RW33993()的代碼。軟件設(shè)計(jì)流程圖如圖2所示。
讀寫函數(shù)void RW33993()源代碼如下:
4 結(jié)束語(yǔ)
文中介紹了基于MC33993的車用多功能開關(guān)檢測(cè)設(shè)計(jì)的實(shí)現(xiàn),電路簡(jiǎn)單,運(yùn)行良好,安全、可靠性高,避免了基于分立元件設(shè)計(jì)的開關(guān)檢測(cè)電路的不足,而且降低了系統(tǒng)的功耗,具有較強(qiáng)的應(yīng)用價(jià)值。
評(píng)論