基于CAN總線的汽車前照燈多路傳輸系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)。CAN( Cont ro ller Ar ea Netw ork) 數(shù)據(jù)總線是一種適用于汽車環(huán)境的汽車局域網(wǎng)。它屬于多路傳輸系統(tǒng)中的一種, 是由德國博世( Bosch) 公司在20 世紀(jì)80 年代初為解決現(xiàn)代汽車中眾多的控制單元與測(cè)試儀器之間的數(shù)據(jù)交換而應(yīng)用開發(fā)的一種串行通信協(xié)議。目前,在汽車設(shè)計(jì)領(lǐng)域中, CAN 幾乎成了一種必須采用的技術(shù)手段, 尤其是在歐洲, 如奔馳、寶馬、保時(shí)捷等都采用CAN 總線實(shí)現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測(cè)和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信。此外, 美國汽車廠也將控制器聯(lián)網(wǎng)系統(tǒng)逐步由Class2 過渡到CAN。CAN 國際標(biāo)準(zhǔn)只定義了物理層和數(shù)據(jù)鏈路層, 實(shí)際應(yīng)用中, 一些廠家和公司又定義了相應(yīng)的應(yīng)用層規(guī)范, 使CAN 的應(yīng)用更加廣泛和可靠。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)。CAN 信號(hào)傳輸介質(zhì)為普通雙絞線, 通信速率最高可達(dá)1 Mbps/ 40 m, 直接傳輸距離可達(dá)10 km/ 5 Kbps。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)。CAN 的信號(hào)傳輸采用短幀結(jié)構(gòu), 每一幀的有效字節(jié)數(shù)為8 個(gè), 因而傳輸時(shí)間短, 受干擾的概率低, 由于其采用CRC16 的校驗(yàn)方式, 誤碼率僅為3 10- 5 。當(dāng)節(jié)點(diǎn)嚴(yán)重錯(cuò)誤時(shí), 具有自動(dòng)關(guān)閉的功能, 以切斷該節(jié)點(diǎn)與總線的聯(lián)系, 使通信線上的其他節(jié)點(diǎn)機(jī)通信不受影響, 具有較強(qiáng)的抗干擾能力。控制器局部網(wǎng)( CAN) 屬于現(xiàn)場(chǎng)總線范疇, 它是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通訊網(wǎng)絡(luò)。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)。CAN 作為汽車環(huán)境中的微控制器通訊, 在車載各電子控制裝置ECU 之間交換信息, 形成汽車電子控制網(wǎng)絡(luò)。比如: 發(fā)動(dòng)機(jī)管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)中, 均嵌入CAN 控制裝置。但是CAN 總線多路傳輸系統(tǒng)還沒有實(shí)際應(yīng)用到汽車前照燈。傳統(tǒng)的汽車系統(tǒng)布線工作量很大, 一旦線路發(fā)現(xiàn)故障, 診斷工作十分困難, 同時(shí)由于數(shù)據(jù)傳輸線很長, 導(dǎo)致傳輸速度下降,可靠性、實(shí)時(shí)性差等問題。CAN 總線技術(shù)作為最有前途的現(xiàn)場(chǎng)總線之一, 依靠其可靠性高, 適應(yīng)環(huán)境能力強(qiáng), 糾錯(cuò)能力突出, 性價(jià)比高等特點(diǎn)成為解決這一問題的新選擇。正是基于這種研究背景, 本文研究并開發(fā)出了基于CAN 總線的汽車前照燈多路傳輸系統(tǒng)。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)。
1 CAN 控制器SJA1000
1. 1 SJA1000 的硬件結(jié)構(gòu)和功能
CAN 的通信協(xié)議主要由CAN 控制器完成。CAN控制器主要由實(shí)現(xiàn)CAN 總線協(xié)議部分和微控制器接口部分組成。不同型號(hào)的CAN 總線通信控制器, 實(shí)現(xiàn)CAN 協(xié)議部分電路的結(jié)構(gòu)和功能大都相同, 而與微控制器接口部分的結(jié)構(gòu)及方式存在一些差異。SJA1000是一種獨(dú)立CAN 控制器, 是PHILIPS 公司首推新一代控制器。支持CAN 2. 0B 協(xié)議。
SJA1000 的主要特性如下:
器件管腳和電器特性均和PCA82C200 兼容; 時(shí)鐘頻率24 MHz; 支持CAN 協(xié)議2. 0 標(biāo)準(zhǔn)位速率可達(dá)1 Mb/ s;同時(shí)支持11 位標(biāo)識(shí)符和29 位標(biāo)識(shí)符; 擴(kuò)展的接收緩沖器( 增至64 B, PCA82C200 只有20 個(gè)字節(jié)) ; 對(duì)不同微處理器的接口; 可編程的CAN 驅(qū)動(dòng)器輸出。
SJA1000 具有兩種工作模式: 基本模式和Peli 模式。其中基本模式符合CAN 協(xié)議2. 0A 標(biāo)準(zhǔn), 和PCA82C200 兼容。設(shè)置時(shí)鐘分頻器( CDR: Clock divider Reg ister) 的最高位模式選擇位( CDR. 7) , 可在基本模式和Peli 模式之間切換。
1. 2 CAN 收發(fā)器82C250 的硬件結(jié)構(gòu)和功能
82C250 是CAN 控制器與物理總線間的接口, 最初主要應(yīng)用于汽車高速控制場(chǎng)合。它向總線提供了差動(dòng)的發(fā)送能力, 向CAN 控制器提供了差動(dòng)的接收能力。
82C250 主要特性如下: 與ISO/ DIS11898 標(biāo)準(zhǔn)兼容; 高速( 最高可達(dá)1 Mb/ s) ; 具有抗汽車環(huán)境下的瞬間干擾, 保護(hù)總線能力; 降低射頻干擾( Radio FrequencyInterference, RFI) 的斜率( slope) 控制; 熱防護(hù); 防護(hù)電池與地之間發(fā)生短路; 低電流待機(jī)方式; 某一個(gè)節(jié)點(diǎn)掉電不會(huì)影響總線; 可有110 個(gè)節(jié)點(diǎn)相連接。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)
2 系統(tǒng)硬件電路圖設(shè)計(jì)
2. 1 汽車前照燈線路示意圖
汽車前照燈傳統(tǒng)供電線路示意圖和汽車前照燈多路總線傳輸系統(tǒng)示意圖如圖1, 圖2 所示。
圖1 汽車前照燈傳統(tǒng)供電線路示意圖
圖2 汽車前照燈多路總線傳輸系統(tǒng)示意圖
2. 2 系統(tǒng)硬件電路原理圖
CAN 智能節(jié)點(diǎn)電路圖的設(shè)計(jì)是本系統(tǒng)的核心, 下面給出詳細(xì)的CAN 節(jié)點(diǎn)硬件電路設(shè)計(jì)。
圖3 是汽車汽車前照燈的CAN 總線多路傳輸系統(tǒng)的硬件電路原理圖。從圖中可以看出, 電路主要由三大塊組成。第一塊是前照燈的開關(guān)電路部分, 主要包括微控制器89C51 單片機(jī)、獨(dú)立CAN 通信控制器SJA1000, CAN 總線收發(fā)器82C250; 第二塊是上位機(jī),包括CAN 總線適配卡以及數(shù)據(jù)顯示部分; 第三塊是前照燈的用電器電路部分, 主要包括的也是微控制器89C51 單片機(jī)、獨(dú)立CAN 通信控制器SJA1000, CAN總線收發(fā)器82C250。需要說明一點(diǎn)的是, 本系統(tǒng)用4 個(gè)發(fā)光二極管來代替具體的汽車前照燈中的近光燈,遠(yuǎn)光燈, 示寬燈, 霧燈。
圖3 系統(tǒng)硬件電路原理圖
微處理器89C51 負(fù)責(zé)SJA1000 的初始化, 通過控制SJA1000 實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。
SJA1000 的AD0 ~ AD7 連接到89C51 的P0 口,SJA1000 的連接到89C51 的P2. 0, P2. 0 為0 時(shí),CPU 片外存儲(chǔ)器地址可選中SJA 1000, CPU 通過這些地址可對(duì)SJA1000 執(zhí)行相應(yīng)的讀/ 寫操作。SJA1000的ALE 分別與89C51 的引腳相連, 接89C51 的, 89C51 也可以通過中斷方式訪問SJA1000。[!--empirenews.page--]
82C250 與CAN 總線的接口部分采用了一定的安全和抗干擾措施。82C250 的CANH 和CANL 引腳各自通過一個(gè)5 的電阻與CAN 總線相連, 電阻可起到一定的限流作用, 保護(hù)82C250 免受過流的沖擊。
CANH 和CANL 與地之間并聯(lián)了2 個(gè)30 pF 的小電容, 可以起到濾除總線上的干擾和一定的防電磁輻射的能力。82C250 的Rs 腳上接有一個(gè)斜率電阻, 電阻大小可以根據(jù)總線通信速度適當(dāng)調(diào)整, 一般在16~ 140 k 。
2. 3 微處理器的選擇
汽車電子控制系統(tǒng)的實(shí)時(shí)性是建立在微處理器的高速運(yùn)算功能上的, 因此微處理器的選擇是系統(tǒng)設(shè)計(jì)的重要環(huán)節(jié), 與一般的電子設(shè)備相比較, 汽車電子控制系統(tǒng)的微處理器特點(diǎn)在于經(jīng)常處理大量的輸入和輸出信號(hào), 而且要實(shí)現(xiàn)高精度和實(shí)時(shí)控制, 因此必須能夠同時(shí)進(jìn)行多種獨(dú)立的操作。為了滿足這些要求, 微處理器必須具有高速計(jì)算、高速實(shí)時(shí)輸入和輸出以及多種中斷響應(yīng)等特性。由于通用電子計(jì)算機(jī)電子控制系統(tǒng)的控制功能較為簡單, 所以大多數(shù)電子控制單元( ECU ) 中主要使用8 位微處理器。在選擇微處理器上, 不僅要注重滿足技術(shù)要求, 還要綜合考慮成本和實(shí)用因素, 不應(yīng)片面追求微處理器的高速和高位數(shù)。
本研究是對(duì)按鈕開關(guān)的邏輯信號(hào)進(jìn)行處理, 對(duì)微處理器的控制核心CPU 的要求不高, 選用AT89C51 即可滿足要求。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)
3 汽車前照燈CAN 總線多路傳輸系統(tǒng)的軟件設(shè)計(jì)
多路傳輸系統(tǒng)的軟件設(shè)計(jì)包括CAN 節(jié)點(diǎn)的初始化、CAN 報(bào)文的發(fā)送和接收、PC 機(jī)與CAN 適配卡的通信。
3. 1 初始化
系統(tǒng)節(jié)點(diǎn)初始化包括: 自檢、CAN 通訊初始化、A/ D初始化、各種系統(tǒng)標(biāo)志初始化以及看門狗初始化等。其中89C51 的CAN 控制器初始化流程如圖4所示。
圖4 CAN 初始化流程圖。
3. 2 CAN 子節(jié)點(diǎn)收發(fā)軟件設(shè)計(jì)
子節(jié)點(diǎn)主要功能是實(shí)現(xiàn)對(duì)按鍵信號(hào)進(jìn)行采集, 并響應(yīng)主控節(jié)點(diǎn)命令, 通過CAN 總線向主控節(jié)點(diǎn)發(fā)送檢測(cè)點(diǎn)信息。在軟件設(shè)計(jì)上, 子節(jié)點(diǎn)采取命令應(yīng)答方式, 即等待命令—分析命令類型—發(fā)回相應(yīng)數(shù)據(jù)。
系統(tǒng)中子節(jié)點(diǎn)在上電復(fù)位后主要工作為:
( 1) 對(duì)系統(tǒng)進(jìn)行初始化;( 2) 向主控節(jié)點(diǎn)發(fā)出加入請(qǐng)求;( 3) 主控節(jié)點(diǎn)接受請(qǐng)求, 并給該子節(jié)點(diǎn)一個(gè)網(wǎng)絡(luò)編號(hào);( 4) 等待主控節(jié)點(diǎn)命令;( 5) 根據(jù)命令將監(jiān)測(cè)點(diǎn)的相關(guān)數(shù)據(jù)通過CAN 總線發(fā)送給主控節(jié)點(diǎn)。
因此, 子節(jié)點(diǎn)的主要流程如圖5 所示。
3. 3 主控節(jié)點(diǎn)軟件設(shè)計(jì)
主控節(jié)點(diǎn)軟件采用事件驅(qū)動(dòng)方式, 事件信號(hào)由各種中斷信號(hào)產(chǎn)生; CPU 在進(jìn)入中斷處理程序后, 僅僅判斷事件類型, 設(shè)置相應(yīng)的事件標(biāo)志位, 并不對(duì)事件做任何處理; 主控節(jié)點(diǎn)主程序?qū)⒀h(huán)讀取事件標(biāo)志, 并轉(zhuǎn)入相應(yīng)的事件處理程序。
主控節(jié)點(diǎn)具有兩種工作模式。一種是系統(tǒng)中存在上位機(jī), 上位機(jī)作為命令發(fā)出點(diǎn), 主控節(jié)點(diǎn)處于被動(dòng)控制模式。此時(shí), 主控節(jié)點(diǎn)的工作是通過RS 232 接收上位機(jī)的命令, 分析命令的目的節(jié)點(diǎn), 并將命令通過CAN網(wǎng)絡(luò)發(fā)送給目的節(jié)點(diǎn); 同時(shí), 主控節(jié)點(diǎn)檢測(cè)CAN 網(wǎng)絡(luò)上的節(jié)點(diǎn)數(shù)據(jù), 將節(jié)點(diǎn)發(fā)出的數(shù)據(jù)通過RS 232 發(fā)送給上位機(jī); 重復(fù)以上流程直到工作方式發(fā)生改變。在這種方式下主控節(jié)點(diǎn)的主要工作流程如圖6 所示。
圖6 被動(dòng)控制狀態(tài)流程。
當(dāng)系統(tǒng)中不存在上位機(jī)或上位機(jī)發(fā)出脫離系統(tǒng)命令后, 主控節(jié)點(diǎn)進(jìn)入主動(dòng)控制工作模式。在這種狀態(tài)中, 命令發(fā)送者為主控節(jié)點(diǎn), 主控節(jié)點(diǎn)可通過定時(shí)器事件輪循查詢各節(jié)點(diǎn)工作狀態(tài); 響應(yīng)鍵盤事件, 并根據(jù)用戶輸入的命令向目標(biāo)節(jié)點(diǎn)發(fā)出命令或響應(yīng)相應(yīng)子節(jié)點(diǎn)的數(shù)據(jù); 通過LED 燈顯示子節(jié)點(diǎn)工作狀態(tài)。
兩種工作模式間可以通過上位機(jī)發(fā)出命令、用戶通過鍵盤輸入命令以及主控節(jié)點(diǎn)查詢上位機(jī)工作狀態(tài)異常( 如在被動(dòng)狀態(tài)中, 上位機(jī)長時(shí)間沒有命令) 等幾種方式切換。
3. 4 上位機(jī)監(jiān)控系統(tǒng)設(shè)計(jì)
上位機(jī)監(jiān)控系統(tǒng)基于C+ + 設(shè)計(jì), 可以實(shí)現(xiàn)同時(shí)對(duì)多路數(shù)據(jù)進(jìn)行采集、存儲(chǔ), 并設(shè)計(jì)了圖形化的監(jiān)控顯示。監(jiān)控系統(tǒng)功能包括:
( 1) 向主控節(jié)點(diǎn)發(fā)出聯(lián)機(jī)或脫機(jī)命令, 切換節(jié)點(diǎn)工作狀態(tài);( 2) 定時(shí)發(fā)送節(jié)點(diǎn)查詢命令, 查詢子節(jié)點(diǎn)工作狀況, 更新系統(tǒng)節(jié)點(diǎn)表;( 3) 根據(jù)用戶需要, 定時(shí)向監(jiān)控節(jié)點(diǎn)發(fā)送讀取命令, 取得節(jié)點(diǎn)的監(jiān)控?cái)?shù)據(jù), 并保存數(shù)據(jù), 形成監(jiān)控?cái)?shù)據(jù)文件;( 4) 以圖形化的方式顯示監(jiān)控曲線。
上位機(jī)系統(tǒng)中還包含了數(shù)據(jù)分析功能, 其中設(shè)計(jì)了算法接口; 系統(tǒng)用戶可編寫自己的算法庫, 系統(tǒng)可調(diào)用用戶算法庫對(duì)采集的原始數(shù)據(jù)進(jìn)行進(jìn)一步的分析。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)
4 結(jié) 語
由于CAN 總線具有極強(qiáng)的抗干擾能力, 系統(tǒng)在使用現(xiàn)場(chǎng)數(shù)據(jù)通訊非常可靠, 并且通過CAN 中繼器可以進(jìn)一步提高通訊質(zhì)量和距離。隨著CAN 總線芯片性能的提高、價(jià)格的降低, 逐漸應(yīng)用到普通轎車上, 也為其在農(nóng)業(yè)機(jī)械上的應(yīng)用提供了條件。研究CAN 總線在拖拉機(jī)等農(nóng)業(yè)機(jī)械上的應(yīng)用, 對(duì)于提高農(nóng)機(jī)性能和經(jīng)濟(jì)性, 促進(jìn)我國農(nóng)業(yè)機(jī)械化發(fā)展, 具有重要意義。
基于CAN總線的汽車前照燈多路傳輸系統(tǒng)。