can總線基本概念
2. 遠(yuǎn)程幀:請(qǐng)求數(shù)據(jù)
遠(yuǎn)程幀由6個(gè)域組成:起始域、仲裁域、控制域、CRC域、應(yīng)答域、幀結(jié)束域。
遠(yuǎn)程幀與數(shù)據(jù)幀不同之處在于:RTR位為高,無數(shù)據(jù)域。
3. 錯(cuò)誤指示幀:用于指示傳送過程中的錯(cuò)誤信息
錯(cuò)誤指示幀由兩個(gè)不同的域組成:第一個(gè)域反映來自控制器的錯(cuò)誤標(biāo)志,第二個(gè)域?yàn)殄e(cuò)誤分界符。
錯(cuò)誤標(biāo)志:有兩種,一個(gè)由6個(gè)強(qiáng)位組成的主動(dòng)錯(cuò)誤標(biāo)志;另一個(gè)由6個(gè)弱位組成的被動(dòng)錯(cuò)誤標(biāo)志,
它是被其他CAN控制器強(qiáng)位改寫。 處于主動(dòng)錯(cuò)誤狀態(tài)的CAN節(jié)點(diǎn)檢測(cè)到錯(cuò)誤發(fā)出主動(dòng)錯(cuò)誤標(biāo)志,該錯(cuò)誤標(biāo)
志不滿足位填充規(guī)則,或者是破壞應(yīng)答域或結(jié)束域固定格式,所有其他節(jié)點(diǎn)都檢測(cè)到錯(cuò)誤狀態(tài),并發(fā)出該錯(cuò)
誤標(biāo)志。因此,這些從總線上監(jiān)測(cè)到的強(qiáng)位串是不同節(jié)點(diǎn)發(fā)出錯(cuò)誤標(biāo)志的結(jié)果,這一標(biāo)志最短為6個(gè),最長(zhǎng)
為12個(gè)。被動(dòng)錯(cuò)誤標(biāo)志(不太理解。。。后續(xù))
錯(cuò)誤分界:它由8個(gè)弱位組成,與過載分界有相同的格式,當(dāng)錯(cuò)誤標(biāo)志發(fā)生后,每一個(gè)CAN節(jié)點(diǎn)監(jiān)測(cè)
總線,直到檢測(cè)到一個(gè)強(qiáng)位出現(xiàn),這表明所有CAN節(jié)點(diǎn)已經(jīng)完成錯(cuò)誤標(biāo)志的發(fā)送,并開始發(fā)送8個(gè)弱位的分
界符,之后網(wǎng)絡(luò)上的主動(dòng)錯(cuò)誤節(jié)點(diǎn)便可同時(shí)開始其他的發(fā)送。如果數(shù)據(jù)幀或遠(yuǎn)程幀在發(fā)送過程中發(fā)現(xiàn)錯(cuò)誤
后,當(dāng)前的信息作廢,并啟動(dòng)重新發(fā)送。如果CAN節(jié)點(diǎn)發(fā)現(xiàn)錯(cuò)誤指示幀錯(cuò)誤,則重發(fā),當(dāng)連續(xù)多次出現(xiàn)此錯(cuò)
誤時(shí),則相應(yīng)的節(jié)點(diǎn)變?yōu)楸粍?dòng)錯(cuò)誤節(jié)點(diǎn)。為正確結(jié)束錯(cuò)誤標(biāo)志,被動(dòng)態(tài)節(jié)點(diǎn)需要至少3個(gè)位周期。
4. 過載幀:用于后續(xù)幀的延時(shí)
過載幀由兩個(gè)域組成:過載標(biāo)志和過載分界。
以下情況可以導(dǎo)致過載幀發(fā)送:
(1). 接收未準(zhǔn)備好即接收方需要過多的時(shí)間處理當(dāng)前的數(shù)據(jù);
(2).在幀間空隙的第一位或第二位發(fā)現(xiàn)顯性位信號(hào);
過載幀發(fā)送條件:
(1).在幀間空隙域的第一個(gè)位周期;
(2).在幀間空隙域中檢測(cè)到強(qiáng)位信號(hào)一個(gè)位周期后,方可啟動(dòng)過載幀發(fā)送。
過載標(biāo)志:由6個(gè)顯性位組成,與錯(cuò)誤標(biāo)志格式相同,當(dāng)超載標(biāo)志發(fā)生后,每個(gè)節(jié)點(diǎn)監(jiān)測(cè)總線狀態(tài),當(dāng)發(fā)
現(xiàn)線上有弱位后,此時(shí)所有節(jié)點(diǎn)已完成超載標(biāo)志的發(fā)送,并開始發(fā)8個(gè)弱位串;
過載分界符:由8個(gè)隱性位組成,與錯(cuò)誤分界符格式相同;
-----------------------------------------------------------------------------------------------------------------------------------
英飛凌(infineon)單片機(jī)XC800之CAN總線
CAN內(nèi)部硬件結(jié)構(gòu),如下圖所示本文引用地址:http://www.104case.com/article/201612/331038.htm
一,CAN處理機(jī)制
發(fā)送:根據(jù)報(bào)文緩存中的報(bào)文對(duì)象,由位流處理器產(chǎn)生的通過can總線發(fā)送的數(shù)據(jù)幀和過程幀,即從報(bào)
文緩存中取出的報(bào)文對(duì)象,位流處理器給它加上起始域,結(jié)束域和CRC校驗(yàn)數(shù)據(jù),組成一個(gè)完整的數(shù)據(jù)幀
和遠(yuǎn)程幀,此時(shí)位流控制器還在對(duì)總線進(jìn)行監(jiān)測(cè),當(dāng)發(fā)現(xiàn)總線空閑時(shí),就啟動(dòng)數(shù)據(jù)的傳送,傳送過程中監(jiān)測(cè)
總線的信息,當(dāng)發(fā)現(xiàn)與傳送的信息不相符時(shí),就會(huì)產(chǎn)生一個(gè)“最近錯(cuò)誤”中斷請(qǐng)求。
接收:數(shù)據(jù)幀或遠(yuǎn)程幀通過總結(jié)接口,到CAN節(jié)點(diǎn),位流控制器對(duì)其進(jìn)行CRC域進(jìn)行檢測(cè),驗(yàn)證數(shù)據(jù)的
一致性,當(dāng)檢測(cè)到錯(cuò)誤時(shí),產(chǎn)生一個(gè)“最近錯(cuò)誤”中斷請(qǐng)求,并產(chǎn)生一個(gè)錯(cuò)誤幀,發(fā)送到總線上。對(duì)一個(gè)無
錯(cuò)誤的幀,位流處理器將它分解成數(shù)據(jù)部分和標(biāo)識(shí)符部分,列表控制器將其以鏈表的形式存儲(chǔ)于報(bào)文緩存
中,執(zhí)行遠(yuǎn)程幀或數(shù)據(jù)幀處理。
在上述數(shù)據(jù)傳送和處理過程中,會(huì)出現(xiàn)一些狀態(tài)字,指示操作完成或出現(xiàn)錯(cuò)誤,這些狀態(tài)字或引發(fā)中
斷,進(jìn)行中斷處理。
二,從上述結(jié)構(gòu)框圖可以看出,主要包括:CAN節(jié)點(diǎn),報(bào)文控制器,中斷處理單元
(一),CAN節(jié)點(diǎn)
(1),位流控制器(Bitstream Prosessor)
主要任務(wù):處理數(shù)據(jù)幀,遠(yuǎn)程幀,錯(cuò)誤幀和過載幀,同時(shí)還進(jìn)行串行數(shù)據(jù)流與輸入/輸出寄存器之間
轉(zhuǎn)換工作(Perdiv data frame ,remote frame ,error frame and overload,conversion thd seiral data
stream and the input/output register)。
詳述:位流控制器:對(duì)于發(fā)送:根據(jù)報(bào)文緩存中的報(bào)文對(duì)象,由位流處理器產(chǎn)生通過CAN總線的數(shù)據(jù)
幀和遠(yuǎn)程幀。該的控制器控制CRC產(chǎn)生器,且給新的遠(yuǎn)程幀和數(shù)據(jù)幀加上校驗(yàn)和信息。在加入‘幀起始
位’和‘幀
結(jié)束域’之后,位流處理器開始CAN總線仲裁過程,且當(dāng)發(fā)現(xiàn)總線空閑時(shí)連續(xù)進(jìn)行幀發(fā)送。進(jìn)行數(shù)據(jù)發(fā)送
的同時(shí),位流控制器連續(xù)地監(jiān)測(cè)I/O線的的電平和發(fā)送移位寄存器當(dāng)前送出位的邏輯狀態(tài)之間檢測(cè)到失配,
產(chǎn)生一個(gè)‘最近錯(cuò)誤’中斷請(qǐng)求,錯(cuò)誤碼由位域NSRX.LEC給出。
對(duì)于接收:通過驗(yàn)證CRC相關(guān)域,確定接收到的幀是否有問題,或有問題,產(chǎn)生一個(gè)‘最近錯(cuò)
誤’中斷請(qǐng)求,同時(shí)產(chǎn)生一個(gè)錯(cuò)誤幀,并發(fā)送到總線上。若接收的幀無錯(cuò)誤,將接收到的幀分解成標(biāo)志符和
數(shù)據(jù)部分,并將接收到的信息傳給報(bào)文緩存,執(zhí)行遠(yuǎn)程幀或數(shù)據(jù)幀處理,中斷產(chǎn)生和狀態(tài)處理。
(2),位時(shí)序單元(Bit timing unit)
考慮到傳播延遲和相移,根據(jù)用戶設(shè)置確定采樣點(diǎn)和位時(shí)間長(zhǎng)度,同時(shí)也處理再同步操作(define a
length of a bit time and the location of the sample point according to the user settings,takeing into
accout propration delays and phase shift errors and re-sychronization).
(3),錯(cuò)誤處理單元(error handling unit)
對(duì)發(fā)送和接收過程中錯(cuò)誤進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)值達(dá)到一定時(shí),進(jìn)入不同的錯(cuò)誤指示狀態(tài):錯(cuò)誤激活,錯(cuò)
誤認(rèn)可,關(guān)閉總線。
(4),節(jié)點(diǎn)控制單元(Node control unit)
A, 使能/禁止節(jié)點(diǎn)的傳送
B, 使能/禁止可引發(fā)中斷的特定節(jié)點(diǎn)事件
C 幀計(jì)數(shù)管理
(5),中斷控制單元(interrupt control unit)
控制CAN產(chǎn)生的不同類型的事件的中斷
(二),報(bào)文控制器
(三),列表控制器
(四),中斷處理單元
評(píng)論