System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及can幀的發(fā)送,特別是指一種can幀的發(fā)送方法、裝置及系統(tǒng)、計(jì)算設(shè)備及存儲(chǔ)介質(zhì)。
技術(shù)介紹
1、傳統(tǒng)的通過軟件發(fā)送can幀的方法,需要主控處理器把要發(fā)送的can幀的id、數(shù)據(jù)以及數(shù)據(jù)長度寫到can控制器的發(fā)送緩存器,然后啟動(dòng)can幀發(fā)送,把can幀發(fā)送至與can控制器連接的can終端。其中,主控處理器通過輪詢can控制器的發(fā)送緩存器的方式確定是否繼續(xù)發(fā)送can幀,如果發(fā)送緩存器空閑,則把待發(fā)送的can幀寫入發(fā)送緩存器進(jìn)行發(fā)送,如果發(fā)送緩存器已滿,則不再向發(fā)送緩存器寫入can幀。
2、上述發(fā)送can幀的方式,依賴于對(duì)發(fā)送緩存器狀態(tài)的不斷輪詢的機(jī)制,基于該機(jī)制主控制處理器才能在每個(gè)輪詢周期知曉發(fā)送緩存器狀態(tài),來確定是否繼續(xù)向發(fā)送緩存器寫入can幀,主控處理器并不關(guān)注can控制器所連接的can終端的在線狀態(tài)。這種發(fā)送can幀的方式具有如下的問題:
3、當(dāng)所述can終端出現(xiàn)不在線或故障等異常時(shí),寫入can控制器的發(fā)送緩存器的can幀會(huì)無法發(fā)送出去,會(huì)導(dǎo)致發(fā)送緩存器被逐漸寫滿,而此時(shí)主控處理器依然會(huì)對(duì)該發(fā)送緩存器進(jìn)行不斷輪詢,將會(huì)耗費(fèi)主控處理器的cpu資源。
4、因此,如何在can終端出現(xiàn)連接異常時(shí),能夠使主控處理器不去輪詢發(fā)送緩存器,以降低對(duì)cpu資源的耗費(fèi),是有待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、鑒于現(xiàn)有技術(shù)的以上問題,本申請(qǐng)?zhí)峁┮环Ncan幀的發(fā)送方法、裝置及系統(tǒng)、計(jì)算設(shè)備及存儲(chǔ)介質(zhì),以在can終端連接異常時(shí)可降低對(duì)主控處理器的cpu資源的
2、為達(dá)到上述目的,本申請(qǐng)第一方面提供了一種can幀的發(fā)送方法,包括:
3、第一can控制器確定連接的第一can終端異常時(shí),觸發(fā)can總線錯(cuò)誤中斷,已寫入所述第一can控制器的發(fā)送緩存器中的待發(fā)送的can幀被滯留;
4、主控處理器響應(yīng)所述can總線錯(cuò)誤中斷,將第一can終端不在線標(biāo)志位置位,以及去使能所述can總線錯(cuò)誤中斷,以使所述can總線錯(cuò)誤中斷不被一直觸發(fā);
5、所述主控處理器基于所述第一can終端不在線標(biāo)志位的置位,不再向所述第一can控制器的發(fā)送緩存器中寫入can幀。
6、由上,本申請(qǐng)當(dāng)can控制器連接的can終端異常時(shí),can控制器觸發(fā)can總線錯(cuò)誤中斷,已寫入can控制器的發(fā)送緩存器中的待發(fā)送的can幀則被滯留,然后主控處理器響應(yīng)該can總線錯(cuò)誤中斷并置位can終端不在線標(biāo)志位,使得不會(huì)再向can控制器發(fā)送can幀,同時(shí)去使能所述can總線錯(cuò)誤中斷,以使can總線錯(cuò)誤中斷不被一直觸發(fā)。可見,本申請(qǐng)采用了中斷服務(wù)機(jī)制,替代了輪詢機(jī)制,從而在can終端異常時(shí)降低了主控處理器的cpu資源。
7、作為第一方面的一種可能的實(shí)現(xiàn)方式,還包括:
8、所述第一can控制器確定連接的第一can終端恢復(fù)正常時(shí),將滯留在所述發(fā)送緩存器中的待發(fā)送的can幀發(fā)送出去,并在發(fā)送完成后觸發(fā)can發(fā)送完成中斷;
9、所述主控處理器響應(yīng)所述can發(fā)送完成中斷,清除所述第一can終端不在線標(biāo)志位,以及使能所述can總線錯(cuò)誤中斷,以使所述can總線錯(cuò)誤中斷可被觸發(fā);
10、所述主控處理器基于所述can終端不在線標(biāo)志位的清除,向所述第一can控制器的發(fā)送緩存器中寫入can幀。
11、由上,本申請(qǐng)可以在can終端恢復(fù)正常時(shí),由can控制器發(fā)送滯留的can幀并觸發(fā)can發(fā)送完成中斷,主控處理器響應(yīng)can發(fā)送完成中斷后會(huì)清除can終端不在線標(biāo)志位,從而可以向can控制器的發(fā)送緩存器中寫入can幀,同時(shí)使能can總線錯(cuò)誤中斷,使得下次can終端異常時(shí)可以被觸發(fā)。可見,本申請(qǐng)采用了中斷服務(wù)機(jī)制,替代了輪詢機(jī)制,從而在can終端異常時(shí)降低了主控處理器的cpu資源。
12、作為第一方面的一種可能的實(shí)現(xiàn)方式,還包括:
13、所述主控處理器將第一can終端不在線標(biāo)志位置位后,將尚未寫入所述發(fā)送緩存器中的can幀丟棄。
14、由上,本申請(qǐng)當(dāng)主控處理器置位can終端不在線標(biāo)志位后,會(huì)將尚未寫入can控制器的can幀丟棄,這樣不會(huì)占用主控處理器的內(nèi)存資源。
15、作為第一方面的一種可能的實(shí)現(xiàn)方式,所述主控處理器響應(yīng)所述can發(fā)送完成中斷,清除所述第一can終端不在線標(biāo)志位,包括:
16、所述主控處理器記錄所述can發(fā)送完成中斷的觸發(fā)次數(shù),當(dāng)所述次數(shù)達(dá)到次數(shù)閾值時(shí),清除所述第一can終端不在線標(biāo)志位。
17、由上,本申請(qǐng)?jiān)O(shè)定觸發(fā)can發(fā)送完成中斷的次數(shù),當(dāng)次數(shù)超過設(shè)定的次數(shù)閾值時(shí),才會(huì)清除can終端不在線標(biāo)志位,這樣避免can總線錯(cuò)誤中斷被誤觸發(fā)或者頻繁觸發(fā)。
18、作為第一方面的一種可能的實(shí)現(xiàn)方式,還包括:
19、所述第一can控制器觸發(fā)所述can發(fā)送完成中斷之后,設(shè)置所述發(fā)送緩存器為空閑狀態(tài);
20、所述主控處理器檢測(cè)到所述發(fā)送緩存器為空閑狀態(tài)時(shí),向所述發(fā)送緩存器寫入待發(fā)送的can幀。
21、由上,本申請(qǐng)?jiān)赾an控制器觸發(fā)can發(fā)送完成中斷之后,通過中斷來設(shè)置發(fā)送緩存器的狀態(tài),在主控處理器檢測(cè)到發(fā)送緩存器空閑時(shí)向發(fā)送緩存器寫入待發(fā)送的can幀,這樣由中斷方式替代了
技術(shù)介紹
中的輪詢的方式,降低了輪詢方式對(duì)主控處理器的cpu的資源消耗。
22、作為第一方面的一種可能的實(shí)現(xiàn)方式,還包括:
23、所述主控處理器在初始化階段,創(chuàng)建can發(fā)送完成中斷服務(wù)、can總線錯(cuò)誤中斷服務(wù);其中,所述can發(fā)送完成中斷服務(wù)用于響應(yīng)所述can發(fā)送完成中斷,所述can總線錯(cuò)誤中斷服務(wù)用于響應(yīng)所述can總線錯(cuò)誤中斷;
24、使能can發(fā)送完成中斷和所述can總線錯(cuò)誤中斷。
25、由上,本申請(qǐng)中主控處理器進(jìn)行初始化、使能can發(fā)送完成中斷和can總線錯(cuò)誤中斷,使得當(dāng)can終端異常時(shí),可以立刻觸發(fā)can總線錯(cuò)誤中斷,當(dāng)can終端恢復(fù)正常時(shí)可以立刻觸發(fā)can發(fā)送完成中斷。可見本申請(qǐng)采用了中斷服務(wù)機(jī)制,替代了輪詢機(jī)制,從而在can終端異常時(shí)降低了主控處理器的cpu資源。
26、為達(dá)到上述目的,本申請(qǐng)第二方面提供了一種can幀的發(fā)送裝置,包括:
27、第一can控制器,用于確定連接的第一can終端異常時(shí),觸發(fā)can總線錯(cuò)誤中斷,已寫入所述第一can控制器的發(fā)送緩存器中的待發(fā)送的can幀被滯留;
28、主控處理器,用于響應(yīng)所述can總線錯(cuò)誤中斷,將第一can終端不在線標(biāo)志位置位,以及去使能所述can總線錯(cuò)誤中斷,以使所述can總線錯(cuò)誤中斷不被一直觸發(fā),基于所述第一can終端不在線標(biāo)志位的置位,不再向所述第一can控制器的發(fā)送緩存器中寫入can幀。
29、為達(dá)到上述目的,本申請(qǐng)第三方面提供了一種can幀的發(fā)送系統(tǒng),包括:主控處理器、多個(gè)can控制器和多個(gè)can終端;
30、所述主控處理器與所述多個(gè)can控制器連接,所述多個(gè)can控制器與所述多個(gè)can終端一一連接;
<本文檔來自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.一種CAN幀的發(fā)送方法,其特征在于,包括:
2.如權(quán)利要求1所述的方法,其特征在于,還包括:
3.如權(quán)利要求1所述的方法,其特征在于,還包括:
4.如權(quán)利要求2所述的方法,其特征在于,所述主控處理器響應(yīng)所述CAN發(fā)送完成中斷,清除所述第一CAN終端不在線標(biāo)志位,包括:
5.如權(quán)利要求2所述的方法,其特征在于,還包括:
6.如權(quán)利要求1所述的方法,其特征在于,還包括:
7.一種CAN幀的發(fā)送裝置,其特征在于,包括:
8.一種CAN幀的發(fā)送系統(tǒng),其特征在于,包括:主控處理器、多個(gè)CAN控制器和多個(gè)CAN終端;
9.一種計(jì)算設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,其上存儲(chǔ)有程序指令,所述程序指令當(dāng)被計(jì)算機(jī)執(zhí)行時(shí)使得所述計(jì)算機(jī)執(zhí)行權(quán)利要求1至6任一項(xiàng)所述的方法。
【技術(shù)特征摘要】
1.一種can幀的發(fā)送方法,其特征在于,包括:
2.如權(quán)利要求1所述的方法,其特征在于,還包括:
3.如權(quán)利要求1所述的方法,其特征在于,還包括:
4.如權(quán)利要求2所述的方法,其特征在于,所述主控處理器響應(yīng)所述can發(fā)送完成中斷,清除所述第一can終端不在線標(biāo)志位,包括:
5.如權(quán)利要求2所述的方法,其特征在于,還包括:
6.如權(quán)利要求1所...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:孫大娟,
申請(qǐng)(專利權(quán))人:北京東土軍悅科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。