




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 17.1 CAN技術(shù)規(guī)范 17.2 MSCAN08模塊 17.3 MSCAN08通信接口硬件電路 17.4 MSCAN08模塊的編程結(jié)構(gòu) 17.5 CAN通信子函數(shù)與測(cè)試實(shí)例 17.6 小結(jié)第1頁(yè)/共36頁(yè) CAN通信協(xié)議主要描述設(shè)備之間的信息傳遞方式。CAN各層的定義與開放系統(tǒng)互連模型OSI一致,每一層與另一設(shè)備上相同的那一層通信。實(shí)際的通信發(fā)生在每一設(shè)備上相鄰的兩層,而設(shè)備只通過(guò)模型物理層的物理介質(zhì)互連。CAN技術(shù)規(guī)范定義了模型的最下面兩層:數(shù)據(jù)鏈路層和物理層,是設(shè)計(jì)CAN應(yīng)用系統(tǒng)的基本依據(jù)。1991年9月Bosch公司制定并發(fā)布了CAN技術(shù)規(guī)范。該技術(shù)規(guī)范包括A和B兩部分,給出了曾在C
2、AN技術(shù)規(guī)范中定義的CAN報(bào)文格式,而給出了標(biāo)準(zhǔn)的和擴(kuò)展的兩種報(bào)文格式。規(guī)范主要是針對(duì)CAN控制器的設(shè)計(jì)者而言,對(duì)于大多數(shù)應(yīng)用開發(fā)者來(lái)說(shuō),只需對(duì)版技術(shù)規(guī)范的基本結(jié)構(gòu)、概念、規(guī)則作一般了解,知道一些基本參數(shù)和可訪問(wèn)的硬件即可。下面只給出與CAN通信接口編程相關(guān)的部分技術(shù)規(guī)范,完整的技術(shù)規(guī)范讀者可參考原英文文獻(xiàn)。第2頁(yè)/共36頁(yè)(1) 報(bào)文(Messages)報(bào)文是指在總線上傳輸?shù)墓潭ǜ袷降男畔?,其長(zhǎng)度是有限制的。當(dāng)總線空閑時(shí),總線上任何單元都可以發(fā)送新報(bào)文。(2) 信息路由(Information Routing)在CAN系統(tǒng)中,CAN不對(duì)通信單元分配地址,報(bào)文的尋址內(nèi)容由報(bào)文的標(biāo)識(shí)符指定。標(biāo)識(shí)
3、符沒有報(bào)文的目的地,總線上所有單元可以通過(guò)報(bào)文濾波來(lái)判斷是否接收?qǐng)?bào)文。(3) 位速率(Bit Rate)位速度是指總線的傳輸速率。在一個(gè)給定的CAN系統(tǒng)中,位速率是唯一的,也是固定的。CAN總線上任意兩個(gè)單元之間的最大傳輸距離與位速率有關(guān),表17-1列出了距離與位速率的相關(guān)數(shù)據(jù)。這里的最大距離是指不接中繼器的兩個(gè)單元之間的距離。 第3頁(yè)/共36頁(yè)(4) 優(yōu)先權(quán)(Priorities)在總線訪問(wèn)期間,報(bào)文的標(biāo)識(shí)符定義了一個(gè)靜態(tài)的報(bào)文優(yōu)先權(quán)。在CAN總線上發(fā)送的每一個(gè)報(bào)文都具有唯一的一個(gè)11位或29位的標(biāo)識(shí)符,總線狀態(tài)取決于二進(jìn)制數(shù)0而不是1,標(biāo)識(shí)符越小,則該報(bào)文擁有越高的優(yōu)先權(quán),因此一個(gè)為全0標(biāo)
4、志符的報(bào)文具有總線上的最高級(jí)優(yōu)先權(quán)。當(dāng)有兩個(gè)節(jié)點(diǎn)同時(shí)進(jìn)行發(fā)送時(shí),必須通過(guò)“無(wú)損的逐位仲裁方法”來(lái)使有最高優(yōu)先權(quán)的報(bào)文優(yōu)先發(fā)送。(5) 遠(yuǎn)程數(shù)據(jù)請(qǐng)求(Remote Data Request)當(dāng)總線上某單元需要請(qǐng)求另一單元發(fā)送數(shù)據(jù)時(shí),可通過(guò)發(fā)送遠(yuǎn)程幀實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)請(qǐng)求。有關(guān)幀內(nèi)容見小節(jié)。(6) 多主機(jī)(Multimaster)總線空閑時(shí),總線上任何單元都可以開始向總線上傳送報(bào)文,但只有最高優(yōu)先權(quán)報(bào)文的單元可獲得總線訪問(wèn)權(quán)。(7) 仲裁(Arbitration)總線空閑時(shí),總線上任何單元都可以開始發(fā)送報(bào)文,若同時(shí)有兩個(gè)或兩個(gè)以上單元開始發(fā)送,總線訪問(wèn)沖突運(yùn)用逐位仲裁規(guī)則,借助標(biāo)識(shí)符ID解決。仲裁期間,
5、每一個(gè)發(fā)送器都對(duì)發(fā)送位電平與總線上檢測(cè)到的電平進(jìn)行比較,若相同則該單元繼續(xù)發(fā)送。當(dāng)發(fā)送的是一隱性電平而監(jiān)視到的是一顯性電平(見總線數(shù)據(jù)表示),則該單元失去仲裁,退出發(fā)送狀態(tài)。第4頁(yè)/共36頁(yè) (8) 錯(cuò)誤標(biāo)定和恢復(fù)時(shí)間(Error Signaling and Recovery Time) 任何檢測(cè)到錯(cuò)誤的單元會(huì)標(biāo)志出已被損壞的報(bào)文。此報(bào)文會(huì)失效并將自動(dòng)重傳。如果不再出現(xiàn)錯(cuò)誤,則從檢測(cè)到錯(cuò)誤到下一報(bào)文的傳送開始為止,恢復(fù)時(shí)間最多為31位的時(shí)間。(9) 故障界定(Fault Confinement) CAN單元能夠把永久故障和短暫的干擾區(qū)別開來(lái),故障單元會(huì)被關(guān)閉。(10) 連接(Connectio
6、n) CAN通信鏈路是一條可連接多單元的總線。理論上,總線上單元數(shù)目是無(wú)限制的,實(shí)際上,單元數(shù)受限于延遲時(shí)間和總線的電氣負(fù)載能力。 (11) 單通道(Single Channel) CAN總線由單一通道組成,借助數(shù)據(jù)的同步實(shí)現(xiàn)信息傳輸。CAN技術(shù)規(guī)范中沒有規(guī)定該通道的實(shí)現(xiàn)方法即物理層,可以是單線(加地線)、兩條差分線、光纖等,通常使用雙絞線。第5頁(yè)/共36頁(yè) (12) 總線數(shù)據(jù)表示(Bus Values)V時(shí)間t隱性位顯性位隱性位VdiffVdiffCAN-HCAN-L圖17-1 總線位的數(shù)值表示 CAN總線上用顯性(Dominant)和隱性(Recessive)表示0和1。當(dāng)在總線上出現(xiàn)同時(shí)
7、發(fā)送顯性位和隱性位時(shí),總線上數(shù)值將出現(xiàn)顯性。總線上的信號(hào)使用差分電壓傳送,兩條信號(hào)線被稱為CAN_H 和CAN_L,如圖17-1所示。在隱性狀態(tài)即邏輯1時(shí),CAN-H和CAN-L被固定在平均電壓電平左右)附近,Vdiff近似于0。在顯性狀態(tài)即邏輯0時(shí),CAN_H比CAN_L高,此時(shí)通常電壓值為和。在總線空閑或隱性位期間,發(fā)送隱性位。第6頁(yè)/共36頁(yè)(13) 應(yīng)答(Acknowledgment)所有接收器對(duì)接收到的報(bào)文進(jìn)行一致性(Consistency)檢查。對(duì)于一致的報(bào)文,接收器給予應(yīng)答;對(duì)于不一致的報(bào)文,接收器做出標(biāo)志。第7頁(yè)/共36頁(yè) 報(bào)文傳輸由以下4個(gè)不同的幀類型表示和控制: 數(shù)據(jù)幀:數(shù)
8、據(jù)幀將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌鳌?遠(yuǎn)程幀:總線單元發(fā)出遠(yuǎn)程幀,請(qǐng)求發(fā)送具有同一標(biāo)識(shí)符的數(shù)據(jù)幀。 錯(cuò)誤幀:任何單元檢測(cè)到總線錯(cuò)誤就發(fā)出錯(cuò)誤幀。 過(guò)載幀:過(guò)載幀用于在先行和后續(xù)數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí)。 數(shù)據(jù)幀和遠(yuǎn)程幀既可使用標(biāo)準(zhǔn)幀,也可使用擴(kuò)展幀。第8頁(yè)/共36頁(yè) (1) 數(shù)據(jù)幀 數(shù)據(jù)幀由7個(gè)不同的位場(chǎng)組成:幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)、CRC 場(chǎng)、應(yīng)答場(chǎng)、幀結(jié)尾。數(shù)據(jù)幀組成如圖17-2所示。幀間空間仲裁場(chǎng)控制場(chǎng)數(shù)據(jù)場(chǎng)CRC場(chǎng)幀結(jié)束數(shù)據(jù)幀幀起始應(yīng)答場(chǎng)幀間空間或過(guò)載幀圖17-2 數(shù)據(jù)幀組成第9頁(yè)/共36頁(yè) 仲裁場(chǎng):在中存在兩種不同的幀格式,其主要區(qū)別在于標(biāo)識(shí)符的長(zhǎng)度,具有11位標(biāo)識(shí)
9、符的幀稱為標(biāo)準(zhǔn)幀,而包括29位標(biāo)識(shí)符的幀稱為擴(kuò)展幀。標(biāo)準(zhǔn)格式仲裁場(chǎng)控制場(chǎng)數(shù)據(jù)場(chǎng)幀起始DLC圖17-3 數(shù)據(jù)幀標(biāo)準(zhǔn)格式中的仲裁場(chǎng)結(jié)構(gòu)11位標(biāo)識(shí)符RTRIDEr0 擴(kuò)展格式中,仲裁場(chǎng)包括29位標(biāo)識(shí)符、SRR、IDE、RTR位。其標(biāo)識(shí)符為ID28ID0。第10頁(yè)/共36頁(yè) 控制場(chǎng):控制場(chǎng)由6 個(gè)位組成。標(biāo)準(zhǔn)格式的控制場(chǎng)格式和擴(kuò)展格式不同。標(biāo)準(zhǔn)格式中的幀包括數(shù)據(jù)長(zhǎng)度代碼、IDE位(為顯性)、保留位r0。擴(kuò)展格式包括數(shù)據(jù)長(zhǎng)度代碼和兩個(gè)必須為顯性的保留位r1和r0。但接收器接收由顯性和隱性位的組合。 數(shù)據(jù)長(zhǎng)度代碼指示了數(shù)據(jù)場(chǎng)中字節(jié)數(shù)量。數(shù)據(jù)長(zhǎng)度代碼為4 個(gè)位,在控制場(chǎng)中被發(fā)送。數(shù)據(jù)長(zhǎng)度碼中數(shù)據(jù)字節(jié)數(shù)據(jù)編碼
10、如表17-2所示。其中,d表示顯性位,r表示隱性位,數(shù)據(jù)字節(jié)的數(shù)目個(gè)數(shù)只能在0-8之間。第11頁(yè)/共36頁(yè)數(shù)據(jù)場(chǎng)(標(biāo)準(zhǔn)格式以及擴(kuò)展格式):數(shù)據(jù)場(chǎng)由數(shù)據(jù)幀里的發(fā)送數(shù)據(jù)組成。它可以為08 個(gè)字節(jié),每字節(jié)包含了8 個(gè)位,按字節(jié)大端順序發(fā)送(MSB)。CRC 場(chǎng)(標(biāo)準(zhǔn)格式以及擴(kuò)展格式):CRC 場(chǎng)包括CRC 序列(CRC SEQUENCE),其后是CRC 界定符(CRC DELIMITER)。應(yīng)答場(chǎng)(標(biāo)準(zhǔn)格式以及擴(kuò)展格式):應(yīng)答場(chǎng)長(zhǎng)度為2 個(gè)位,包含應(yīng)答間隙(ACK SLOT)和應(yīng)答界定符(ACK DELIMITER)。在ACK 場(chǎng)(應(yīng)答場(chǎng))里,發(fā)送站發(fā)送兩個(gè)“隱性”位。當(dāng)接收器正確地接收到有效的報(bào)文
11、,接收器就會(huì)在應(yīng)答間隙(ACK SLOT)期間(發(fā)送ACK 信號(hào))向發(fā)送器發(fā)送一“顯性”位以示應(yīng)答。幀結(jié)尾(標(biāo)準(zhǔn)格式以及擴(kuò)展格式):每個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀均由一標(biāo)志序列定界。這個(gè)標(biāo)志序列由7 個(gè)“隱性”的位組成。(2) 遠(yuǎn)程幀作為數(shù)據(jù)接收的站,可以借助于發(fā)送遠(yuǎn)程幀啟動(dòng)其資源節(jié)點(diǎn)傳送數(shù)據(jù)。遠(yuǎn)程幀也有標(biāo)準(zhǔn)格式和擴(kuò)展格式,而且都由6 個(gè)不同的位場(chǎng)組成:幀起始、仲裁場(chǎng)、控制場(chǎng)、CRC 場(chǎng)、應(yīng)答場(chǎng)、幀結(jié)尾。第12頁(yè)/共36頁(yè) (3) 出錯(cuò)幀 錯(cuò)誤幀由兩個(gè)不同的場(chǎng)組成。第一個(gè)場(chǎng)是由不同站提供的錯(cuò)誤標(biāo)志(ERROR FLAG)的疊加;第二個(gè)場(chǎng)是錯(cuò)誤界定符。出錯(cuò)幀的組成如圖17-6所示。錯(cuò)誤標(biāo)志有兩種形式:主動(dòng)錯(cuò)
12、誤標(biāo)志和被動(dòng)錯(cuò)誤標(biāo)志。主動(dòng)錯(cuò)誤標(biāo)志由6個(gè)連續(xù)的顯性位組成,而被動(dòng)錯(cuò)誤標(biāo)志由6個(gè)連續(xù)的隱性位組成,除非被其他節(jié)點(diǎn)的顯性位重寫。第13頁(yè)/共36頁(yè)(4) 過(guò)載幀過(guò)載幀包括兩個(gè)位場(chǎng):過(guò)載標(biāo)志和過(guò)載界定符。過(guò)載幀的組成如圖17-7所示。有三種過(guò)載的情況會(huì)引發(fā)過(guò)載標(biāo)志的傳送:接收器的內(nèi)部情況(此接收器對(duì)于下一數(shù)據(jù)幀或遠(yuǎn)程幀需要有一延時(shí))。在間歇的第一和第二字節(jié)檢測(cè)到一個(gè)“顯性”位。如果CAN節(jié)點(diǎn)在錯(cuò)誤界定符或過(guò)載界定符的第8位(最后一位)采樣到一個(gè)顯性位,節(jié)點(diǎn)會(huì)發(fā)送一個(gè)過(guò)載幀(不是錯(cuò)誤幀)。錯(cuò)誤計(jì)數(shù)器不會(huì)增加。第14頁(yè)/共36頁(yè) 根據(jù)過(guò)載情況1而引發(fā)的過(guò)載幀只允許起始于所期望的間隙的第一個(gè)位時(shí)間,而根據(jù)
13、情況2和情況3引發(fā)的過(guò)載幀應(yīng)起始于所檢測(cè)到“顯性”位之后的位。通常為了延時(shí)下一個(gè)數(shù)據(jù)幀或遠(yuǎn)程幀,兩種過(guò)載幀均可產(chǎn)生。 過(guò)載標(biāo)志由6個(gè)顯性位組成。由于過(guò)載標(biāo)志的格式破壞了間隙域的固定格式,因此,所有其他的站都檢測(cè)到過(guò)載條件,并與此同時(shí)發(fā)出過(guò)載標(biāo)志。如果在間隙的第3個(gè)位期間檢測(cè)到顯性位,則這個(gè)位將被解釋為幀的起始。 過(guò)載界定符包括8個(gè)隱性位,過(guò)載標(biāo)志被傳送后,站就一直監(jiān)視總線,直到檢測(cè)到一個(gè)從顯性位到隱性位的跳變?yōu)橹?。這時(shí),總線上的每個(gè)站完成了各自過(guò)程標(biāo)志的發(fā)送,并開始同時(shí)發(fā)送其余7個(gè)隱性位。第15頁(yè)/共36頁(yè)17.1.3 位定時(shí)與同步 位定時(shí)與同步定義CAN總線的通信速率,下面就相關(guān)名詞作簡(jiǎn)單介
14、紹。 標(biāo)稱位速率(Nominal Bit Rate):標(biāo)稱位速率為一理想的發(fā)送器在沒有重新同步的情況下每秒發(fā)送的位數(shù)量。 標(biāo)稱位時(shí)間(Nominal Bit Time):標(biāo)稱位時(shí)間=1/標(biāo)稱位速率。可以把標(biāo)稱位時(shí)間分成幾個(gè)不重疊的片段,它們分別是:同步段(SYNC_SEG)、傳播段(PROG_SEG)、相位段1(PHASE_SEG1)、相位段2(PHASE_SEG2)。標(biāo)稱位時(shí)間如圖17-8所示。 同步段相位段1相位段2圖17-8 標(biāo)稱位時(shí)間組成示意圖傳播段采樣點(diǎn) 標(biāo)稱位時(shí)間第16頁(yè)/共36頁(yè)17.1.3 位定時(shí)與同步 同步段(SYNC_SEG):位時(shí)間的同步段用于同步總線上不同的節(jié)點(diǎn),這一段
15、內(nèi)要有一個(gè)跳變沿。 傳播段(PROG_SEG):傳播段用于補(bǔ)償網(wǎng)絡(luò)內(nèi)的物理延時(shí)時(shí)間。它是總線上輸入比較器延時(shí)和輸出驅(qū)動(dòng)器延時(shí)總和的2倍。 相位緩沖段1(PHASE_SEG1)、相位緩沖段2(PHASE_SEG2):相位緩沖段用于補(bǔ)償邊沿階段的誤差。這兩個(gè)段可以通過(guò)重新同步加長(zhǎng)或縮短。 采樣點(diǎn)(Sample Point):采樣點(diǎn)是讀總線電平并解釋各位的值的一個(gè)時(shí)間點(diǎn)。采樣點(diǎn)位于相位緩沖段1之后。 信息處理時(shí)間(Information Processing Time):信息處理時(shí)間是以一個(gè)采樣點(diǎn)作為起始的時(shí)間段。采樣點(diǎn)用于計(jì)算后續(xù)位的位電平。 時(shí)間份額(Time Quanta):時(shí)間份額是取自振蕩
16、器周期的固定時(shí)間單元。時(shí)間份額的長(zhǎng)度為:第17頁(yè)/共36頁(yè)17.1.3 位定時(shí)與同步 時(shí)間份額=m * 最小時(shí)間份額,其中,m為可編程的預(yù)比例因子,其數(shù)值范圍為1-32間的整數(shù),最小時(shí)間份額為CAN總線振蕩器周期。 一般,同步段為1個(gè)時(shí)間份額,傳播段可設(shè)置成1、28個(gè)時(shí)間份額,相位段1可設(shè)置成1、28個(gè)時(shí)間份額,相位段2為相位緩沖段1和信息處理時(shí)間之間的最大值,信息處理時(shí)間少于或等于2個(gè)時(shí)間份額。一個(gè)位時(shí)間總的時(shí)間份額值可以設(shè)置在825的范圍。 第18頁(yè)/共36頁(yè)17.2 MSCAN08模塊 構(gòu)建CAN接口一般有兩種方法,一是采用獨(dú)立的CAN控制器,二是采用帶有CAN控制模塊的MCU。目前,一
17、些公司生產(chǎn)的8位MCU內(nèi)也集成了CAN控制器,使得CAN總線的應(yīng)用領(lǐng)域不斷擴(kuò)大。采用帶CAN控制器的MCU進(jìn)行嵌入式系統(tǒng)的設(shè)計(jì)開發(fā),可以簡(jiǎn)化電路設(shè)計(jì),使編程更加方便。Freescale半導(dǎo)體公司的GZ(MC68HC908GZxx)系列和AZ(MC68HC908AZxx)系列MCU內(nèi)部都集成了CAN協(xié)議控制器MSCAN08模塊。MSCAN08是M68HC08微控制器系列中專門為實(shí)現(xiàn)Motorola控制器網(wǎng)絡(luò)擴(kuò)展功能而設(shè)計(jì)的,該模塊的設(shè)計(jì)符合協(xié)議標(biāo)準(zhǔn)。下面對(duì)該模塊進(jìn)行簡(jiǎn)要介紹。 第19頁(yè)/共36頁(yè)17.2.1 MSCAN08特性 MSCAN08是Freescale可升級(jí)控制器局域網(wǎng)(Motorol
18、a scalable controller area network,MSCAN)在Freescale 08系列微控制器中的具體實(shí)現(xiàn)。該模塊具有以下特性: 模塊化的設(shè)計(jì) 符合協(xié)議標(biāo)準(zhǔn),支持標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀格式 高達(dá)1Mbps的可編程通信速率 一幀數(shù)據(jù)長(zhǎng)度可為0到8字節(jié) 支持遠(yuǎn)程請(qǐng)求幀 4個(gè)先進(jìn)先出結(jié)構(gòu)的收發(fā)緩沖區(qū),其中3個(gè)為具有局部?jī)?yōu)先級(jí)的發(fā)送緩沖區(qū) 靈活的標(biāo)識(shí)符驗(yàn)收模式,可配置成1個(gè)32位過(guò)濾碼、2個(gè)16位過(guò)濾碼和4個(gè)8位過(guò)濾碼 內(nèi)置低通濾波的遠(yuǎn)程喚醒功能 可編程為方便調(diào)試的自環(huán)工作模式第20頁(yè)/共36頁(yè)17.2.2 外部引腳 MSCAN08有兩根外部引腳,一根輸入腳(CANRX)一根輸出腳
19、(CANTX),CANTX腳輸出引腳代表了CAN上的邏輯電平:0為高電平(顯性),1為低電平(隱性)。一個(gè)由MSCAN08模塊構(gòu)建的典型的CAN系統(tǒng)如圖17-9所示。第21頁(yè)/共36頁(yè)17.2.3 報(bào)文存儲(chǔ)結(jié)構(gòu) 圖17-10是MSCAN08的報(bào)文緩沖區(qū)組織模式。從圖中可以看出,MSCAN08有兩個(gè)接收緩沖區(qū)和三個(gè)發(fā)送緩沖區(qū)。第22頁(yè)/共36頁(yè)17.2.3 報(bào)文存儲(chǔ)結(jié)構(gòu) (1) 接收結(jié)構(gòu) MSCAN08的兩個(gè)接收緩沖區(qū)分別被稱為后臺(tái)(Background)接收緩沖區(qū)RxFG。當(dāng)CAN總線上有報(bào)文在傳輸時(shí),總線上除發(fā)送節(jié)點(diǎn)以外的所有節(jié)點(diǎn)都將成為接收節(jié)點(diǎn);MCU只能訪問(wèn)RxFG不能訪問(wèn)RxBG。 當(dāng)
20、MSCAN08在發(fā)送時(shí),它會(huì)將自己的報(bào)文接收到RxBG中。MSCAN08在丟失仲裁的情況下才接收自己的報(bào)文。當(dāng)前后臺(tái)報(bào)文接收緩沖區(qū)已經(jīng)存放了接收到的報(bào)文而總線上又有新的報(bào)文到達(dá),這時(shí)候會(huì)產(chǎn)生溢出,后到的報(bào)文將被丟失;同時(shí),如果中斷允許,將產(chǎn)生一個(gè)指示溢出的中斷。 (2) 發(fā)送結(jié)構(gòu) 為了能預(yù)先裝載多個(gè)報(bào)文以獲得實(shí)時(shí)傳輸性能,MSCAN08提供了三個(gè)傳輸緩沖區(qū)。當(dāng)要發(fā)送數(shù)據(jù)時(shí),CPU08先查找是否有空閑的發(fā)送緩沖區(qū);若有,則將數(shù)據(jù)按CAN報(bào)文格式進(jìn)行封裝并存入該空閑緩沖區(qū),并通過(guò)清相應(yīng)緩沖區(qū)的空標(biāo)志來(lái)表明已經(jīng)準(zhǔn)備就緒。MSCAN08將報(bào)文成功發(fā)送后,將相應(yīng)發(fā)送緩沖區(qū)的空標(biāo)志置位,并產(chǎn)生一個(gè)發(fā)送中斷
21、。當(dāng)多個(gè)發(fā)送緩沖區(qū)均處于就緒狀態(tài)時(shí),MSCAN08采用了局部?jī)?yōu)先級(jí)策略來(lái)對(duì)三個(gè)緩沖區(qū)進(jìn)行優(yōu)先級(jí)設(shè)置。每個(gè)發(fā)送緩沖都有一個(gè)8位的局部?jī)?yōu)先級(jí)(PRIO)。應(yīng)用程序可設(shè)置該優(yōu)先級(jí),數(shù)值越小,相應(yīng)發(fā)送緩沖區(qū)優(yōu)先級(jí)越高。第23頁(yè)/共36頁(yè)17.2.4 標(biāo)識(shí)符校驗(yàn)濾波 MSCAN08模塊內(nèi)有4個(gè)標(biāo)識(shí)符校驗(yàn)寄存器(CIDAR0CIDAR3)和4個(gè)標(biāo)識(shí)符屏蔽寄存器(CIDMR0CIDMR3)。當(dāng)總線上有報(bào)文到達(dá)時(shí),MSCAN08會(huì)將該報(bào)文的標(biāo)識(shí)符與標(biāo)識(shí)符校驗(yàn)寄存器中的內(nèi)容進(jìn)行比較,標(biāo)識(shí)符屏蔽寄存器則是用于指定比較結(jié)果是否有影響,為1時(shí),說(shuō)明相應(yīng)位的比較結(jié)果不影響報(bào)文的接收。驗(yàn)收過(guò)程如圖17-11所示。 在接收
22、報(bào)文時(shí),需要對(duì)哪些位進(jìn)行驗(yàn)收比較,與當(dāng)前的濾波器方式有關(guān)。第24頁(yè)/共36頁(yè)17.2.5 中斷 (1) 中斷源 MSCAN08有11種可屏蔽中斷源,并提供了4個(gè)中斷向量去訪問(wèn)它們。 發(fā)送中斷:當(dāng)至少有一個(gè)發(fā)送緩沖區(qū)變?yōu)榭諘r(shí),觸發(fā)該中斷。此時(shí)相應(yīng)發(fā)送緩沖區(qū)的空標(biāo)志位被置位。 接收中斷:當(dāng)前臺(tái)接收緩沖區(qū)成功接收到一個(gè)報(bào)文時(shí)觸發(fā)該中斷。 喚醒中斷:當(dāng)MSCAN08處于內(nèi)部睡眠模式或者低功耗模式時(shí),CAN總線上產(chǎn)生活動(dòng)時(shí)角觸發(fā)該中斷。 錯(cuò)誤中斷:一個(gè)溢出、錯(cuò)誤或者警告產(chǎn)生了。接收標(biāo)志寄存器(CRFLG)指示下列哪種情況發(fā)生而導(dǎo)致錯(cuò)誤中斷: (2) 中斷響應(yīng) 中斷與一個(gè)或多個(gè)MSCAN08接收標(biāo)志寄存器
23、(CRFLG)或者傳輸標(biāo)志寄存器(CTFLG)是直接關(guān)聯(lián)的。一有相關(guān)標(biāo)志被置位,就進(jìn)入中斷等待。在中斷處理中,必須將上面提到的寄存器中的標(biāo)志位重置以和中斷進(jìn)行握手。標(biāo)志位通過(guò)向相應(yīng)的位置寫入1進(jìn)行清空。如果各自的情況仍然繼續(xù),則標(biāo)志位不能被清空。 注意:位設(shè)置指令(BSET)不可以用于清空中斷標(biāo)志。 第25頁(yè)/共36頁(yè)17.2.6 協(xié)議保護(hù) MSCAN08防止用戶通過(guò)程序破壞CAN協(xié)議。這種保護(hù)邏輯有以下特點(diǎn): 接收和傳輸錯(cuò)誤計(jì)數(shù)器不能被寫入或者修改。 當(dāng)MSCAN08處于連接狀態(tài)時(shí),不能修改MSCAN08的配置。MSCAN08模式控制寄存器的SFTRES位將鎖定以下寄存器: MSCAN08
24、模式控制寄存器(CMCR1) MSCAN08 總線時(shí)鐘寄存器0和1(CBTR0和CBTR1) MSCAN08 標(biāo)識(shí)符校驗(yàn)控制寄存器(CIDAR03) MSCAN08 標(biāo)識(shí)符校驗(yàn)寄存器(CIDMR03) 當(dāng)MSCAN08 處于任何低功耗模式的時(shí)候,CANTX腳被強(qiáng)制成低電平。第26頁(yè)/共36頁(yè)17.3 MSCAN08通信接口硬件電路 在了解MSCAN08模塊有關(guān)知識(shí)之后,我們來(lái)看一下用MC68HC908GZ60微控制器構(gòu)建CAN總線通信節(jié)點(diǎn)的硬件電路,其原理圖見17-15。 在該電路中,CAN總線驅(qū)動(dòng)器采用PCA82C250。GZ60負(fù)責(zé)MSCAN08的初始化,并通過(guò)讀取MSCAN08模塊的報(bào)文緩沖區(qū)收發(fā)數(shù)據(jù)。 為增加節(jié)點(diǎn)的抗干擾能力,GZ60的CANTx和CANRx不直接與PCA82C250相連,而是通過(guò)高速光耦6N137后再與之相連。光耦部分電路所采用的兩個(gè)電源VCC1和VCC2須完全隔離,否則,光耦達(dá)不到完全隔離的效果??梢圆捎脦Ф鄠€(gè)5V輸出的開關(guān)電源模塊實(shí)現(xiàn) .第27頁(yè)/共36頁(yè)17.4 MSCAN08模塊的編程結(jié)構(gòu) MSCAN08在CPU08里占用了128字節(jié)的存儲(chǔ)空間,如圖17-16所示。從程序員角度看,涉及CAN通信的有報(bào)文收發(fā)緩沖區(qū)結(jié)構(gòu)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位長(zhǎng)期廣告合同范例
- 銀行解除借款合同范本
- 會(huì)議補(bǔ)充合同范本
- 全職家教合同范本
- 倉(cāng)庫(kù)使用安全合同合同范本
- 農(nóng)村小院改造合同范本
- 五軸數(shù)控系統(tǒng)加工編程與操作 課件 項(xiàng)目六 五軸機(jī)床工件測(cè)頭應(yīng)用-V3
- 遼寧2025年01月2025年遼寧省公務(wù)員考試(7841人)國(guó)家公務(wù)員考試消息筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年預(yù)防接種工作人員規(guī)范化培訓(xùn)學(xué)習(xí)考試指導(dǎo)題庫(kù)500題(含答案)
- 突聾護(hù)理講課
- 碳酸鈣市場(chǎng)分析及競(jìng)爭(zhēng)策略分析報(bào)告
- 糖尿病性眼肌麻痹的護(hù)理查房
- 泡泡瑪特展廳活動(dòng)策劃
- 健康生活方式與健康促進(jìn)的科學(xué)研究
- 文旅部門消防培訓(xùn)課件
- 中職語(yǔ)文課件:1.1《送瘟神》課件14張2023-2024學(xué)年中職語(yǔ)文職業(yè)模塊
- 胃瘍(消化性潰瘍)中醫(yī)護(hù)理方案
- 《哲學(xué)概論(第2版)》-課件全套 第0-6章 緒論、哲學(xué)的形態(tài)-馬克思主義哲學(xué)
- 踝關(guān)節(jié)骨性關(guān)節(jié)炎課件整理
- 高處作業(yè)安全經(jīng)驗(yàn)分享
- 工余安健環(huán)管理制度
評(píng)論
0/150
提交評(píng)論