CAN優(yōu)先級(jí)倒置原因與對(duì)策分析
4 毛刺造成優(yōu)先級(jí)倒置
4.1 總線空閑時(shí)毛刺引起的倒置
總線空閑時(shí),局部錯(cuò)的0毛刺被Tq采樣到,發(fā)送節(jié)點(diǎn)就會(huì)按ISO 16845 7.7.2規(guī)定實(shí)行硬同步,然后就要按ISO 16845 7.7.9款確定是別的節(jié)點(diǎn)發(fā)送的SOF還是毛刺。如果節(jié)點(diǎn)H在毛刺后Tq有發(fā)送請(qǐng)求ReqH(如圖2所示),它也必須等待Tprop+Ph1以確定總線是否空閑。另一個(gè)節(jié)點(diǎn)L如有發(fā)送ReqL,其到H的傳送延遲為τ,只要它能在H的硬同步后的采樣點(diǎn)采到,H就不再有發(fā)送機(jī)會(huì)。此時(shí)H、L請(qǐng)求的時(shí)間差為Tprop+Ph1-τ。如果2個(gè)節(jié)點(diǎn)靠得很近,τ≈0,那么H甚至無(wú)法與比它遲Tprop+Ph1的L競(jìng)爭(zhēng)。同時(shí)它也無(wú)法與比它早τ-1的其他節(jié)點(diǎn)的發(fā)送相競(jìng)爭(zhēng)。針對(duì)第1節(jié)中所講的“同時(shí)”情況,它已完全無(wú)法參與競(jìng)爭(zhēng)。本文引用地址:http://www.ex-cimer.com/article/196179.htm
圖2 總線空閑時(shí)毛刺引起優(yōu)先級(jí)倒置
圖3 估計(jì)倒置的概率用圖
圖4 在I.M.3中的毛刺引起優(yōu)先級(jí)倒置
現(xiàn)在對(duì)出現(xiàn)優(yōu)先級(jí)倒置的概率作初步分析。估計(jì)倒置的概率用圖如圖3所示。tG為毛刺發(fā)生時(shí)刻,tH為高優(yōu)先級(jí)消息請(qǐng)求時(shí)刻,tL為低優(yōu)先級(jí)消息請(qǐng)求時(shí)刻。如果tH發(fā)生在tG之后、該位的采樣點(diǎn)前,tL也在采樣點(diǎn)前到達(dá),那么tH的請(qǐng)求將無(wú)法獲得參與競(jìng)爭(zhēng)的機(jī)會(huì)。這件事的概率為Pa。Pa與誤碼率有關(guān),毛刺被采到會(huì)有誤碼。假定位時(shí)間為1 μs,毛刺寬度為0.2 μs,采到機(jī)會(huì)便是20%,也就是說(shuō)毛刺概率在1位時(shí)間內(nèi)為誤碼率的5倍,考慮到毛刺有0毛刺與1毛刺2種,只有0毛刺會(huì)引起假的硬同步,再考慮到考察的時(shí)段為Tprop+Ph1,而不是1位,所以保守估計(jì)Pa為誤碼率的2倍。但是Pa不是因毛刺而引起倒置的概率,其中還包括了tL請(qǐng)求確實(shí)早于tH請(qǐng)求τ的部分,這部分用Pb表示。Pb=(tH-tG-τ)/(tH-tG),當(dāng)(tH-tG)=τ時(shí)扣除部分Pb=0。所以最壞情況下沒(méi)有扣除,優(yōu)先級(jí)消息倒置的概率近似為誤碼率的2倍。
4.2 I.M.3內(nèi)毛刺引起的倒置
在上一幀認(rèn)可位(ACK)“0”的重同步下,H、L兩個(gè)節(jié)點(diǎn)的位時(shí)間會(huì)有相位差τ,L超前時(shí)τ的大小對(duì)分析并無(wú)影響。當(dāng)節(jié)點(diǎn)H、L均有掛起待發(fā)的消息時(shí),按ISO 118981 10.4.2.2規(guī)定,它們應(yīng)在I.M.3后一位開始發(fā)SOF,并進(jìn)行競(jìng)爭(zhēng)。若H節(jié)點(diǎn)由于局部錯(cuò),在I.M.3位值采樣點(diǎn)前有毛刺,按ISO 16845 8.7.2款,H將作硬同步,位值采樣點(diǎn)的移動(dòng)使它可以見到L所發(fā)的SOF(如圖4所示),其條件是e>Ph2。由于在I.M.3內(nèi)讀到SOF,H將在下一位開始發(fā)它的IDH最高位。假定H的IDH=“01***”,L的IDL=“10***”,H的ID11H=0經(jīng)τ后傳到L,與L的SOF部分重合,并延續(xù)到L的ID10L位,當(dāng)毛刺發(fā)生的e滿足NBT-(2τ+e)>Ph2時(shí),L不會(huì)采到H的ID11H,所以它不會(huì)退出。位時(shí)間設(shè)計(jì)時(shí)NBT=SYNC+Tprop+Ph1+Ph2,Tprop≥2τ,故上式在e<SYNC+Tprop-2τ+Ph1時(shí)能滿足,即0<e-Ph2<SYNC+Tprop-2τ+Ph1-Ph2。一般Ph1=Ph2,或者Ph1=Ph2+1,當(dāng)節(jié)點(diǎn)靠得較近時(shí)τ比較小,e有較大的范圍可同時(shí)滿足該式。而L發(fā)的ID10L=0經(jīng)τ后到達(dá)H,當(dāng)e>Ph2時(shí)成為H的ID10H中的同步沿,并被H采樣到,H便仲裁失敗退出,形成優(yōu)先級(jí)倒置。
此種倒置的概率的估計(jì)比較復(fù)雜,需要進(jìn)一步研究。
5 解決方案
5.1 總線空閑時(shí)的硬同步抗毛刺措施
接收節(jié)點(diǎn)在總線空閑時(shí)檢查到1/0跳變沿就作硬同步,然后再每Tq繼續(xù)采樣。如在位值采樣點(diǎn)前發(fā)現(xiàn)有1,則認(rèn)為總線恢復(fù)到空閑狀態(tài)。如其間已有本節(jié)點(diǎn)的發(fā)送請(qǐng)求,就在查到1的下一Tq開始本節(jié)點(diǎn)的發(fā)送。這樣,本節(jié)點(diǎn)的發(fā)送被推遲了毛刺寬度對(duì)應(yīng)的時(shí)間,但是也確保本節(jié)點(diǎn)發(fā)送前沒(méi)有其他節(jié)點(diǎn)已開始傳送,所以不會(huì)有優(yōu)先級(jí)倒置。
這種方法沒(méi)有解決毛刺較寬、一直延續(xù)到別的節(jié)點(diǎn)的SOF到達(dá)的情況。此時(shí)本節(jié)點(diǎn)仍然因無(wú)發(fā)送而出現(xiàn)優(yōu)先級(jí)倒置。
5.2 I.M.3內(nèi)硬同步抗毛刺措施
I.M.3內(nèi)位值采樣點(diǎn)前出現(xiàn)毛刺引起硬同步,本節(jié)點(diǎn)也繼續(xù)采樣總線。有“1”時(shí)后繼判斷比較困難,因?yàn)橛餐胶笤儆龅?ldquo;0”的時(shí)刻不確定,可能是別的節(jié)點(diǎn)發(fā)的SOF在原I.M.3位值采樣點(diǎn)前收到,也可能在I.M.3原位值采樣點(diǎn)后收到,還可能又是毛刺。所以,為處理簡(jiǎn)化起見,有掛起待發(fā)幀的本節(jié)點(diǎn)發(fā)送超載幀。通過(guò)報(bào)超載,超載幀結(jié)束后總線回到空閑狀態(tài),重新實(shí)現(xiàn)同步。
這種方法也沒(méi)有解決毛刺較寬、一直延續(xù)到別的節(jié)點(diǎn)的SOF到達(dá)的情況。此時(shí)本節(jié)點(diǎn)仍然因無(wú)發(fā)送而出現(xiàn)優(yōu)先級(jí)倒置。
6 小結(jié)
毛刺濾除和幀開始時(shí)刻的硬同步是為保障通信正常的兩個(gè)不同側(cè)面的要求,在現(xiàn)有CAN總線協(xié)議的設(shè)計(jì)中出現(xiàn)了沖突,造成在某種特定情境下出現(xiàn)優(yōu)先級(jí)倒置。由于毛刺引起優(yōu)先級(jí)倒置的危害性與具體應(yīng)用的種類有關(guān),一般地說(shuō),系統(tǒng)設(shè)計(jì)時(shí)已盡量防止毛刺的干擾,毛刺發(fā)生的概率已比較小,發(fā)生在特定位置就更小。
在優(yōu)先級(jí)倒置的情況下,可能下一次競(jìng)爭(zhēng)就不會(huì)發(fā)生倒置,做最壞送達(dá)時(shí)間分析時(shí)[6],可以將低優(yōu)先級(jí)的阻斷加倍來(lái)加以分析。
但是也可能在下一次競(jìng)爭(zhēng)時(shí)仍發(fā)生倒置。在車輛安全認(rèn)證分析時(shí),需要確定倒置引起的的每小時(shí)的故障率,這使分析需要引入誤碼率的假設(shè),需要進(jìn)一步的工作。
本文提出了在完全兼容CAN總線的條件下的改進(jìn)方案,但方案只是局部有效,根本的改進(jìn)可能無(wú)法達(dá)到完全兼容。
評(píng)論