《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計(jì)》 課件 項(xiàng)目8 利用CAN實(shí)現(xiàn)多機(jī)通信_(tái)第1頁
《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計(jì)》 課件 項(xiàng)目8 利用CAN實(shí)現(xiàn)多機(jī)通信_(tái)第2頁
《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計(jì)》 課件 項(xiàng)目8 利用CAN實(shí)現(xiàn)多機(jī)通信_(tái)第3頁
《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計(jì)》 課件 項(xiàng)目8 利用CAN實(shí)現(xiàn)多機(jī)通信_(tái)第4頁
《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計(jì)》 課件 項(xiàng)目8 利用CAN實(shí)現(xiàn)多機(jī)通信_(tái)第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

嵌入式系統(tǒng)設(shè)計(jì)

為了實(shí)現(xiàn)嵌入式系統(tǒng)設(shè)計(jì)的可移植和可復(fù)用,嵌入式硬件和嵌入式軟件均采用構(gòu)件化的設(shè)計(jì)思想,即對(duì)嵌入式硬件和嵌入式軟件進(jìn)行封裝,供系統(tǒng)設(shè)計(jì)者調(diào)用,并倡導(dǎo)嵌入式軟件分層設(shè)計(jì)的理念,以大幅度降低嵌入式技術(shù)學(xué)習(xí)難度和開發(fā)難度。

本書特色:項(xiàng)目任務(wù)驅(qū)動(dòng),突出學(xué)以致用,注重實(shí)踐創(chuàng)新。每個(gè)項(xiàng)目且均采用了“通用知識(shí)”→“嵌入式構(gòu)件設(shè)計(jì)”→“應(yīng)用層程序設(shè)計(jì)”→“學(xué)以致用與創(chuàng)新”的學(xué)習(xí)流程。采用“搭積木”的思想,逐步提高嵌入式系統(tǒng)設(shè)計(jì)能力。

本書可作為高等學(xué)校電子信息類、計(jì)算機(jī)類、自動(dòng)化類等專業(yè)的嵌入式系統(tǒng)設(shè)計(jì)教材,也可作為嵌入式技術(shù)培訓(xùn)教材,還可供從事嵌入式技術(shù)開發(fā)的工程技術(shù)人員參考。項(xiàng)目1:GPIO基礎(chǔ)應(yīng)用—實(shí)現(xiàn)閃燈和開關(guān)狀態(tài)檢測與控制功能項(xiàng)目2:利用定時(shí)中斷實(shí)現(xiàn)頻閃燈項(xiàng)目3:GPIO和定時(shí)器的綜合應(yīng)用—實(shí)現(xiàn)數(shù)碼管顯示、鍵盤測控、測溫功能項(xiàng)目4:利用UART實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信項(xiàng)目5:利用

Timer

實(shí)現(xiàn)PWM和輸入捕獲功能項(xiàng)目6:利用

ADC

設(shè)計(jì)簡易數(shù)字電壓表項(xiàng)目7:利用SPI實(shí)現(xiàn)多機(jī)串行通信項(xiàng)目8:利用CAN實(shí)現(xiàn)多機(jī)通信教

內(nèi)

項(xiàng)目8利用CAN實(shí)現(xiàn)多機(jī)通信【項(xiàng)目導(dǎo)讀】

CAN(ControllerAreaNetwork,控制器局域網(wǎng))是德國Bosch公司針對(duì)汽車電子領(lǐng)域開發(fā)的具有國際標(biāo)準(zhǔn)的現(xiàn)場總線,由于CAN具有很強(qiáng)的可靠性、安全性和實(shí)時(shí)性,目前CAN廣泛應(yīng)用于汽車電子、工業(yè)控制、農(nóng)業(yè)控制、機(jī)電產(chǎn)品等領(lǐng)域的分布式測控系統(tǒng)中。利用CAN可以很方便地實(shí)現(xiàn)多機(jī)聯(lián)網(wǎng)。【學(xué)習(xí)目標(biāo)】(1)理解CAN的通用知識(shí),包括CAN的相關(guān)概念、硬件結(jié)構(gòu)、通信原理和優(yōu)點(diǎn)。(2)熟悉MCU的CAN主要特性和引腳,掌握MCU的CAN底層驅(qū)動(dòng)構(gòu)件的使用方法。(3)能夠利用MCU的CAN底層驅(qū)動(dòng)構(gòu)件頭文件進(jìn)行多機(jī)之間的CAN應(yīng)用層程序設(shè)計(jì),并掌握CAN通信功能測試方法。*(4)熟悉MCU的CAN底層驅(qū)動(dòng)構(gòu)件源文件的設(shè)計(jì)方法。任務(wù)8.1

理解CAN的通用知識(shí)8.1.1CAN系統(tǒng)的總體構(gòu)成和CAN節(jié)點(diǎn)的硬件結(jié)構(gòu)120Ω120Ω負(fù)載電阻(終端電阻)的作用是防止反射波干擾CAN系統(tǒng)主要由若干個(gè)節(jié)點(diǎn)、兩條數(shù)據(jù)傳輸線(CAN-H和CAN-L)及負(fù)載電阻組成。1、CAN系統(tǒng)的總體構(gòu)成任務(wù)8.1

理解CAN的通用知識(shí)8.1.1CAN系統(tǒng)的總體構(gòu)成和CAN節(jié)點(diǎn)的硬件結(jié)構(gòu)2、CAN節(jié)點(diǎn)的硬件結(jié)構(gòu)CAN節(jié)點(diǎn)的硬件結(jié)構(gòu)主要由傳感器、MCU、CAN控制器、CAN收發(fā)器、執(zhí)行器組成。任務(wù)8.1

理解CAN的通用知識(shí)8.1.2CAN的網(wǎng)絡(luò)通信原理1、CAN的網(wǎng)絡(luò)結(jié)構(gòu):CAN控制器硬件實(shí)現(xiàn)CAN收發(fā)器硬件實(shí)現(xiàn)

CAN應(yīng)用系統(tǒng)軟件設(shè)計(jì)的主要任務(wù)是對(duì)其應(yīng)用層程序進(jìn)行設(shè)計(jì)應(yīng)用層、數(shù)據(jù)鏈路層、物理層——實(shí)時(shí)性強(qiáng)任務(wù)8.1

理解CAN的通用知識(shí)8.1.2CAN的網(wǎng)絡(luò)通信原理2、CAN的數(shù)據(jù)傳輸流程數(shù)據(jù)打包并/串轉(zhuǎn)換數(shù)字信號(hào)→電壓信號(hào)邊說邊聽電壓信號(hào)→數(shù)字信號(hào)驗(yàn)收過濾串/并轉(zhuǎn)換數(shù)據(jù)解包ID

+長度+相關(guān)數(shù)據(jù)CRC應(yīng)答信號(hào)任務(wù)8.1

理解CAN的通用知識(shí)8.1.2CAN的網(wǎng)絡(luò)通信原理3、CAN總線電壓信號(hào)與數(shù)字信號(hào)之間的關(guān)系CAN收發(fā)器11位以上的隱性位:空閑CAN-H與CAN-L的電壓值具有何特點(diǎn)?任務(wù)8.1

理解CAN的通用知識(shí)8.1.2CAN的網(wǎng)絡(luò)通信原理4、CAN的幀ID、數(shù)據(jù)優(yōu)先級(jí)、數(shù)據(jù)的仲裁

CAN為多主工作方式,任一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向CAN總線上發(fā)送數(shù)據(jù),而不分主從。

若有多個(gè)節(jié)點(diǎn)同時(shí)向CAN總線上發(fā)送數(shù)據(jù),那么在CAN系統(tǒng)中是如何實(shí)現(xiàn)數(shù)據(jù)的仲裁(決定哪個(gè)數(shù)據(jù)先發(fā),哪個(gè)數(shù)據(jù)后發(fā))?——需要先理解幀ID和數(shù)據(jù)優(yōu)先級(jí)的關(guān)系

節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包實(shí)時(shí)性要求越高,優(yōu)先級(jí)越高,對(duì)應(yīng)的幀ID就越小。

原理:當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線上發(fā)送數(shù)據(jù)時(shí),總線上的結(jié)果是這多個(gè)數(shù)據(jù)“邏輯與”的值。節(jié)點(diǎn)A發(fā)送數(shù)據(jù):

0節(jié)點(diǎn)B發(fā)送數(shù)據(jù):

10—顯性位1—隱性位0優(yōu)先級(jí)高!總線上顯示數(shù)據(jù):

0在實(shí)際應(yīng)用時(shí),應(yīng)該按照數(shù)據(jù)包的優(yōu)先級(jí),給每個(gè)數(shù)據(jù)包分配一個(gè)唯一的ID。注意:CAN協(xié)議要求ID的高7位不能同時(shí)為1。任務(wù)8.1

理解CAN的通用知識(shí)8.1.2CAN的網(wǎng)絡(luò)通信原理4、CAN的幀ID、數(shù)據(jù)優(yōu)先級(jí)、數(shù)據(jù)的仲裁

當(dāng)一個(gè)節(jié)點(diǎn)向CAN總線上發(fā)送數(shù)據(jù)包時(shí),首先向總線上發(fā)送自己的幀ID。

在發(fā)送幀ID的過程中,如果一個(gè)節(jié)點(diǎn)向總線上發(fā)送的數(shù)據(jù)和從總線上接收到的數(shù)據(jù)一致,那么該節(jié)點(diǎn)就可以繼續(xù)向總線上發(fā)送數(shù)據(jù);否則,該節(jié)點(diǎn)就要停止向總線上發(fā)送數(shù)據(jù)。

3個(gè)節(jié)點(diǎn)通過幀ID進(jìn)行優(yōu)先級(jí)競爭的結(jié)果:節(jié)點(diǎn)1首先獲得總線使用權(quán);在節(jié)點(diǎn)1將其數(shù)據(jù)包發(fā)送完畢后,若總線處于空閑狀態(tài),則系統(tǒng)會(huì)自動(dòng)使節(jié)點(diǎn)2和節(jié)點(diǎn)3繼續(xù)通過發(fā)送幀ID重新競爭總線的使用權(quán)(自動(dòng)重發(fā))。

在仲裁過程中,不會(huì)出現(xiàn)不同優(yōu)先級(jí)數(shù)據(jù)包之間的相互破壞——“非破壞性仲裁”。【學(xué)以致用】CAN通信優(yōu)先級(jí)分析及應(yīng)用。任務(wù)8.1

理解CAN的通用知識(shí)8.1.2CAN的網(wǎng)絡(luò)通信原理5、CAN驗(yàn)收過濾功能的實(shí)現(xiàn)【學(xué)以致用】

表8-1:CAN驗(yàn)收過濾應(yīng)用分析。過濾器標(biāo)識(shí)符寄存器:100101102

過濾器掩碼寄存器:

-----

有關(guān)有關(guān)發(fā)送:101+數(shù)據(jù)A??接收放棄接收接收

放棄接收發(fā)送:102+數(shù)據(jù)A發(fā)送:***+數(shù)據(jù)A

過濾器掩碼寄存器:

-----

無關(guān)無關(guān)例:三個(gè)節(jié)點(diǎn):A(發(fā)送)、B(接收)、C(接收)

節(jié)點(diǎn)A節(jié)點(diǎn)B節(jié)點(diǎn)CCAN-BUS

幀ID過濾器掩碼寄存器:

無關(guān)

-----

-----?接收過濾器標(biāo)識(shí)符寄存器:100101102例:三個(gè)節(jié)點(diǎn):A(接收)、B(發(fā)送)、C(發(fā)送)

節(jié)點(diǎn)A節(jié)點(diǎn)B節(jié)點(diǎn)CCAN-BUS發(fā)送:***+數(shù)據(jù)B

幀ID發(fā)送:***+數(shù)據(jù)C

幀ID

通過CAN控制器中過濾器的標(biāo)識(shí)符寄存器和掩碼寄存器實(shí)現(xiàn)?!c(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)(廣播式)、多點(diǎn)對(duì)一點(diǎn)任務(wù)8.1

理解CAN的通用知識(shí)8.1.2CAN的網(wǎng)絡(luò)通信原理6、CAN數(shù)據(jù)幀的組成

在CAN節(jié)點(diǎn)之間的通信中,若將數(shù)據(jù)從一個(gè)節(jié)點(diǎn)的發(fā)送器傳輸?shù)搅硪粋€(gè)節(jié)點(diǎn)的接收器,則必須發(fā)送數(shù)據(jù)幀。發(fā)送方:寫1接收方正確接收:寫0總線值:0由CAN控制器硬件自動(dòng)處理幀內(nèi)應(yīng)答實(shí)時(shí)性強(qiáng)由CAN控制器硬件自動(dòng)完成有效數(shù)據(jù):0~8字節(jié),由用戶通過編程設(shè)定主要包括有效數(shù)據(jù)的長度,由用戶通過編程設(shè)定:0~8字節(jié)

主要包括幀ID和遠(yuǎn)程發(fā)送請(qǐng)求位(RTR),由用戶通過編程設(shè)定。

由CAN控制器硬件自動(dòng)完成由CAN控制器硬件自動(dòng)完成

標(biāo)準(zhǔn)格式幀的ID為11位,擴(kuò)展格式幀的ID為29位。RTR=0,表示該幀為數(shù)據(jù)幀任務(wù)8.1

理解CAN的通用知識(shí)8.1.2CAN的網(wǎng)絡(luò)通信原理7、CAN的波特率(各節(jié)點(diǎn)必須使用相同的波特率才能正常通信)8、CAN-H與CAN-L中的“H”和“L”的真正含義CAN-HCAN-L任務(wù)8.1

理解CAN的通用知識(shí)8.1.3CAN的優(yōu)點(diǎn)——具有很強(qiáng)的高可靠性、安全性和實(shí)時(shí)性(1)采用雙絞線和差分電壓機(jī)制——“既能防人,又不害人”(2)采用“邊說邊聽”方式的非破壞性仲裁機(jī)制(3)采用短幀格式,核心的有效數(shù)據(jù)最多8字節(jié)——高實(shí)時(shí)性和可靠性(4)采用先進(jìn)的循環(huán)冗余校驗(yàn)——高可靠性(5)采用幀內(nèi)應(yīng)答機(jī)制——高實(shí)時(shí)性任務(wù)8.1

理解CAN的通用知識(shí)

【知識(shí)鞏固】

(1)畫出CAN節(jié)點(diǎn)的硬件結(jié)構(gòu)示意圖。

(2)簡述CAN的數(shù)據(jù)傳輸流程。

(3)CAN的幀ID有何作用?幀ID與數(shù)據(jù)優(yōu)先級(jí)之間的關(guān)系?CAN是如何實(shí)現(xiàn)仲裁的?

(4)簡述CAN的驗(yàn)收過濾原理。

(5)簡述CAN的主要優(yōu)點(diǎn)。任務(wù)8.2掌握MCU的CAN底層驅(qū)動(dòng)構(gòu)件使用方法8.2.1MCU的CAN主要特性和引腳

STM32F103C8T6中有

1個(gè)CAN模塊:CAN1。

有3種主要的工作模式:初始化、正常和睡眠。

硬件復(fù)位后,CAN進(jìn)入睡眠模式,以降低功耗??赏ㄟ^軟件請(qǐng)求CAN退出睡眠模式而進(jìn)入初始化模式,在初始化模式中,完成CAN軟件初始化(設(shè)置工作方式、波特率,配置過濾器)。

一旦初始化完成,可通過軟件請(qǐng)求CAN進(jìn)入正常模式,這樣才能在CAN總線上進(jìn)行同步,并開始接收和發(fā)送數(shù)據(jù)。CAN1使用的引腳,見

can.h中的宏定義接收數(shù)據(jù)引腳:CAN_RX發(fā)送數(shù)據(jù)引腳:CAN_TX任務(wù)8.2掌握MCU的CAN底層驅(qū)動(dòng)構(gòu)件使用方法8.2.2MCU的CAN底層驅(qū)動(dòng)構(gòu)件的組成及使用方法CAN具有初始化、發(fā)送和接收三種基本操作。其中,CAN發(fā)送是主動(dòng)任務(wù),不必采用中斷方式;而CAN接收是被動(dòng)任務(wù),為了確保及時(shí)接收到對(duì)方發(fā)送來的每幀數(shù)據(jù),CAN接收一般采用中斷方式。

CAN底層驅(qū)動(dòng)構(gòu)件由can.h頭文件和can.c源文件組成,若要使用CAN底層驅(qū)動(dòng)構(gòu)件,只需將這兩個(gè)文件添加到所建工程的04_Driver(MCU底層驅(qū)動(dòng)構(gòu)件)文件夾中,即可實(shí)現(xiàn)對(duì)CAN的操作。見工程文件:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx

其中,can.h頭文件主要包括相關(guān)頭文件的包含、一些必要的宏定義、CAN通信的數(shù)據(jù)包結(jié)構(gòu)體聲明、對(duì)外接口函數(shù)的聲明,而can.c源文件則是對(duì)外接口函數(shù)的具體實(shí)現(xiàn),初學(xué)者不必深究。

用戶只要熟悉can.h頭文件的內(nèi)容,即可使用CAN底層驅(qū)動(dòng)構(gòu)件進(jìn)行編程?!緦W(xué)以致用】

根據(jù)can.h頭文件,寫出實(shí)現(xiàn)下列功能的函數(shù)調(diào)用語句。

(1)定義分別用于存放待發(fā)送CAN數(shù)據(jù)包和待接收CAN數(shù)據(jù)包的結(jié)構(gòu)體變量SendMsg和RecvMsg。

(2)對(duì)CAN模塊進(jìn)行初始化,其中波特率為100kbit/s,預(yù)想接收的幀ID值為0x0A,接收過濾器掩碼值為0x7FF。

(3)發(fā)送一幀CAN報(bào)文,其中待發(fā)送的CAN數(shù)據(jù)包保存在結(jié)構(gòu)體變量SendMsg中。

(4)接收一幀CAN報(bào)文,并將其保存至結(jié)構(gòu)體變量RecvMsg中。

(5)使能CAN接收中斷。任務(wù)8.2掌握MCU的CAN底層驅(qū)動(dòng)構(gòu)件使用方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論