版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 主要內(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ù) 設(shè)計設(shè)計 14.1 CAN14.1 CAN總線通用知識總線通用知識 14.1.1 CAN14.1.1 CAN總線協(xié)議的歷史概況總線協(xié)議的歷史概況 控制器局域網(wǎng)(控制器局域網(wǎng)(Controlle
2、r 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)。在)。在CiACiA的的 努力推廣下,努力推廣下,CANCAN
3、技術(shù)在汽車電子、電梯控制、安全監(jiān)控、技術(shù)在汽車電子、電梯控制、安全監(jiān)控、 醫(yī)療儀器、船舶運輸?shù)确矫婢玫搅藦V泛的應(yīng)用,目前已醫(yī)療儀器、船舶運輸?shù)确矫婢玫搅藦V泛的應(yīng)用,目前已 經(jīng)成為國際上應(yīng)用最廣泛的現(xiàn)場總線之一經(jīng)成為國際上應(yī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)組成 帶隔離的典型帶隔離的典型CANCAN硬件系統(tǒng)電路硬件
4、系統(tǒng)電路 該電路連接需要特別注意以下幾個問題:該電路連接需要特別注意以下幾個問題: l 6N1376N137部分的電路所采用的兩個電源部分的電路所采用的兩個電源VCC1VCC1和和VCC2VCC2須完全隔離須完全隔離 l PCA82C250PCA82C250的的CANH CANH 和和CANL CANL 引腳通過一個引腳通過一個55的限流電阻與的限流電阻與CANCAN總線相總線相 連,保護(hù)連,保護(hù)PCA82C250PCA82C250免受過流的沖擊免受過流的沖擊 帶隔離的典型帶隔離的典型CANCAN硬件系統(tǒng)電路硬件系統(tǒng)電路 不帶隔離的典型不帶隔離的典型CANCAN硬件系統(tǒng)電路硬件系統(tǒng)電路 不帶隔
5、離的典型不帶隔離的典型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ù)墓潭ǜ袷降男畔?,其長度):是指在總線上傳輸?shù)墓潭ǜ袷降男畔?,其長度 是有限制的是有限制的 l 信息路由(信息路由(Information RoutingInformation Routing):在):在CANCAN系統(tǒng)中,系統(tǒng)中,CANCAN不對通信不對通信 節(jié)點分配地址,報文的尋址內(nèi)容由報文的標(biāo)識符節(jié)點分配地址,報文的尋址內(nèi)容由報文的標(biāo)識符IDID指定指定 l 位速率(位速率(Bit RateBit Rate):是指):是指CANCAN總線的傳輸速率總線的傳輸速率 l 位填充(位填充(Bit St
7、uffingBit Stuffing):是為防止突發(fā)錯誤而設(shè)定的功能):是為防止突發(fā)錯誤而設(shè)定的功能 位速率 /kbps 10005002501251005020105 最大距 離/m 4013027053062013003300670010000 CANCAN總線上任意兩節(jié)點最大距離及位速率對應(yīng)表總線上任意兩節(jié)點最大距離及位速率對應(yīng)表 多主機、標(biāo)識符、優(yōu)先權(quán)、仲裁多主機、標(biāo)識符、優(yōu)先權(quán)、仲裁 l 多主機(多主機(MultimasterMultimaster):):CANCAN總線是一個多主機(總線是一個多主機(MultimasterMultimaster)系統(tǒng))系統(tǒng) l 標(biāo)識符標(biāo)識符IDID
8、:CANCAN節(jié)點的唯一標(biāo)識節(jié)點的唯一標(biāo)識 l 優(yōu)先權(quán)(優(yōu)先權(quán)(PrioritiesPriorities):在總線訪問期間,報文的標(biāo)識符):在總線訪問期間,報文的標(biāo)識符IDID定義了一個定義了一個 靜態(tài)的報文優(yōu)先權(quán)靜態(tài)的報文優(yōu)先權(quán) l 仲裁(仲裁(ArbitrationArbitration):總線空閑時,總線上任何節(jié)點都可以開始發(fā)送):總線空閑時,總線上任何節(jié)點都可以開始發(fā)送 報文,若同時有兩個或兩個以上節(jié)點開始發(fā)送,總線訪問沖突運用逐位報文,若同時有兩個或兩個以上節(jié)點開始發(fā)送,總線訪問沖突運用逐位 仲裁規(guī)則,借助于標(biāo)識符仲裁規(guī)則,借助于標(biāo)識符IDID解決解決 遠(yuǎn)程數(shù)據(jù)請求、應(yīng)答遠(yuǎn)程數(shù)據(jù)請求
9、、應(yīng)答 u遠(yuǎn)程數(shù)據(jù)請求(遠(yuǎn)程數(shù)據(jù)請求(Remote Data RequestRemote Data Request):當(dāng)總線上某節(jié)點需要請求另):當(dāng)總線上某節(jié)點需要請求另 一節(jié)點發(fā)送數(shù)據(jù)時,這種情況,在一節(jié)點發(fā)送數(shù)據(jù)時,這種情況,在CANCAN總線協(xié)議術(shù)語中叫遠(yuǎn)程數(shù)據(jù)請求總線協(xié)議術(shù)語中叫遠(yuǎn)程數(shù)據(jù)請求 (Remote Data RequestRemote Data Request) u應(yīng)答(應(yīng)答(AcknowledgmentAcknowledgment):所有接收器對接收到的報文進(jìn)行一致性):所有接收器對接收到的報文進(jìn)行一致性 (ConsistencyConsistency)檢查)檢查 故障界定
10、、錯誤標(biāo)定和恢復(fù)時間故障界定、錯誤標(biāo)定和恢復(fù)時間 l 故障界定(故障界定(Fault ConfinementFault Confinement):):CANCAN節(jié)點能夠把永久故障和短節(jié)點能夠把永久故障和短 暫的干擾區(qū)別開來,故障節(jié)點會被關(guān)閉暫的干擾區(qū)別開來,故障節(jié)點會被關(guān)閉 l 錯誤標(biāo)定和恢復(fù)時間(錯誤標(biāo)定和恢復(fù)時間(Error Signaling and Recovery TimeError Signaling and Recovery Time):): 任何檢測到錯誤的節(jié)點會標(biāo)志出已被損壞的報文任何檢測到錯誤的節(jié)點會標(biāo)志出已被損壞的報文 CANCAN的分層結(jié)構(gòu)的分層結(jié)構(gòu) l 物理層(物理
11、層(The Physical LayerThe Physical Layer):):CANCAN規(guī)范沒有定義具體的物理層,規(guī)范沒有定義具體的物理層, 允許用戶根據(jù)具體需要定制物理層允許用戶根據(jù)具體需要定制物理層 l 數(shù)據(jù)鏈路層又分為邏輯鏈路控制子層和介質(zhì)訪問控制子層:數(shù)據(jù)鏈路層又分為邏輯鏈路控制子層和介質(zhì)訪問控制子層: l 邏輯鏈路控制子層(邏輯鏈路控制子層(Logic Link ControlLogic Link Control,LLCLLC):負(fù)責(zé)報文濾波、):負(fù)責(zé)報文濾波、 過載通知和恢復(fù)管理。過載通知和恢復(fù)管理。 l 介質(zhì)訪問控制子層(介質(zhì)訪問控制子層(Media Access Con
12、trolMedia Access Control,MACMAC):):MACMAC是是CANCAN協(xié)協(xié) 議的核心議的核心 14.1.4 14.1.4 幀結(jié)構(gòu)幀結(jié)構(gòu) 數(shù)據(jù)幀數(shù)據(jù)幀 l幀起始幀起始SOFSOF:標(biāo)志數(shù)據(jù)幀和遠(yuǎn)程幀的起始,僅由一個單獨的:標(biāo)志數(shù)據(jù)幀和遠(yuǎn)程幀的起始,僅由一個單獨的 “0 0”位組成位組成 l仲裁場:在仲裁場:在CAN2.0BCAN2.0B中定義標(biāo)準(zhǔn)幀與擴(kuò)展幀兩種幀格式中定義標(biāo)準(zhǔn)幀與擴(kuò)展幀兩種幀格式 數(shù)據(jù)幀組成數(shù)據(jù)幀組成 數(shù)據(jù)幀標(biāo)準(zhǔn)格式中的仲裁場結(jié)構(gòu)數(shù)據(jù)幀標(biāo)準(zhǔn)格式中的仲裁場結(jié)構(gòu) 數(shù)據(jù)幀擴(kuò)展格式中的仲裁場結(jié)構(gòu)數(shù)據(jù)幀擴(kuò)展格式中的仲裁場結(jié)構(gòu) l 6 6位控制場:標(biāo)準(zhǔn)幀中控制場包
13、括:數(shù)據(jù)長度代碼位控制場:標(biāo)準(zhǔn)幀中控制場包括:數(shù)據(jù)長度代碼DLCDLC、 IDEIDE位(為位(為0 0)、保留位)、保留位r0r0 l 4 4位數(shù)據(jù)長度代碼位數(shù)據(jù)長度代碼DLCDLC:指示了數(shù)據(jù)場中字節(jié)數(shù),:指示了數(shù)據(jù)場中字節(jié)數(shù), DLC=00001000DLC=00001000(即十進(jìn)制的(即十進(jìn)制的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ù) 遠(yuǎn)程幀遠(yuǎn)程幀 錯誤幀錯誤幀 錯誤幀由錯誤幀由CANCAN控制器的硬件進(jìn)行處理,與用戶編程無關(guān)控制器的硬件進(jìn)行處理,與用戶編程無關(guān) 遠(yuǎn)程幀的組成
14、遠(yuǎn)程幀的組成 錯誤幀組成錯誤幀組成 過載幀過載幀 有三種過載的情況會引發(fā)過載幀的傳送:有三種過載的情況會引發(fā)過載幀的傳送: l 接收器的內(nèi)部情況(此接收器對于下一數(shù)據(jù)幀或遠(yuǎn)程幀需要有一接收器的內(nèi)部情況(此接收器對于下一數(shù)據(jù)幀或遠(yuǎn)程幀需要有一 延時)。延時)。 l 在間歇的第一和第二字節(jié)檢測到一個在間歇的第一和第二字節(jié)檢測到一個“0 0”位。位。 l 如果如果CANCAN節(jié)點在錯誤界定符或過載界定符的第節(jié)點在錯誤界定符或過載界定符的第8 8位(最后一位)采位(最后一位)采 樣到一個樣到一個0 0位,節(jié)點會發(fā)送一個過載幀(不是錯誤幀)位,節(jié)點會發(fā)送一個過載幀(不是錯誤幀) 過載幀的組成過載幀的組成
15、 14.1.5 14.1.5 位時間位時間 所謂位時間,是指發(fā)送一位所需要的時間實際工作過所謂位時間,是指發(fā)送一位所需要的時間實際工作過 程的位時間與系統(tǒng)設(shè)定的位時間少有偏差,把理想情況下程的位時間與系統(tǒng)設(shè)定的位時間少有偏差,把理想情況下 位時間稱為標(biāo)稱位時間(位時間稱為標(biāo)稱位時間(Nominal Bit TimeNominal Bit Time),相應(yīng)的位),相應(yīng)的位 速率(每秒發(fā)送的位數(shù))稱為標(biāo)稱位速率。標(biāo)稱位速率速率(每秒發(fā)送的位數(shù))稱為標(biāo)稱位速率。標(biāo)稱位速率 =1/=1/標(biāo)稱位時間標(biāo)稱位時間 標(biāo)稱位時間組成示意圖標(biāo)稱位時間組成示意圖 14.2 MC9S08DZ6014.2 MC9S08
16、DZ60硬件最小系統(tǒng)硬件最小系統(tǒng) DZ60DZ60的主要特性的主要特性 l 總線時鐘可達(dá)總線時鐘可達(dá)20MHz20MHz l 支持多達(dá)支持多達(dá)3232個外圍設(shè)備中斷個外圍設(shè)備中斷/ /復(fù)位源復(fù)位源 l 4K4K字節(jié)的內(nèi)部字節(jié)的內(nèi)部SRAMSRAM l 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
17、通道、通道、1212位位ADAD轉(zhuǎn)換器(轉(zhuǎn)換器(Analog-to-Digital ConverterAnalog-to-Digital Converter,ADCADC) l 8 8個通道的定時及脈寬調(diào)制器(個通道的定時及脈寬調(diào)制器(TPMTPM) l 1 1路串行外圍設(shè)備接口(路串行外圍設(shè)備接口(SPISPI) l 1 1個極性可選的鍵盤中斷(個極性可選的鍵盤中斷(KBIKBI)引腳)引腳 l 5353個通用輸入個通用輸入/ /輸出(輸出(I/OI/O)管腳和)管腳和1 1個專用輸入管腳個專用輸入管腳 l 多功能時鐘觸發(fā)器(多功能時鐘觸發(fā)器(MCGMCG) l 1 1個可編程軟件看門狗定時
18、器個可編程軟件看門狗定時器 l FlashFlash塊保護(hù)塊保護(hù) l 單線后臺調(diào)試接口單線后臺調(diào)試接口 DZ60DZ60管腳分配管腳分配 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版:標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀版:標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀/0-8/0-8字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù) 長度長度/ /高達(dá)高達(dá)1Mbps1Mbps的可
19、編程比特率的可編程比特率/ /支持遠(yuǎn)程幀支持遠(yuǎn)程幀 l 5 5個具有個具有FIFOFIFO存儲機制的接收緩沖器存儲機制的接收緩沖器 l 3 3個具有使用個具有使用“本地優(yōu)先本地優(yōu)先”概念的內(nèi)部優(yōu)先順序的發(fā)送緩沖器概念的內(nèi)部優(yōu)先順序的發(fā)送緩沖器 l 靈活的掩碼標(biāo)識符濾波器支持靈活的掩碼標(biāo)識符濾波器支持2 2個全尺寸(個全尺寸(3232位)擴(kuò)展標(biāo)識符濾位)擴(kuò)展標(biāo)識符濾 波器或波器或4 4個個1616位濾波器或位濾波器或8 8個個8 8位濾波器位濾波器 l 集成低通濾波器的可編程喚醒功能集成低通濾波器的可編程喚醒功能r r l 可編程閉環(huán)模式支持自測操作可編程閉環(huán)模式支持自測操作 l 可編程監(jiān)聽模式
20、用于可編程監(jiān)聽模式用于CANCAN總線監(jiān)控總線監(jiān)控 l 可編程總線脫離恢復(fù)功能可編程總線脫離恢復(fù)功能 l 獨立的信號和中斷功能適用于所有獨立的信號和中斷功能適用于所有CANCAN接收器和發(fā)射器錯誤狀態(tài)接收器和發(fā)射器錯誤狀態(tài) (警報、被動錯誤、總線脫離)(警報、被動錯誤、總線脫離) l 可編程可編程MSCANMSCAN時鐘源,采用總線時鐘或振蕩器時鐘時鐘源,采用總線時鐘或振蕩器時鐘 l 內(nèi)部計時器提供給接收和發(fā)送的報文的時間標(biāo)簽內(nèi)部計時器提供給接收和發(fā)送的報文的時間標(biāo)簽 l 三種低功耗模式:睡眠、關(guān)機和三種低功耗模式:睡眠、關(guān)機和MSCANMSCAN使能使能 l 配置寄存器的全局初始化配置寄存器
21、的全局初始化 14.3.2 14.3.2 運行模式運行模式 正常模式正常模式 特殊模式特殊模式 仿真模式仿真模式 監(jiān)聽模式監(jiān)聽模式 保密模式保密模式 閉環(huán)自測模式閉環(huán)自測模式 14.3.3 14.3.3 低功耗選項低功耗選項 MSCAN MSCAN睡眠模式睡眠模式 睡眠請求睡眠請求/ /確認(rèn)周期確認(rèn)周期 進(jìn)入進(jìn)入/ /退出睡眠模式的簡單狀態(tài)轉(zhuǎn)換退出睡眠模式的簡單狀態(tài)轉(zhuǎn)換 MSCANMSCAN初始化模式初始化模式 初始化請求初始化請求/ /確認(rèn)周期確認(rèn)周期 MSCAN MSCAN斷電模式斷電模式 lCPUCPU處于停止模式處于停止模式 lCPUCPU處于等待模式且設(shè)置了處于等待模式且設(shè)置了CSW
22、AICSWAI位位 可編程喚醒功能可編程喚醒功能 只要檢測到只要檢測到CANCAN總線有效,就可以對總線有效,就可以對MSCANMSCAN進(jìn)行編程以喚進(jìn)行編程以喚 醒醒MSCANMSCAN 14.3.4 14.3.4 中斷中斷 中斷矢量中斷矢量 發(fā)送中斷發(fā)送中斷 接收中斷接收中斷 喚醒中斷喚醒中斷 錯誤中斷錯誤中斷 中斷響應(yīng)中斷響應(yīng) 中斷源CCR掩碼本地使能 喚醒中斷(WUPIF)I 位CANRIER (WUPIE) 錯誤中斷(CSCIF, OVRIF) I 位 CANRIER(CSCIE, OVRIE) 接入中斷 (RXF)I 位CANRIER(RXFIE) 發(fā)送中斷 (TXE2:0)I 位
23、CANRIER (TXEIE2:0) 14.3.5 MSCAN14.3.5 MSCAN模塊寄存器定義模塊寄存器定義 MSCANMSCAN控制寄存器控制寄存器0(CANCTL0)0(CANCTL0) l D7,D6,D4:未定義 lD7RXFRMD7RXFRM位,已收到幀標(biāo)記位,已收到幀標(biāo)記 lD6RXACTD6RXACT位,接收器使能狀態(tài)位,接收器使能狀態(tài) lD5CSWAID5CSWAI位,在等待模式中位,在等待模式中CANCAN停止停止 lD4SYNCHD4SYNCH位,同步狀態(tài)位,同步狀態(tài) lD3TIMED3TIME位,計時器使能位,計時器使能 lD2WUPED2WUPE位,喚醒使能位,喚
24、醒使能 lD0INITRQD0INITRQ位,初始化模式請求位,初始化模式請求 數(shù)據(jù)位D7D6D5D4D3D2D1D0 定義RXFRMRXACTCSWAISYNCHTIMEWUPESLPRQINITRQ 復(fù)位00000001 MSCANMSCAN控制寄存器控制寄存器1(CANCTL1)1(CANCTL1) l D1D1,D0D0:未定義:未定義 l D7CANED7CANE位,位,MSCANMSCAN使能使能 l D6CLKSRCD6CLKSRC位,位,MSCANMSCAN時鐘源時鐘源 l D5LOOPBD5LOOPB位,閉環(huán)自測模式位,閉環(huán)自測模式 l D4LISTEND4LISTEN位,監(jiān)
25、聽模式位,監(jiān)聽模式 l D3BORMD3BORM位,總先脫離恢復(fù)模式位,總先脫離恢復(fù)模式 l D2WUPMD2WUPM位,喚醒模式位,喚醒模式 l D1SLPAKD1SLPAK位,睡眠模式確認(rèn)位,睡眠模式確認(rèn) l D0INITAKD0INITAK位,初始化模式確認(rèn)位,初始化模式確認(rèn) 數(shù)據(jù)位D7D6D5D4D3D2D1D0 定義CANECLKSRC LOOPBLISTENBORMWUPMSLPAKINITAK 復(fù)位00000001 MSCANMSCAN總線定時寄存器總線定時寄存器0(CANBTR0)0(CANBTR0) l D7D6SJW1:0D7D6SJW1:0,同步跳轉(zhuǎn)寬度,同步跳轉(zhuǎn)寬度 l
26、 D5D0BRP5:0D5D0BRP5:0,波特率預(yù)分頻器,波特率預(yù)分頻器 數(shù)據(jù)位D7D6D5D4D3D2D1D0 定義SJW1SJW0BRP5BRP4BRP3BRP2BRP1BRP0 復(fù)位00000000 MSCANMSCAN總線定時寄存器總線定時寄存器1(CANBTR1)1(CANBTR1) lD7SAMPD7SAMP位,采樣位,采樣 lD6D6D4TSEG22:0D4TSEG22:0位,時間段位,時間段2 2 lD3D3D0TSEG13:0D0TSEG13:0位,時間段位,時間段1 1 數(shù)據(jù)位D7D6D5D4D3D2D1D0 定義SAMPTSEG22TSEG21TSEG20TSEG13T
27、SEG12TSEG11TSEG10 復(fù)位00000000 MSCANMSCAN接收器標(biāo)志寄存器接收器標(biāo)志寄存器(CANRFLG)(CANRFLG) lD5D5,D4D4,D3D3,D2D2:未定義:未定義 lD7WUPIFD7WUPIF位,喚醒中斷標(biāo)位,喚醒中斷標(biāo) lD6CSCIFD6CSCIF位,位,CANCAN狀態(tài)變化中斷標(biāo)志狀態(tài)變化中斷標(biāo)志 lD5D5D4RSTAT1:0D4RSTAT1:0位,接收器狀態(tài)位位,接收器狀態(tài)位 lD3D3D2TSTAT1:0D2TSTAT1:0位,發(fā)送器狀態(tài)位位,發(fā)送器狀態(tài)位 lD1OVRIFD1OVRIF位,溢出中斷標(biāo)志位,溢出中斷標(biāo)志 lD0RXFD0R
28、XF位,接收緩沖器已滿標(biāo)志位,接收緩沖器已滿標(biāo)志 數(shù)據(jù)位D7D6D5D4D3D2D1D0 定義WUPIFCSCIFRSTAT1RSTAT0TSTAT1TSTAT0OVRIFRXF 復(fù)位000 0 0 0 0 0 MSCANMSCAN接收器中斷使能寄存器接收器中斷使能寄存器(CANRIER)(CANRIER) lD7WUPIED7WUPIE位,喚醒中斷使能位,喚醒中斷使能 lD6CSCIED6CSCIE位,位,CANCAN狀態(tài)變化中斷使能狀態(tài)變化中斷使能 lD5D5D4RSTATE1:0D4RSTATE1:0,位接收器狀態(tài)變化使能,位接收器狀態(tài)變化使能 lD3D3D2TSTATE1:0D2TST
29、ATE1:0,發(fā)送器狀態(tài)變化使能,發(fā)送器狀態(tài)變化使能 lD1OVRIED1OVRIE位,溢出中斷使能位,溢出中斷使能 lD0RXFIED0RXFIE位,總接收器已滿中斷使能位,總接收器已滿中斷使能 數(shù)據(jù)位D7D6D5D4D3D2D1D0 定義WUPIECSCIERSTATE1 RSTATE0 TSTATE1 TSTATE0OVRIERXFIE 復(fù)位000 0 0 0 00 MSCANMSCAN發(fā)送器標(biāo)志寄存器發(fā)送器標(biāo)志寄存器 (CANTFLG)(CANTFLG) lD7D7D3D3未定義未定義 lD2D2D0TXE2:0D0TXE2:0位,發(fā)送器緩沖器空位,發(fā)送器緩沖器空 數(shù)據(jù)位D7D6D5D
30、4D3D2D1D0 定義00000TXE2TXE1TXE0 復(fù)位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位,中止請求位,中止請求 數(shù)據(jù)位D7D6D5D4D3D2D1D0 定義00000TXEIE2TX
31、EIE1TXEIE0 復(fù)位00000000 數(shù)據(jù)位D7D6D5D4D3D2D1D0 定義00000ABTRQ2 ABTRQ1 ABTRQ0 復(fù)位00000000 MSCANMSCAN發(fā)送器報文中止確認(rèn)寄存器發(fā)送器報文中止確認(rèn)寄存器(CANTAAK)(CANTAAK) l D7D7D0D0未定義未定義 l D2D2D0ABTAK2:0D0ABTAK2:0位,中止確認(rèn)位,中止確認(rèn) MSCANMSCAN發(fā)送緩沖器選擇寄存器發(fā)送緩沖器選擇寄存器(CANTBSEL)(CANTBSEL) l D7D7D3D3未定義未定義 l D2D2D0TX 2:0D0TX 2:0位,發(fā)送緩沖器選擇位,發(fā)送緩沖器選擇 數(shù)
32、據(jù)位D7D6D5D4D3D2D1D0 定義00000ABTAK2 ABTAK1 ABTAK0 復(fù)位00000000 數(shù)據(jù)位D7D6D5D4D3D2D1D0 定義00000TX2TX1TX0 復(fù)位00000000 14.4 MSCAN14.4 MSCAN功能描述功能描述 14.4.1 14.4.1 報文發(fā)送報文發(fā)送/ /接收功能描述接收功能描述 MSCANMSCAN模塊共有模塊共有8 8個報文個報文 緩沖區(qū),其中緩沖區(qū),其中5 5個報文接個報文接 收緩沖區(qū)收緩沖區(qū)(Rx0(Rx0Rx4)Rx4)和和3 3 個發(fā)送緩沖區(qū)個發(fā)送緩沖區(qū)(Tx0(Tx0Tx2)Tx2), 支持發(fā)送與接收標(biāo)準(zhǔn)支持發(fā)送與接
33、收標(biāo)準(zhǔn)/ /擴(kuò)擴(kuò) 展數(shù)據(jù)幀和遠(yuǎn)程幀展數(shù)據(jù)幀和遠(yuǎn)程幀 報文緩沖器結(jié)構(gòu)的用戶模型報文緩沖器結(jié)構(gòu)的用戶模型 14.4.2 14.4.2 報文發(fā)送基礎(chǔ)報文發(fā)送基礎(chǔ) 現(xiàn)代應(yīng)用層軟件的建立基于兩個基本假設(shè):現(xiàn)代應(yīng)用層軟件的建立基于兩個基本假設(shè): ANAN節(jié)點都能夠發(fā)送出安排好的報文流,而不需要在兩條報節(jié)點都能夠發(fā)送出安排好的報文流,而不需要在兩條報 文間釋放文間釋放CANCAN總線總線 ANAN節(jié)點內(nèi)的內(nèi)部報文隊列,這樣,如果有多條報文準(zhǔn)備發(fā)節(jié)點內(nèi)的內(nèi)部報文隊列,這樣,如果有多條報文準(zhǔn)備發(fā) 送時,最高優(yōu)先級報文首先發(fā)出送時,最高優(yōu)先級報文首先發(fā)出 無論在什么情況下,至少需要三個發(fā)送緩沖器來滿足上無論在什么
34、情況下,至少需要三個發(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ā)送,并通過設(shè)置相關(guān)然后安排報文發(fā)送,并通過設(shè)置相關(guān)TXETXE標(biāo)志,通知標(biāo)志,通知 緩沖器成功發(fā)送緩沖器成功發(fā)送 當(dāng)應(yīng)用軟件安排了高優(yōu)先級報文時,可能有必要中止三個當(dāng)應(yīng)用軟件安排了高優(yōu)先級報文時,可能有必要中止三個 發(fā)送緩沖器的某一個低優(yōu)先級報
35、文發(fā)送緩沖器的某一個低優(yōu)先級報文 MSCANMSCAN通過以下方式同意該請求:通過以下方式同意該請求: l在在CANTAAKCANTAAK寄存器中設(shè)置相應(yīng)的中止確認(rèn)標(biāo)志(寄存器中設(shè)置相應(yīng)的中止確認(rèn)標(biāo)志(ABTAKABTAK)。)。 l設(shè)置相關(guān)的設(shè)置相關(guān)的TXETXE標(biāo)志來釋放緩沖器。標(biāo)志來釋放緩沖器。 l生成發(fā)送中斷。發(fā)送中斷處理程序軟件能夠根據(jù)生成發(fā)送中斷。發(fā)送中斷處理程序軟件能夠根據(jù)ABTAKABTAK 標(biāo)志的設(shè)置確定是報文中止(標(biāo)志的設(shè)置確定是報文中止(ABTAK = 1ABTAK = 1)還是已發(fā)送)還是已發(fā)送 (ABTAK = 0ABTAK = 0) 14.4.4 14.4.4 接收
36、結(jié)構(gòu)接收結(jié)構(gòu) 收到的報文保存在收到的報文保存在5 5級輸入級輸入FIFOFIFO中中 接收時,檢查每條報文,看看它是否通過濾波器,同時被寫接收時,檢查每條報文,看看它是否通過濾波器,同時被寫 入有效入有效RxBGRxBG 當(dāng)當(dāng)MSCANMSCAN模塊正在發(fā)送報文時,模塊正在發(fā)送報文時, MSCANMSCAN把其自己發(fā)送的報文把其自己發(fā)送的報文 接收到后臺接收緩沖器接收到后臺接收緩沖器 RxBGRxBG,但不會將它轉(zhuǎn)移到接收器,但不會將它轉(zhuǎn)移到接收器 FIFOFIFO,生成接收中斷或在,生成接收中斷或在CANCAN總線上響應(yīng)其自己的報文總線上響應(yīng)其自己的報文 當(dāng)當(dāng)FIFOFIFO中的所有接收報文
37、緩沖器充滿了帶有已接收標(biāo)識符的中的所有接收報文緩沖器充滿了帶有已接收標(biāo)識符的 正確接收報文,且從正確接收報文,且從CANCAN總線中正確接收到另外一條帶有已總線中正確接收到另外一條帶有已 接收標(biāo)識符的報文時,就會出現(xiàn)溢出接收標(biāo)識符的報文時,就會出現(xiàn)溢出 14.4.5 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é)議的振蕩器精度要求(高達(dá)協(xié)議的振蕩器精度要求(高達(dá)0.4%0.4%)的時鐘源。此外,對于)的時鐘源。此外,對于 高高CANCAN總線速率(總線速率(1 Mbps1 Mbps)來說,要求)來說,要求45%-55% 45%-55% 的時鐘占空比。的時鐘占空比。 可編程預(yù)分頻器從可編程預(yù)分頻器從CANCLKCANCLK生成時間沖量(生成時間沖量(TqTq)時鐘。時間沖量是)時鐘。時間沖量是 MSCANMSCAN所處理時間的原子單位所處理時間的原子單位 f Tq=fCANCLK/(Prescaler value) 位時間再分成三段位時間再分成三段 SYNC
39、_SEG: SYNC_SEG: 該段有一個長度固定的時間沖量,信號邊沿預(yù)計出現(xiàn)在該段有一個長度固定的時間沖量,信號邊沿預(yù)計出現(xiàn)在 本段。本段。 時段時段1 1:本段包括:本段包括CANCAN標(biāo)準(zhǔn)的標(biāo)準(zhǔn)的PROP_SEGPROP_SEG和和PHASE_SEG1PHASE_SEG1。通過設(shè)置參數(shù)。通過設(shè)置參數(shù) TSEG1TSEG1,使之包含,使之包含4-164-16個時間沖量,可以對其進(jìn)行編程。個時間沖量,可以對其進(jìn)行編程。 時段時段2 2:本段表示:本段表示CAN CAN 標(biāo)準(zhǔn)的標(biāo)準(zhǔn)的PHASE_SEG2PHASE_SEG2。通過設(shè)置。通過設(shè)置TSEG2TSEG2參數(shù),使參數(shù),使 之具有之具有2
40、-82-8個時間沖量長,可以對其進(jìn)行編程個時間沖量長,可以對其進(jìn)行編程 14.5 MSCAN14.5 MSCAN初始化、報文發(fā)送與接收的函數(shù)設(shè)計初始化、報文發(fā)送與接收的函數(shù)設(shè)計 14.5.1 MSCAN14.5.1 MSCAN初始化過程初始化過程 判斷判斷CANECANE,是否處于啟動狀態(tài)。,是否處于啟動狀態(tài)。 寫入處于初始化模式的配置寄存器。寫入處于初始化模式的配置寄存器。 清除清除INITRQINITRQ,離開初始化模式,進(jìn)入正常模式,離開初始化模式,進(jìn)入正常模式 當(dāng)當(dāng)MSCANMSCAN模塊處于正常模式下,需要更改只能在初始化模模塊處于正常模式下,需要更改只能在初始化模 式中寫入的寄存器
41、:式中寫入的寄存器: CANCAN總線空閑后,通過設(shè)置總線空閑后,通過設(shè)置SLPRQSLPRQ并等待并等待SLPAKSLPAK進(jìn)行確認(rèn),進(jìn)行確認(rèn), 將模塊置入睡眠模式。將模塊置入睡眠模式。 進(jìn)入初始化模式:確定進(jìn)入初始化模式:確定INITRQINITRQ并等待并等待INITAKINITAK。 寫入處于初始化模式的配置寄存器。寫入處于初始化模式的配置寄存器。 清除清除INITRQINITRQ,離開初始化模式,繼續(xù)保持正常模式,離開初始化模式,繼續(xù)保持正常模式 14.5.2 MSCAN14.5.2 MSCAN報文發(fā)送報文發(fā)送/ /接收過程接收過程 MACANMACAN數(shù)據(jù)幀的發(fā)送和接收使用相同的結(jié)
42、構(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; /是否為擴(kuò)展是否為擴(kuò)展IDID格式格式 uint8 RTR; / uint8 RTR; /是否為遠(yuǎn)程幀是否為遠(yuǎn)程幀 uint8 data8; / uint8 data8; /幀數(shù)據(jù)幀數(shù)據(jù) uint8 dataLen; / uint8 dataLen; /幀數(shù)據(jù)長度幀數(shù)據(jù)長度 uint8 priority; / uint
43、8 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)標(biāo)志)標(biāo)志 l CPUCPU寫入寫入CANTBSELCANTBSEL寄存器,為該緩沖器設(shè)置一個指針,使緩沖器能寄存器,為該緩沖器設(shè)置一個指針,使緩沖器能 夠在夠在CANTXFGCANTXFG地址空間內(nèi)訪問地址空間內(nèi)訪問 l CPUCPU將標(biāo)識符、控制位和數(shù)
44、據(jù)內(nèi)容保存到一個發(fā)送緩沖器將標(biāo)識符、控制位和數(shù)據(jù)內(nèi)容保存到一個發(fā)送緩沖器 l 清除相關(guān)清除相關(guān)TXETXE標(biāo)志,緩沖器標(biāo)志為發(fā)送準(zhǔn)備就緒標(biāo)志,緩沖器標(biāo)志為發(fā)送準(zhǔn)備就緒 數(shù)據(jù)幀接收的過程數(shù)據(jù)幀接收的過程 l 檢測接收標(biāo)志檢測接收標(biāo)志 l 檢測檢測CANCAN協(xié)議報文模式標(biāo)識符協(xié)議報文模式標(biāo)識符 l 讀標(biāo)識符、數(shù)據(jù)長度、標(biāo)識符讀標(biāo)識符、數(shù)據(jù)長度、標(biāo)識符 l 清清RXFRXF標(biāo)志位標(biāo)志位 14.5.3 MSCAN14.5.3 MSCAN測試實例測試實例 本實例的功能是實現(xiàn)本實例的功能是實現(xiàn)MSCANMSCAN的閉環(huán)自測功能的閉環(huán)自測功能 MainMain函數(shù)的代碼如下:函數(shù)的代碼如下: /-/-*
45、* / / 工工 程程 名名: CAN_self : CAN_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 * * /-/-蘇州大學(xué)飛思卡爾嵌入式系統(tǒng)研發(fā)中心蘇州大學(xué)飛思卡爾嵌入式系統(tǒng)研發(fā)中心20112011年年-* * void main(void)void main(void) uint8 count50ms=0; uint8 count50ms=0; CANMsg msgSend= /CAN CANMsg msgSend= /CAN測試報文測試報文 1,0,0,TestMsge,8,0 1,0,0,TestMsge,8,0 ; ; uint8 sciMsg14= Hello!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《家庭護(hù)士》課件
- 2023-2024學(xué)年福建省福州市福清市高一(下)期中地理試卷
- 高速公路施工總承包合同段春節(jié)節(jié)后復(fù)工工作計劃及保障措施
- 2024年山東省日照市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年福建省福州市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年四川省眉山市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年貴州省安順市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 湖南省張家界市(2024年-2025年小學(xué)六年級語文)部編版摸底考試(上學(xué)期)試卷及答案
- 2024年ATM機項目資金需求報告代可行性研究報告
- 2025年P(guān)S鋁合金板項目立項申請報告模板
- 第四屆全國新能源汽車關(guān)鍵技術(shù)大賽決賽考試題庫-下(判斷題)
- 職業(yè)技術(shù)學(xué)院《茶藝》課程標(biāo)準(zhǔn)
- 2024-2025學(xué)年北京市海淀區(qū)數(shù)學(xué)三上期末教學(xué)質(zhì)量檢測試題含解析
- 敏捷開發(fā)與Scrum考核試卷
- 2025屆江蘇省連云港市東??h數(shù)學(xué)八上期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 四年級豎式100道
- 2024年工業(yè)廢水處理工(初級)技能鑒定考試題庫(含答案)
- 2024新滬教版英語初一上單詞表(英譯漢)
- 人教版八年級上冊生物期末必刷15道識圖題
- 期末專題復(fù)習(xí)-任務(wù)型閱讀 2023-2024學(xué)年 外研版英語八年級上學(xué)期期末真題備考
- 配電室設(shè)備安裝工程施工方案
評論
0/150
提交評論