




已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目 錄摘 要IIAbstractIV第一章 緒論11.1 課題背景11.2 CAN總線的優(yōu)勢(shì)11.3 CAN國(guó)內(nèi)外發(fā)展現(xiàn)狀21.4 課題研究意義21.5研究的內(nèi)容3第二章 CAN協(xié)議規(guī)范42.1 CAN技術(shù)協(xié)議2.0A42.2 CAN總線協(xié)議2.0B52.3 CAN2.0B協(xié)議幀結(jié)構(gòu)6第三章 系統(tǒng)的硬件設(shè)計(jì)103.1 單片機(jī)的選取103.2 CAN控制器的選擇123.3 CAN收發(fā)器的選擇143.4 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)153.5 中央節(jié)點(diǎn)電路設(shè)計(jì)163.6 前后節(jié)點(diǎn)的電路設(shè)計(jì)183.7 車燈的驅(qū)動(dòng)電路193.8 系統(tǒng)最小電路設(shè)計(jì)203.9 電源電路設(shè)計(jì)21第四章 系統(tǒng)的軟件設(shè)計(jì)234.1系統(tǒng)整體軟件簡(jiǎn)介234.2協(xié)議報(bào)文的定義234.3中央節(jié)點(diǎn)的程序設(shè)計(jì)244.4 前后節(jié)點(diǎn)的程序設(shè)計(jì)264.5 報(bào)文發(fā)送中斷過(guò)程27第五章 系統(tǒng)抗干擾設(shè)計(jì)285.1 硬件的抗干擾手段285.2 軟件的抗干擾技術(shù)28第六章 總結(jié)與展望306.1 總結(jié)306.2 展望30參考文獻(xiàn)32附 錄33致 謝40基于CAN總線的車燈控制系統(tǒng)設(shè)計(jì) 摘 要本文是基于CAN總線對(duì)車燈控制系統(tǒng)的設(shè)計(jì)。主要選取的是近遠(yuǎn)光燈,轉(zhuǎn)向燈,倒車燈,剎車燈,霧燈以及小燈這些在使用中特別重要的車燈。再根據(jù)車身的結(jié)構(gòu),將系統(tǒng)劃分為負(fù)責(zé)控制的中央節(jié)點(diǎn),前節(jié)點(diǎn)和后節(jié)點(diǎn)來(lái)方便控制。本文選取了8051單片機(jī),SJA1000控制器和PCA82C251收發(fā)器,同時(shí)根據(jù)具體的節(jié)點(diǎn)情況設(shè)計(jì)出節(jié)點(diǎn)電路圖,驅(qū)動(dòng)電路圖,電源電路圖等硬件電路。軟件的程序編寫是用C語(yǔ)言,使用模塊化的理念,大大簡(jiǎn)化了程序的編寫。此外,考慮到車輛使用環(huán)境對(duì)系統(tǒng)有干擾,所以在軟件設(shè)計(jì)后面增加了抗干擾的措施讓系統(tǒng)更加穩(wěn)定準(zhǔn)確。關(guān)鍵詞:CAN總線;車燈控制;微型處理器;汽車電子;IIIThe Design of Vehicle Light Control System Based on CAN BusAbstractThis article is based on the design of the CAN bus light control system. The main light sources selected are the near-highlight, turn signal, reversing light, brake light, fog light, and small light. These are particularly important lights in use. According to the structure of the car body, the system is divided into the central node responsible for control, the front node and the rear node to facilitate control. This paper selects 8051 single-chip microcomputer, SJA1000 controller and PCA82C251 transceiver, and at the same time designs node circuit diagram, drive circuit diagram, power supply circuit diagram and other hardware circuits according to the specific node conditions. The software program is written in C language, using the concept of modularity, which greatly simplifies the preparation of the program. In addition, taking into account the vehicle environment to interfere with the system, so the anti-jamming measures are added behind the software design to make the system more stable and accurate.Keywords: CAN bus; Vehicle light control; Micro processor; Automotive electronics;31第一章 緒論1.1 課題背景在科技高速前進(jìn)的時(shí)代里,電腦運(yùn)算能力,網(wǎng)絡(luò)傳輸數(shù)據(jù)能力以及集成電路技術(shù)也都不斷攀升,尤其是在這個(gè)物聯(lián)網(wǎng)加的時(shí)代里它們?cè)诟鱾€(gè)領(lǐng)域應(yīng)用的優(yōu)點(diǎn)也很快顯現(xiàn)出來(lái),汽車行業(yè)也不免如此。自從國(guó)內(nèi)汽車技術(shù)剛剛有所起色的之后, 汽車上的電器設(shè)備和負(fù)責(zé)控制這些單位的(ECU)部件逐年增加, 譬喻,尾氣再利用 (EGR)、數(shù)字電噴系統(tǒng)(DEFI)、輪胎防抱死系統(tǒng)(ABS)、車輛穩(wěn)定控制系統(tǒng)(VSC)、車輪打滑控制系統(tǒng)(ASR)、巡航系統(tǒng)(CCS)等等1。大批的傳感器、集成電路和計(jì)算機(jī)芯片等電子元器件在汽車上得到普遍的應(yīng)用。于此同時(shí),這也造成汽車的線束過(guò)多過(guò)雜。因此,汽車總線技術(shù)應(yīng)運(yùn)而生??偩€就是一種信息共用的通道,通過(guò)總線把各個(gè)節(jié)點(diǎn)連接起來(lái)實(shí)現(xiàn)信息的共享與傳輸。再者,隨著汽車電子技術(shù)的種類越來(lái)越多,人們對(duì)汽車的功用期盼值也隨之增加。再加上電動(dòng)車呼聲也越來(lái)越高,汽車的電子技術(shù)日益突出。而總線技術(shù)可以很好的提升電子技術(shù)的發(fā)展,故汽車總線技術(shù)的研究也成為必然趨勢(shì)。目前,在汽車上已經(jīng)有包括LIN、CAN等多種現(xiàn)場(chǎng)總線技術(shù)的運(yùn)用。就CAN總線技術(shù)而言已經(jīng)在汽車有了很好的運(yùn)用。目前已有著名的公司支持CAN協(xié)議,如Intel,Motorola,HP,SIEMENS,M ICROCH IP,NEC,SILION I等。大多數(shù)國(guó)外著名制造商,如BMW,法拉利,悍馬,大眾,瑪莎拉蒂,奔馳等早已將CAN總線的科技運(yùn)用到自己的產(chǎn)品中去?,F(xiàn)在大部分的卡車都已實(shí)現(xiàn)CAN總線技術(shù)對(duì)發(fā)動(dòng)機(jī)的工作狀態(tài)管理,其傳輸速度為500 KB / s。許多中國(guó)制造的汽車還推出了大眾,帕薩特,東風(fēng)雪鐵龍塞納,東風(fēng)標(biāo)致307,蘇州金龍,一汽大眾,斯太爾等系列CAN總線技術(shù)1。1.2 CAN總線的優(yōu)勢(shì)CAN總線是上個(gè)世紀(jì)80年代由德國(guó)博士公司提出設(shè)計(jì)的網(wǎng)絡(luò)技術(shù),最先應(yīng)用于汽車工業(yè)中。由于CAN總線的優(yōu)點(diǎn)性能比其他的車載網(wǎng)絡(luò)都要好,現(xiàn)在已經(jīng)是全球汽車控制器局域網(wǎng)中最普遍、最快的車載網(wǎng)絡(luò)技術(shù)。下面就介紹它為什么這么流行的主要原因是:1、總線為多主站總線, 每一個(gè)負(fù)責(zé)接受或發(fā)送消息的節(jié)點(diǎn)都可以隨時(shí)將報(bào)文傳輸?shù)娇偩€上的任何一個(gè)其余節(jié)點(diǎn),這樣就削減了從屬的關(guān)系,進(jìn)而保證消息發(fā)送的快捷。2、CAN總線選用獨(dú)特的無(wú)損總線仲裁技術(shù),可以實(shí)現(xiàn)總線及時(shí)性的特點(diǎn)。3、總線具有點(diǎn)對(duì)點(diǎn),全局廣播傳輸數(shù)據(jù)的功能。4、CAN總線與其他網(wǎng)絡(luò)總線相比每幀有效字節(jié)數(shù)低于8位,同時(shí)在CAN協(xié)議中還有其他檢查措施,數(shù)據(jù)的錯(cuò)誤率非常低。當(dāng)系統(tǒng)某個(gè)節(jié)點(diǎn)呈現(xiàn)比較大的毛病時(shí),它能夠主動(dòng)從總線斷開,并且總線上的其余節(jié)點(diǎn)操作不受影響。5、當(dāng)系統(tǒng)需要增添新的節(jié)點(diǎn)時(shí),能夠直接將新加入的節(jié)點(diǎn)連接到總線上,這樣的優(yōu)點(diǎn)大大方便日后系統(tǒng)的改進(jìn)。6、CAN總線傳輸速度在現(xiàn)有的汽車總線中是很快的,當(dāng)傳輸?shù)墓?jié)點(diǎn)間隔較小時(shí)可達(dá)到最1M / b的通訊速度。1.3 CAN國(guó)內(nèi)外發(fā)展現(xiàn)狀因?yàn)樽畛魿AN總線科技是在生產(chǎn)汽車大國(guó)的德國(guó)提出和設(shè)計(jì),目前他們已經(jīng)形成了一套完整、標(biāo)準(zhǔn)的通訊協(xié)議。在國(guó)外,CAN總線技術(shù)早就被普遍的使用于汽車電控體系、車輪防抱死系統(tǒng)(ABS)以及發(fā)動(dòng)機(jī)監(jiān)控等諸多領(lǐng)域,就更不用提汽車車燈控制系統(tǒng)上的CAN總線的應(yīng)用。甚至他們?cè)谄嚦霈F(xiàn)故障是也設(shè)計(jì)了系統(tǒng)來(lái)記錄這些故障,然后通過(guò)他們?cè)O(shè)計(jì)的故障檢測(cè)器讀出這些故障,從而實(shí)現(xiàn)精確的維修。CAN總線技術(shù)在汽車上的使用是整個(gè)行業(yè)今后肯定要經(jīng)歷的過(guò)程,同時(shí)CAN總線技術(shù)在汽車上的應(yīng)用也日趨完善。但是,我們也應(yīng)看到過(guò)去國(guó)內(nèi)自主品牌的低端汽車仍大面積使用傳統(tǒng)的車燈控制系統(tǒng),采用電力布線,車內(nèi)線束雜多且走線復(fù)雜,并且產(chǎn)生了很強(qiáng)的電磁干擾,導(dǎo)致整個(gè)系統(tǒng)的工作可靠性下降,低檔的合資品牌轎車也是如此,到了近幾年對(duì)CAN總線的研究才逐漸深入。國(guó)內(nèi)較早研究CAN總線的有北京航空航天大學(xué)、清華大學(xué)、中國(guó)汽車技術(shù)研究中心等單位,不過(guò)目前的研究還處于起步階段,研制生產(chǎn)CAN元器件的廠家很少, 具有自主知識(shí)產(chǎn)權(quán)的專用芯片更少1。1.4 課題研究意義在視野不好的情況下,車燈是汽車的光源和信號(hào)源,能夠?yàn)樗緳C(jī)提供行車照明,同時(shí)也是車輛在道路上行駛時(shí),彼此之間交流的語(yǔ)言。根據(jù)相關(guān)權(quán)威部門的調(diào)查顯示,交通事故在多數(shù)情況下是由車燈照明質(zhì)量引起的。一個(gè)方便可靠的車燈控制系統(tǒng)對(duì)汽車的安全有著不可代替的作用。而正如上文說(shuō)過(guò)的那樣,汽車上的電子元件越來(lái)越多,各個(gè)節(jié)點(diǎn)之間的通訊連接也越來(lái)越繁雜。假若車燈控制系統(tǒng)仍然是選用過(guò)去傳統(tǒng)的電力布線方式來(lái)連接各個(gè)單元,會(huì)增加車上不必要的線束數(shù)量。這不僅會(huì)造成成本過(guò)高而且會(huì)影響到整個(gè)系統(tǒng)的可靠行。通過(guò)采用總線技術(shù),可以做到多路復(fù)用(即在一條線路上可以傳輸幾個(gè)不同的控制器的信號(hào))。這樣不僅僅會(huì)大大減少電線的數(shù)量,降低成本。這里本文首先選擇的是CAN總線是因?yàn)镃AN首先就是針對(duì)汽車提出來(lái)的,一直以來(lái)CAN總線在汽車車載網(wǎng)絡(luò)技術(shù)領(lǐng)域據(jù)有著十足的優(yōu)勢(shì)。此外CAN總線的傳輸速度達(dá)到了1M/b,具有很高的靈敏性,大大的提高了車燈系統(tǒng)的可靠性。所以CAN總線技術(shù)對(duì)車燈系統(tǒng)的控制是最佳的選擇。再加上國(guó)內(nèi)對(duì)CAN總線的研究也是最近十幾年才逐漸發(fā)展起來(lái)的,對(duì)CAN總線的學(xué)習(xí)和研究會(huì)讓我們能走在科技的前沿。所以選取以CAN網(wǎng)作為基礎(chǔ)的網(wǎng)絡(luò)技術(shù)對(duì)車燈控制系統(tǒng)的設(shè)計(jì)具有很好的意義。1.5研究的內(nèi)容本文是基于CAN總線技術(shù)對(duì)汽車的車燈控制系統(tǒng)設(shè)計(jì),首先根據(jù)系統(tǒng)需要選取必要的元件,畫出系統(tǒng)的結(jié)構(gòu)框圖。參照系統(tǒng)的框圖設(shè)計(jì)出中央節(jié)點(diǎn)電路,前后節(jié)點(diǎn)的電路,系統(tǒng)最小電路,電源電路和驅(qū)動(dòng)電路。再結(jié)合第二章制定報(bào)文,使用C語(yǔ)言編寫系統(tǒng)軟件程序,畫出程序的流程圖。最后為了增加系統(tǒng)工作時(shí)的穩(wěn)定性,在系統(tǒng)的硬件和軟件方面做了一些優(yōu)化。以上就是本文主要的研究?jī)?nèi)容這些設(shè)計(jì)。第二章 CAN協(xié)議規(guī)范總線在傳輸數(shù)據(jù)時(shí),傳輸?shù)膽?yīng)該是能夠被各種控制器元件所能識(shí)別的格式。而往往各個(gè)控制器的數(shù)據(jù)格式并不一樣,就好比語(yǔ)言不同的兩個(gè)人是無(wú)法正常交流的。這時(shí)就需要對(duì)這些語(yǔ)言”進(jìn)行翻譯和規(guī)范。通過(guò)對(duì)本章的學(xué)習(xí)主要是為了后面報(bào)文發(fā)送和接受時(shí)幀的標(biāo)識(shí)位,幀的類型和幀的數(shù)據(jù)做定義。2.1 CAN技術(shù)協(xié)議2.0A在CAN總線協(xié)議2.0A中,將協(xié)議分為三個(gè)層次進(jìn)行規(guī)范定義。它們分別為對(duì)象層,傳輸層和物理層。它們的功能如下:對(duì)象層的功能包括確認(rèn)要發(fā)送的對(duì)象、選定將發(fā)送信息所用地址、確定接收傳輸層接收到的信息以及為應(yīng)用層提供接口。傳輸層是協(xié)議的核心,它主要是針對(duì)幀的結(jié)構(gòu)作規(guī)定。它的功能包括幀組織、總線仲裁錯(cuò)誤檢測(cè)、報(bào)警和故障定義、檢測(cè)報(bào)文能否進(jìn)入總線,檢測(cè)是否接收到報(bào)文以及位定時(shí)信息在內(nèi)的規(guī)定3。此外傳輸層是標(biāo)準(zhǔn)化的結(jié)構(gòu)是不能夠輕易修改的。物理層定義了實(shí)際的信號(hào)傳輸方法。比如傳輸媒介,電壓的大小高低壓等實(shí)際物理方面的東西。物理層沒(méi)有具體規(guī)定那些連接導(dǎo)線等,為了方便技術(shù)人員根據(jù)實(shí)際的情況對(duì)總線進(jìn)行優(yōu)化處理。更加清楚的了解結(jié)構(gòu)可以參見圖2.1:圖2.1 CAN協(xié)議2.0A結(jié)構(gòu)2.2 CAN總線協(xié)議2.0BCAN總線協(xié)議2.0B與2.0A相比,基本上沒(méi)有太多的區(qū)別,只是2.0B在報(bào)文格式上設(shè)定了標(biāo)準(zhǔn)的和擴(kuò)展的報(bào)文格式。CAN總線協(xié)議2.0B是參照OSI模式來(lái)制定的,將協(xié)議分成兩個(gè)層次即數(shù)據(jù)鏈路層和物理層來(lái)方便定義和管理。在數(shù)據(jù)鏈路層里又被分成邏輯鏈路控制子層(LLC)和媒體訪問(wèn)控制子層(MAC)8。而這兩個(gè)子層功能與2.0A協(xié)議中應(yīng)用層與傳輸層功能相同。LLC子層的主要作用為幫助信息交流和協(xié)助節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送請(qǐng)求數(shù)據(jù)的遠(yuǎn)程幀,判定LLC層收到的消息是否已被接收,同時(shí)LLC子層在一些方面還能提供系統(tǒng)的狀態(tài),比如系統(tǒng)過(guò)載了會(huì)提供過(guò)載詳細(xì)信息。MAC子層的功用主要是控制傳輸規(guī)則,即規(guī)定幀機(jī)構(gòu)中的控制域,仲裁判別的方式,對(duì)錯(cuò)誤進(jìn)行判定,檢測(cè)報(bào)文的錯(cuò)誤和錯(cuò)誤校準(zhǔn)。MAC子層的功用不能隨意的更改,因?yàn)樗囊徊糠止τ迷O(shè)計(jì)到用于同步的定時(shí)作用。CAN總線協(xié)議2.0B對(duì)物理層的定義與2.0A里差不多,物理層定義了實(shí)際的信號(hào)傳輸方法。比如傳輸媒介呀,電壓的大小高低,同時(shí)在2.0B中還包含了關(guān)于編碼的時(shí)序,編碼,譯碼與同步。物理層沒(méi)有對(duì)驅(qū)動(dòng)器的元件定義,以便技術(shù)人員根據(jù)實(shí)際的需要對(duì)總線進(jìn)行優(yōu)化。具體的功能可見圖2.2:圖2.2CAN協(xié)議2.0B結(jié)構(gòu)2.3 CAN2.0B協(xié)議幀結(jié)構(gòu)CAN幀的結(jié)構(gòu)是CAN總線協(xié)議中最為核心的東西,它就好像一門語(yǔ)言的語(yǔ)法一樣。在控制器之間交流信息的時(shí)候,只有把語(yǔ)法規(guī)定好,CAN節(jié)點(diǎn)之間才能實(shí)現(xiàn)交流。根據(jù)信號(hào)的功能不同,幀又可以分為用于傳遞數(shù)據(jù)的數(shù)據(jù)幀,用于請(qǐng)求的遠(yuǎn)程幀,用于診斷標(biāo)示為是否有誤的出錯(cuò)幀以及用于延遲信息傳輸?shù)某d幀。(1)數(shù)據(jù)幀數(shù)據(jù)幀故名思意是系統(tǒng)在交流時(shí)用于傳輸數(shù)據(jù)的報(bào)文。當(dāng)中央節(jié)點(diǎn)或者其他節(jié)點(diǎn)發(fā)送數(shù)據(jù)幀時(shí)這個(gè)數(shù)據(jù)幀會(huì)被至少一個(gè)節(jié)點(diǎn)所接受,節(jié)點(diǎn)會(huì)根據(jù)報(bào)文內(nèi)容來(lái)做出反應(yīng)。這些反應(yīng)是由數(shù)據(jù)幀中四個(gè)功能定義不同位場(chǎng)所決定的(數(shù)據(jù)幀的結(jié)構(gòu)),它們分別是:幀起始;仲裁域; 控制領(lǐng)域; 數(shù)據(jù)域。其結(jié)構(gòu)如下圖:圖2.3 CAN2.0B結(jié)構(gòu)圖幀開始:該字段表示報(bào)文的開始,主要實(shí)現(xiàn)為了同步保證控制器在對(duì)應(yīng)位場(chǎng)讀取正確的數(shù)據(jù)。就相當(dāng)于告訴控制器下面是數(shù)據(jù),要做好準(zhǔn)備。該代碼段是由數(shù)字0表示,數(shù)字0在協(xié)議里通常是表顯性。仲裁域:在總線里信息是共享的,節(jié)點(diǎn)會(huì)有選擇的接受報(bào)文這就需要仲裁域里的信息標(biāo)識(shí)符起作用。另外,標(biāo)識(shí)符還能在多個(gè)CAN控制器同時(shí)發(fā)送數(shù)據(jù)時(shí)造成信息沖突時(shí),根據(jù)標(biāo)識(shí)位的數(shù)值提供仲裁方案。標(biāo)識(shí)符:在協(xié)議2.0B它是由29個(gè)ID位構(gòu)成,發(fā)送順序是最高位到最低位。它是由5個(gè)部分組成:源節(jié)點(diǎn)地址編碼、目標(biāo)節(jié)點(diǎn)編碼、響應(yīng)標(biāo)識(shí)位,功能定義位、資源節(jié)點(diǎn)位。它的功用通過(guò)這幾個(gè)位就可以知道,通過(guò)節(jié)點(diǎn)編碼找到相應(yīng)的資源,再根據(jù)功能編碼和響應(yīng)位定義幀的功能的類型來(lái)完成目的。具體結(jié)構(gòu)可見表2.1表2.1 標(biāo)志位編碼定義ID位ID28ID27ID26ID25ID24ID23ID22ID21ID20ID19功用00源節(jié)點(diǎn)編碼00ID位ID18ID17ID16ID15ID13ID12ID11ID10ID9ID8ID位目標(biāo)節(jié)點(diǎn)編碼響應(yīng)位功能編碼ID位ID7ID6ID5ID4ID3ID2ID1ID0RTRID位資源節(jié)點(diǎn)編碼0這里還需要對(duì)功能編碼做出說(shuō)明,它用于說(shuō)明報(bào)文的功能。在協(xié)議中對(duì)這些編碼有具體的定義,本文在這里列舉幾個(gè)比較常用的見表2.2表2.2 功能編碼ID11ID8功能解釋0x00保留0x01連續(xù)寫入對(duì)單個(gè)多個(gè)節(jié)點(diǎn)數(shù)據(jù)寫入0x02連續(xù)讀取對(duì)單個(gè)多個(gè)節(jié)點(diǎn)數(shù)據(jù)讀取遠(yuǎn)程幀(RTR):遠(yuǎn)程幀的作用是當(dāng)系統(tǒng)中的節(jié)點(diǎn)需要數(shù)據(jù)時(shí)請(qǐng)求目標(biāo)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí)發(fā)送的報(bào)文。發(fā)送的遠(yuǎn)程幀與數(shù)據(jù)幀相似,只不過(guò)在RTR會(huì)置為高位,此時(shí)后面的數(shù)據(jù)控制器將不會(huì)讀出。當(dāng)節(jié)點(diǎn)馬上回復(fù)數(shù)據(jù)幀時(shí),所用的標(biāo)識(shí)符地址還是一樣的。控制域:該段代碼由6位數(shù)字構(gòu)成,其中包含2個(gè)保留位(r1和r0,只有在協(xié)議中增加其他內(nèi)容是才會(huì)用到這兩位)和4位用來(lái)控制數(shù)據(jù)段長(zhǎng)度的代碼,一般情況規(guī)定發(fā)送數(shù)據(jù)長(zhǎng)度為0到8個(gè)字位。圖2.4 仲裁域結(jié)構(gòu)數(shù)據(jù)域:在2.0B協(xié)議里,數(shù)據(jù)域負(fù)責(zé)數(shù)據(jù)傳送和提供給功能碼所要參數(shù)。在協(xié)議里數(shù)據(jù)域內(nèi)的對(duì)幾個(gè)字節(jié)也有定義,不同的字位也具有不一樣的作用。通過(guò)作用可以將數(shù)據(jù)域分為兩個(gè)部分,如表2.3所示:表2.3 數(shù)據(jù)域字位含義數(shù)據(jù)域字節(jié)功用第一位0分段編碼第二位1功能碼相關(guān)參數(shù)字節(jié)27當(dāng)數(shù)據(jù)域長(zhǎng)度不超過(guò)7個(gè)字節(jié),第一位就為0x00。另外,第二位字節(jié)1主要是用來(lái)定義數(shù)據(jù)域長(zhǎng)度,或者是子資源節(jié)點(diǎn)ID碼(當(dāng)功能碼為連續(xù)寫入時(shí))。當(dāng)功能碼為異常響應(yīng)時(shí),字節(jié)1的含義就是錯(cuò)誤代碼。 (2)遠(yuǎn)程幀遠(yuǎn)程幀的結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)相似,唯一不同的是在之前的RTR位為高即為“1”,使得數(shù)據(jù)無(wú)效。遠(yuǎn)程幀是用于向總線請(qǐng)求數(shù)據(jù),CAN總線上任意一個(gè)節(jié)點(diǎn)就可以向網(wǎng)絡(luò)中發(fā)送一個(gè)遠(yuǎn)程幀。(3)錯(cuò)誤幀錯(cuò)誤幀是由6到12位的錯(cuò)誤標(biāo)志的疊加和8位的錯(cuò)誤分界符所組成。其結(jié)構(gòu)如下圖:圖2.5 錯(cuò)誤幀結(jié)構(gòu)在錯(cuò)誤標(biāo)志中有兩種形式,一種是激活狀態(tài)是由6個(gè)顯性位組成,另一種是認(rèn)可錯(cuò)誤標(biāo)志,它是由6個(gè)隱形位組成,但可以更改。當(dāng)激活錯(cuò)誤狀態(tài)中的節(jié)點(diǎn)檢測(cè)到一個(gè)錯(cuò)誤時(shí),會(huì)發(fā)出一個(gè)激活錯(cuò)誤標(biāo)志,它不滿足插入規(guī)則或破壞應(yīng)答字段或幀結(jié)束字段的固定格式。所有其他節(jié)點(diǎn)將檢測(cè)錯(cuò)誤狀態(tài)并發(fā)出錯(cuò)誤標(biāo)志。因此,從總線檢測(cè)到的這些主要的顯性字符是每個(gè)節(jié)點(diǎn)發(fā)出的不同錯(cuò)誤標(biāo)志的疊加結(jié)果。這個(gè)位串的長(zhǎng)度是6,最長(zhǎng)的是12。(4)超載幀與錯(cuò)誤幀結(jié)構(gòu)類似,超載幀也是由超載標(biāo)志(與錯(cuò)誤標(biāo)志相同)和超載分界符組成。超載幀的作用由名字就可以知道,當(dāng)系統(tǒng)超載時(shí)不能在處理數(shù)據(jù)時(shí)就會(huì)發(fā)送超載幀。另外,在在幀空隙檢測(cè)到顯性信號(hào)時(shí)也會(huì)發(fā)送超載幀。但超載幀的發(fā)送次數(shù)是有限的。其結(jié)構(gòu)如圖2.7圖2.6 超載幀結(jié)構(gòu)圖(5)幀間空隙幀間空隙結(jié)構(gòu)組成如下圖,其作用主要是分隔作用,常位于數(shù)據(jù)幀與其他幀之間。幀間空隙在幀傳輸中具有很重要的作用可以說(shuō)是必要的,以便在下一次消息傳輸之前,允許控制器執(zhí)行內(nèi)部處理操作。圖2.7 幀間空隙結(jié)構(gòu)圖第三章 系統(tǒng)的硬件設(shè)計(jì)本章是本篇論文的核心,在CAN總線的控制系統(tǒng)里,節(jié)點(diǎn)硬件設(shè)計(jì)是必不可少的一環(huán)。它負(fù)責(zé)從總線中接受或者向向總線中發(fā)送信號(hào),所以對(duì)于節(jié)點(diǎn)元件的選取就會(huì)關(guān)系到整個(gè)系統(tǒng)的好壞。下面就會(huì)對(duì)選取的元件功能,原因做一些介紹以及根據(jù)車燈在車身上分布位置劃分幾個(gè)節(jié)點(diǎn)來(lái)設(shè)計(jì),畫出節(jié)點(diǎn)電路圖。3.1 單片機(jī)的選取單片機(jī)又可以看作小型計(jì)算機(jī),一個(gè)單片機(jī)好壞決定了整個(gè)系統(tǒng)快慢。本文選用的是比較熟悉的一款單片機(jī):8051。它的整體技術(shù),接口技術(shù)相對(duì)與現(xiàn)在的單片機(jī)還是比較簡(jiǎn)單,比較容易上手故選擇了這一款單片機(jī)。它主要有以下特征:1、它的中央處理器是位處理器,工作人員為它設(shè)計(jì)了一套面向字節(jié)的完備的操作系統(tǒng)。它不僅可以在芯片上處理某些特殊的功能寄存器,如傳輸、設(shè)置、清除、測(cè)試等,還可以執(zhí)行位邏輯運(yùn)算,其功能非常齊全,使用方便。2、同時(shí),在芯片RAM空間中特別開放了雙功能地址范圍,非常靈活。3、在編寫一些簡(jiǎn)單的算數(shù)程序時(shí),不像其他的8位單片機(jī),需要調(diào)用一個(gè)子程序,這給8051在編程時(shí)節(jié)省很多不必要的步驟,方便了編程。當(dāng)然它的缺點(diǎn)也很明顯1、AD、EEPROM設(shè)計(jì)的不是很完善,在具體工作時(shí)還需要另加一些其他功用,這對(duì)硬件和軟件都會(huì)造成影響。2、雖然I/O 接口技術(shù)很簡(jiǎn)單,但它在高電平上就無(wú)法正常工作。這是8051系列單片機(jī)比較明顯的問(wèn)題。3、操作速度太慢,尤其是在數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜的情況下。如果可以改進(jìn),可以給編程帶來(lái)極大的方便。4、保護(hù)能力較差,易燒晶片。所以說(shuō)8051比較適合用在要求不是太高的場(chǎng)合,如在車燈控制系統(tǒng)這種要求不是太高的系統(tǒng)中。1、主要性能:(1)8位CPU,4kB ROM,256個(gè)RAM,111條指令;(2)并行I/O端子32個(gè),分為四個(gè)8位口;(3)21個(gè)專用寄存器; (4)2個(gè)可編程定時(shí)/計(jì)數(shù)器; (5)5個(gè)中斷源,2個(gè)優(yōu)先級(jí); (6)一個(gè)全雙工串行通信口;(7)外部RAM尋址空間為64kB; (8)外部ROM尋址空間為64kB;(9)邏輯操作位尋址功能;(10)單一+5V電源供電;(11)DIP40引腳封裝;2、引腳功能說(shuō)明8051的引腳如下圖: 圖3.1 8051引腳圖(1)VCC - 芯片電源,+ 5V;(2)VSS - 接地端;(3)XTAL1,XTAL2-產(chǎn)生工作脈沖的晶體振蕩器的兩個(gè)接口;(4)ALE功能:用于鎖定P0的低8位地址;(5)PROG功能:接入外部的輸入脈沖,可供系統(tǒng)編程時(shí)使用(當(dāng)單片機(jī)中含有EPROM芯片時(shí));(6)PSEN:外部ROM讀取選擇通信號(hào)碼;(7)RST / VPD:復(fù)位/備用電源;(8)EA:根據(jù)情況使用內(nèi)部和外部的存儲(chǔ)器;(9)VPP功能:芯片上的EPROM芯片,EPROM編程中的編程電源VPP;(10)RXD: 串行輸入口;(11)TXD: 串行輸出口;(12)INT0: 外部中斷0;(13)INT1:外部中斷1;(14)T0:定時(shí)器的外部輸入;(15)T1:定時(shí)器的外部輸入;(16)WR: 外部數(shù)據(jù)存儲(chǔ)器寫入通道;(17)RD: 外部數(shù)據(jù)存儲(chǔ)器讀取通道;8051系列單片機(jī)最大特點(diǎn)就是它有4個(gè)復(fù)用的接口它們分別為圖中P0系列接口,P1系列接口,P2系列,P3系列,每個(gè)系列接口都有8個(gè)接口。下面介紹下各個(gè)接口的功效:P0定義為數(shù)據(jù)地址復(fù)用線具體可以根據(jù)具體情況選擇到底是用作傳送數(shù)據(jù)的數(shù)據(jù)線還是用作傳輸?shù)刂返牡刂房偩€但是,這樣使用的前提是單片機(jī)需要外接存儲(chǔ)器或其他控制器的功用,當(dāng)不接外部?jī)?chǔ)存器亦可以可用于通用I / O,但作為輸入或輸出的內(nèi)部裸露電阻應(yīng)連接至外部拉電阻。P1端口僅用于I / O端口:內(nèi)部有一個(gè)上拉電阻。P2的功效和之前P0接口相同也是數(shù)據(jù)地址復(fù)用線,也可以用作接I/O接口,但是不可以接那種內(nèi)部有一個(gè)上拉電阻。P3有兩個(gè)功能,一方面它可以作為數(shù)據(jù)地址的復(fù)用線。另一方面它也作為控制總線,這個(gè)功能是由特殊寄存器設(shè)置。當(dāng)P3接口被作為控制總線的時(shí)候,P3.0的接口具體的功能如上面圖3.1所示。3.2 CAN控制器的選擇一般來(lái)說(shuō),市面上的CAN控制器有以下兩種MCP510和SJA1000,還有一些CAN控制器是直接內(nèi)嵌入單片機(jī)內(nèi)的。由于之前選定了8051,它并不帶有CAN控制器,所以這里要選擇一個(gè)單獨(dú)工作的控制器。上述兩類控制器中,MCP510的推出時(shí)間要晚于SJA1000,故其在性能上要優(yōu)于SJA1000。但是要比SJA1000要復(fù)雜。另外車燈控制系統(tǒng)的要求也不是很高,SJA1000就能夠充分滿足系統(tǒng)的需要。在本文中就選擇SJA1000這款比較簡(jiǎn)單的元件來(lái)滿足系統(tǒng)的設(shè)計(jì)。下面就要詳細(xì)的介紹SJA1000控制器。當(dāng)總線發(fā)送或接受報(bào)文時(shí),CAN控制器就會(huì)將單片機(jī)發(fā)來(lái)的信號(hào)通過(guò)CAN的協(xié)議將其轉(zhuǎn)變成所認(rèn)可的語(yǔ)言”通過(guò)CAN收發(fā)器發(fā)送到總線上。所以說(shuō)CAN控制器中就必須含有CAN協(xié)議與接口部分。SJA1000的硬件主要是由以下幾個(gè)部分組成:接口管理邏輯(IML),發(fā)送緩沖器(TXB),接收緩沖器(RBX),驗(yàn)收濾波器(ACF),位流處理器(BSP),位時(shí)序邏輯(BTL),錯(cuò)誤管理邏輯(EML)。接口管理邏輯主要負(fù)責(zé)接受或者發(fā)送來(lái)自單片機(jī)的命令以及一些地址數(shù)據(jù),并將這些信息整理分配給發(fā)送緩沖器,接受緩沖器處理。同時(shí)接口管理邏輯也能夠向CPU發(fā)送中斷和控制器的狀態(tài)信息。發(fā)送和接受緩沖器主要的作用就是儲(chǔ)存要發(fā)送的和接受過(guò)來(lái)的信息,故它可以被CPU寫入也能被位流處理器讀出。當(dāng)信息進(jìn)入到信息緩沖器中后,位流處理器就開始工作,它主要負(fù)責(zé)的就是前面說(shuō)的CAN協(xié)議,它通過(guò)讀取信息緩沖器的信息,依據(jù)CAN協(xié)定對(duì)幀進(jìn)行仲裁,位填充,錯(cuò)誤的界定等,于此同時(shí)它還負(fù)責(zé)控制信息緩沖器的位流??刂破魃铣宋涣魈幚砥?,驗(yàn)收濾波器也負(fù)責(zé)一部分CAN協(xié)議,而它主要用以比較總線上的標(biāo)識(shí)符。另外在CAN協(xié)議中還制定對(duì)報(bào)文同步的協(xié)定,這就需要CAN控制器的位時(shí)序邏輯,它能實(shí)現(xiàn)傳輸報(bào)文時(shí)開頭的硬同步,接受信息后的再次的軟同步,能夠編輯時(shí)間段來(lái)補(bǔ)償交流信息時(shí)的時(shí)間的延遲。錯(cuò)誤管理邏輯,顧名思義,就是負(fù)責(zé)信息傳輸?shù)腻e(cuò)誤管制??刂破鞯脑敿?xì)過(guò)程可見下圖:圖3.2 SJA1000的內(nèi)部結(jié)構(gòu)SJA1000的引腳一共有28個(gè)引腳,8個(gè)數(shù)據(jù)地址復(fù)用線可以與之前選的8051系列單片機(jī)直接連接。具體的引腳可見下圖:圖3.3 SJA1000的引腳圖其中有些引腳的功能與之前8051重復(fù)下面就不再介紹,下面是SJA1000的引腳功能介紹:CLKOUT:當(dāng)單片機(jī)需要脈沖來(lái)工作是除了可以外接一個(gè)時(shí)鐘產(chǎn)生器也可以連接這個(gè)CLKOUT引腳,這個(gè)引腳脈沖是由SJA1000內(nèi)部自帶的振蕩器產(chǎn)生;Vss1:接地;MODE:該引腳是控制器工作模式的選取引腳,高電平為Intel模式(能夠允許對(duì)其讀寫操作)低就為(Motorola)模式(能夠允許對(duì)其寫操作);VDD3:輸出驅(qū)動(dòng)的電源;Vss3:輸出驅(qū)動(dòng)器接地;VDD2:輸入比較器的電源源;Vss2::輸入比較器的接地端;VDD1:邏輯電路的5V電源;3.3 CAN收發(fā)器的選擇市面上現(xiàn)在存在的CAN收發(fā)器主要是飛利浦公司的PCA82C250系列,基于JFET結(jié)構(gòu)(PCA82C250系列的升級(jí)版)TJA1040系列,IT公司的SN65HVD251系列和Freescale公司的MC33901系列。它們之間的性能比較可見下圖:圖3.4 CAN收發(fā)器比較圖總的來(lái)說(shuō)這些CAN的收發(fā)器都能滿足本文的系統(tǒng)的需求,但是后面幾種CAN收發(fā)器都是近幾年才新起的,結(jié)構(gòu)上都比較復(fù)雜。另外PCA82C250系列與SJA1000能很好的兼容,所以本全文選擇PCA82C251 CAN控制器。PCA82C251是在PCA82C250的基礎(chǔ)上的改進(jìn)版,它增加了管腳的、耐壓能力與熱關(guān)斷能力。它的內(nèi)部硬件結(jié)構(gòu)和引腳如下面兩張圖:圖3.5 PCA82C251內(nèi)部結(jié)構(gòu)圖 圖3.6 PCA82C251引腳圖PCA82C251主要是通過(guò)發(fā)送數(shù)據(jù)是通過(guò)串行輸入線TXD端口接收控制器發(fā)來(lái)的串行信息,將串行數(shù)據(jù)發(fā)送到達(dá)驅(qū)動(dòng)器上,再由驅(qū)動(dòng)器和兩個(gè)三極管實(shí)現(xiàn)差動(dòng)的發(fā)送高低電平。 CANH與CANL就是負(fù)責(zé)高低電平的輸入和輸出,其兩個(gè)端口就是接到總線上的。在接收總線來(lái)的消息時(shí),高低電平主要經(jīng)過(guò)接收器譯碼成串行數(shù)據(jù),再通過(guò)輸出端口RXD輸出。引腳RS主要是控制收發(fā)器的工作方式,不同的電流下有不同的工作方式。當(dāng)RS電流為VCC接口上的0.75倍時(shí),收發(fā)器處于待機(jī)狀態(tài)。當(dāng)電流為10微安到200微安時(shí),處于斜率控制狀態(tài)。而當(dāng)RS端電流大于0.3倍的VCC時(shí),收發(fā)器處于高速狀態(tài)。而其余的引腳均與上文的一樣的功能。3.4 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)本文是基于CAN總線的車燈控制系統(tǒng)設(shè)計(jì)的研究,系統(tǒng)中除了上文所提的單片機(jī),CAN控制器,CAN收發(fā)器以外還必須具有與車燈控制的開關(guān),CAN總線的線束,控制車燈開關(guān)的繼電器。現(xiàn)代汽車車燈種類越來(lái)越多,本文選取了一些最為主要的車燈作為系統(tǒng)的控制對(duì)象。一般來(lái)說(shuō)最主要的車燈包括前端的車大燈,后端的制動(dòng)燈、倒車燈,前后都有的霧燈、轉(zhuǎn)向燈和小燈。本文選用CAN網(wǎng)絡(luò)目的就是為減少線束,所以結(jié)合汽車車燈分布結(jié)構(gòu),將前端的車燈合并到一個(gè)前節(jié)點(diǎn)來(lái)控制,后端也同樣如此。另外系統(tǒng)還需要一個(gè)控制前后節(jié)點(diǎn)的中央節(jié)點(diǎn),本文將中央節(jié)點(diǎn)放在方向盤處,采集所涉及開關(guān)的信號(hào),再來(lái)控制前后節(jié)點(diǎn)的工作。最后通過(guò)兩條簡(jiǎn)單的雙絞線將各個(gè)節(jié)點(diǎn)連接起來(lái),這樣就大大減少了系統(tǒng)中的線束,達(dá)到了本文的目的。前節(jié)點(diǎn)單片機(jī)中央節(jié)點(diǎn)單片機(jī)車燈開關(guān)后節(jié)點(diǎn)單片機(jī)前端車燈SJA10000SJA10000PCA82C251PCA82C251PCA82C251 SJA10000后端車燈圖3.7 系統(tǒng)結(jié)構(gòu)框圖3.5 中央節(jié)點(diǎn)電路設(shè)計(jì)這里說(shuō)的節(jié)點(diǎn)電路圖是包括了CAN連接電路圖和外圍電路圖。由于CAN節(jié)點(diǎn)的電路圖三個(gè)節(jié)點(diǎn)是一樣的,這里統(tǒng)一先說(shuō)明CAN連接電路圖。具體內(nèi)容可見圖3.8:圖3.8 CAN的連接圖CAN連接電路就是根據(jù)單片機(jī),CAN控制器以及使用方法將它們正確的連接起來(lái)。之前也介紹過(guò)各個(gè)元件引腳的功能,這里就直接講解電路圖。P0.0到P0.7的功能為地址與數(shù)據(jù)復(fù)用線,故將其與AD0到AD7相連。本文中SJA1000的CS引腳在本文中與P2.0相連,在P2.0為0時(shí),單片機(jī)可以控制SJA1000即對(duì)其進(jìn)行讀寫。此時(shí)單片機(jī)能夠訪問(wèn)的SJA1000的地址為0x0000H0x00FF。SJA1000內(nèi)部自帶時(shí)鐘,只需要在XTAL1與XTAL2之間相接一個(gè)諧振器和電容就能產(chǎn)生時(shí)鐘信號(hào)。本文給SJA1000選用的是12M的諧振器主要是因?yàn)?1單片機(jī)是12分頻的,這樣選可以方便同步工作。本設(shè)計(jì)中8051要對(duì)SJA1000進(jìn)行讀寫操作,所以SJA1000的MODE端口接在了5v的高電平上,讓其工作在Intel的模式下(能夠允許對(duì)其讀寫操作)。SJA1000也需要復(fù)位電路原理與單片的一樣,在下面的最小電路里有介紹這里就不在說(shuō)明。本文在CAN收發(fā)器的RS接口上接了一個(gè)電阻47k電阻后再與電源相連,此時(shí)該端口的電流大小為106微安,收發(fā)器工作在斜率模式(非屏蔽的傳輸線最好的選擇),電阻值是根據(jù)前面PCA82C251的工作手冊(cè)里選出,即電流為10微安到200微安時(shí)處于斜率控制狀態(tài)。另外收發(fā)器也不是直接將CANH、CANL直接接入CAN總線中,需要在兩者之間串聯(lián)5歐姆電阻,保護(hù)收發(fā)器受到過(guò)流的沖擊的。這里選的電阻很小,主要是電路里的電流不大,再加上電阻是保護(hù)過(guò)流沖擊的所以不必選用太大。在總線的兩個(gè)終端還加了120歐姆的電阻,這主要是消除在通信電纜中的信號(hào)反射,電阻值大小是依據(jù)總線標(biāo)準(zhǔn)選定的(總線長(zhǎng)度小于1km兩端接120歐姆電阻)。其余引腳均可對(duì)應(yīng)著其功能或者相應(yīng)的字母相互連接即可,如8051的INT0接入SJA1000的INT端,SJA1000的TX0接CAN收發(fā)器的TXD引腳等,這里不再一一說(shuō)明。另外電路中還有一些電容,主要是硬件的抗干擾的技術(shù),這會(huì)在后面第五章里面抗干擾技術(shù)里介紹。中央節(jié)點(diǎn)的功用就是將開關(guān)節(jié)點(diǎn)信號(hào)發(fā)送到其他車燈的節(jié)點(diǎn)上,故中央節(jié)點(diǎn)的電路圖不僅有CAN連接圖還有一個(gè)開關(guān)的外圍電路,具體結(jié)構(gòu)如圖3.9圖3.9 中央節(jié)點(diǎn)開關(guān)電路圖系統(tǒng)中應(yīng)該有有8個(gè)車燈的開關(guān),它們分別是控制前端車燈的近光燈開關(guān)J2,遠(yuǎn)光燈開關(guān)J3,左轉(zhuǎn)向燈開關(guān)J4,右轉(zhuǎn)向燈開關(guān)J5,,后端的剎車燈開關(guān)J6,倒車燈的開關(guān)J7,霧燈的開關(guān)J8和小燈的開關(guān)J9。在每個(gè)開關(guān)與電阻之間接一個(gè)上拉電阻,以控制輸入的電流來(lái)保護(hù)單片機(jī)當(dāng)其中一個(gè)開關(guān)閉合時(shí),電路導(dǎo)通,所連接的端口被置到高電位,即向引腳輸入“1”。根據(jù)程序里對(duì)端口的定義,8051會(huì)根據(jù)變化的端口信息,通過(guò)數(shù)地復(fù)用線控制SJA1000發(fā)送制定好的報(bào)文,最后由PCA82C251將報(bào)文轉(zhuǎn)換成物理的信號(hào)發(fā)送到總線上。這就是中央節(jié)點(diǎn)的工作原理。3.6 前后節(jié)點(diǎn)的電路設(shè)計(jì)車燈控制系統(tǒng)的前后節(jié)點(diǎn)設(shè)計(jì)與中央控制節(jié)點(diǎn)CAN連接電路相同,不同是在外圍電路上面。前后節(jié)點(diǎn)都是對(duì)中央節(jié)點(diǎn)發(fā)出的報(bào)文做出反應(yīng)的,所以單片機(jī)不再是與車燈的開關(guān)相連接,而是控制的車燈驅(qū)動(dòng)電路相連接。但是車燈的驅(qū)動(dòng)電路是不能直接連接到單片機(jī)上,本文是選用三極管9014來(lái)作為開關(guān)連接單片機(jī)和驅(qū)動(dòng)電路。前后節(jié)點(diǎn)的電路圖一樣,這里我們就列舉前節(jié)點(diǎn)的電路圖:圖3.10 前節(jié)點(diǎn)原理圖在圖中三極管為9014,其為NPN型三極管,集電極與基級(jí)的擊穿電壓為5v,中間加入了4.7k的電阻,是為了在引腳為低電平時(shí)三級(jí)管基級(jí)的電流小于0.106mA,以防止三極管將電流放大到繼電器工作電流。在前端節(jié)點(diǎn)正確接受報(bào)文后根據(jù)報(bào)文的內(nèi)容來(lái)控制電路,就比方受到前端遠(yuǎn)光燈開的信號(hào)后,PAC82C250將物理信號(hào)傳給SJA1000,SJA1000相對(duì)與8051來(lái)說(shuō)就是一個(gè)外部的儲(chǔ)存器,MCU可以直接對(duì)它執(zhí)行讀寫功能。所以在SJA1000受到報(bào)文后,單片機(jī)根據(jù)報(bào)文內(nèi)容將P1.1端口置為高電壓,此時(shí)三極管9014基級(jí)與集電極在5v的電壓下發(fā)射機(jī)與集電極導(dǎo)通,驅(qū)動(dòng)電路開始工作。這就是前后節(jié)點(diǎn)的工作原理。3.7 車燈的驅(qū)動(dòng)電路在之前的系統(tǒng)框架圖中我們也看到,本文是采用繼電器來(lái)控制車燈的開關(guān)的,車燈是與電源繼電器的開關(guān)串聯(lián)在一起驅(qū)動(dòng)電路。為了減少布線,本文直接用單片機(jī)對(duì)繼電器進(jìn)行控制,但是繼電器的工作電流比較大,單片機(jī)輸出的微弱的信號(hào)電流不足以帶動(dòng)繼電器工作,所以我們用一個(gè)三級(jí)管來(lái)實(shí)現(xiàn)這一矛盾。繼電器不需要直接接在單片機(jī)的引腳上,而是接在工作的12V電源上,再連接到三極管的發(fā)射級(jí)上,三極管的基級(jí)連接單片機(jī)的P1引腳,集電極接到地線,此時(shí)的三極管就是控制繼電器接地的開關(guān)。當(dāng)P1端口為高電平時(shí),三級(jí)管導(dǎo)通,繼電器順利接地,繼電器工作旁邊的開關(guān)也閉合驅(qū)動(dòng)電路導(dǎo)通,車燈就正常工作了,這就是這個(gè)驅(qū)動(dòng)電路的原理。在繼電器在不導(dǎo)通的情況下,線圈部分會(huì)產(chǎn)生很大的高壓。為了防止高壓將三極管擊穿,在線圈并連一個(gè)反向的二極管一穩(wěn)定電路。由于近遠(yuǎn)光燈,剎車燈的驅(qū)動(dòng)電路圖一樣這里就選用兩個(gè)比較典型的遠(yuǎn)光燈和轉(zhuǎn)向燈連個(gè)來(lái)展示。本文在轉(zhuǎn)向燈的電路圖中直接選用帶閃爍功能的車燈,外加一個(gè)1HZ的蜂鳴器詳情可見下面兩張圖。圖3.11遠(yuǎn)光燈驅(qū)動(dòng)電路圖圖3.12左轉(zhuǎn)向燈驅(qū)動(dòng)電路圖3.8 系統(tǒng)最小電路設(shè)計(jì)一個(gè)系統(tǒng)的最小電路是指單片機(jī)要正常工作的電路。它必須包含為單片機(jī)提供電源的電源電路。單片機(jī)工作時(shí)時(shí)按照節(jié)拍工作的,故含有為其提供時(shí)鐘信號(hào)的時(shí)鐘電路。單片機(jī)每次工作時(shí)都要重新初始化,復(fù)位電路必不可少。以上三個(gè)電路是單片機(jī)最小系統(tǒng)所必須的電路。在時(shí)鐘電路里本文選用了個(gè)12MHZ的晶體諧振器來(lái)工作,因?yàn)槌R姷?1單片機(jī)都是12分頻,選用12MHZ的 諧振器能夠方便單片機(jī)計(jì)算指令時(shí)間。本文在這里是通過(guò)開關(guān)來(lái)實(shí)現(xiàn)單片機(jī)的復(fù)位,因?yàn)樵趩纹瑱C(jī)工作過(guò)程中不需要復(fù)位,所以開始工作之前對(duì)復(fù)位。這里電容和電阻值是根據(jù)復(fù)位時(shí)間來(lái)選定,本系統(tǒng)的復(fù)位時(shí)間為t=RC=10K*0.1uF=1ms,滿足了CPU兩個(gè)工作周期的時(shí)間。這就是系統(tǒng)的最小電路。本文所設(shè)計(jì)的的系統(tǒng)最小電路如圖3.10:圖3.13 系統(tǒng)最小系統(tǒng)電路圖3.9 電源電路設(shè)計(jì)此外單片機(jī)機(jī)的工作的最大電壓是5v左右,而汽車上多數(shù)是采用蓄電池為其電路供電。蓄電池的電壓一般是9v到15v,不能夠直接做為單片機(jī)的電源,需要設(shè)計(jì)一個(gè)電源模塊對(duì)電平進(jìn)行轉(zhuǎn)換。具體的電源模塊電路圖如下圖:圖3.14 電源電路模塊因?yàn)樾枰獙⑿铍姵?2v電壓轉(zhuǎn)換為穩(wěn)定輸出的穩(wěn)定電壓,所以我們選擇了一款比較常用的7805的三端穩(wěn)壓器。7805的最大工作電壓為36v,輸出電壓為4.8v到5.2v的正電壓,這與單片機(jī)所需要的+5v的工作電壓相符合。電路中的的去耦電容主要是去除可能的振動(dòng)和噪聲,電路中的電容則起到濾波的作用,這些會(huì)在第五章里有具體介紹。在電路的輸出端旁路還反接了一個(gè)二極管,對(duì)電源電路起到防止短路,保護(hù)電源電路的作用。另外,在電路中還加了一個(gè)發(fā)光二極管來(lái)表示電源是否正常工作。第四章 系統(tǒng)的軟件設(shè)計(jì)在系統(tǒng)的硬件設(shè)計(jì)好之后,還需要對(duì)系統(tǒng)加入“思維”整個(gè)系統(tǒng)才能正常的工作。這里所說(shuō)的“思維”就是設(shè)計(jì)人員所編寫的程序算法。一般來(lái)說(shuō)設(shè)計(jì)人員編寫的程序通常都是以簡(jiǎn)便,通用,方便更改為目的。這樣不僅降低了系統(tǒng)的設(shè)計(jì)的強(qiáng)度,也方便以后工作人員對(duì)系統(tǒng)的軟件的更改或擴(kuò)展新的功能等。一個(gè)好的算法能夠很大程度上減少系統(tǒng)的運(yùn)算量,降低系統(tǒng)的反應(yīng)速度,這一部分理所當(dāng)然是系統(tǒng)設(shè)計(jì)中的難點(diǎn)。4.1系統(tǒng)整體軟件簡(jiǎn)介本文對(duì)算法主要是基于C語(yǔ)言來(lái)編寫,因?yàn)樵谥恢按髮W(xué)的學(xué)習(xí)中有專門開設(shè)C語(yǔ)言的課程,對(duì)C語(yǔ)言有一定的基礎(chǔ),學(xué)習(xí)起來(lái)也更快一些。另外,C語(yǔ)言也是現(xiàn)在軟件編程中使用最為廣泛的語(yǔ)言,用C語(yǔ)言編寫也方便對(duì)編程今后學(xué)習(xí)更改。為了方便設(shè)計(jì),本文將系統(tǒng)工作分成幾個(gè)模塊來(lái)編寫,就比如下文的報(bào)文發(fā)送程序可以將它們單獨(dú)拿出來(lái)編寫成一個(gè)小模塊,然后在單片機(jī)控制發(fā)送報(bào)文直接將值賦給發(fā)送小模塊,并且調(diào)用發(fā)送模塊將報(bào)文發(fā)送。這樣大大方便了編程。根據(jù)本文工作時(shí)的要求將系統(tǒng)分為以下幾個(gè)模塊,負(fù)責(zé)掃描開關(guān)狀態(tài)的中央節(jié)點(diǎn)主程序模塊,負(fù)責(zé)發(fā)送報(bào)文和發(fā)送中斷的發(fā)送子程序。前后節(jié)點(diǎn)的負(fù)責(zé)控制繼電器的主程序,還有接受的子程序。在最后還有控制器初始化子程序。這就是本文的整個(gè)軟件系統(tǒng),詳細(xì)的軟件程序都在附錄里面展現(xiàn)。4.2協(xié)議報(bào)文的定義 CAN總線在發(fā)送信息時(shí),總線上的所有節(jié)點(diǎn)都會(huì)接受到這一報(bào)文,但是并不是每個(gè)節(jié)點(diǎn)都需要對(duì)報(bào)文做出反應(yīng),這時(shí)就需要CAN協(xié)議站出來(lái)起作用了。這里我們選用CAN協(xié)議2.0B。在在第二章就提到過(guò),CAN協(xié)議結(jié)構(gòu)中有個(gè)標(biāo)識(shí)符,標(biāo)識(shí)符里就有可以讓節(jié)點(diǎn)正確接受的地址,同時(shí)標(biāo)識(shí)符還能提供報(bào)文的優(yōu)先等級(jí),其標(biāo)識(shí)符的數(shù)值越低器優(yōu)先等級(jí)越高。在使用車燈時(shí),制動(dòng)車燈的優(yōu)先等級(jí)是比較高的,它需要給后面車輛一個(gè)信號(hào)防止車輛追尾。故后面節(jié)點(diǎn)的優(yōu)先級(jí)別要高于前面節(jié)點(diǎn)的。當(dāng)系統(tǒng)需要信息時(shí)會(huì)向中央節(jié)點(diǎn)發(fā)送遠(yuǎn)程幀,這樣也需要對(duì)中央節(jié)點(diǎn)地址定義,其優(yōu)先全應(yīng)該是最高的。本文中只有三個(gè)節(jié)點(diǎn),所以直接給出報(bào)文的ID標(biāo)志位如表4.1。表4.1 節(jié)點(diǎn)地址編碼節(jié)點(diǎn)名稱中央節(jié)點(diǎn)前節(jié)點(diǎn)后節(jié)點(diǎn)ID符0x010x110x10根據(jù)第二章里面數(shù)據(jù)幀結(jié)構(gòu),在目標(biāo)節(jié)點(diǎn)后面是功能編碼。本文的主要用到是寫入功能的報(bào)文代碼,對(duì)應(yīng)前面的表格中可以選出代碼為:0x01。在功能編碼后面就是資源節(jié)點(diǎn),由于這里只用到車燈沒(méi)有子節(jié)點(diǎn),所以可以直接定義出車燈資源節(jié)點(diǎn)的編碼:0x01。主要占用ID7到ID0位,在這幾個(gè)標(biāo)識(shí)符還可以用作其他資源節(jié)點(diǎn)的編碼如前端發(fā)動(dòng)機(jī)檢測(cè)節(jié)點(diǎn)。在報(bào)文正確的被所對(duì)應(yīng)的節(jié)點(diǎn)接受后還需要對(duì)就是對(duì)數(shù)據(jù)域里面的子資源節(jié)點(diǎn)地址編碼,具體的定義如表4.2。表4.2 子資源節(jié)點(diǎn)編碼車燈車燈編碼剎車燈0x01左轉(zhuǎn)向燈0x02右轉(zhuǎn)向燈0x03近光燈0x04遠(yuǎn)光燈0x05倒車燈0x06霧燈0x07小燈0x08在對(duì)這些報(bào)文里面的標(biāo)識(shí)位做了定義后,就可以把CAN中央節(jié)點(diǎn)的發(fā)送的具體的報(bào)文寫出。剎車燈在車燈的系統(tǒng)中有著比較高的優(yōu)先級(jí),所以給剎車燈的標(biāo)識(shí)符給了比較小的值,這里我給出了控制剎車燈打開的具體的報(bào)文:00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x01 0x01。最后一個(gè)0x01是功能碼所用的參數(shù)1,這個(gè)報(bào)文的意思就是對(duì)剎車燈的設(shè)備引腳寫1,這樣就能打開車燈。由于報(bào)文內(nèi)容過(guò)多,這里就不在一一列舉,各個(gè)車燈的打開關(guān)閉的報(bào)文在后面附錄里面程序里也有展現(xiàn)。4.3中央節(jié)點(diǎn)的程序設(shè)計(jì)要想能夠較快編寫系統(tǒng)的程序就需要了解系統(tǒng)的工作的步驟。下面就來(lái)介紹中央節(jié)點(diǎn)工作節(jié)點(diǎn)的工作流程。單片機(jī)和CAN控制器要想能正常的工作就需要它們?cè)谡_的工作狀態(tài)下,這就需要對(duì)CAN控制器進(jìn)行復(fù)位,也就是所謂的初始化。初始化不僅是是對(duì)控制節(jié)拍的時(shí)鐘的復(fù)位,還包括對(duì)工作模式的復(fù)位和對(duì)驗(yàn)收濾波器的清零等。結(jié)合中央節(jié)點(diǎn)的作用:將各個(gè)開關(guān)的狀態(tài)發(fā)送到總線上,故在硬件都進(jìn)如入正常的工作狀態(tài)后首要的就是讀取各個(gè)開關(guān)的信息狀態(tài),生成報(bào)文后將數(shù)據(jù)發(fā)送到CAN控制器用于信息發(fā)送的緩沖器上準(zhǔn)備發(fā)送。但是數(shù)據(jù)不是直接發(fā)送到發(fā)送緩沖器,必須要等到發(fā)送緩沖器空閑報(bào)文才能進(jìn)如發(fā)送緩沖器中。在數(shù)據(jù)進(jìn)入發(fā)送緩沖器前還需要對(duì)發(fā)送緩沖器進(jìn)行正確的設(shè)置,此后開啟CAN的中斷源,向CPU發(fā)送中斷請(qǐng)求。在CPU中斷操作之后,檢測(cè)發(fā)送緩沖區(qū)是否空出,如果空出就將數(shù)據(jù)寫入進(jìn)去并發(fā)送。為了能夠方便自己的編寫把上述的步驟畫成流程圖如下圖:開始延時(shí)初始化SJA1000初始化單片機(jī)讀取開關(guān)狀態(tài)開關(guān)狀態(tài)是否改變打開CAN發(fā)送中斷源發(fā)送區(qū)是否空閑數(shù)據(jù)寫入啟動(dòng)發(fā)送命令NYNN Y 結(jié)束圖4.1 中央節(jié)點(diǎn)發(fā)送流程圖4.4 前后節(jié)點(diǎn)的程序設(shè)計(jì)設(shè)置p1接口前后節(jié)點(diǎn)的功用主要是接受報(bào)文,并根據(jù)報(bào)文內(nèi)容做出相應(yīng)的反應(yīng)。因?yàn)楹蠊?jié)點(diǎn)的功能與前節(jié)點(diǎn)一樣,這里我就不在重復(fù)編寫,只介紹前節(jié)點(diǎn)的工作流程。與中央節(jié)點(diǎn)一樣,當(dāng)系統(tǒng)要工作時(shí)都要對(duì)單片機(jī)和CAN控制器進(jìn)行初始化復(fù)位。但是在初始化后,還需要對(duì)單片機(jī)的i/o端口進(jìn)行設(shè)置,因?yàn)樵诔跏蓟骾/o引腳會(huì)默認(rèn)為高電平。本設(shè)計(jì)中是用一個(gè)三極管作為驅(qū)動(dòng)電路的開關(guān),基極在高電平下,發(fā)射和集電極相連,本文這里通過(guò)程序?qū)1設(shè)置為低電平。再然后,就需要向CPU發(fā)送中斷請(qǐng)求這與之前面的一樣,訪問(wèn)接收緩沖器是否空閑,空閑就啟動(dòng)接受的命令??偩€上的報(bào)文會(huì)被分配到緩存器中,單片機(jī)和CAN控制器會(huì)讀取報(bào)文并釋放緩沖器。最后單片機(jī)再根據(jù)報(bào)文做出相應(yīng)的控制下圖為前節(jié)點(diǎn)的程序流程圖:設(shè)置p1接口將數(shù)據(jù)寫入接受緩沖器打開CAN接受中斷源讀取接受緩沖器信息
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《稅收合規(guī)性補(bǔ)充申報(bào)智能管理系統(tǒng)》介紹課件
- 計(jì)算機(jī)一級(jí)試題及參考答案解析
- 5月消防設(shè)施操作員試題(含參考答案)解析
- 毛織造企業(yè)組織結(jié)構(gòu)與人力資源管理考核試卷
- 班主任家長(zhǎng)會(huì)課件下載
- 紙容器生產(chǎn)過(guò)程中的能耗監(jiān)測(cè)與優(yōu)化考核試卷
- 2025年印刷品、記錄媒介復(fù)制品項(xiàng)目合作計(jì)劃書
- 空調(diào)器智能濕度控制系統(tǒng)考核試卷
- 《秋天的落葉》課件
- 網(wǎng)絡(luò)安全防護(hù)在智慧城市的智能垃圾分類系統(tǒng)中評(píng)估考核試卷
- 糧油配送項(xiàng)目服務(wù)承諾及售后服務(wù)
- 公司內(nèi)部文件管理規(guī)定及辦法
- 2024-2025中國(guó)服裝行業(yè)科技創(chuàng)新白皮書
- 道路安全交通課課件
- 眼科住院及手術(shù)患者安全
- 數(shù)字化轉(zhuǎn)型對(duì)企業(yè)人力資本的影響研究
- 保密基本知識(shí)培訓(xùn)材料范文
- 公開征集招標(biāo)代理機(jī)構(gòu)投標(biāo)方案(技術(shù)方案)
- 信息系統(tǒng)安全等級(jí)保護(hù)等級(jí)測(cè)評(píng)報(bào)告模板【等保2.0】
- 《榮安地產(chǎn)公司財(cái)務(wù)風(fēng)險(xiǎn)研究與防范研究(定量論文)》8200字
- 【MOOC】理性思維實(shí)訓(xùn)-華南師范大學(xué) 中國(guó)大學(xué)慕課MOOC答案
評(píng)論
0/150
提交評(píng)論