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

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

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

基于CAN總線和單片機(jī)的應(yīng)用方案和分析

電子設(shè)計 ? 來源:甘肅科技 ? 作者:張琳,李蘭崇 ? 2021-05-25 09:54 ? 次閱讀

1 前言

CAN 是國際上應(yīng)用很廣泛的一種現(xiàn)場總線,MCS96 系列單片機(jī)是目前在工業(yè)界推廣應(yīng)用較廣泛的嵌入式控制器,其87C196CA 單片機(jī)內(nèi)核本身帶有CAN 控制器,支持標(biāo)準(zhǔn)和擴(kuò)展的信息幀,即遵循CAN2.0A 和CAN2.0B 協(xié)議。由此而構(gòu)成的CAN 總線支持分布式控制和實時控制,其串行通信方式靈活可靠,傳輸距離較遠(yuǎn)。由于CAN 總線具有通信速率高、工作可靠性高、現(xiàn)場抗干擾能力強(qiáng)、網(wǎng)絡(luò)連接方便和性能價格比高等優(yōu)點,在汽車發(fā)動機(jī)控制部件、汽車抗滑系統(tǒng)、工業(yè)自動化、機(jī)床、電梯控制等領(lǐng)域得到了較為廣泛的應(yīng)用。

2 硬件構(gòu)成

2. 1 CAN 總線連接

基于CAN 總線的兩個87C196 單片機(jī)網(wǎng)絡(luò)聯(lián)接時,分別將單片機(jī)的CAN接收、發(fā)送兩根線通過PCA82C250 CAN總線收發(fā)器聯(lián)接到CAN總線上,構(gòu)成多微控制器CAN總線連接。通信介質(zhì)可以是雙絞線、同軸電纜或光纖,其總線連接如圖1 所示。

圖1 CAN 總線連接

該網(wǎng)絡(luò)最高通信速率為1Mbit/s ,當(dāng)傳輸速率為5Kbit/s時,最大通信距離可達(dá)10Km。在其CAN 總線上可掛接多達(dá)110 個網(wǎng)絡(luò)節(jié)點,而網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息。其數(shù)據(jù)傳輸和接收可以是點對點、一點對多點或全局廣播等方式進(jìn)行。

2. 2 87C196CA 單片機(jī)

87C196CA 是集成CAN2.0B總線控制器的高性能16 位微處理器,特別適用于現(xiàn)場實時事件控制和分布式控制。片內(nèi)的CAN 控制器與Intel 82527獨立CAN 控制器在軟件上是兼容的,每個CAN 控制器的輸入、輸出引腳由二根雙絞線聯(lián)接到CAN總線上。CAN 控制器由一個輸入引腳(RXCAN) 、一個輸出引腳( TXCAN) 、控制和狀態(tài)寄存器,錯誤探測和管理邏輯組成。圖2 為CAN 控制器方框圖。

圖2 CAN 控制器方框圖

2. 3 CAN 總線收發(fā)器

PCA82C250是CAN協(xié)議控制器和物理傳輸線路之間的接口,是影響網(wǎng)絡(luò)性能的關(guān)鍵因素。它對總線提供差動發(fā)送能力,并對CAN控制器提供差動接收能力,其最高傳輸速率可達(dá)1Mbit/s。其主要特點是芯片內(nèi)部具有限流電路,可以防止輸出級對電源、地或負(fù)載短路;由于采用差動接收發(fā)方式,因此有較強(qiáng)的抗電磁干擾能力;具有低電流節(jié)電待機(jī)工作模式;該CAN總線收發(fā)器至少可以連接110個節(jié)點。利用PCA82C250還可以方便地在CAN控制器與驅(qū)動器之間建立光電隔離,以實現(xiàn)總線上各節(jié)點間的電氣隔離。

3 通訊軟件

對于通過CAN 總線連接的單片機(jī)之間的通訊軟件編程需要定義一系列的控制字,并在兩個單片機(jī)上進(jìn)行配置。即首先進(jìn)行上電初始化,定義CAN控制寄存器,定義位定時寄存器選擇CAN 的通訊速率,定義信息體屏蔽寄存器選擇接收對象。其次對信息體進(jìn)行初始化,分別定義兩個信息體工作模式、發(fā)送字節(jié)數(shù)、選擇CAN2.0A 或CAN2.0B 方式。其程序代碼

/ *CAN 控制器初始化*/

can_con = 0x41 ; / *CAN 控制器CCE 位置1 ,

則可以定義CAN 定器* /

can_ btime0 = 0x41 ; /* 定義CAN 定時器

250 Kb/ s * /

can_btime1 = 0x67 ;

can_con = 01 ; / *允許對CAN 控制器進(jìn)行軟

件初始化* /

can_sgmsk = 0x0 ; / * 定義標(biāo)準(zhǔn)CAN 通訊格

式的屏蔽控制字,所有位都不濾紙*/

can_msg1con0 = 0x55 ; / * 信息體1 控制器0

初始化* /

can_msg1con1 = 0x55 ; / * 信息體1 控制器1

初始化* /

can_msg1cfg = 0x88 ; / *定義信息體1 為發(fā)

送,發(fā)送8 字節(jié),標(biāo)準(zhǔn)CAN 格式* /

can_msg1id = 0xc8c8c8c8 ; / * 信息體1 標(biāo)識

寄存器初始化標(biāo)識符為c8c8c8c8 ;

can_ msg1con0 = ox95 ; / * 信息體1 控制器

0MSGVAL 位置1 ,標(biāo)明信息體1 有效* /

can_msg2con0 = 0x55 ; / * 信息體2 控制器0

初始化* /

can_msg2con1 = 0x55 ; / *信息體2 控制器1

初始化* /

can_msg2cfg = 0x80 ; / *定義信息體2 為接

收,接收8 字節(jié),標(biāo)準(zhǔn)CAN 格式* /

can_msg2id = 0xc8c8c8c8 ; / *信息體2 標(biāo)識

寄存器初始化標(biāo)識符為c8c8c8c8 */

can_ msg2con0 = ox95 ; / * 信息體2 控制器

0MSGVAL 位置1 ,標(biāo)明信息體2 有效 */

can_con = 0x02 ; / * CAN 控制器軟件初始化

完成*/

/ *發(fā)送8 字節(jié)數(shù)據(jù): * /

can_msg1con1 = 0x5a ; / * CPUUPD 置1 ,使

軟件刷新數(shù)據(jù),NEWDA T 置1 使信息置1 使信息

體有效* /

can_msg1data0 = 0x00 ; / * 給信息體1 第1 個

數(shù)據(jù)賦值* /

can_msg1data1 = 0x11 ; / * 給信息體1 第2 個

數(shù)據(jù)賦值3*/

can_msg1data2 = 0x22 ; / * 給信息體1 第3 個

數(shù)據(jù)賦值 */

can_msg1data3 = ox33 ; / * 給信息體1 第4 個

數(shù)據(jù)賦值* /

can_msg1data4 = 0x44 ; / * 給信息體1 第5 個

數(shù)據(jù)賦值* /

can_msg1data5 = 0x55 ; / * 給信息體1 第6 個

數(shù)據(jù)賦值* /

can_msg1data6 = 0x66 ; / * 給信息體1 第7 個

數(shù)據(jù)賦值*/

can_msg1data7 = ox77 ; / *給信息體1 第8 個

數(shù)據(jù)賦值*/

/ *接收8 字節(jié)數(shù)據(jù): */

can_msg2cfg = 0x80 ;

can_msg2id = oxc8c8c8c8 ;

can_msg2con1 = 0x55 ;

can_msg2con0 = 0x99 ;

4 結(jié)束語

基于CAN 總線的16 位87C196CA 單片機(jī)串行通訊,由于運用CAN 總線技術(shù),使電路設(shè)計簡化、緊湊、極大地提高了系統(tǒng)的可靠性、實時性,系統(tǒng)抗干擾性能強(qiáng),成本較低,性能安裝比高、安裝維護(hù)簡潔方便,更適于車輛控制、工廠自動化控制、電梯控制、醫(yī)療設(shè)備等,具有非常廣闊的應(yīng)用前景。

責(zé)任編輯:gt

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

    關(guān)注

    6026

    文章

    44458

    瀏覽量

    631120
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16039

    瀏覽量

    176745
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1908

    瀏覽量

    130514
收藏 人收藏

    評論

    相關(guān)推薦

    請問什么單片機(jī)CAN總線?

    請問各位高手,哪種型號的單片機(jī)CAN總線,最好是51的。有知道的告訴一下,我是新手,感激不盡。
    發(fā)表于 03-25 09:01

    用87C196NT單片機(jī)實現(xiàn)CAN總線通信

    主要介紹CAN 總線的原理及如何用87C196NT 單片機(jī)實現(xiàn)基于CAN 總線的網(wǎng)絡(luò)通信;對其硬件和軟件設(shè)計作較詳細(xì)的
    發(fā)表于 04-16 14:26 ?34次下載

    SPMC65單片機(jī)CAN總線智能節(jié)點中的應(yīng)用

    SPMC65單片機(jī)CAN總線智能節(jié)點中的應(yīng)用 本文主要介紹如何使用SPMC65P2404A單片機(jī)設(shè)計開發(fā)CAN
    發(fā)表于 09-19 10:45 ?753次閱讀
    SPMC65<b class='flag-5'>單片機(jī)</b>在<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>智能節(jié)點中的應(yīng)用

    基于MSP430系列單片機(jī)CAN總線接口轉(zhuǎn)換卡設(shè)計

    基于MSP430系列單片機(jī)CAN總線接口轉(zhuǎn)換卡設(shè)計 IT公司的MSP430系列單片機(jī)是一種超低功耗的混合信號控制器,具有豐富的片內(nèi)外設(shè),有極其廣闊的應(yīng)用
    發(fā)表于 09-26 17:48 ?1988次閱讀
    基于MSP430系列<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>接口轉(zhuǎn)換卡設(shè)計

    基于PIC單片機(jī)CAN總線擴(kuò)展技術(shù)

    基于PIC單片機(jī)CAN總線擴(kuò)展技術(shù) 0 引 言     CAN總線是一種串行多主站局域網(wǎng)
    發(fā)表于 12-23 09:42 ?1267次閱讀
    基于PIC<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>擴(kuò)展技術(shù)

    CAN總線+單片機(jī)實現(xiàn)通信網(wǎng)絡(luò)設(shè)計

    分析了RS-485總線CAN部遲疑不決的異同點后,以PCA82C250型接口電路為例提出了用CAN總線通信物理層接口電路來替代RS-48
    發(fā)表于 09-27 15:40 ?6463次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>+<b class='flag-5'>單片機(jī)</b>實現(xiàn)通信網(wǎng)絡(luò)設(shè)計

    基于CAN總線的智能節(jié)點設(shè)計

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

    基于C8051F040單片機(jī)CAN總線測試模式研究

    摘要:現(xiàn)場總線已成為數(shù)據(jù)總線領(lǐng)域中最為活躍的熱點,CAN 總線被公認(rèn)為最有前途的現(xiàn)場總線之一,CAN
    發(fā)表于 03-06 15:24 ?71次下載
    基于C8051F040<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>測試模式研究

    基于AVR單片機(jī)CAN總線設(shè)計

    CAN總線是幾種最有前途的現(xiàn)場總線之一。但是CAN總線開發(fā)需要一定的技術(shù)基礎(chǔ),如何在較短的時間內(nèi)開發(fā)出一套可靠性高、實時性好的
    發(fā)表于 10-11 15:35 ?34次下載

    基于STM32單片機(jī)CAN總線分析儀的設(shè)計

    基于STM32單片機(jī)CAN總線分析儀的設(shè)計
    發(fā)表于 01-24 16:54 ?41次下載

    基于87C196NT單片機(jī)實現(xiàn)CAN總線通信

    基于87C196NT單片機(jī)實現(xiàn)CAN總線通信
    發(fā)表于 09-04 15:26 ?4次下載
    基于87C196NT<b class='flag-5'>單片機(jī)</b>實現(xiàn)<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信

    基于C8051F040單片機(jī)CAN總線通信

    基于C8051F040單片機(jī)CAN總線通信硬件部分 硬件部分電路結(jié)構(gòu)如下: CAN收發(fā)模塊原本采用的是ATA6660高速CAN收發(fā)芯片,電
    發(fā)表于 11-24 05:11 ?1444次閱讀

    基于MCS-51單片機(jī)CAN總線控制器實現(xiàn)總線節(jié)點的設(shè)計

    控制等領(lǐng)域。在CAN總線的節(jié)點設(shè)計中,目前應(yīng)用較多的是通過單片機(jī)的控制來實現(xiàn)。有的單片機(jī)已經(jīng)嵌入了CAN控制器的功能,比如Philips的P
    的頭像 發(fā)表于 04-12 07:48 ?7151次閱讀
    基于MCS-51<b class='flag-5'>單片機(jī)</b>和<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>控制器實現(xiàn)<b class='flag-5'>總線</b>節(jié)點的設(shè)計

    基于單片機(jī)實現(xiàn)CAN總線與LIN總線間的傳輸設(shè)計方案

    和其它總線通信接口實現(xiàn),本文以CAN總線為例,提出了一種基于AT89C51CC03單片機(jī)CAN-LIN網(wǎng)關(guān)設(shè)計
    的頭像 發(fā)表于 01-16 08:01 ?6972次閱讀
    基于<b class='flag-5'>單片機(jī)</b>實現(xiàn)<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>與LIN<b class='flag-5'>總線</b>間的傳輸設(shè)計<b class='flag-5'>方案</b>

    基于單片機(jī)CAN總線AO智能節(jié)點設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于單片機(jī)CAN總線AO智能節(jié)點設(shè)計.ppt》資料免費下載
    發(fā)表于 10-20 10:02 ?0次下載
    基于<b class='flag-5'>單片機(jī)</b><b class='flag-5'>CAN</b><b class='flag-5'>總線</b>AO智能節(jié)點設(shè)計