【正文】
了 由于 傳輸 方 緩沖區(qū)未 能 釋放而沒(méi)能 傳輸 的 報(bào)文調(diào)度, 在這種 情況下現(xiàn)場(chǎng)總線控制器 可發(fā)揮 中止傳輸 的 功能。 void led(uchar number) { if(number=100) //當(dāng)計(jì)數(shù)值等于 100 時(shí) number=0; //數(shù)值要清 0 uchar num=number%2; //數(shù)值余 2后的結(jié)果付給 num led1=num; led2=num; //同一個(gè)值要么是 0 要么是 1,付給車燈只有一個(gè)燈亮 } 圖 42 報(bào)文發(fā)送流程圖 基于 CAN 總線的汽車車燈控制網(wǎng)絡(luò)的軟件設(shè)計(jì) 21 首先對(duì) SJA1000 初始化, 在此處 讀寫(xiě)采用外部寄存器尋址方式 設(shè)定 SJA1000 寄存器,所以 可 片選 不用設(shè)置。將報(bào)文里的數(shù)讀出。 所以 ,往往在硬件抗干 設(shè)備上 , 還要 采取補(bǔ)充抗干擾技術(shù) 的 軟件, 為 硬件措施的 增加效果 。 測(cè)試方案 利用 keil 軟件編程環(huán)境 ,可以清楚地看到整個(gè)流程 ,并且能夠減少 手寫(xiě)帶來(lái)的筆誤。根據(jù)硬件應(yīng)積極的修改,基于 CAN 總線的汽車車燈控制網(wǎng)絡(luò)的軟件設(shè)計(jì) 22 首先要符合電路圖的設(shè)計(jì)。 基于 CAN 總線的汽車車燈控制網(wǎng)絡(luò)的軟件設(shè)計(jì) 23 6 結(jié)論 這個(gè)項(xiàng)目主要針對(duì)現(xiàn)在比較具有現(xiàn)實(shí)應(yīng)用的汽車網(wǎng)絡(luò)設(shè)計(jì)。將需要傳輸?shù)臄?shù)據(jù)寫(xiě)入報(bào)文中,在接收到時(shí)讀取數(shù)據(jù)。自收發(fā)可以實(shí)現(xiàn)測(cè)試 CAN 控制器與處理器連接。在這段時(shí)間里我都倍受煎熬,但無(wú)論計(jì)劃的安排,問(wèn)題的處理,還是在個(gè)人思想的長(zhǎng)進(jìn),自學(xué)能力的提高,都有一個(gè)全新的飛躍! 課程設(shè)計(jì)即將結(jié)束,但是我們對(duì)汽車電子設(shè)計(jì)的愛(ài)好卻不會(huì)停止,我們依舊會(huì)邁著堅(jiān)定的步伐,繼續(xù)追尋我們的夢(mèng)想。據(jù)我所知, 除文中已經(jīng)注明引用的內(nèi)容外,本論文(設(shè)計(jì))不包含其他個(gè)人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果。學(xué)??梢怨颊撐模ㄔO(shè)計(jì))的全部或部分內(nèi)容。 、圖表要求: 1)文字通順,語(yǔ)言流暢,書(shū)寫(xiě)字跡工整,打印字體及大小符合要求,無(wú)錯(cuò)別字,不準(zhǔn)請(qǐng)他人代寫(xiě) 2)工程設(shè)計(jì)類題目的圖紙,要求部分用尺規(guī)繪制,部分用計(jì)算機(jī)繪制,所有圖紙應(yīng)符合國(guó)家技術(shù)標(biāo)準(zhǔn)規(guī)范。 作者簽名: 指導(dǎo)教師簽名: 日期: 日期: 基于 CAN 總線的汽車車燈控制網(wǎng)絡(luò)的軟件設(shè)計(jì) 27 注 意 事 項(xiàng) (論文)的內(nèi)容包括: 1)封面(按教務(wù)處制定的標(biāo)準(zhǔn)封面格式制作) 2)原創(chuàng)性聲明 3)中文摘要( 300 字左右)、關(guān)鍵詞 4)外文摘要、關(guān)鍵詞 5)目次頁(yè)(附件不統(tǒng)一編入) 6)論文主體部分:引言(或緒論)、正文、結(jié)論 7)參考文獻(xiàn) 8)致謝 9)附錄(對(duì)論文支持必要時(shí)) :理工類設(shè)計(jì)(論文)正文字?jǐn)?shù)不少于 1 萬(wàn)字(不包括圖紙、程序清單等) ,文科類論文正文字?jǐn)?shù)不少于 萬(wàn)字。 作者簽名: 日期: 畢業(yè)論文(設(shè)計(jì))授權(quán)使用說(shuō)明 本論文(設(shè)計(jì))作者完全了解 **學(xué)院有關(guān)保留、使用畢業(yè)論文(設(shè)計(jì))的規(guī)定,學(xué)校有權(quán)保留論文(設(shè)計(jì))并向相關(guān)部門(mén)送交論文(設(shè)計(jì))的電子版和紙質(zhì)版。 其次 要感謝和我一起做畢業(yè)設(shè)計(jì)的 莫 東衡 ,正是有了他 的硬件支持 ,我們才在遇到問(wèn)題時(shí),相互鼓勵(lì),最終解決了問(wèn)題,圓滿地完成了畢業(yè)設(shè)計(jì)的各項(xiàng)工 作 。 在這個(gè)過(guò)程中要耐得住寂寞,堅(jiān)守自己的信念,盡管是在軟件編程檢測(cè)時(shí)無(wú)錯(cuò),但與硬件結(jié)合時(shí),出現(xiàn)錯(cuò)誤??偨Y(jié)了在軟硬件聯(lián)調(diào)時(shí),首先要確保硬件正常工作。運(yùn)用 51 單片機(jī)為控制核心,將 SJA1000 作為外部存儲(chǔ)器。找出存在的問(wèn)題。提高程序的編寫(xiě)速度。在 實(shí)際 應(yīng)用中 , 只要求 軟件占用 較小的內(nèi) 存儲(chǔ)不可 行,因?yàn)?隨著 MCU 的 控制的設(shè)備越來(lái)越自動(dòng)化,導(dǎo)致 存 代碼量急劇增加 。 軟件可靠性設(shè)計(jì) 合理的軟件設(shè)計(jì)可以減少 硬件設(shè)備的復(fù)雜,縮短開(kāi)發(fā)的周期,便于維護(hù),并能提高汽車產(chǎn)品的安全性與可靠性。待 CAN 總線接收到報(bào)文。因?yàn)閭€(gè)別問(wèn)題使一個(gè)傳輸報(bào)文依舊處于排隊(duì)等待接受服務(wù)的情況下,這時(shí)的傳輸緩沖區(qū)會(huì)被鎖定。//單片機(jī) 允許 對(duì) 非內(nèi) 部寄存器 進(jìn)行相應(yīng)的寫(xiě)的相關(guān)指令 , 看似進(jìn)行讀與 寫(xiě)的 訪問(wèn) 地址讀 具有 同一片地址 , 可是寫(xiě)的數(shù)據(jù)也許與讀的數(shù)據(jù)結(jié)果卻有所差異 。設(shè)定完成后,進(jìn)入復(fù)位模式 。 開(kāi)始初始化單片機(jī)。 基于 CAN 總線的汽車車燈控制網(wǎng)絡(luò)的軟件設(shè)計(jì) 17 5 系統(tǒng)的軟件設(shè)計(jì) 系統(tǒng)的軟件設(shè)計(jì)是本文的核心內(nèi)容 ,主要包括單片機(jī)的初始化, SJA1000 的初始化,接收數(shù)據(jù),發(fā)送數(shù)據(jù)和報(bào)文的傳輸。 圖 44 錯(cuò)誤型定界符 錯(cuò)誤型定界符由隱性位 8個(gè)組成,其與過(guò)載型界定擁有相似的樣式。 應(yīng)答域 (ACK 域 ) 傳輸方面?zhèn)鬏攦晌浑[性位和位組成應(yīng)答域由,當(dāng)接收到無(wú)錯(cuò) CRC 相應(yīng)的節(jié)點(diǎn)會(huì)在傳輸方節(jié)點(diǎn)對(duì)應(yīng)的回應(yīng)間隙上,在應(yīng)答區(qū)域里第二隱性位是應(yīng)答界定符。至于接收的數(shù)據(jù),方法相同。 現(xiàn)場(chǎng)總線總線上的接收節(jié)點(diǎn)能夠請(qǐng)求線上的另一個(gè)節(jié)點(diǎn)傳輸消息,在查找目標(biāo)址的節(jié)點(diǎn)即刻傳輸要請(qǐng)求內(nèi)容時(shí),就使用同一個(gè)標(biāo)識(shí)符,這時(shí)主線上避免了發(fā)生沖突,這的前提是為低位的數(shù) RTR 位。 4, 仲裁域 RTR 位 和信息標(biāo)識(shí)符構(gòu)成,仲裁域要執(zhí)行面向位的沖突仲裁,當(dāng)有多個(gè) 現(xiàn)場(chǎng)總線 控制器同時(shí)傳輸數(shù)據(jù)時(shí)。其和 的傳輸層相同,不能被靈活修改 MAC 子層。 現(xiàn)場(chǎng)總線 協(xié)議 嚴(yán)格按照 ISO/OSI 參考模型進(jìn)行操作,如下圖 41 所示, 現(xiàn)場(chǎng)總線 分為物理層和數(shù)據(jù)鏈路層兩層。 因?yàn)橐蛊涫褂迷谝?guī)定的場(chǎng)合,所以需要網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)易化、費(fèi)用適宜、而且要求數(shù)據(jù)傳輸速度高、擁有實(shí)時(shí)性的控制特點(diǎn)。 1 2 3 4 5 6ABCD654321DCBAT i t l eN u m b e r R e v i s i o nS i z eBD a t e : 3 1 M a y 2 0 1 0 S h e e t o f F i l e : C : \ P r o g r a m F i l e s \ D e s i g n E x p l o r e r 9 9 S E \ E x a m p l e s \ C i r c u i t S i m u l a t i o n \ P R E V I O ~ 2 . D D BD r a w n B y :G N DRsC A N HR X DT X DV r e fV c cC A N LP1P C A 8 2 C 2 5 0V C C14537682R35R45R5R P O TC7C83 0 p FD3D43 0 p FR61 2 0162738495J 1 D B 9T X S J AR X S J AC 1 3C A N HC A N L 圖 37 現(xiàn)場(chǎng)總線通訊模塊原理圖 基于 CAN 總線的汽車車燈控制網(wǎng)絡(luò)的軟件設(shè)計(jì) 13 4 現(xiàn)場(chǎng)總線 總線的報(bào)文 隨著 現(xiàn)場(chǎng)總線 技術(shù)的廣泛使用,人們研制出了現(xiàn)場(chǎng)總線通信協(xié)議的標(biāo)準(zhǔn)化要求。本設(shè)計(jì)采用 slopecontrol 模式,連接的電路如圖 37。 通過(guò)這數(shù)據(jù)通道傳輸數(shù)據(jù),進(jìn)行數(shù)據(jù)的讀寫(xiě)操作 如圖 36。將其轉(zhuǎn)換成報(bào)文形式,現(xiàn)場(chǎng)總線接收。 現(xiàn)場(chǎng)總線通訊控制器 本設(shè)計(jì)中現(xiàn)場(chǎng)總線控制器采用 PHILIPS公司的 SJA1000芯片,現(xiàn)場(chǎng)總線控制器( 基礎(chǔ) 現(xiàn)場(chǎng)總線)的 衍生 產(chǎn)品, 并且附加了另一類工作方式 —— 增強(qiáng)型 現(xiàn)場(chǎng)總線, 主要滿足 現(xiàn)場(chǎng)總線 協(xié)議。 表 32 89C51 單片機(jī)各引腳及功能說(shuō)明 序號(hào) 引腳名稱 引腳序號(hào) 功能說(shuō)明 1 P0 口 3239 8 位并行雙向 I/O 口,訪問(wèn)外部存儲(chǔ)器時(shí), 可作為低 8 位地址線 /數(shù)據(jù)總線復(fù)用 2 P1 口 18 通用 I/O 口, 8 位準(zhǔn)雙向,編程和校驗(yàn)時(shí)作為低 8位地址線, 和 另有第二功能 基于 CAN 總線的汽車車燈控制網(wǎng)絡(luò)的軟件設(shè)計(jì) 8 3 P2 口 2128 通用 8 位準(zhǔn)雙向 I/O 口,訪問(wèn)外部存儲(chǔ)器時(shí),可作為高 8 位地址線 4 P3 口 1017 8 位準(zhǔn)雙向 I/O 口,提供部分第二功能 5 RST 9 復(fù)位信號(hào)輸入端,高電平有效 6 EA/Vpp 31 訪問(wèn)芯片內(nèi)部和外部程序存儲(chǔ)器的選擇信號(hào) /編程電壓 7 PSEN 29 外部程序存儲(chǔ)器選通信號(hào),低電平有效 8 ALE/PROG 30 低 8 位 地址鎖存信號(hào) /編程脈沖輸入 在 89C51 的所有 I/O 口中, P3 口集中了其中很多的第二功能,介紹了 各個(gè)管腳的第二功能 ,如下表 33。 圖 31 車燈控制網(wǎng)絡(luò)總體框圖 車燈控制按鍵 MCU Can 總線發(fā)送器 Can 總線接收器 車燈 1 車燈 2 V C A N H V C A N L 隱性位 隱性位 顯性位 基于 CAN 總線的汽車車燈控制網(wǎng)絡(luò)的軟件設(shè)計(jì) 7 MCU 的選擇 車燈控制系統(tǒng)微控制器 (MCU)采用 ATMEL 公司的 89C51 單片機(jī), 一般每片 單片機(jī)可重復(fù)燒錄 100 多次 。如圖 24。 目前處于前期發(fā)展的汽車網(wǎng)絡(luò)水平,相比應(yīng)用早期的布線技術(shù)控制車燈功能,直接導(dǎo)致汽車線路復(fù)雜成本過(guò)高,安全性極大程度的影響汽車質(zhì)量。那個(gè)節(jié)點(diǎn)拿到了令牌,它就 具有了發(fā)送信息的優(yōu)先權(quán) 如圖33。 基于 CAN 總線的汽車車燈控制網(wǎng)絡(luò)的軟件設(shè)計(jì) 5 圖 22 星型線型拓?fù)? 環(huán)型拓?fù)? 所有的節(jié)點(diǎn)相互連接 使整個(gè)網(wǎng)絡(luò)形成一個(gè)閉環(huán) 。如圖 31。這意味著,為了獲得對(duì)總線進(jìn)行訪問(wèn)的權(quán)利,它還是要參與仲裁過(guò)程。從檢測(cè)出錯(cuò)誤開(kāi)始、到可以著手傳輸下一個(gè)幀為止的這段時(shí)間稱為恢復(fù)時(shí)間,此后如果再未 出錯(cuò)的話,恢復(fù)時(shí)間占17~23 個(gè)位時(shí)間(在總線遭受嚴(yán)重干擾的場(chǎng)合,最多占 29個(gè)位時(shí)間)。同時(shí)可以通過(guò)任意節(jié)點(diǎn)接收,也可以任何節(jié)點(diǎn)接收,可以實(shí)現(xiàn)在現(xiàn)場(chǎng)總線網(wǎng)絡(luò)。幀接收濾波處理方法是接收器對(duì)信息的拒收或接受的處理方。 如果大于一個(gè)節(jié)點(diǎn)同時(shí)開(kāi)始傳輸幀, 并且總線的狀態(tài)是空閑, 由此引起的總線訪問(wèn)沖突是利用基于線路競(jìng)爭(zhēng)的仲裁對(duì)標(biāo)識(shí)符 進(jìn)行判別來(lái)解決的。那個(gè)節(jié)點(diǎn)獲得最高優(yōu)先權(quán),總線使用權(quán)將被這個(gè)節(jié)點(diǎn)獲得。它的主要特點(diǎn)是下在理論上不受限制的網(wǎng)絡(luò)號(hào)(其實(shí)是在限制電力負(fù)荷)中的一個(gè)節(jié)點(diǎn),在傳輸相同的數(shù)據(jù)信息是可 以被不同的節(jié)點(diǎn)采納。 現(xiàn)場(chǎng)總線有如下基本特點(diǎn): 總線訪問(wèn)采用基于優(yōu)先權(quán)的多主方式 通過(guò)標(biāo)識(shí)符( ID)標(biāo)識(shí)的信息內(nèi)容,遍歷網(wǎng)絡(luò)全部過(guò)程中,沒(méi)有重復(fù)或相同的被標(biāo)示的符號(hào)??梢赃_(dá)到誤碼概率小于 。由位速率決定系統(tǒng)內(nèi)現(xiàn)場(chǎng)總線其中任意兩節(jié)點(diǎn)間的能正常傳輸?shù)木嚯x。 現(xiàn)場(chǎng)總線總線的基本特點(diǎn) 汽車上使用的高速網(wǎng)絡(luò)系統(tǒng)的總線標(biāo)準(zhǔn),特別是廣泛使用的 iso11898 國(guó)際標(biāo)準(zhǔn)。 汽車網(wǎng)絡(luò)