嵌入式技術(shù)基礎與實踐(第二版)ppt第14章_第1頁
嵌入式技術(shù)基礎與實踐(第二版)ppt第14章_第2頁
嵌入式技術(shù)基礎與實踐(第二版)ppt第14章_第3頁
嵌入式技術(shù)基礎與實踐(第二版)ppt第14章_第4頁
嵌入式技術(shù)基礎與實踐(第二版)ppt第14章_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第1414章章 DZ60DZ60的的CANCAN總線開發(fā)方法總線開發(fā)方法主要內(nèi)容主要內(nèi)容v14.1 CAN14.1 CAN總線通用知識總線通用知識v14.2 MC9S08DZ6014.2 MC9S08DZ60硬件最小系統(tǒng)硬件最小系統(tǒng)v14.3 MSCAN14.3 MSCAN模塊概述與編程結(jié)構(gòu)模塊概述與編程結(jié)構(gòu)v14.4 MSCAN14.4 MSCAN功能描述功能描述v14.5 MSCAN14.5 MSCAN初始化、報文發(fā)送與接收的函數(shù)初始化、報文發(fā)送與接收的函數(shù)設計設計14.1 CAN14.1 CAN總線通用知識總線通用知識14.1.1 CAN14.1.1 CAN總線協(xié)議的歷史概況總線協(xié)議的

2、歷史概況 控制器局域網(wǎng)(控制器局域網(wǎng)(Controller Area NetworkController Area Network,CANCAN),是德),是德國國BoschBosch公司為簡化汽車電子中信號傳輸方式并減少日益公司為簡化汽車電子中信號傳輸方式并減少日益增加的信號線而提出的增加的信號線而提出的 19911991年年9 9月月BoschBosch公司制定并發(fā)布了公司制定并發(fā)布了CANCAN技術(shù)規(guī)范技術(shù)規(guī)范Version2.0Version2.0 19921992在歐洲成立了在歐洲成立了CiACiA(CAN in AutomationCAN in Automation)。在)。在Ci

3、ACiA的的努力推廣下,努力推廣下,CANCAN技術(shù)在汽車電子、電梯控制、安全監(jiān)控、技術(shù)在汽車電子、電梯控制、安全監(jiān)控、醫(yī)療儀器、船舶運輸?shù)确矫婢玫搅藦V泛的應用,目前已醫(yī)療儀器、船舶運輸?shù)确矫婢玫搅藦V泛的應用,目前已經(jīng)成為國際上應用最廣泛的現(xiàn)場總線之一經(jīng)成為國際上應用最廣泛的現(xiàn)場總線之一14.1.2 CAN14.1.2 CAN硬件系統(tǒng)的典型電路硬件系統(tǒng)的典型電路 最簡明的最簡明的CANCAN硬件連接方法硬件連接方法無需無需CANCAN收發(fā)器芯片的電路連接收發(fā)器芯片的電路連接 常用的常用的CANCAN硬件系統(tǒng)的組成硬件系統(tǒng)的組成常用的常用的CANCAN硬件系統(tǒng)組成硬件系統(tǒng)組成 帶隔離的典型帶

4、隔離的典型CANCAN硬件系統(tǒng)電路硬件系統(tǒng)電路 該電路連接需要特別注意以下幾個問題:該電路連接需要特別注意以下幾個問題:l 6N1376N137部分的電路所采用的兩個電源部分的電路所采用的兩個電源VCC1VCC1和和VCC2VCC2須完全隔離須完全隔離l PCA82C250PCA82C250的的CANH CANH 和和CANL CANL 引腳通過一個引腳通過一個55的限流電阻與的限流電阻與CANCAN總線相總線相連,保護連,保護PCA82C250PCA82C250免受過流的沖擊免受過流的沖擊帶隔離的典型帶隔離的典型CANCAN硬件系統(tǒng)電路硬件系統(tǒng)電路 不帶隔離的典型不帶隔離的典型CANCAN硬

5、件系統(tǒng)電路硬件系統(tǒng)電路不帶隔離的典型不帶隔離的典型CANCAN硬件系統(tǒng)電路硬件系統(tǒng)電路14.1.3 CAN14.1.3 CAN總線的有關(guān)基本概念總線的有關(guān)基本概念 CANCAN總線上的數(shù)據(jù)表示總線上的數(shù)據(jù)表示lCANCAN總線由單一通道(總線由單一通道(Single ChannelSingle Channel)組成,借助數(shù))組成,借助數(shù)據(jù)再同步實現(xiàn)信息傳輸據(jù)再同步實現(xiàn)信息傳輸lCANCAN總線上用顯性(總線上用顯性(DominantDominant)和隱性()和隱性(RecessiveRecessive)分別表示邏輯分別表示邏輯0 0和邏輯和邏輯1 1總線數(shù)據(jù)表示總線數(shù)據(jù)表示 報文、信息路由、

6、位速率、位填充報文、信息路由、位速率、位填充l 報文(報文(MessageMessage):是指在總線上傳輸?shù)墓潭ǜ袷降男畔ⅲ溟L度):是指在總線上傳輸?shù)墓潭ǜ袷降男畔?,其長度是有限制的是有限制的l 信息路由(信息路由(Information RoutingInformation Routing):在):在CANCAN系統(tǒng)中,系統(tǒng)中,CANCAN不對通信不對通信節(jié)點分配地址,報文的尋址內(nèi)容由報文的標識符節(jié)點分配地址,報文的尋址內(nèi)容由報文的標識符IDID指定指定l 位速率(位速率(Bit RateBit Rate):是指):是指CANCAN總線的傳輸速率總線的傳輸速率l 位填充(位填充(Bit

7、StuffingBit Stuffing):是為防止突發(fā)錯誤而設定的功能):是為防止突發(fā)錯誤而設定的功能位速率位速率/kbps/kbps10005002501251005020105最大距最大距離離/m/m4013027053062013003300670010000CANCAN總線上任意兩節(jié)點最大距離及位速率對應表總線上任意兩節(jié)點最大距離及位速率對應表 多主機、標識符、優(yōu)先權(quán)、仲裁多主機、標識符、優(yōu)先權(quán)、仲裁l 多主機(多主機(MultimasterMultimaster):):CANCAN總線是一個多主機(總線是一個多主機(MultimasterMultimaster)系統(tǒng))系統(tǒng)l 標識符

8、標識符IDID:CANCAN節(jié)點的唯一標識節(jié)點的唯一標識l 優(yōu)先權(quán)(優(yōu)先權(quán)(PrioritiesPriorities):在總線訪問期間,報文的標識符):在總線訪問期間,報文的標識符IDID定義了一個定義了一個靜態(tài)的報文優(yōu)先權(quán)靜態(tài)的報文優(yōu)先權(quán)l(xiāng) 仲裁(仲裁(ArbitrationArbitration):總線空閑時,總線上任何節(jié)點都可以開始發(fā)送):總線空閑時,總線上任何節(jié)點都可以開始發(fā)送報文,若同時有兩個或兩個以上節(jié)點開始發(fā)送,總線訪問沖突運用逐位報文,若同時有兩個或兩個以上節(jié)點開始發(fā)送,總線訪問沖突運用逐位仲裁規(guī)則,借助于標識符仲裁規(guī)則,借助于標識符IDID解決解決 遠程數(shù)據(jù)請求、應答遠程數(shù)據(jù)

9、請求、應答u遠程數(shù)據(jù)請求(遠程數(shù)據(jù)請求(Remote Data RequestRemote Data Request):當總線上某節(jié)點需要請求另):當總線上某節(jié)點需要請求另一節(jié)點發(fā)送數(shù)據(jù)時,這種情況,在一節(jié)點發(fā)送數(shù)據(jù)時,這種情況,在CANCAN總線協(xié)議術(shù)語中叫遠程數(shù)據(jù)請求總線協(xié)議術(shù)語中叫遠程數(shù)據(jù)請求(Remote Data RequestRemote Data Request)u應答(應答(AcknowledgmentAcknowledgment):所有接收器對接收到的報文進行一致性):所有接收器對接收到的報文進行一致性(ConsistencyConsistency)檢查)檢查 故障界定、錯誤

10、標定和恢復時間故障界定、錯誤標定和恢復時間l 故障界定(故障界定(Fault ConfinementFault Confinement):):CANCAN節(jié)點能夠把永久故障和短節(jié)點能夠把永久故障和短暫的干擾區(qū)別開來,故障節(jié)點會被關(guān)閉暫的干擾區(qū)別開來,故障節(jié)點會被關(guān)閉l 錯誤標定和恢復時間(錯誤標定和恢復時間(Error Signaling and Recovery TimeError Signaling and Recovery Time):):任何檢測到錯誤的節(jié)點會標志出已被損壞的報文任何檢測到錯誤的節(jié)點會標志出已被損壞的報文 CANCAN的分層結(jié)構(gòu)的分層結(jié)構(gòu)l 物理層(物理層(The Ph

11、ysical LayerThe Physical Layer):):CANCAN規(guī)范沒有定義具體的物理層,規(guī)范沒有定義具體的物理層,允許用戶根據(jù)具體需要定制物理層允許用戶根據(jù)具體需要定制物理層l 數(shù)據(jù)鏈路層又分為邏輯鏈路控制子層和介質(zhì)訪問控制子層:數(shù)據(jù)鏈路層又分為邏輯鏈路控制子層和介質(zhì)訪問控制子層:l 邏輯鏈路控制子層(邏輯鏈路控制子層(Logic Link ControlLogic Link Control,LLCLLC):負責報文濾波、):負責報文濾波、過載通知和恢復管理。過載通知和恢復管理。l 介質(zhì)訪問控制子層(介質(zhì)訪問控制子層(Media Access ControlMedia Acc

12、ess Control,MACMAC):):MACMAC是是CANCAN協(xié)協(xié)議的核心議的核心14.1.4 14.1.4 幀結(jié)構(gòu)幀結(jié)構(gòu) 數(shù)據(jù)幀數(shù)據(jù)幀l幀起始幀起始SOFSOF:標志數(shù)據(jù)幀和遠程幀的起始,僅由一個單獨的:標志數(shù)據(jù)幀和遠程幀的起始,僅由一個單獨的“0 0”位組成位組成l仲裁場:在仲裁場:在CAN2.0BCAN2.0B中定義標準幀與擴展幀兩種幀格式中定義標準幀與擴展幀兩種幀格式數(shù)據(jù)幀組成數(shù)據(jù)幀組成數(shù)據(jù)幀標準格式中的仲裁場結(jié)構(gòu)數(shù)據(jù)幀標準格式中的仲裁場結(jié)構(gòu)數(shù)據(jù)幀擴展格式中的仲裁場結(jié)構(gòu)數(shù)據(jù)幀擴展格式中的仲裁場結(jié)構(gòu)l 6 6位控制場:標準幀中控制場包括:數(shù)據(jù)長度代碼位控制場:標準幀中控制場包括

13、:數(shù)據(jù)長度代碼DLCDLC、 IDEIDE位(為位(為0 0)、保留位)、保留位r0r0l 4 4位數(shù)據(jù)長度代碼位數(shù)據(jù)長度代碼DLCDLC:指示了數(shù)據(jù)場中字節(jié)數(shù),:指示了數(shù)據(jù)場中字節(jié)數(shù), DLC=00001000DLC=00001000(即十進制的(即十進制的0808,00000000代表空)表示代表空)表示數(shù)據(jù)場中字節(jié)數(shù)數(shù)據(jù)場中字節(jié)數(shù) l 數(shù)據(jù)場:數(shù)據(jù)場為實際要發(fā)送的數(shù)據(jù)數(shù)據(jù)場:數(shù)據(jù)場為實際要發(fā)送的數(shù)據(jù) 遠程幀遠程幀 錯誤幀錯誤幀 錯誤幀由錯誤幀由CANCAN控制器的硬件進行處理,與用戶編程無關(guān)控制器的硬件進行處理,與用戶編程無關(guān)遠程幀的組成遠程幀的組成錯誤幀組成錯誤幀組成 過載幀過載幀 有

14、三種過載的情況會引發(fā)過載幀的傳送:有三種過載的情況會引發(fā)過載幀的傳送:l 接收器的內(nèi)部情況(此接收器對于下一數(shù)據(jù)幀或遠程幀需要有一接收器的內(nèi)部情況(此接收器對于下一數(shù)據(jù)幀或遠程幀需要有一延時)。延時)。l 在間歇的第一和第二字節(jié)檢測到一個在間歇的第一和第二字節(jié)檢測到一個“0 0”位。位。l 如果如果CANCAN節(jié)點在錯誤界定符或過載界定符的第節(jié)點在錯誤界定符或過載界定符的第8 8位(最后一位)采位(最后一位)采樣到一個樣到一個0 0位,節(jié)點會發(fā)送一個過載幀(不是錯誤幀)位,節(jié)點會發(fā)送一個過載幀(不是錯誤幀) 過載幀的組成過載幀的組成14.1.5 14.1.5 位時間位時間所謂位時間,是指發(fā)送一

15、位所需要的時間實際工作過所謂位時間,是指發(fā)送一位所需要的時間實際工作過程的位時間與系統(tǒng)設定的位時間少有偏差,把理想情況下程的位時間與系統(tǒng)設定的位時間少有偏差,把理想情況下位時間稱為標稱位時間(位時間稱為標稱位時間(Nominal Bit TimeNominal Bit Time),相應的位),相應的位速率(每秒發(fā)送的位數(shù))稱為標稱位速率。標稱位速率速率(每秒發(fā)送的位數(shù))稱為標稱位速率。標稱位速率=1/=1/標稱位時間標稱位時間標稱位時間組成示意圖標稱位時間組成示意圖14.2 MC9S08DZ6014.2 MC9S08DZ60硬件最小系統(tǒng)硬件最小系統(tǒng) DZ60DZ60的主要特性的主要特性l 總線

16、時鐘可達總線時鐘可達20MHz20MHzl 支持多達支持多達3232個外圍設備中斷個外圍設備中斷/ /復位源復位源l 4K4K字節(jié)的內(nèi)部字節(jié)的內(nèi)部SRAMSRAMl 60K60K字節(jié)的片上字節(jié)的片上FlashFlash存儲器存儲器l MSCANMSCAN模塊模塊l 2 2個串行通信接口(個串行通信接口(SCISCI)l 1 1個內(nèi)部集成電路控制器(個內(nèi)部集成電路控制器(Inter-Integrated CircuitInter-Integrated Circuit,I2CI2C)l 1 1個個2424通道、通道、1212位位ADAD轉(zhuǎn)換器(轉(zhuǎn)換器(Analog-to-Digital Conve

17、rterAnalog-to-Digital Converter,ADCADC)l 8 8個通道的定時及脈寬調(diào)制器(個通道的定時及脈寬調(diào)制器(TPMTPM)l 1 1路串行外圍設備接口(路串行外圍設備接口(SPISPI)l 1 1個極性可選的鍵盤中斷(個極性可選的鍵盤中斷(KBIKBI)引腳)引腳l 5353個通用輸入個通用輸入/ /輸出(輸出(I/OI/O)管腳和)管腳和1 1個專用輸入管腳個專用輸入管腳l 多功能時鐘觸發(fā)器(多功能時鐘觸發(fā)器(MCGMCG)l 1 1個可編程軟件看門狗定時器個可編程軟件看門狗定時器l FlashFlash塊保護塊保護l 單線后臺調(diào)試接口單線后臺調(diào)試接口 DZ6

18、0DZ60管腳分配管腳分配DZ60DZ60的的3232引腳引腳LQFPLQFP封裝圖封裝圖 DZ60DZ60的最小系統(tǒng)的最小系統(tǒng) DZ60DZ60存儲器映像存儲器映像14.3 MSCAN14.3 MSCAN模塊概述與編程結(jié)構(gòu)模塊概述與編程結(jié)構(gòu)14.3.1 MSCAN14.3.1 MSCAN特性特性l 完全支持完全支持CANCAN協(xié)議協(xié)議2.0A/B2.0A/B版:標準和擴展數(shù)據(jù)幀版:標準和擴展數(shù)據(jù)幀/0-8/0-8字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)長度長度/ /高達高達1Mbps1Mbps的可編程比特率的可編程比特率/ /支持遠程幀支持遠程幀l 5 5個具有個具有FIFOFIFO存儲機制的接收緩沖器存儲機制的接

19、收緩沖器l 3 3個具有使用個具有使用“本地優(yōu)先本地優(yōu)先”概念的內(nèi)部優(yōu)先順序的發(fā)送緩沖器概念的內(nèi)部優(yōu)先順序的發(fā)送緩沖器l 靈活的掩碼標識符濾波器支持靈活的掩碼標識符濾波器支持2 2個全尺寸(個全尺寸(3232位)擴展標識符濾位)擴展標識符濾波器或波器或4 4個個1616位濾波器或位濾波器或8 8個個8 8位濾波器位濾波器l 集成低通濾波器的可編程喚醒功能集成低通濾波器的可編程喚醒功能r rl 可編程閉環(huán)模式支持自測操作可編程閉環(huán)模式支持自測操作l 可編程監(jiān)聽模式用于可編程監(jiān)聽模式用于CANCAN總線監(jiān)控總線監(jiān)控l 可編程總線脫離恢復功能可編程總線脫離恢復功能l 獨立的信號和中斷功能適用于所有獨

20、立的信號和中斷功能適用于所有CANCAN接收器和發(fā)射器錯誤狀態(tài)接收器和發(fā)射器錯誤狀態(tài)(警報、被動錯誤、總線脫離)(警報、被動錯誤、總線脫離)l 可編程可編程MSCANMSCAN時鐘源,采用總線時鐘或振蕩器時鐘時鐘源,采用總線時鐘或振蕩器時鐘l 內(nèi)部計時器提供給接收和發(fā)送的報文的時間標簽內(nèi)部計時器提供給接收和發(fā)送的報文的時間標簽l 三種低功耗模式:睡眠、關(guān)機和三種低功耗模式:睡眠、關(guān)機和MSCANMSCAN使能使能l 配置寄存器的全局初始化配置寄存器的全局初始化14.3.2 14.3.2 運行模式運行模式正常模式正常模式特殊模式特殊模式仿真模式仿真模式監(jiān)聽模式監(jiān)聽模式保密模式保密模式閉環(huán)自測模式

21、閉環(huán)自測模式14.3.3 14.3.3 低功耗選項低功耗選項 MSCAN MSCAN睡眠模式睡眠模式睡眠請求睡眠請求/ /確認周期確認周期進入進入/ /退出睡眠模式的簡單狀態(tài)轉(zhuǎn)換退出睡眠模式的簡單狀態(tài)轉(zhuǎn)換 MSCANMSCAN初始化模式初始化模式初始化請求初始化請求/ /確認周期確認周期 MSCAN MSCAN斷電模式斷電模式lCPUCPU處于停止模式處于停止模式 lCPUCPU處于等待模式且設置了處于等待模式且設置了CSWAICSWAI位位 可編程喚醒功能可編程喚醒功能 只要檢測到只要檢測到CANCAN總線有效,就可以對總線有效,就可以對MSCANMSCAN進行編程以喚進行編程以喚醒醒MSC

22、ANMSCAN14.3.4 14.3.4 中斷中斷 中斷矢量中斷矢量 發(fā)送中斷發(fā)送中斷 接收中斷接收中斷 喚醒中斷喚醒中斷 錯誤中斷錯誤中斷 中斷響應中斷響應中斷源中斷源CCRCCR掩碼掩碼本地使能本地使能喚醒中斷(喚醒中斷(WUPIFWUPIF)I I 位位CANRIER (WUPIE)CANRIER (WUPIE)錯誤中斷錯誤中斷(CSCIF, (CSCIF, OVRIF)OVRIF)I I 位位CANRIER(CSCIE, CANRIER(CSCIE, OVRIE)OVRIE)接入中斷接入中斷 (RXF) (RXF)I I 位位CANRIER(RXFIE)CANRIER(RXFIE)發(fā)送

23、中斷發(fā)送中斷 (TXE2:0) (TXE2:0)I I 位位CANRIER (TXEIE2:0)CANRIER (TXEIE2:0)14.3.5 MSCAN14.3.5 MSCAN模塊寄存器定義模塊寄存器定義 MSCANMSCAN控制寄存器控制寄存器0(CANCTL0)0(CANCTL0)l D7,D6,D4:未定義lD7RXFRMD7RXFRM位,已收到幀標記位,已收到幀標記lD6RXACTD6RXACT位,接收器使能狀態(tài)位,接收器使能狀態(tài)lD5CSWAID5CSWAI位,在等待模式中位,在等待模式中CANCAN停止停止lD4SYNCHD4SYNCH位,同步狀態(tài)位,同步狀態(tài)lD3TIMED3

24、TIME位,計時器使能位,計時器使能lD2WUPED2WUPE位,喚醒使能位,喚醒使能lD0INITRQD0INITRQ位,初始化模式請求位,初始化模式請求數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定義定義RXFRM RXACTCSWAISYNCHTIMEWUPESLPRQ INITRQ復位復位00000001 MSCANMSCAN控制寄存器控制寄存器1(CANCTL1)1(CANCTL1)l D1D1,D0D0:未定義:未定義l D7CANED7CANE位,位,MSCANMSCAN使能使能l D6CLKSRCD6CLKSRC位,位,MSCANMSCAN時鐘源時鐘源l D5LOOPBD5LO

25、OPB位,閉環(huán)自測模式位,閉環(huán)自測模式l D4LISTEND4LISTEN位,監(jiān)聽模式位,監(jiān)聽模式l D3BORMD3BORM位,總先脫離恢復模式位,總先脫離恢復模式l D2WUPMD2WUPM位,喚醒模式位,喚醒模式l D1SLPAKD1SLPAK位,睡眠模式確認位,睡眠模式確認l D0INITAKD0INITAK位,初始化模式確認位,初始化模式確認數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定義定義CANECLKSRC LOOPB LISTENBORMWUPMSLPAKINITAK復位復位00000001 MSCANMSCAN總線定時寄存器總線定時寄存器0(CANBTR0)0(CANBTR

26、0)l D7D6SJW1:0D7D6SJW1:0,同步跳轉(zhuǎn)寬度,同步跳轉(zhuǎn)寬度l D5D0BRP5:0D5D0BRP5:0,波特率預分頻器,波特率預分頻器數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定定義義SJW1SJW0BRP5BRP4BRP3BRP2BRP1BRP0復位復位00000000 MSCANMSCAN總線定時寄存器總線定時寄存器1(CANBTR1)1(CANBTR1)lD7SAMPD7SAMP位,采樣位,采樣lD6D6D4TSEG22:0D4TSEG22:0位,時間段位,時間段2 2lD3D3D0TSEG13:0D0TSEG13:0位,時間段位,時間段1 1數(shù)據(jù)位數(shù)據(jù)位D7D6D5

27、D4D3D2D1D0定義定義SAMPTSEG22TSEG21TSEG20TSEG13TSEG12TSEG11TSEG10復位復位00000000 MSCANMSCAN接收器標志寄存器接收器標志寄存器(CANRFLG)(CANRFLG)lD5D5,D4D4,D3D3,D2D2:未定義:未定義lD7WUPIFD7WUPIF位,喚醒中斷標位,喚醒中斷標lD6CSCIFD6CSCIF位,位,CANCAN狀態(tài)變化中斷標志狀態(tài)變化中斷標志lD5D5D4RSTAT1:0D4RSTAT1:0位,接收器狀態(tài)位位,接收器狀態(tài)位lD3D3D2TSTAT1:0D2TSTAT1:0位,發(fā)送器狀態(tài)位位,發(fā)送器狀態(tài)位lD1

28、OVRIFD1OVRIF位,溢出中斷標志位,溢出中斷標志lD0RXFD0RXF位,接收緩沖器已滿標志位,接收緩沖器已滿標志數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定義定義WUPIFCSCIFRSTAT1RSTAT0TSTAT1TSTAT0OVRIFRXF復位復位000 0 0 0 0 0 MSCANMSCAN接收器中斷使能寄存器接收器中斷使能寄存器(CANRIER)(CANRIER)lD7WUPIED7WUPIE位,喚醒中斷使能位,喚醒中斷使能lD6CSCIED6CSCIE位,位,CANCAN狀態(tài)變化中斷使能狀態(tài)變化中斷使能lD5D5D4RSTATE1:0D4RSTATE1:0,位接收器狀

29、態(tài)變化使能,位接收器狀態(tài)變化使能lD3D3D2TSTATE1:0D2TSTATE1:0,發(fā)送器狀態(tài)變化使能,發(fā)送器狀態(tài)變化使能lD1OVRIED1OVRIE位,溢出中斷使能位,溢出中斷使能lD0RXFIED0RXFIE位,總接收器已滿中斷使能位,總接收器已滿中斷使能數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定義定義WUPIECSCIE RSTATE1RSTATE0TSTATE1TSTATE0 OVRIERXFIE復位復位000 0 0 0 00 MSCANMSCAN發(fā)送器標志寄存器發(fā)送器標志寄存器 (CANTFLG) (CANTFLG)lD7D7D3D3未定義未定義lD2D2D0TXE2:0

30、D0TXE2:0位,發(fā)送器緩沖器空位,發(fā)送器緩沖器空數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定義定義00000TXE2TXE1TXE0復位復位00000000 MSCANMSCAN發(fā)送器中斷使能寄存器發(fā)送器中斷使能寄存器 (CANTIER) (CANTIER)l D7D7D3D3未定義未定義l D2D2D0TXEIE2:0D0TXEIE2:0位,發(fā)送器空中斷使能位,發(fā)送器空中斷使能 MSCANMSCAN發(fā)送器報文中止請求寄存器發(fā)送器報文中止請求寄存器 (CANTARQ) (CANTARQ)l D7D7D3D3未定義未定義l D2D2D0ABTRQ2:0D0ABTRQ2:0位,中止請求位,中

31、止請求數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定定義義00000TXEIE2TXEIE1TXEIE0復位復位00000000數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定定義義00000ABTRQ2 ABTRQ1 ABTRQ0復位復位00000000 MSCANMSCAN發(fā)送器報文中止確認寄存器發(fā)送器報文中止確認寄存器(CANTAAK)(CANTAAK)l D7D7D0D0未定義未定義l D2D2D0ABTAK2:0D0ABTAK2:0位,中止確認位,中止確認 MSCANMSCAN發(fā)送緩沖器選擇寄存器發(fā)送緩沖器選擇寄存器(CANTBSEL)(CANTBSEL)l D7D7D3D3未定義未定

32、義l D2D2D0TX 2:0D0TX 2:0位,發(fā)送緩沖器選擇位,發(fā)送緩沖器選擇數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定定義義00000ABTAK2 ABTAK1 ABTAK0復位復位00000000數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定定義義00000TX2TX1TX0復位復位0000000014.4 MSCAN14.4 MSCAN功能描述功能描述14.4.1 14.4.1 報文發(fā)送報文發(fā)送/ /接收功能描述接收功能描述 MSCANMSCAN模塊共有模塊共有8 8個報文個報文 緩沖區(qū),其中緩沖區(qū),其中5 5個報文接個報文接 收緩沖區(qū)收緩沖區(qū)(Rx0(Rx0Rx4)Rx4)和和

33、3 3 個發(fā)送緩沖區(qū)個發(fā)送緩沖區(qū)(Tx0(Tx0Tx2)Tx2), 支持發(fā)送與接收標準支持發(fā)送與接收標準/ /擴擴 展數(shù)據(jù)幀和遠程幀展數(shù)據(jù)幀和遠程幀報文緩沖器結(jié)構(gòu)的用戶模型報文緩沖器結(jié)構(gòu)的用戶模型14.4.2 14.4.2 報文發(fā)送基礎報文發(fā)送基礎 現(xiàn)代應用層軟件的建立基于兩個基本假設:現(xiàn)代應用層軟件的建立基于兩個基本假設: ANAN節(jié)點都能夠發(fā)送出安排好的報文流,而不需要在兩條報節(jié)點都能夠發(fā)送出安排好的報文流,而不需要在兩條報文間釋放文間釋放CANCAN總線總線 ANAN節(jié)點內(nèi)的內(nèi)部報文隊列,這樣,如果有多條報文準備發(fā)節(jié)點內(nèi)的內(nèi)部報文隊列,這樣,如果有多條報文準備發(fā)送時,最高優(yōu)先級報文首先發(fā)

34、出送時,最高優(yōu)先級報文首先發(fā)出 無論在什么情況下,至少需要三個發(fā)送緩沖器來滿足上無論在什么情況下,至少需要三個發(fā)送緩沖器來滿足上述第一個要求述第一個要求14.4.3 14.4.3 發(fā)送結(jié)構(gòu)發(fā)送結(jié)構(gòu) MSCAN MSCAN三重發(fā)送緩沖器機制允許提前建立多條報文,從而三重發(fā)送緩沖器機制允許提前建立多條報文,從而優(yōu)化了實時性能,三個緩沖器的安排在上圖中已經(jīng)給出優(yōu)化了實時性能,三個緩沖器的安排在上圖中已經(jīng)給出 MSCANMSCAN然后安排報文發(fā)送,并通過設置相關(guān)然后安排報文發(fā)送,并通過設置相關(guān)TXETXE標志,通知標志,通知緩沖器成功發(fā)送緩沖器成功發(fā)送 當應用軟件安排了高優(yōu)先級報文時,可能有必要中止三

35、個當應用軟件安排了高優(yōu)先級報文時,可能有必要中止三個發(fā)送緩沖器的某一個低優(yōu)先級報文發(fā)送緩沖器的某一個低優(yōu)先級報文 MSCAN MSCAN通過以下方式同意該請求:通過以下方式同意該請求:l在在CANTAAKCANTAAK寄存器中設置相應的中止確認標志(寄存器中設置相應的中止確認標志(ABTAKABTAK)。)。l設置相關(guān)的設置相關(guān)的TXETXE標志來釋放緩沖器。標志來釋放緩沖器。l生成發(fā)送中斷。發(fā)送中斷處理程序軟件能夠根據(jù)生成發(fā)送中斷。發(fā)送中斷處理程序軟件能夠根據(jù)ABTAKABTAK標志的設置確定是報文中止(標志的設置確定是報文中止(ABTAK = 1ABTAK = 1)還是已發(fā)送)還是已發(fā)送(

36、ABTAK = 0ABTAK = 0)14.4.4 14.4.4 接收結(jié)構(gòu)接收結(jié)構(gòu) 收到的報文保存在收到的報文保存在5 5級輸入級輸入FIFOFIFO中中 接收時,檢查每條報文,看看它是否通過濾波器,同時被寫接收時,檢查每條報文,看看它是否通過濾波器,同時被寫入有效入有效RxBGRxBG 當當MSCANMSCAN模塊正在發(fā)送報文時,模塊正在發(fā)送報文時, MSCAN MSCAN把其自己發(fā)送的報文把其自己發(fā)送的報文接收到后臺接收緩沖器接收到后臺接收緩沖器 RxBG RxBG,但不會將它轉(zhuǎn)移到接收器,但不會將它轉(zhuǎn)移到接收器FIFOFIFO,生成接收中斷或在,生成接收中斷或在CANCAN總線上響應其自

37、己的報文總線上響應其自己的報文 當當FIFOFIFO中的所有接收報文緩沖器充滿了帶有已接收標識符的中的所有接收報文緩沖器充滿了帶有已接收標識符的正確接收報文,且從正確接收報文,且從CANCAN總線中正確接收到另外一條帶有已總線中正確接收到另外一條帶有已接收標識符的報文時,就會出現(xiàn)溢出接收標識符的報文時,就會出現(xiàn)溢出14.4.5 時鐘系統(tǒng)時鐘系統(tǒng)MSCANMSCAN時鐘發(fā)生結(jié)構(gòu)圖時鐘發(fā)生結(jié)構(gòu)圖 CANCTL1 CANCTL1寄存器中的時鐘源位(寄存器中的時鐘源位(CLKSRCCLKSRC)決定內(nèi)部)決定內(nèi)部CANCLKCANCLK是連接是連接到晶體振蕩器(振蕩器時鐘)輸出還是連接到總線時鐘。必須

38、選擇能到晶體振蕩器(振蕩器時鐘)輸出還是連接到總線時鐘。必須選擇能滿足滿足CANCAN協(xié)議的振蕩器精度要求(高達協(xié)議的振蕩器精度要求(高達0.4%0.4%)的時鐘源。此外,對于)的時鐘源。此外,對于高高CANCAN總線速率(總線速率(1 Mbps1 Mbps)來說,要求)來說,要求45%-55% 45%-55% 的時鐘占空比。的時鐘占空比。 可編程預分頻器從可編程預分頻器從CANCLKCANCLK生成時間沖量(生成時間沖量(TqTq)時鐘。時間沖量是)時鐘。時間沖量是MSCANMSCAN所處理時間的原子單位所處理時間的原子單位 f Tq=fCANCLK/(Prescaler value)位時間

39、再分成三段位時間再分成三段 SYNC_SEG: SYNC_SEG: 該段有一個長度固定的時間沖量,信號邊沿預計出現(xiàn)在該段有一個長度固定的時間沖量,信號邊沿預計出現(xiàn)在本段。本段。 時段時段1 1:本段包括:本段包括CANCAN標準的標準的PROP_SEGPROP_SEG和和PHASE_SEG1PHASE_SEG1。通過設置參數(shù)。通過設置參數(shù)TSEG1TSEG1,使之包含,使之包含4-164-16個時間沖量,可以對其進行編程。個時間沖量,可以對其進行編程。 時段時段2 2:本段表示:本段表示CAN CAN 標準的標準的PHASE_SEG2PHASE_SEG2。通過設置。通過設置TSEG2TSEG2

40、參數(shù),使參數(shù),使之具有之具有2-82-8個時間沖量長,可以對其進行編程個時間沖量長,可以對其進行編程14.5 MSCAN14.5 MSCAN初始化、報文發(fā)送與接收的函數(shù)設計初始化、報文發(fā)送與接收的函數(shù)設計14.5.1 MSCAN14.5.1 MSCAN初始化過程初始化過程 判斷判斷CANECANE,是否處于啟動狀態(tài)。,是否處于啟動狀態(tài)。 寫入處于初始化模式的配置寄存器。寫入處于初始化模式的配置寄存器。 清除清除INITRQINITRQ,離開初始化模式,進入正常模式,離開初始化模式,進入正常模式 當當MSCANMSCAN模塊處于正常模式下,需要更改只能在初始化模模塊處于正常模式下,需要更改只能在

41、初始化模式中寫入的寄存器:式中寫入的寄存器: CANCAN總線空閑后,通過設置總線空閑后,通過設置SLPRQSLPRQ并等待并等待SLPAKSLPAK進行確認,進行確認,將模塊置入睡眠模式。將模塊置入睡眠模式。 進入初始化模式:確定進入初始化模式:確定INITRQINITRQ并等待并等待INITAKINITAK。 寫入處于初始化模式的配置寄存器。寫入處于初始化模式的配置寄存器。 清除清除INITRQINITRQ,離開初始化模式,繼續(xù)保持正常模式,離開初始化模式,繼續(xù)保持正常模式14.5.2 MSCAN14.5.2 MSCAN報文發(fā)送報文發(fā)送/ /接收過程接收過程 MACANMACAN數(shù)據(jù)幀的發(fā)

42、送和接收使用相同的結(jié)構(gòu)體:數(shù)據(jù)幀的發(fā)送和接收使用相同的結(jié)構(gòu)體: typedef struct CanMsg typedef struct CanMsg uint32 sendID; /msg uint32 sendID; /msg發(fā)送方發(fā)送方IDID uint8 IDE; / uint8 IDE; /是否為擴展是否為擴展IDID格式格式 uint8 RTR; / uint8 RTR; /是否為遠程幀是否為遠程幀 uint8 data8; / uint8 data8; /幀數(shù)據(jù)幀數(shù)據(jù) uint8 dataLen; / uint8 dataLen; /幀數(shù)據(jù)長度幀數(shù)據(jù)長度 uint8 priori

43、ty; / uint8 priority; /發(fā)送優(yōu)先級發(fā)送優(yōu)先級 CANMsg; CANMsg; 數(shù)據(jù)幀發(fā)送的過程數(shù)據(jù)幀發(fā)送的過程l 檢查數(shù)據(jù)長度是否符合發(fā)送緩沖區(qū)數(shù)據(jù)長度要求檢查數(shù)據(jù)長度是否符合發(fā)送緩沖區(qū)數(shù)據(jù)長度要求l 檢查總線時鐘檢查總線時鐘l 尋找空閑的發(fā)送緩沖區(qū),并置位發(fā)送器緩沖器空(尋找空閑的發(fā)送緩沖區(qū),并置位發(fā)送器緩沖器空(TXExTXEx)標志)標志l CPUCPU寫入寫入CANTBSELCANTBSEL寄存器,為該緩沖器設置一個指針,使緩沖器能寄存器,為該緩沖器設置一個指針,使緩沖器能夠在夠在CANTXFGCANTXFG地址空間內(nèi)訪問地址空間內(nèi)訪問l CPUCPU將標識符、控

44、制位和數(shù)據(jù)內(nèi)容保存到一個發(fā)送緩沖器將標識符、控制位和數(shù)據(jù)內(nèi)容保存到一個發(fā)送緩沖器l 清除相關(guān)清除相關(guān)TXETXE標志,緩沖器標志為發(fā)送準備就緒標志,緩沖器標志為發(fā)送準備就緒 數(shù)據(jù)幀接收的過程數(shù)據(jù)幀接收的過程l 檢測接收標志檢測接收標志l 檢測檢測CANCAN協(xié)議報文模式標識符協(xié)議報文模式標識符l 讀標識符、數(shù)據(jù)長度、標識符讀標識符、數(shù)據(jù)長度、標識符l 清清RXFRXF標志位標志位14.5.3 MSCAN14.5.3 MSCAN測試實例測試實例本實例的功能是實現(xiàn)本實例的功能是實現(xiàn)MSCANMSCAN的閉環(huán)自測功能的閉環(huán)自測功能MainMain函數(shù)的代碼如下:函數(shù)的代碼如下:/-/-* */ /

45、工工 程程 名名: : CAN_selfCAN_self * */ / 硬件連接硬件連接: : 連接串口連接串口1 1,用于向,用于向PCPC發(fā)送接收到的發(fā)送接收到的CANCAN數(shù)據(jù)數(shù)據(jù) * */ / 程序描述程序描述: CAN: CAN模塊工作在閉環(huán)測試模式,接收采用中斷方式模塊工作在閉環(huán)測試模式,接收采用中斷方式 * */ / 目目 的的: : 初步掌握初步掌握CANCAN通信的基本知識通信的基本知識 * */ / 說說 明明: CAN: CAN通信頻率選擇為通信頻率選擇為800k,800k,使用使用SCI1SCI1通信速率為通信速率為9600 9600 * */-/-蘇州大學飛思卡爾嵌入

46、式系統(tǒng)研發(fā)中心蘇州大學飛思卡爾嵌入式系統(tǒng)研發(fā)中心20112011年年-* *void main(void)void main(void) uint8 count50ms=0; uint8 count50ms=0; CANMsgCANMsg msgSendmsgSend= /CAN= /CAN測試報文測試報文 1,0,0,TestMsge,8,0 1,0,0,TestMsge,8,0 ; ; uint8 uint8 sciMsgsciMsg14= Hello! World!;14= Hello! World!; /1 /1 關(guān)總中斷關(guān)總中斷 DisableInterruptsDisableInterrupts();(); /2 /2 模塊初始化模塊初始化 MCUInitMCUIn

溫馨提示

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

評論

0/150

提交評論