CAN總線使用總結(jié)
接收:數(shù)據(jù)幀或遠(yuǎn)程幀通過總結(jié)接口,到CAN節(jié)點(diǎn),位流控制器對其進(jìn)行CRC域進(jìn)行檢測,驗(yàn)證數(shù)據(jù)的
一致性,當(dāng)檢測到錯誤時(shí),產(chǎn)生一個(gè)“最近錯誤”中斷請求,并產(chǎn)生一個(gè)錯誤幀,發(fā)送到總線上。對一個(gè)無
錯誤的幀,位流處理器將它分解成數(shù)據(jù)部分和標(biāo)識符部分,列表控制器將其以鏈表的形式存儲于報(bào)文緩存
中,執(zhí)行遠(yuǎn)程幀或數(shù)據(jù)幀處理。
在上述數(shù)據(jù)傳送和處理過程中,會出現(xiàn)一些狀態(tài)字,指示操作完成或出現(xiàn)錯誤,這些狀態(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)程幀,錯誤幀和過載幀,同時(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)。
詳述:位流控制器:對于發(fā)送:根據(jù)報(bào)文緩存中的報(bào)文對象,由位流處理器產(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)測I/O線的的電平和發(fā)送移位寄存器當(dāng)前送出位的邏輯狀態(tài)之間檢測到失配,
產(chǎn)生一個(gè)‘最近錯誤’中斷請求,錯誤碼由位域NSRX.LEC給出。
對于接收:通過驗(yàn)證CRC相關(guān)域,確定接收到的幀是否有問題,或有問題,產(chǎn)生一個(gè)‘最近錯
誤’中斷請求,同時(shí)產(chǎn)生一個(gè)錯誤幀,并發(fā)送到總線上。若接收的幀無錯誤,將接收到的幀分解成標(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í)間長度,同時(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),錯誤處理單元(error handling unit)
對發(fā)送和接收過程中錯誤進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)值達(dá)到一定時(shí),進(jìn)入不同的錯誤指示狀態(tài):錯誤激活,錯
誤認(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)文控制器
(三),列表控制器
(四),中斷處理單元
評論