單片機(jī)在汽車電動(dòng)車窗控制器中的應(yīng)用
3 CAN控制器硬件電路設(shè)計(jì)
對電動(dòng)車窗控制器硬件電路設(shè)計(jì)的總體要求是系統(tǒng)簡單、容易實(shí)現(xiàn)、性能穩(wěn)定可靠,在滿足要求的情況下盡量降低成本。
CAN通信系統(tǒng)硬件電路主要由三部分組成[3]:PIC18F258單片機(jī)、6N137高速光電耦合器、PCA82C250總線收發(fā)器。
PIC18F258是美國Microchip公司生產(chǎn)的內(nèi)部嵌有CAN總線控制器的高性能PIC系列單片機(jī),由于其超小型、低功耗、低成本、多品種的特點(diǎn),其應(yīng)用范圍十分廣泛。PIC18F258是集成了CAN模塊的微控制器,有著先進(jìn)的精簡指令集構(gòu)架、增強(qiáng)型內(nèi)核、32級堆棧,片內(nèi)具有Flash程序存儲器、EEROM數(shù)據(jù)存儲器、自編程功能、在線調(diào)試器(ICD)和多種內(nèi)部、外部中斷源,并采用了程序和數(shù)據(jù)空間完全分開的“哈佛”結(jié)構(gòu)。這種結(jié)構(gòu)大大降低了PIC微控制器的總體成本,同時(shí)提高了運(yùn)行效率。在電路中,PIC18F258單片機(jī)是CAN總線接口電路的核心,主要完成CAN總線上數(shù)據(jù)的發(fā)送和接收,實(shí)現(xiàn)串行數(shù)據(jù)的分解及組合,保證通信的正常暢通。
PCA82C250是Philips公司的CAN總線接口芯片,是CAN控制器與物理總線之間的接口,提供對總線的差分發(fā)送和接收的功能,它與ISO11898標(biāo)準(zhǔn)完全兼容,有三種不同的工作方式,即高速、斜率控制和待機(jī),可以根據(jù)實(shí)際情況加以選擇,在本方案中選擇高速工作方式。該芯片引腳少,使用簡單。CAN總線采用PCA82C250芯片作為與總線之間的接口,PCA82C250的CANH、CANL引腳各自通過一個(gè)電阻與CAN總線相連,電阻可以起到一定的限流作用,保護(hù)PCA82C250免受過流的沖擊。另外,CANH和CANL與地之間并聯(lián)兩個(gè)小電容,可以濾除總線上的高頻干擾和防電磁輻射。光電耦合器采用General Instrument公司生產(chǎn)的高速邏輯門輸出光電耦合器6N137,它的最大傳輸延遲時(shí)間是75 ns,典型值是46 ns,采用6N137高速光電耦合電路可以很好地實(shí)現(xiàn)總線上節(jié)點(diǎn)之間的電氣隔離,同時(shí)可提高系統(tǒng)的抗干擾能力和傳輸信號的能力。使用時(shí),光電耦合器的兩個(gè)電源VCC和V′CC必須采用電源隔離電路進(jìn)行完全隔離。
4 CAN通信系統(tǒng)軟件設(shè)計(jì)流程
軟件設(shè)計(jì)是系統(tǒng)設(shè)計(jì)的關(guān)鍵。使用開發(fā)軟件MPLAB IDE、仿真器ICD 2,以及靈活簡便的C語言。為了提高可靠性和可理解性[4],內(nèi)部軟件設(shè)計(jì)采用了模塊結(jié)構(gòu),主要包括主程序、系統(tǒng)初始化子程序、數(shù)據(jù)發(fā)送子程序、數(shù)據(jù)接收子程序和電機(jī)控制子程序。此外,還應(yīng)有中斷服務(wù)子程序、A/D采樣子程序、故障診斷子程序和終端子程序等。這里主要對系統(tǒng)初始化子程序和電機(jī)控制子程序進(jìn)行探討。
系統(tǒng)初始化子程序是系統(tǒng)設(shè)計(jì)工作中極為重要的部分,它是CAN總線系統(tǒng)正常工作的前提,關(guān)系到整個(gè)CAN系統(tǒng)能否正常工作。因此,初始化設(shè)計(jì)是一個(gè)重點(diǎn),主要包括CAN模塊工作方式的配置、接收濾波器的設(shè)置、接收屏蔽寄存器設(shè)置、波特率參數(shù)設(shè)置、發(fā)送優(yōu)先級設(shè)置和中斷允許寄存器設(shè)置等。初始化子程序流程如圖4所示。
評論