一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

CAN報(bào)文的發(fā)送類型Cyclic、OnChange、OnWrite、IfActive…,你都搞清楚了嗎?

 yuxiao2832 2024-08-09

我們在用CANoe進(jìn)行CAN總線的測試時(shí),會(huì)發(fā)現(xiàn)CAN報(bào)文的發(fā)送類型有很多種,有些類型不太容易理解,有些類型之間又容易混淆,一不小心就會(huì)用錯(cuò),今天我們就來介紹下CAN報(bào)文的發(fā)送類型。

CAN報(bào)文的發(fā)送類型分為基本發(fā)送類型和混合發(fā)送類型兩大類。

基本發(fā)送類型包括Cyclic周期發(fā)送、OnChange變化時(shí)發(fā)送、OnWrite寫入時(shí)發(fā)送和IfActive有效時(shí)發(fā)送。

基本發(fā)送類型中的Cyclic稱為周期型,而其他3個(gè)類型稱為事件型event)。

混合發(fā)送類型就是指基本類型中的周期型與事件型的組合,包括Cyclic and OnChangeCyclic and OnWrite、Cyclic and IfActive。

1.基本發(fā)送類型

1.1 Cyclic周期發(fā)送

周期發(fā)送是指報(bào)文獨(dú)立信號,按照固定的周期發(fā)送,也就是報(bào)文的發(fā)送與報(bào)文中的信號變化沒有關(guān)系。

周期性發(fā)送報(bào)文是我們最常用的報(bào)文,這類報(bào)文中包含的通常都是需要經(jīng)常使用或者變化頻率較高的信號,比如車速、轉(zhuǎn)速等信號。

圖片Cyclic周期性發(fā)送報(bào)文示例

如上圖示例所示,ID為201的報(bào)文按照200ms固定周期發(fā)送車速信號,車速信號在這個(gè)期間會(huì)有些變化,從52->51->52->53>,但是無論信號如何變化,報(bào)文周期都是6.8-6.6=7.0-6.8=7.2-7.0=200ms。

周期型報(bào)文就像大城市的公交汽車,報(bào)文中的信號就像是乘車的人員,一旦公交汽車發(fā)車周期確定了,比如10分鐘,則每間隔10分鐘都會(huì)有一輛車從始發(fā)站啟動(dòng)后發(fā)出,無論車上有幾個(gè)人,都會(huì)按時(shí)發(fā)送。

圖片

周期型報(bào)文(公交車)按固定時(shí)間發(fā)送,即使信號為0(空車)也要發(fā)送

1.2 OnChange變化時(shí)發(fā)送

變化時(shí)發(fā)送是指當(dāng)報(bào)文中的信號變化時(shí),報(bào)文才會(huì)發(fā)送。

這類報(bào)文中包含的通常都是變化頻率不高的信號,比如通過中控屏進(jìn)行的按鍵調(diào)節(jié)信號,OnChange報(bào)文的目的是為了節(jié)省總線資源。

圖片

OnChange變化時(shí)發(fā)送報(bào)文示例

如上圖示例所示,ID為368的報(bào)文為OnChange變化時(shí)發(fā)送的報(bào)文,假如當(dāng)前的背光亮度為30,此時(shí)總線上沒有368報(bào)文;

此時(shí)通過中控屏的觸摸按鍵將背光設(shè)置改為32,則中控屏?xí)l(fā)出一幀ID為368,背光信號為32的報(bào)文。

1.3 OnWrite寫入時(shí)發(fā)送

寫入時(shí)發(fā)送是指當(dāng)報(bào)文中的信號被重新寫入時(shí),報(bào)文才會(huì)發(fā)送。這里的重新寫入主要是指在測試軟件中對信號的重新設(shè)置寫入,在ECU中也可以認(rèn)為是應(yīng)用層底層通信信號的寫入。

OnWrite與OnChange的主要區(qū)別是OnWrite重新寫入不一定就是數(shù)值的改變,也可以保持不變

還是以中控屏的背光設(shè)置為例,比如背光原來為30,可以再次設(shè)置為32,設(shè)置后又繼續(xù)設(shè)置了兩次,但都是32,并沒有改變這個(gè)值。

圖片

OnWrite寫入時(shí)發(fā)送報(bào)文示例

以上示例中,最后兩幀的背光信號都是32,對比第2幀并沒有改變,但是中控屏依然會(huì)發(fā)出這兩幀,因?yàn)槎际?strong>寫入的操作。

這里要注意的是發(fā)送時(shí)間都是實(shí)時(shí)隨機(jī)的時(shí)間(中控按鍵確認(rèn)的時(shí)間),并沒有固定發(fā)送周期。

1.4 IfActive有效時(shí)發(fā)送

有效時(shí)發(fā)送是指當(dāng)報(bào)文中的信號為有效值時(shí),報(bào)文會(huì)以一個(gè)快速的周期(cycle time fast)發(fā)送,當(dāng)信號變?yōu)?strong>無效時(shí),報(bào)文就不再發(fā)送。

無效值Inactive Value也就是默認(rèn)值比如BCM的報(bào)文ID是380,其中的DoorOpen門開信號的無效值0,表示門關(guān),有效值1表示門開,快速周期100ms。

開始狀態(tài)為門關(guān),總線上沒有報(bào)文,當(dāng)門開有效,即門開信號為1時(shí),380報(bào)文立即以100ms為周期發(fā)送報(bào)文;當(dāng)門關(guān)后,即門開信號為0時(shí),報(bào)文立即停發(fā)。

圖片

IfActive有效時(shí)發(fā)送報(bào)文示例

以上示例中,報(bào)文是以快速周期100ms發(fā)送的,不發(fā)送時(shí)就表示門開信號為0(無效)。

OnChange、OnWriteIfActive屬于事件型報(bào)文,這類報(bào)文就像在出租車站點(diǎn)等待的出租車,沒人打車的時(shí)候不需要上路,只有乘客打車時(shí)才會(huì)上路,否則大量的空載出租車在道路上行駛,不僅沒有作用,反而容易擠占道路資源,造成道路擁擠。

圖片

事件型報(bào)文(出租車)沒有信號觸發(fā)(無人打車)時(shí)不需要發(fā)出

1.5 Repetitions重復(fù)發(fā)送參數(shù)

對于基本型中的OnChange、OnWrite來說,它們雖然不是周期發(fā)送,但是并不是說只能發(fā)一次,也可以發(fā)送多次。對于IfActive來說,也可以按快速周期發(fā)送的同時(shí)限制發(fā)送次數(shù)。而發(fā)送次數(shù)是通過定義Repetitions重復(fù)次數(shù)來實(shí)現(xiàn)的。

所以基本型中又衍生出3個(gè)子類型OnChangeWithRepetition、OnWriteWithRepetition和IfActiveWithRepetition。

比如在OnChangeWithRepetition子類型中,如果設(shè)置了Repetitions=3,則報(bào)文會(huì)連續(xù)發(fā)送三次,三次之間的時(shí)間不小于最小報(bào)文發(fā)送的延遲時(shí)間Delay time

圖片OnChangeWithRepetition示例

注意連續(xù)發(fā)送報(bào)文的時(shí)間間隔都比較短,但是也不能小于最小報(bào)文發(fā)送的延遲時(shí)間Delay time,示例中的間隔為100ms。

再比如在IfActiveWithRepetition子類型中,Repetitions=2,快速發(fā)送周期cycle time fast=100ms,則報(bào)文只發(fā)送兩幀

圖片

IfActiveWithRepetition示例

注意此時(shí)報(bào)文的發(fā)送周期是按照cycle time fast快速周期時(shí)間100ms發(fā)送,雖然與上面的間隔時(shí)間100ms相等,但是含義不同。

2.混合型

2.1 Cyclic and OnChange

周期和變化時(shí)發(fā)送是指報(bào)文平時(shí)是周期性發(fā)送,當(dāng)報(bào)文中的信號變化時(shí),此報(bào)文會(huì)額外的發(fā)送一次,原來的周期不變。

圖片

Cyclic and OnChange示例

如上圖示例所示,其中的第3幀就是額外發(fā)送的幀,它的發(fā)送時(shí)間為6.920s,是個(gè)實(shí)時(shí)的隨機(jī)時(shí)間,不是按照周期發(fā)送的。

2.2 Cyclic and OnWrite

周期和寫入時(shí)發(fā)送是指報(bào)文平時(shí)是周期性發(fā)送,當(dāng)報(bào)文中的信號被重新寫入時(shí),此報(bào)文會(huì)額外的發(fā)送一次,原來的周期不變。

圖片Cyclic and OnWrite示例

如上圖示例所示,其中的第3幀第5幀就是寫入時(shí)額外發(fā)送的幀,它們的發(fā)送時(shí)間分別為6.920s7.110s,都是實(shí)時(shí)的隨機(jī)時(shí)間,不是按照周期發(fā)送的。

注意第5幀的重新寫入數(shù)據(jù)仍然是32,沒有改變,這也是OnWriteOnChange的主要區(qū)別。

2.3 Cyclic and IfActive

周期和有效時(shí)發(fā)送是指報(bào)文平時(shí)是按正常周期cyclic time發(fā)送,當(dāng)報(bào)文中的信號為有效值時(shí),報(bào)文會(huì)按IfActive報(bào)文的快速周期cyclic time fast發(fā)送,等到信號變?yōu)闊o效值時(shí),報(bào)文又會(huì)恢復(fù)到原來的正常周期發(fā)送。

圖片Cyclic and IfActive示例

如上圖示例所示,其中前4幀是按正常周期1s發(fā)送,信號為無效值0;從第5幀開始,當(dāng)信號變?yōu)橛行е?時(shí),則按照快速周期100ms發(fā)送,所以中間4幀是快速發(fā)送。后面4幀,信號又恢復(fù)為無效值0,周期也恢復(fù)為正常周期1s。

快速周期時(shí)間 cycle time fast這個(gè)參數(shù)僅在IfActive及其組合的類型中使用。

混合型的報(bào)文就像旅游景點(diǎn)的接駁班車,平時(shí)人少時(shí)(基本不變),可以慢周期發(fā)車;等到節(jié)假日乘客突然很多(變化)時(shí)就臨時(shí)改為快速發(fā)車。這樣平時(shí)可以較少的占用道路資源,假日期間又可以解決臨時(shí)客流量大的問題。

圖片

混合型的報(bào)文(接駁班車)發(fā)送周期平時(shí)慢,緊急時(shí)快

圖片

信號觸發(fā)(人流量變化)時(shí)需要快速的把消息發(fā)送出去

3應(yīng)用實(shí)例

在實(shí)際使用時(shí),有些信號涉及到相互同步的問題,比如儀表中控背光設(shè)置。

傳統(tǒng)產(chǎn)品中,儀表的按鍵可以設(shè)置儀表屏的背光亮度,中控按鍵可以設(shè)置中控屏的背光亮度。在智能座艙的架構(gòu)中,希望儀表和中控的背光能一體化聯(lián)動(dòng),同步變化。也就是通過儀表或中控可以設(shè)置車內(nèi)屏幕的統(tǒng)一亮度,這時(shí)就需要儀表和中控信號同步,互相發(fā)送背光亮度信息。

如果儀表和中控都按周期報(bào)文發(fā)送,兩者是可以實(shí)時(shí)同步,一方發(fā)現(xiàn)對方的需求與自己不同時(shí),與對方同步即可。

但這種方式也有缺點(diǎn),就是對軟件處理的時(shí)序要求很高,比如在中控系統(tǒng)上進(jìn)行手動(dòng)設(shè)置后,在中控發(fā)出新的報(bào)文給儀表時(shí),儀表在未收到新報(bào)文前已經(jīng)將包含舊數(shù)值的報(bào)文發(fā)給中控系統(tǒng),而中控系統(tǒng)誤以為這個(gè)舊報(bào)文是儀表的新設(shè)置,就會(huì)導(dǎo)致儀表和中控兩者不停地向?qū)Ψ酵?,陷?strong>死循環(huán),背光一直在跳變,無法達(dá)成穩(wěn)定狀態(tài)。

這種情況要求軟件上必須在數(shù)據(jù)變化發(fā)送時(shí)做對方報(bào)文的延時(shí)處理,也就是短時(shí)間內(nèi)不接收對方的報(bào)文,以防止被對方舊的數(shù)據(jù)干擾。

還有一種簡化的方法就是一方為周期型發(fā)送,另一方為事件型發(fā)送。比如儀表(假設(shè)ID=350)為周期發(fā)送,發(fā)送周期為500ms;中控為OnChange有變化時(shí)發(fā)送,變化時(shí)重復(fù)發(fā)送3幀,則報(bào)文如下:

圖片儀表中控背光同步發(fā)送

由上圖示例可知:

1-4幀為儀表發(fā)送的周期幀,周期為500ms,背光為30;

5、6、7三幀為中控發(fā)送的事件幀,連續(xù)發(fā)了三幀,間隔為100ms,背光改為32;

8、9幀為儀表收到中控發(fā)來的事件型報(bào)文后,同步更新自身的背光亮度值后發(fā)出的周期幀,周期仍然是500ms

這種方式將儀表的背光信號定為周期型發(fā)送,可以保證較好的同步實(shí)時(shí)性,將中控定為事件型方式發(fā)送,可以避免兩者進(jìn)入死循環(huán)的可能。但是中控會(huì)有被儀表的舊信號覆蓋的可能,所以中控中仍需要做報(bào)文的延時(shí)處理,但是整體上來看,這種方式風(fēng)險(xiǎn)更低、處理更簡單。

小結(jié):

CAN總線的報(bào)文發(fā)送類型主要包括周期型事件型,周期型就是按照固定周期發(fā)送,與具體發(fā)送的信號無關(guān)。事件型不按周期發(fā)送,是按照信號的特點(diǎn)發(fā)送,具體分為信號變化時(shí)發(fā)送、信號寫入時(shí)發(fā)送和信號有效時(shí)發(fā)送。周期型與事件型還可以分別組合成混合型。

周期型的特點(diǎn)是穩(wěn)定、可靠,實(shí)時(shí)同步效果好,但占用總線資源多;事件型同步效果沒那么好,但是占用總線資源少!

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    大香蕉大香蕉手机在线视频| 国产成人午夜av一区二区| 很黄很污在线免费观看| 五月天丁香婷婷狠狠爱| 一区二区三区免费公开| 国产精品欧美在线观看| 亚洲专区中文字幕视频| 东京热男人的天堂一二三区| 天海翼精品久久中文字幕| 精品国产成人av一区二区三区| 东京热男人的天堂一二三区| 黑鬼糟蹋少妇资源在线观看| 欧美一区二区三区喷汁尤物| 日本一区二区三区黄色| 日本大学生精油按摩在线观看| 少妇高潮呻吟浪语91| 一区二区在线激情视频| 美女极度色诱视频在线观看| 欧美久久一区二区精品| 国产日韩中文视频一区| 欧美黑人在线一区二区| 久久中文字幕中文字幕中文| 日韩成人午夜福利免费视频| 亚洲一区二区三区三州| 在线免费观看一二区视频| 美国欧洲日本韩国二本道| 91精品国自产拍老熟女露脸| 亚洲一区二区三区精选| 日本欧美视频在线观看免费| 中文字幕日韩欧美亚洲午夜| 国产欧美一区二区久久| 中日韩免费一区二区三区| 国产免费黄片一区二区| 国产精品偷拍一区二区| 日本特黄特色大片免费观看 | 免费观看潮喷到高潮大叫| 男女午夜在线免费观看视频 | 好吊日视频这里都是精品| 久久精品国产99国产免费| 内射精子视频欧美一区二区| 欧美日韩一级黄片免费观看|