0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用PCA82C250芯片實(shí)現(xiàn)CAN總線系統(tǒng)智能節(jié)點(diǎn)的應(yīng)用方案

電子設(shè)計(jì) ? 來源:微計(jì)算機(jī)信息 ? 作者:鄭凱,趙宏偉 ? 2021-03-31 10:26 ? 次閱讀

引言

CAN(Controll Area Network)即為控制器局域網(wǎng),是世界上應(yīng)用最為廣泛的現(xiàn)場總線之一。它最早由德國Bosh公司率先提出,主要用于解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換問題。CAN總線規(guī)范已經(jīng)被ISO國際標(biāo)準(zhǔn)組織制定為國際標(biāo)準(zhǔn)IS011898(高速應(yīng)用)和IS011519(低速應(yīng)用),得到了Motorola、Intel、Philips、Siemence、NEC等公司的支持。由于CAN總線具有很多優(yōu)越的性能,因此它在汽車工業(yè)、航空工業(yè)、工業(yè)控制、安全防護(hù)等眾多領(lǐng)域中得到了廣泛應(yīng)用。目前CAN總線系統(tǒng)以其高性能和高可靠性,在汽車總成控制器的開發(fā)中占據(jù)了重要的位置。CAN總線系統(tǒng)智能節(jié)點(diǎn)設(shè)計(jì)的工作重點(diǎn)集中在節(jié)點(diǎn)的硬件系統(tǒng)設(shè)計(jì)和軟件系統(tǒng)設(shè)計(jì)上。本文以國家863高技術(shù)發(fā)展計(jì)劃電動(dòng)汽車重大專項(xiàng)為依托,圍繞混和動(dòng)力汽車總成控制器進(jìn)行CAN總線系統(tǒng)智能節(jié)點(diǎn)設(shè)計(jì)。

1 智能節(jié)點(diǎn)體系結(jié)構(gòu)

1.1 技術(shù)特點(diǎn)

CAN總線與其他通訊網(wǎng)絡(luò)的不同之處在于:報(bào)文傳送中不包括目標(biāo)地址,以全網(wǎng)廣播為基礎(chǔ),各接收站根據(jù)報(bào)文中反映數(shù)據(jù)的性質(zhì)的標(biāo)識(shí)符過濾報(bào)文;強(qiáng)化了對數(shù)據(jù)安全性的關(guān)注,滿足控制系統(tǒng)較高的數(shù)據(jù)需求。它具有如下顯著特征:極高的總線利用率、低成本、高速的數(shù)據(jù)傳輸速率、遠(yuǎn)距離傳輸、可靠的錯(cuò)誤處理和檢錯(cuò)機(jī)制、可根據(jù)報(bào)文的ID決定接收或屏蔽該報(bào)文、節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)退出總線的功能等等。

1.2 體系結(jié)構(gòu)

CAN層的定義與開放系統(tǒng)互連模型(GSI)一致。每一層與另一設(shè)備上相同的那一層通訊。實(shí)際的通訊發(fā)生在每一設(shè)備上相鄰的兩層,而設(shè)備只通過模型物理層的物理介質(zhì)互連。CAN的規(guī)范定義了模型的最下面兩層:數(shù)據(jù)鏈路層和物理層。應(yīng)用層協(xié)議可以由CAN用戶定義成適合特別工業(yè)領(lǐng)域的任何方案。另外,CAN還能使用多種物理介質(zhì),如雙紋線、光纖等,其中最常用的是雙絞線。信號(hào)使用差分電壓傳送,兩條信號(hào)線被稱為“CAN_H”和“CAN_L”,靜態(tài)時(shí)均是2.5V左右,此時(shí)狀態(tài)表示為邏輯“1”,也可以叫做“隱性”。用CAN_H比CAN.L高表示邏輯“0”,稱為“顯形”,通常電壓值為:CAN_H=3.5V和CAN_L=1.5V。

1.3 智能節(jié)點(diǎn)網(wǎng)絡(luò)模型

在汽車總成控制系統(tǒng)中,各個(gè)ECU(Electrcnic Control Unit)單元之間的通訊都是通過CAN總線來實(shí)現(xiàn)的。CAN總線智能節(jié)點(diǎn)設(shè)計(jì)的好壞將直接決定控制單元之間通訊信息的可靠性。智能節(jié)點(diǎn)主要由微控制器,CAN控制器和CAN收發(fā)器構(gòu)成。

微控制器主要利用CAN控制器來接收數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理,然后將處理結(jié)果通過CAN控制器和CAN收發(fā)器發(fā)送給其它的節(jié)點(diǎn)。根據(jù)軟件設(shè)計(jì)的需要,采用Motorola公司推出的32位高性能微控制器MPC565作為智能節(jié)點(diǎn)的控制中樞。該控制器具有快速數(shù)據(jù)處理、高速可靠通訊和強(qiáng)抗干擾性等顯著特點(diǎn)。在CAN總線系統(tǒng)設(shè)計(jì)中得到了廣泛應(yīng)用。

CAN控制器主要執(zhí)行在CAN規(guī)范中所定義的CAN通訊協(xié)議,通常用于信息緩沖和驗(yàn)收濾波。在該系統(tǒng)中采用MPC565提供的高性能CAN控制器模塊ToLuCAN進(jìn)行節(jié)點(diǎn)設(shè)計(jì)。TouCAN模塊是一個(gè)高速的(高傳輸率IMBiffSec),短距離的,可在不同介質(zhì)上通訊的CAN控制器。它不但在控制器局域網(wǎng)中采用CAN2.0B通訊協(xié)議實(shí)現(xiàn)與其它ECU單元之問的異步通訊,而且還擁有消息濾波功能的屏蔽寄存器,將接收的消息ID與選定的消息緩沖區(qū)ID進(jìn)行比較,如果存在一個(gè)匹配,那么該消息即可被接收,其主要特點(diǎn)如下:

(1)完全符合CAN通訊協(xié)議標(biāo)準(zhǔn),傳輸率最多同達(dá)到1Mbit/sec。

(2)可通過編程來設(shè)置傳送消息的具體方案,即從最低的ID號(hào)開始傳送消息或者從最低消息緩沖區(qū)號(hào)開始傳送消息。

(3)采用開放式網(wǎng)絡(luò)結(jié)構(gòu),具有獨(dú)立的傳輸介質(zhì)(外部直接連接CAN總線收發(fā)器)。

CAN收發(fā)器用于建立CAN控制器和物理總線之間的連接,控制邏輯電平信號(hào)從CAN控制器到達(dá)物理總線的物理層,反之亦然。在智能節(jié)點(diǎn)系統(tǒng)中.CAN收發(fā)器采用的是PHILIPS公司推出的PCA82C250芯片。它是一種先進(jìn)的CAN總線收發(fā)器,不僅能夠?qū)偩€提供差動(dòng)發(fā)送能力和對CAN控制器提供差動(dòng)接收能力,而且擴(kuò)展的普通模式范圍(-7V.+12V)和斜率控制功能使電磁兼容EMC性能增強(qiáng)。另外它還可以防止總線輸出短路和一般控制環(huán)境中的瞬變現(xiàn)象,具有熱關(guān)閉功能。可以在溫度過載的情況下保護(hù)器件。

2 智能節(jié)點(diǎn)硬件系統(tǒng)設(shè)計(jì)

智能節(jié)點(diǎn)的硬件系統(tǒng)原理圖如圖1所示。它利用PCA82C250芯片將MPC565的內(nèi)部CAN通訊引腳與外部CAN總線連接在一起。PCA82C250是一個(gè)連接CAN控制器和外部物理總線的接口,所提供的最高傳送波特率為1M波特。MPC565的A_CNTX0,A_CNRX0引腳和B_CNTX0,B_CNRX0引腳分別作為兩個(gè)通訊端口的傳送端和接收端。MPC565微控制器用于對TouCAN模塊進(jìn)行初始化,并通過該模塊與外部總線網(wǎng)路進(jìn)行通訊。

圖1智能節(jié)點(diǎn)硬件原理圖

3 智能節(jié)點(diǎn)軟件系統(tǒng)設(shè)計(jì)

智能節(jié)點(diǎn)的軟件系統(tǒng)主要包括TouCAN初始化模塊、消息傳送模塊和消息接收模塊。

3.1 TouCAN初始化模塊

該模塊主要用于實(shí)現(xiàn)消息緩沖區(qū)的初始化和CAN通訊參數(shù)的初始化,其流程圖如圖2所示。它的主要工作過程如下:

圖2 TouCAN初始化流程圖

(1)初始化所有的操作模式

首先通過配置控制寄存器0 (CANCTRL0)來設(shè)定傳輸和接收引腳的操作模式,然后設(shè)定控制寄存器1的位定時(shí)參數(shù)。如PROPSEG,PSEGSI,PSEG2,RJW。隨后通過編程設(shè)置PRESDIV寄存器來選擇SCLOCK操作時(shí)鐘。最后通過設(shè)定控制寄存器1中的LBUF位來選擇內(nèi)部仲裁模式。

(2)初始化消息緩沖區(qū)

TouCAN模塊包括16個(gè)消息緩沖區(qū),在每個(gè)消息緩沖區(qū)有效或無效時(shí),它的控制和狀態(tài)字必須執(zhí)行寫操作。另外必要時(shí)每個(gè)消息緩沖區(qū)的所有其他入口都應(yīng)該被初始化。

(3)初始化屏蔽寄存器用于接收外部屏蔽源。

(4)初始化TouCAN的中斷處理器。

中斷處理器的初始化主要是完成對中斷配置寄存器CANICR和相關(guān)屏蔽位的設(shè)置。這些屏蔽位主要包括消息緩沖區(qū)中斷屏蔽位IMASK,總線關(guān)閉和錯(cuò)誤中斷屏蔽位CANCTRL0,WAKE中斷屏蔽位CANMCR。

(5)對模塊配置寄存器中的HALT位取反.用于實(shí)現(xiàn)CAN總線同步。

3.2 消息傳送模塊

消息傳送模塊比較簡單,主要由TouCAN模塊獨(dú)立完成,其流程圖如圖3所示。

圖3 消息傳送流程圖

消息的傳送過程:加載消息和標(biāo)識(shí)符ID到用于傳送的消息緩沖區(qū)中,使這個(gè)傳送緩沖區(qū)有效.執(zhí)行相關(guān)操作完成消息的傳送:寫控制和狀態(tài)字,使傳送緩沖區(qū)無效;寫ID_HIGH和ID_LOW字;寫待傳送的數(shù)據(jù)字節(jié);寫控制和狀態(tài)字,使得傳送緩沖區(qū)有效,并設(shè)定傳輸消息長度。

在上述操作過程中,第1步和第4步是必須的,可以保證數(shù)據(jù)的相干性。另外一旦一個(gè)有效的傳送代碼被寫入到一個(gè)傳送消息緩沖區(qū)中,緩沖區(qū)便開始檢測CAN總線是否空閑.或者有空白的中間幀。而當(dāng)有多個(gè)消息等待傳送時(shí),內(nèi)部的仲裁邏輯將選擇一個(gè)消息緩沖區(qū)用于下一幀的傳送。在成功傳送之后,自由運(yùn)行定時(shí)器的值將被寫入到消息緩沖區(qū)的TIME字段中,在控制和狀態(tài)字中的CODE字段也被更新,同時(shí)IFLAG寄存器中的狀態(tài)位被置1。

3.3 消息接收模塊

消息接收模塊的處理要復(fù)雜的多,在接收消息的同時(shí),它要處理總線分離和接收溢出等情況,其流程圖如圖4所示。消息的接收過程:首先用戶配置消息緩沖區(qū)等待接收,然后TouCAN模塊把串行消息緩沖區(qū)中接收到的具有匹配ID的消息傳送到接收消息緩沖區(qū)中,最后用戶處理消息,具體操作如下:寫控制和狀態(tài)字,使接收緩沖區(qū)無效;寫ID_HIGH和ID_LOW字;寫控制和狀態(tài)字,屏蔽接收消息緩沖區(qū),使其有效并且為空。同傳送操作過程類似,第1步和第3步也是用于保證數(shù)據(jù)的相干性。一旦這些步驟完成,消息緩沖區(qū)將作為一個(gè)有效的接收緩沖區(qū)使用,并進(jìn)行匹配操作。消息緩沖區(qū)任何時(shí)候都能捕捉到TouCAN是否接收到錯(cuò)誤的空閑幀,在這個(gè)過程中,所有有效的消息緩沖區(qū)比較他們的標(biāo)識(shí)符ID同最新接收的消息的標(biāo)識(shí)符ID.如果匹配,則從最低入口開始,將幀傳送到第一個(gè)匹配的接收消息緩沖區(qū)中。在接收到消息的問時(shí),自由運(yùn)行定時(shí)器的值被寫入到消息緩沖區(qū)的TIME字段,ID字段、DATA字段和RX長度字段被存儲(chǔ),代碼字段被更新。另外FLAG寄存器中的狀態(tài)標(biāo)志位也被置1。

圖4 消息接收流程圖

4 結(jié)論

通過對汽車總成控制器的CAN總線系統(tǒng)智能節(jié)點(diǎn)的研究,建立了汽車控制系統(tǒng)通訊網(wǎng)路的模型,為整車開發(fā)奠定了基礎(chǔ)。目前利用該智能節(jié)點(diǎn)已經(jīng)完成了總成控制器與其它ECU單元之間的通訊測試。測試結(jié)果充分表明:所設(shè)計(jì)的智能節(jié)點(diǎn)完全符合總成控制的需要.具有較好的推廣價(jià)值。

本文作者創(chuàng)新點(diǎn):提出了利用32位微控制器MotorolaMPC565的TouCAN模塊來構(gòu)建混合動(dòng)力汽車CAN總線系統(tǒng).并設(shè)計(jì)了智能節(jié)點(diǎn)的硬件系統(tǒng)和軟件系統(tǒng)。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49631

    瀏覽量

    417119
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2817

    瀏覽量

    87700
  • 工業(yè)控制
    +關(guān)注

    關(guān)注

    36

    文章

    1385

    瀏覽量

    85647
收藏 人收藏

    評論

    相關(guān)推薦

    CAN總線通信系統(tǒng)的研究與設(shè)計(jì)

    控制器。與SJA1000配套使用的CAN總線驅(qū)動(dòng)器是PCA82C250,它是PHILIPS推出的CAN控制器和物理總線接口
    的頭像 發(fā)表于 01-09 08:23 ?6022次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信<b class='flag-5'>系統(tǒng)</b>的研究與設(shè)計(jì)

    【隔離CAN收發(fā)器申請】多總線工業(yè)控制器

    申請理由:一直使用PCA82C250實(shí)現(xiàn)CAN總線電平轉(zhuǎn)換,但外部需要外加電源隔離電路,電路增加不少器件。在論壇上看到CTM1051AM隔離收發(fā)器,感覺是一個(gè)不錯(cuò)的替代
    發(fā)表于 01-29 11:52

    proteus里沒有SJA1000和PCA82C250的電路咋辦

    想做CAN總線方面的研究,但SJA1000和PCA82C250找不到怎么畫啊,求有關(guān)大神幫忙啊
    發(fā)表于 04-11 23:43

    怎么實(shí)現(xiàn)基于PCA82C250與MCU間的直連通信網(wǎng)絡(luò)設(shè)計(jì)?

    怎么實(shí)現(xiàn)基于PCA82C250與MCU間的直連通信網(wǎng)絡(luò)設(shè)計(jì)?
    發(fā)表于 05-28 06:09

    基于STM32F103 RET6芯片+PCA82C250使用CAN通訊換回模式測試CAN收發(fā)

    測試9 總結(jié)1 博客內(nèi)容博客內(nèi)容基于STM32F103 RET6芯片(Keil.STM32F1xx_DFP.2.3.0.pack)+PCA82C250,使用CAN通訊換回模式測試CAN
    發(fā)表于 08-06 07:03

    PCA82C250 PCA82C251的應(yīng)用和幾種帶 不帶電

    The PCA82C250 and PCA82C251 are advanced transceiver products for use in automotive and general
    發(fā)表于 06-15 15:15 ?157次下載

    PCA82C250 CAN收發(fā)器應(yīng)用指南

    本文檔著重介紹如何使用Philips 半導(dǎo)體的收發(fā)器PCA82C250[1]和PCA82C251[2]實(shí)現(xiàn)物理媒體連接子層物理信令子層和數(shù)據(jù)鏈路層之間的連接是通過集成的協(xié)議控制器實(shí)現(xiàn)
    發(fā)表于 11-18 11:42 ?230次下載

    PCA82C250 PCA82C251 CAN Transc

    The PCA82C250 and PCA82C251 are advanced transceiver products for use in automotive and general
    發(fā)表于 11-18 11:44 ?64次下載

    基于CAN總線智能窗戶系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)

    系統(tǒng)基于CAN總線,以單片機(jī)P8XC592和總線收發(fā)器PCA82C250為主體組成通信控制模塊。各個(gè)控制模塊為一個(gè)
    發(fā)表于 02-22 11:52 ?43次下載

    基于ADμC812的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì)

    ?摘要:介紹了一種用單片機(jī)ADμC812、CAN總線控制器SJA1000和CAN總線驅(qū)動(dòng)器POA82
    發(fā)表于 03-11 11:47 ?1024次閱讀
    基于ADμ<b class='flag-5'>C</b>812的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>智能</b><b class='flag-5'>節(jié)點(diǎn)</b>的設(shè)計(jì)

    基于SJA1000和PCA82C250CAN總線接口設(shè)計(jì)

    CAN總線是較為流行的技術(shù),介紹了CAN總線的主要特性,簡述了SJAl000和PCA82C250的結(jié)構(gòu)和工作原理,并基于此設(shè)計(jì)了
    發(fā)表于 11-17 17:21 ?442次下載
    基于SJA1000和<b class='flag-5'>PCA82C250</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>接口設(shè)計(jì)

    基于CAN總線智能節(jié)點(diǎn)設(shè)計(jì)

    應(yīng)用51單片機(jī)為控制核心結(jié)合其他的器件設(shè)計(jì)了一種能連接于CAN總線上的智能節(jié)點(diǎn)。通過單片機(jī)控制CAN總線
    發(fā)表于 01-10 16:54 ?120次下載

    基于ARM7和CAN總線的電子送經(jīng)卷取系統(tǒng)設(shè)計(jì)

    本文利用性價(jià)比高的主控器ARM7-LPC2194、CAN接收器PCA82C250和TLP2631,設(shè)計(jì)了一種基于ARM7的紡織機(jī)送經(jīng)和卷取系統(tǒng)實(shí)現(xiàn)
    發(fā)表于 07-02 11:10 ?1967次閱讀

    PCA82C250 CAN總線控制器數(shù)據(jù)手冊 10頁 0.1M

    PCA82C250 CAN總線控制器數(shù)據(jù)手冊 10頁 0.1M,感興趣的小伙伴們可以看看。
    發(fā)表于 07-26 10:43 ?63次下載

    基于SJA1000芯片PCA82C250芯片實(shí)現(xiàn)總線節(jié)點(diǎn)仿真平臺(tái)設(shè)計(jì)

    很多新特性的CAN2.0B協(xié)議,如:兼容性和擴(kuò)展性更強(qiáng),檢錯(cuò)和糾錯(cuò)能力更強(qiáng),支持熱插拔等,設(shè)計(jì)更方便靈活,而芯片價(jià)格低廉,很適合作通用的CAN總線
    的頭像 發(fā)表于 05-09 08:04 ?3482次閱讀
    基于SJA1000<b class='flag-5'>芯片</b>和<b class='flag-5'>PCA82C250</b><b class='flag-5'>芯片</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>總線</b><b class='flag-5'>節(jié)點(diǎn)</b>仿真平臺(tái)設(shè)計(jì)