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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-01-09 08:23 ? 次閱讀

0 引 言

眾所周知,雖然目前8位單片機正逐漸被速度高,性能強的16位或32位微處理器所取代,但8位單片機仍以其低廉的價格、豐富的外圍芯片以及眾多的多功能產品而在低端應用市場占據主流地位。數字信號處理器(Digital Signal Processor,DSP)作為一種具有高速數字信號處理能力的新型單片機,在通信、自動控制、航天航空、軍事、醫(yī)療等領域廣泛應用。在比較復雜的測控系統(tǒng)中,如微機電動機保護裝置,要求在毫秒級的短時間內對電動機實現實時保護和測量,所以對裝置硬件系統(tǒng)的實時數據處理能力要求較高,而傳統(tǒng)的基于單 CPU微處理器的方案己經難以勝任。因此,這里采用數字信號處理器與單片機構成的雙CPU結構。由數字信號處理器完成多通道A/D轉換、各種判據算法的運算等功能,而單片機作為整個裝置的控制單元,主要負責實時時鐘控制、參數管理、人機接口及串并行通信接口的控制等。這種雙CPU結構充分發(fā)揮數字信號處理器與單片機各自的功能特點。其中,雙CPU系統(tǒng)之間的數據通信可采用雙口RAM、串行通信等方式,但這兩種方式存在只能實現點對點通信,通信速度慢,可靠性差等缺點,不利于系統(tǒng)擴展。因而研究通信速度快,可靠性高,實時性強的CAN總線通信系統(tǒng)具有重要意義。

1 CAN總線介紹

控制器局域網絡(Controller Area Network,CAN)是一種串行多主站控制器局域網總線。它具有很高的網絡安全性、通信可靠性和實時性,而且簡單實用,網絡成本低,特別適用于環(huán)境溫度惡劣、電磁輻射強和振動大的工業(yè)環(huán)境。CAN總線可有效支持分布式控制或實時控制。該總線的通信介質可以是雙絞線、同軸電纜或光纖。其主要特點如下:

(1)CAN總線為多主站總線,各節(jié)點可在任意時刻向網絡上的其他節(jié)點發(fā)送信息,且不分主從;

(2)CAN總線采用獨特的非破壞性總線仲裁技術,高優(yōu)先級節(jié)點優(yōu)先傳送數據,故實時性好;

(3)CAN總線具有點對點、一點對多點及全局廣播傳送數據的功能;

(4)CAN總線采用短幀結構,每幀有效字節(jié)數最多為8個,數據傳輸時間短,并有CRC及其他校驗措施,數據出錯率極低;

(5)CAN總線上某一節(jié)點出現嚴重錯誤時,可自動脫離總線,而總線上的其他操作不受影響;

(6)CAN總線系統(tǒng)擴充時,可直接將新節(jié)點掛在總線上,因而走線少,系統(tǒng)擴充容易,改型靈活;

(7)CAN總線的最大傳輸速率可達1 Mb/s,直接通信距離最遠可達10 km(速率在5 Kb/s以下);

(8)CAN總線上的節(jié)點數取決于總線驅動電路,在標準幀(11位報文標識符)時,可達到110個,而在擴展幀(29位報文標識符)時,個數不受限。

2 單片機與數字信號處理器CAN通信系統(tǒng)接口電路設計

單片機與數字信號處理器種類較多,在研究其通信系統(tǒng)時,以廣泛使用的MCS-51單片機以及適于運動控制的美國德州儀器(TI)公司TMS320LF2407為例進行研究。

2.1 單片機通信系統(tǒng)接口電路設計

MCS-51單片機組成CAN通信系統(tǒng)需要擴展CAN控制器,本系統(tǒng)采用的CAN控制器是SJA1000。SJA1000是PHILIPS公司生產的既支持CAN 2.0B,又支持CAN 2.0A的CAN控制器。與SJA1000配套使用的CAN總線驅動器是PCA82C250,它是PHILIPS推出的CAN控制器和物理總線接口芯片,可提供對總線的差分發(fā)送和接收。CAN模塊總線控制器、總線驅動器連接基本方法如圖1所示。為增強CAN總線節(jié)點的抗干擾能力,SJA1000通過高速光耦6N137后與PCA82C250相連,這樣就能很好地實現本系統(tǒng)與CAN總線的電氣隔離。電源的隔離采用小功率電源隔離模塊。這些部分雖然增加了接口電路的復雜性,但是卻提高了系統(tǒng)的穩(wěn)定性和安全性。

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

TMS320LF2407內部集成一個完全的CAN控制器,但CAN控制器必須通過CAN驅動芯片才能與其他CAN控制器進行通信,這里采用 PCA82C250。因為TMS320LF2407用3.3 V供電,而PCA82C250用5 V供電。TMS320LF2407通過高速光耦6N137后與82C250相連,不僅增強了CAN總線節(jié)點的抗干擾能力,而且實現了電平轉換。

3 數字信號處理器與單片機通信系統(tǒng)軟件設計

數字信號處理器與單片機組成的CAN總線通信系統(tǒng)進行數據通信時,應約定通信協(xié)議,如幀格式、波特率、標識符等。各節(jié)點軟件設計均包括數據發(fā)送和接收子程序以及CAN總線控制器初始化子程序。這里著重研究CAN總線控制器的初始化。

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

3.1 單片機通信系統(tǒng)軟件設計

單片機CAN通信系統(tǒng)軟件設計主要是指SJA1000總線控制器的初始化程序設計。

CAN總線控制器初始化程序主要是通過對SJA1000寄存器寫入相應的控制字,從而確定SJA1000的工作方式。SJA1000需要初始化的寄存器有:模式寄存器MODE、時鐘分頻寄存器CDR、接收代碼寄存器ACR、接收屏蔽寄存器AMR、中斷使能寄存器IER、總線定時寄存器BTR、輸出控制寄存器OCR等。其中,總線定時寄存器BTR的值決定CAN通信波特率,而波特率正確與否,是數字信號處理器與單片機實現CAN通信的關鍵。因為這些寄存器僅能在SJA1000復位期間進行寫訪問,因此在對這些寄存器初始化之前,必須確保系統(tǒng)進入復位狀態(tài),在初始化后,須清除復位請求位,使SJA1000返回正常運行狀態(tài),其初始化子程序如下:

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

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

3.2 數字信號處理器通信系統(tǒng)軟件設計

在使用數字信號處理器CAN控制器前必須對它的一些內部寄存器進行設置,如對位定時器的設置及對郵箱進行初始化。位定時器主要由CANBCR1和CANBCR2兩個寄存器組成,配置對位定時器也就是設置這兩個寄存器,其值決定了CcAN控制器的通信波特率、同步跳轉寬度、采樣次數和重同步方式等。對郵箱初始化主要是對郵箱進行配置,設置郵箱的標識符以及接收濾波器的設置等。 CAN控制器初始化子程序如下:

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

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

4 結 語

單片機與數字信號處理器CAN總線通信系統(tǒng)實驗過程中,發(fā)送端采用查詢方式,接收端采用中斷方式,利用鍵盤改變發(fā)送數據,接收端利用液晶顯示器實時顯示接收數據。反復試驗表明,該系統(tǒng)工作穩(wěn)定性較高;該系統(tǒng)硬件電路或軟件程序稍加改動可用于單片機與數字信號處理器或數字信號處理器與數字信號處理器等雙 CPU或多CPU測控系統(tǒng)中,且應用前景廣闊。

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

    關注

    6050

    文章

    44701

    瀏覽量

    641289
  • CAN總線
    +關注

    關注

    145

    文章

    1963

    瀏覽量

    131491
  • 信號處理器
    +關注

    關注

    1

    文章

    254

    瀏覽量

    25444
收藏 人收藏

    評論

    相關推薦

    如何使用Arduino實現CAN總線通信

    CAN(Controller Area Network)總線是一種常用于汽車和工業(yè)控制系統(tǒng)的串行通信協(xié)議,以其高可靠性和實時性而聞名。Arduino,作為一種流行的開源微控制器平臺,可
    的頭像 發(fā)表于 12-23 09:06 ?851次閱讀

    CAN總線通信原理介紹 CAN總線模塊選擇指南

    于工業(yè)自動化、醫(yī)療設備、船舶系統(tǒng)等領域。 CAN總線通信原理介紹 1. CAN總線概述
    的頭像 發(fā)表于 11-21 10:21 ?1365次閱讀

    使用CAN總線的注意事項 CAN總線與其他通信協(xié)議對比

    使用CAN總線的注意事項 電氣特性 :CAN總線對電氣特性有嚴格的要求,包括電壓水平、終端電阻、電纜長度等。確保遵循CAN
    的頭像 發(fā)表于 11-21 10:16 ?755次閱讀

    CAN總線應用領域 CAN總線協(xié)議解析

    、醫(yī)療設備等領域。 CAN總線的應用領域 1. 汽車電子 CAN總線最初是為汽車電子系統(tǒng)設計的,用于連接各種電子控制單元(ECU)。在現代汽
    的頭像 發(fā)表于 11-21 10:15 ?1017次閱讀

    CAN總線與LIN總線的區(qū)別

    隨著汽車電子系統(tǒng)的復雜性增加,車輛內部通信的需求也在不斷增長。CAN總線和LIN總線作為兩種主要的車載
    的頭像 發(fā)表于 11-12 10:13 ?3455次閱讀

    如何使用Arduino實現CAN總線通信

    CAN總線(Controller Area Network)是一種多主控制的串行通信協(xié)議,廣泛應用于汽車電子、工業(yè)自動化等領域。它以其高可靠性、實時性和靈活性而受到青睞。Arduino作為一個
    的頭像 發(fā)表于 11-12 10:09 ?1817次閱讀

    使用CAN總線進行汽車電控系統(tǒng)設計

    使用CAN總線進行汽車電控系統(tǒng)設計是一個復雜但高效的過程,它充分利用了CAN總線的分布式控制、實時通信
    的頭像 發(fā)表于 11-12 09:58 ?518次閱讀

    CAN總線通信協(xié)議詳解

    一、CAN總線概述 CAN總線是一種多主控制的串行通信協(xié)議,它允許多個設備共享同一通信線路,而無
    的頭像 發(fā)表于 11-12 09:46 ?2286次閱讀

    CAN總線是如何通信的#CAN #常學常新

    CAN總線
    北匯信息POLELINK
    發(fā)布于 :2024年11月07日 16:34:29

    CAN總線控制器是什么意思

    CAN總線控制器(Controller Area Network Bus Controller)是CAN總線通信
    的頭像 發(fā)表于 09-03 14:16 ?1539次閱讀

    CAN總線的接口類型

    CAN總線(Controller Area Network)是一種基于廣播的串行通信協(xié)議,廣泛用于連接分布式系統(tǒng)中的各個設備,實現它們之間的數據交換和控制。
    的頭像 發(fā)表于 09-03 14:13 ?2834次閱讀

    CAN總線的數據幀結構

    CAN總線是一種基于時間分割的通信協(xié)議,它允許多個設備共享一個通信介質(如雙絞線或光纖)。CAN總線
    的頭像 發(fā)表于 07-24 15:06 ?1367次閱讀

    can總線隔離模塊的作用

    CAN總線隔離模塊是一種用于保護CAN總線通信系統(tǒng)的電子設備,它通過在
    的頭像 發(fā)表于 06-16 10:32 ?1955次閱讀

    can總線中斷狀態(tài)什么意思呢?

    CAN總線(Controller Area Network)是一種廣泛使用的現場總線通信協(xié)議,主要用于汽車、工業(yè)控制等領域。在CAN
    的頭像 發(fā)表于 06-16 10:21 ?2153次閱讀

    動力can總線系統(tǒng)由哪些部分組成

    動力CAN總線系統(tǒng)是一種廣泛應用于汽車、工業(yè)自動化、航空航天等領域的通信協(xié)議。它具有高速、可靠、靈活等特點,能夠滿足各種復雜環(huán)境下的通信需求
    的頭像 發(fā)表于 06-16 10:15 ?1814次閱讀