九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

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

我們?cè)谟?strong>CANoe進(jìn)行CAN總線的測(cè)試時(shí),會(huì)發(fā)現(xiàn)CAN報(bào)文的發(fā)送類型有很多種,有些類型不太容易理解,有些類型之間又容易混淆,一不小心就會(huì)用錯(cuò),今天我們就來(lái)介紹下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 OnChange、Cyclic and OnWrite、Cyclic and IfActive

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

1.1 Cyclic周期發(fā)送

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

對(duì)于基本型中的OnChangeOnWrite來(lái)說(shuō),它們雖然不是周期發(fā)送,但是并不是說(shuō)只能發(fā)一次,也可以發(fā)送多次。對(duì)于IfActive來(lái)說(shuō),也可以按快速周期發(fā)送的同時(shí)限制發(fā)送次數(shù)。而發(fā)送次數(shù)是通過(guò)定義Repetitions重復(fù)次數(shù)來(lái)實(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)文中的信號(hào)變化時(shí),此報(bào)文會(huì)額外的發(fā)送一次,原來(lái)的周期不變。

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)文中的信號(hào)被重新寫入時(shí),此報(bào)文會(huì)額外的發(fā)送一次,原來(lái)的周期不變。

Cyclic and OnWrite示例

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

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

2.3 Cyclic and IfActive

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

Cyclic and IfActive示例

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

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

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

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

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

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

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

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

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

但這種方式也有缺點(diǎn),就是對(duì)軟件處理的時(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),背光一直在跳變,無(wú)法達(dá)成穩(wěn)定狀態(tài)。

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

還有一種簡(jiǎn)化的方法就是一方為周期型發(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ā)來(lái)的事件型報(bào)文后,同步更新自身的背光亮度值后發(fā)出的周期幀,周期仍然是500ms。

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

小結(jié):

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

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

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【原創(chuàng)】汽車 CAN 總線信號(hào)的發(fā)送方式及控制策略設(shè)計(jì)
總線50講,如何徹底搞明白dbc中“發(fā)送類型”?
汽車從業(yè)人員必須了解清楚的CAN網(wǎng)絡(luò)通信矩陣概念介紹
汽車CAN總線--相當(dāng)于人體經(jīng)絡(luò),讓我們一起來(lái)了解下吧。
利用各大小周期Macd底背離,尋找最佳買點(diǎn)示例
關(guān)于Qt 靜態(tài)成員函數(shù)調(diào)用信號(hào)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服