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