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