基于FPGA的CAN總線控制器設(shè)計(jì)
掉電、復(fù)位及總線上過多的錯誤都會使控制器進(jìn)入總線脫離模式;系統(tǒng)上電、復(fù)位解除或過多錯誤而復(fù)位后的下個時(shí)鐘會使控制器進(jìn)入總線啟動模式;在總線啟動模式下,若之前因掉電、復(fù)位使控制器進(jìn)入總線脫離模式,當(dāng)控制器監(jiān)測到總線上1次連續(xù)11個隱性位(邏輯電平1”)時(shí),控制器進(jìn)入總線空閑狀態(tài),若因過多錯誤使控制器進(jìn)入總線脫離模式,則當(dāng)控制器監(jiān)測到總線上128次連續(xù)11個隱性位時(shí),控制器進(jìn)入總線空閑模式;當(dāng)控制器沒有數(shù)據(jù)發(fā)送但監(jiān)測到總線上有顯性位(邏輯電平“0”)時(shí),控制器進(jìn)入接收模式,而當(dāng)控制器有數(shù)據(jù)發(fā)送同時(shí)監(jiān)測到總線上有顯性位時(shí),控制器進(jìn)入模式選擇模式;模式選擇其實(shí)就是一個總線仲裁,此時(shí)標(biāo)識符將扮演仲裁位的角色,顯性位的優(yōu)先級更高,若總線仲裁失敗則控制器進(jìn)入接收模式,仲裁成功則進(jìn)入發(fā)送模式;一幀數(shù)據(jù)成功發(fā)送完成后,控制器會進(jìn)入間歇模式;若間歇幀發(fā)送成功,則控制器會再次進(jìn)入總線空閑模式。狀態(tài)機(jī)由空閑模式轉(zhuǎn)換為模式選擇模式的仿真圖如圖3所示。本文引用地址:http://m.butianyuan.cn/article/191153.htm
1.2.5 位定時(shí)模塊
位定時(shí)模塊控制著控制器報(bào)文發(fā)送或接收的節(jié)奏,這個節(jié)奏就是位時(shí)間,它由四部分組成:同步段、傳播段、相位緩沖段1和相位緩沖段2,這四個段均由時(shí)間份額構(gòu)成,時(shí)間份額是根據(jù)預(yù)先設(shè)置的分頻值對輸入時(shí)鐘進(jìn)行分頻得到的。
位定時(shí)模塊還有一個重要的功能是將本節(jié)點(diǎn)與總線上的其它節(jié)點(diǎn)進(jìn)行時(shí)鐘同步。由于每個CAN節(jié)點(diǎn)使用的是獨(dú)立的時(shí)鐘,所以不同節(jié)點(diǎn)之間會有相位差,這些相位差嚴(yán)重時(shí)會影響報(bào)文發(fā)送和接收的準(zhǔn)確性,所以有必要對不同節(jié)點(diǎn)進(jìn)行時(shí)鐘同步。
評論