本發(fā)明涉及通訊領(lǐng)域,具體而言,涉及一種嵌入式can波特率自動(dòng)匹配算法、裝置、服務(wù)器和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
1、can總線(controller?area?network,控制器局域網(wǎng)絡(luò))是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,具有突出的可靠性、實(shí)時(shí)性和靈活性,廣泛應(yīng)用于汽車、工業(yè)控制、機(jī)器人及航空航天等領(lǐng)域。
2、在can局域網(wǎng)總線上,常規(guī)can收發(fā)器支持的節(jié)點(diǎn)數(shù)最多為110個(gè),通過節(jié)點(diǎn)id進(jìn)行區(qū)分,每個(gè)節(jié)點(diǎn)必須遵循統(tǒng)一的通信調(diào)制速率,即波特率(baud?rate),才能進(jìn)行正常通訊。也就是說當(dāng)新的節(jié)點(diǎn)接入can總線時(shí),需要與can局域網(wǎng)總線上的波特率匹配,才能接入can總線局域網(wǎng),但can總線波特率設(shè)置范圍一般在50kbps~1mbps之間,若事先對(duì)局域網(wǎng)總線波特率未知,如何才能保證新接入的can節(jié)點(diǎn)能快速準(zhǔn)確地與局域網(wǎng)總線波特率匹配呢?
3、現(xiàn)有技術(shù)中,有兩類波特率匹配算法,一種是主動(dòng)檢測(cè)。主動(dòng)檢測(cè)是在新接入局域網(wǎng)總線時(shí),由新接入節(jié)點(diǎn)主動(dòng)向總線上發(fā)送報(bào)文,通過接受到其他節(jié)點(diǎn)回復(fù)的報(bào)文或本身產(chǎn)生的錯(cuò)誤計(jì)數(shù)器統(tǒng)計(jì)來判斷波特率是否匹配。這類匹配方法,由于會(huì)往總線上發(fā)送波特率不一致的數(shù)據(jù),會(huì)導(dǎo)致總線上其他節(jié)點(diǎn)進(jìn)入錯(cuò)誤狀態(tài),在某些場(chǎng)合下會(huì)導(dǎo)致進(jìn)入錯(cuò)誤狀態(tài)處理。
4、另一種是被動(dòng)檢測(cè),被動(dòng)檢測(cè)是讓新接入的節(jié)點(diǎn)不主動(dòng)發(fā)送數(shù)據(jù),通過監(jiān)聽總線上的數(shù)據(jù),通過設(shè)置采樣時(shí)鐘,檢測(cè)相鄰兩個(gè)電平跳變時(shí)間,差分計(jì)算得到波特率值,此方法算法比較復(fù)雜,且在嵌入式系統(tǒng)中需要占用較多的mcu資源。
5、綜上所述,被動(dòng)檢測(cè)需要處理復(fù)雜電平跳變識(shí)別及計(jì)算過程,而主動(dòng)檢測(cè)在波特率不匹配時(shí)會(huì)影響can總線上其他節(jié)點(diǎn)通信。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的包括,例如,提供一種嵌入式can波特率自動(dòng)匹配算法、裝置、服務(wù)器和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有算法快速簡(jiǎn)單、可靠的特點(diǎn),尤其適合在嵌入式mcu資源緊缺的應(yīng)用場(chǎng)合。
2、本發(fā)明的實(shí)施例可以這樣實(shí)現(xiàn):
3、第一方面,本發(fā)明實(shí)施例提供一種嵌入式can波特率自動(dòng)匹配算法,包括:
4、初始化can控制器;
5、讀取錯(cuò)誤狀態(tài)寄存器esr中的lec位的第一數(shù)值及被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志;
6、判斷所述lec位的第一數(shù)值是否等于0,并判斷是否觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志;
7、若判定所述lec位的第一數(shù)值等于0,且判定觸發(fā)所述被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志,則向總線發(fā)送數(shù)據(jù);
8、讀取所述錯(cuò)誤狀態(tài)寄存器esr中的lec位的第二數(shù)值及被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志;
9、判斷所述lec位的第二數(shù)值是否等于0,并判斷是否觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志;
10、若判定所述lec位的第二數(shù)值等于0,且判定觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志,則判定波特率匹配成功。
11、進(jìn)一步地,在可選的實(shí)施例中,在所述讀取錯(cuò)誤狀態(tài)寄存器esr中的lec位的第一數(shù)值及被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志的步驟后,所述算法還包括:
12、設(shè)置第一檢測(cè)超時(shí)時(shí)間;
13、若執(zhí)行所述讀取錯(cuò)誤狀態(tài)寄存器esr中的lec位的第一數(shù)值的步驟的時(shí)間超出所述第一檢測(cè)超時(shí)時(shí)間,則執(zhí)行所述判斷所述lec位的第一數(shù)值是否等于0,并判斷是否觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志的步驟。
14、進(jìn)一步地,在可選的實(shí)施例中,所述方法還包括:
15、若判定所述lec位的第一數(shù)值不等于0,或者,判定未觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志,則設(shè)置下一波特率,并重新執(zhí)行所述初始化can控制器的步驟。
16、進(jìn)一步地,在可選的實(shí)施例中,在所述讀取錯(cuò)誤狀態(tài)寄存器esr中的lec位的第二數(shù)值及被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志的步驟后,所述算法還包括:
17、設(shè)置第二檢測(cè)超時(shí)時(shí)間;
18、若執(zhí)行所述讀取錯(cuò)誤狀態(tài)寄存器esr中的lec位的第二數(shù)值的步驟的時(shí)間超出所述第二檢測(cè)超時(shí)時(shí)間,則執(zhí)行所述判斷所述lec位的第二數(shù)值是否等于0,并判斷是否觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志的步驟。
19、進(jìn)一步地,在可選的實(shí)施例中,所述方法還包括:
20、若判定所述lec位的第二數(shù)值不等于0,或者,判定未觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志,則設(shè)置下一波特率,并重新執(zhí)行所述初始化can控制器的步驟。
21、第二方面,本發(fā)明實(shí)施例提供一種嵌入式can波特率自動(dòng)匹配裝置,包括:
22、初始化模塊:用于初始化can控制器;
23、第一讀取模塊:用于讀取錯(cuò)誤狀態(tài)寄存器esr中的lec位的第一數(shù)值及被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志;
24、第一判斷模塊:用于判斷所述lec位的第一數(shù)值是否等于0,并判斷是否觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志;
25、數(shù)據(jù)發(fā)送模塊:用于若判定所述lec位的第一數(shù)值等于0,且判定觸發(fā)所述被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志,則向總線發(fā)送數(shù)據(jù);
26、第二讀取模塊:用于讀取所述錯(cuò)誤狀態(tài)寄存器esr中的lec位的第二數(shù)值及被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志;
27、第二判斷模塊:用于判斷所述lec位的第二數(shù)值是否等于0,并判斷是否觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志;
28、判定模塊:用于若判定所述lec位的第二數(shù)值等于0,且判定觸發(fā)被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志,則判定波特率匹配成功。
29、第三方面,本發(fā)明提供一種服務(wù)器,包括:
30、存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)可讀的程序;
31、處理器,所述處理器用于讀取并執(zhí)行所述存儲(chǔ)器上的程序,以實(shí)現(xiàn)前述的算法。
32、第四方面,本發(fā)明提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器讀取并運(yùn)行時(shí),實(shí)現(xiàn)前述算法。
1.一種嵌入式can波特率自動(dòng)匹配算法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的嵌入式can波特率自動(dòng)匹配算法,其特征在于,在所述讀取錯(cuò)誤狀態(tài)寄存器esr中的lec位的第一數(shù)值及被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志的步驟后,所述算法還包括:
3.根據(jù)權(quán)利要求2所述的嵌入式can波特率自動(dòng)匹配算法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求1所述的嵌入式can波特率自動(dòng)匹配算法,其特征在于,在所述讀取錯(cuò)誤狀態(tài)寄存器esr中的lec位的第二數(shù)值及被動(dòng)錯(cuò)誤狀態(tài)epvf標(biāo)志的步驟后,所述算法還包括:
5.根據(jù)權(quán)利要求4所述的嵌入式can波特率自動(dòng)匹配算法,其特征在于,所述方法還包括:
6.一種嵌入式can波特率自動(dòng)匹配裝置,其特征在于,包括:
7.一種服務(wù)器,其特征在于,包括:
8.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器讀取并運(yùn)行時(shí),實(shí)現(xiàn)權(quán)利要求1-6任一所述的算法。