基于DSP 內(nèi)嵌ECAN模塊的總線接口設(shè)計
根據(jù)系統(tǒng)初始配置,將待發(fā)送的數(shù)據(jù)寫入ECAN模塊相應消息郵箱的數(shù)據(jù)區(qū),這里需要注意數(shù)據(jù)字節(jié)順序DBO 寄存器的設(shè)置。當DBO=0 時,數(shù)據(jù)讀寫從CAN-MDL寄存器的最低有效位開始,到CANMDH 寄存器的最高有效位結(jié)束。當DBO=1 時,數(shù)據(jù)讀寫從CANMDL寄存器的最高有效位開始,到CANMDH 寄存器的最低有效位結(jié)束。置發(fā)送命令字CANTRS.n=1,啟動發(fā)送操作,ECAN模塊將自動置響應命令字CANTA.n=1.最后手動清發(fā)送命令字和響應命令字。消息發(fā)送流程如圖6所示。
2.2.3 消息接收
根據(jù)系統(tǒng)初始配置,ECAN模塊接收郵箱中接收到總線上的消息時,相應的接收消息等待寄存器CAN-RMP.n被置位,此時CPU應該核對消息丟棄標志寄存器RML.如果RML 為1,說明郵箱中的消息已被覆蓋,CPU可以選擇向源節(jié)點請求重發(fā),本次接收流程結(jié)束。
當RML為0時,CPU可以從郵箱數(shù)據(jù)區(qū)讀取數(shù)據(jù),同時清RMP.n,然后進入等待接收狀態(tài)(RMP=0,RML=0)。
消息接收流程如圖7所示。
2.2.4 過載處理
如果CPU 的速度不能快速地處理重要消息,出現(xiàn)消息過載情況,這種情況可以通過增加備份郵箱來解決,即配置多個相同標識符的郵箱。對于ECAN 模塊,每個消息對象有自己的屏蔽LAM(n)。為了保證不會丟失消息,將備份消息對象的覆蓋保護寄存器OPC 標志位置位,從而防止未讀取的消息被覆蓋。如果ECAN模塊需要存儲接收到的消息,則先查看備份郵箱,如果備份郵箱為空則存儲消息。如果備份郵箱的RMP標志被置位,說明消息未被讀取。由于備份郵箱數(shù)據(jù)無法被覆蓋,故將消息數(shù)據(jù)存儲在原始郵箱,此時產(chǎn)生的一個中斷可以用來讀取備份郵箱的重要數(shù)據(jù)。
本文設(shè)計的CAN智能總線接口模塊經(jīng)物理環(huán)境下多節(jié)點收發(fā)測試,結(jié)果顯示硬件電路工作穩(wěn)定,數(shù)據(jù)收發(fā)功能正常,總線電平特性和眼圖如圖8所示。
由圖8 可以看出總線信號(CANH,CANL)規(guī)整,差分后信號波形平滑,眼圖顯示接口通信品質(zhì)良好。
3 結(jié)論
應用ADM3053 芯片可有效縮小電路板面積,符合小型化原則,可以有效降低CAN總線接口模塊的成本,具有廣闊的應用前景。
隔離器相關(guān)文章:隔離器原理
評論