本發(fā)明涉及CAN網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種超低功耗CAN網(wǎng)絡(luò)通訊方法。
背景技術(shù):
CAN網(wǎng)絡(luò)(Controller Area Network)作為一種技術(shù)先進(jìn)、可靠性高、功能完善、成本合理的遠(yuǎn)程網(wǎng)絡(luò)通訊控制方式,已被廣泛應(yīng)用到各個(gè)自動(dòng)化控制領(lǐng)域。隨著計(jì)算機(jī)技術(shù)和微電子技術(shù)的迅速發(fā)展,節(jié)能的熱潮,提出了綠色系統(tǒng)的概念,使得很多廠商越來越注重微控制器的低功耗問題。因此,電路與系統(tǒng)的低功耗設(shè)計(jì)一直都是電子工程技術(shù)人員設(shè)計(jì)時(shí)需要考慮的重要因素。
目前,在長距離CAN網(wǎng)絡(luò)通訊中,為了保持通訊中繼,需要CAN網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備長期處于接收狀態(tài)卻無法進(jìn)入休眠,產(chǎn)生較高的功耗,使得電池供電的很多CAN網(wǎng)絡(luò)節(jié)點(diǎn),如果要保持原有的待機(jī)時(shí)間,需加大電池容量,從而導(dǎo)致成本較高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種超低功耗CAN網(wǎng)絡(luò)通訊方法,能夠降低CAN網(wǎng)絡(luò)整體功耗,不必加大電池供電的CAN網(wǎng)絡(luò)節(jié)點(diǎn)的電池容量,降低了成本。
為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種超低功耗CAN網(wǎng)絡(luò)通訊方法,所述方法包括:
將CAN網(wǎng)絡(luò)所有的節(jié)點(diǎn)劃分成多個(gè)組;
對(duì)各組均預(yù)設(shè)有不同的喚醒時(shí)間,使得各組在其相應(yīng)預(yù)設(shè)的喚醒時(shí)間到達(dá)時(shí)被喚醒,實(shí)現(xiàn)所述CAN網(wǎng)絡(luò)節(jié)點(diǎn)之間數(shù)據(jù)交換。
其中,所述方法進(jìn)一步包括:
各組均會(huì)在屬于同組的CAN網(wǎng)絡(luò)節(jié)點(diǎn)之中選其任一作為一級(jí)節(jié)點(diǎn),選除一級(jí)節(jié)點(diǎn)之外的同組CAN網(wǎng)絡(luò)節(jié)點(diǎn)均作為二級(jí)節(jié)點(diǎn),并將各組預(yù)設(shè)的喚醒時(shí)間分別設(shè)為各組一級(jí)節(jié)點(diǎn)的喚醒時(shí)間,將低于同組一級(jí)節(jié)點(diǎn)的喚醒時(shí)間的一定時(shí)間值設(shè)為同組所有二級(jí)節(jié)點(diǎn)的喚醒時(shí)間;
待任一組的二級(jí)節(jié)點(diǎn)和一級(jí)節(jié)點(diǎn)依次被喚醒后,所述被喚醒組的一級(jí)節(jié)點(diǎn)均會(huì)向同組的所有二級(jí)節(jié)點(diǎn)下發(fā)數(shù)據(jù)交換指令;
待任一組二級(jí)節(jié)點(diǎn)接收到同組一級(jí)節(jié)點(diǎn)下發(fā)的數(shù)據(jù)交換指令后,篩選出參與數(shù)據(jù)交換的二級(jí)節(jié)點(diǎn)并向同組一級(jí)節(jié)點(diǎn)發(fā)送數(shù)據(jù)報(bào)文,實(shí)現(xiàn)所述CAN網(wǎng)絡(luò)節(jié)點(diǎn)之間數(shù)據(jù)交換。
其中,所述方法進(jìn)一步包括:
當(dāng)某一組中一級(jí)節(jié)點(diǎn)在間隔一定的時(shí)間內(nèi)未接收到同組任一二級(jí)節(jié)點(diǎn)所發(fā)送的數(shù)據(jù)報(bào)文時(shí),則所述未接收到數(shù)據(jù)報(bào)文的一級(jí)節(jié)點(diǎn)會(huì)向其同組的所有二級(jí)節(jié)點(diǎn)下發(fā)休眠指令后并進(jìn)入休眠,且同時(shí)使得所述接收到休眠指令的同組所有二級(jí)節(jié)點(diǎn)均會(huì)進(jìn)入休眠。
其中,在所述未接收到數(shù)據(jù)報(bào)文的一級(jí)節(jié)點(diǎn)進(jìn)入休眠的步驟之前,還包括步驟:
重新預(yù)設(shè)所述進(jìn)入休眠的一級(jí)節(jié)點(diǎn)所屬組的喚醒時(shí)間。
實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
本發(fā)明對(duì)CAN網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行分組,然后再對(duì)每一組進(jìn)行分級(jí)定時(shí)被喚醒通訊,避免每次通訊沖突太多,從而達(dá)到進(jìn)一步降低CAN網(wǎng)絡(luò)整體功耗的目的,使得電池供電的CAN網(wǎng)絡(luò)節(jié)點(diǎn)的不必加大電池容量,降低了成本。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,根據(jù)這些附圖獲得其他的附圖仍屬于本發(fā)明的范疇。
圖1為本發(fā)明實(shí)施例提供的超低功耗CAN網(wǎng)絡(luò)通訊方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的超低功耗CAN網(wǎng)絡(luò)通訊方法的應(yīng)用場景圖;
圖3為圖2中任一組分級(jí)處理的應(yīng)用場景圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
如圖1所示,為本發(fā)明實(shí)施例中,提供的一種超低功耗CAN網(wǎng)絡(luò)通訊方法,所述方法包括:
步驟S1、將CAN網(wǎng)絡(luò)所有的節(jié)點(diǎn)劃分成多個(gè)組;
步驟S2、對(duì)各組均預(yù)設(shè)有不同的喚醒時(shí)間,使得各組在其相應(yīng)預(yù)設(shè)的喚醒時(shí)間到達(dá)時(shí)被喚醒,實(shí)現(xiàn)所述CAN網(wǎng)絡(luò)節(jié)點(diǎn)之間數(shù)據(jù)交換。
在本發(fā)明實(shí)施例中,為了提高系統(tǒng)通訊可靠性,在對(duì)CAN網(wǎng)絡(luò)節(jié)點(diǎn)分組后,會(huì)再對(duì)每一組的CAN網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行分級(jí)處理,因此所述方法進(jìn)一步包括:
各組均會(huì)在屬于同組的CAN網(wǎng)絡(luò)節(jié)點(diǎn)之中選其任一作為一級(jí)節(jié)點(diǎn),選除一級(jí)節(jié)點(diǎn)之外的同組CAN網(wǎng)絡(luò)節(jié)點(diǎn)均作為二級(jí)節(jié)點(diǎn),并將各組預(yù)設(shè)的喚醒時(shí)間分別設(shè)為各組一級(jí)節(jié)點(diǎn)的喚醒時(shí)間,將低于同組一級(jí)節(jié)點(diǎn)的喚醒時(shí)間的一定時(shí)間值設(shè)為同組所有二級(jí)節(jié)點(diǎn)的喚醒時(shí)間;
待任一組的二級(jí)節(jié)點(diǎn)和一級(jí)節(jié)點(diǎn)依次被喚醒后,所述被喚醒組的一級(jí)節(jié)點(diǎn)均會(huì)向同組的所有二級(jí)節(jié)點(diǎn)下發(fā)數(shù)據(jù)交換指令;
待任一組二級(jí)節(jié)點(diǎn)接收到同組一級(jí)節(jié)點(diǎn)下發(fā)的數(shù)據(jù)交換指令后,篩選出參與數(shù)據(jù)交換的二級(jí)節(jié)點(diǎn)并向同組一級(jí)節(jié)點(diǎn)發(fā)送數(shù)據(jù)報(bào)文,實(shí)現(xiàn)CAN網(wǎng)絡(luò)節(jié)點(diǎn)之間數(shù)據(jù)交換。
應(yīng)當(dāng)說明的是,各組至少有兩個(gè)CAN網(wǎng)絡(luò)節(jié)點(diǎn),且二級(jí)節(jié)點(diǎn)的喚醒時(shí)間優(yōu)于同組的一級(jí)節(jié)點(diǎn)的喚醒時(shí)間,從而確保二級(jí)的CAN網(wǎng)絡(luò)節(jié)點(diǎn)成員都能接收到一級(jí)的CAN網(wǎng)絡(luò)節(jié)點(diǎn)廣播數(shù)據(jù)交換指令。
為了降低CAN網(wǎng)絡(luò)整體功耗,各組結(jié)束數(shù)據(jù)交換后會(huì)進(jìn)入休眠,因此所述方法進(jìn)一步包括:
當(dāng)某一組中一級(jí)節(jié)點(diǎn)在間隔一定的時(shí)間內(nèi)未接收到同組任一二級(jí)節(jié)點(diǎn)所發(fā)送的數(shù)據(jù)報(bào)文時(shí),則所述未接收到數(shù)據(jù)報(bào)文的一級(jí)節(jié)點(diǎn)會(huì)向其同組的所有二級(jí)節(jié)點(diǎn)下發(fā)休眠指令后并進(jìn)入休眠,且同時(shí)使得所述接收到休眠指令的同組所有二級(jí)節(jié)點(diǎn)均會(huì)進(jìn)入休眠。
為了避免累積喚醒時(shí)間的誤差,每一組CAN網(wǎng)絡(luò)節(jié)點(diǎn)在進(jìn)入休眠前,將各組之間采用的通信協(xié)議的通訊頭作為本組的網(wǎng)絡(luò)節(jié)點(diǎn)同步,因此在未接收到數(shù)據(jù)報(bào)文的一級(jí)節(jié)點(diǎn)進(jìn)入休眠的步驟之前,還包括步驟:
重新預(yù)設(shè)進(jìn)入休眠的一級(jí)節(jié)點(diǎn)所屬組的喚醒時(shí)間。
應(yīng)當(dāng)說明的是,重新預(yù)設(shè)各組的喚醒時(shí)間,可以實(shí)現(xiàn)各組一級(jí)節(jié)點(diǎn)及二級(jí)節(jié)點(diǎn)的喚醒時(shí)間的重新預(yù)設(shè)。
如圖2和圖3所示,對(duì)本發(fā)明實(shí)施例中的超低功耗CAN網(wǎng)絡(luò)通訊方法的應(yīng)用場景做進(jìn)一步說明:
圖2中,將若干個(gè)CAN網(wǎng)絡(luò)節(jié)點(diǎn)分為一組,總共分成n組,并給予定時(shí)的喚醒值賦值為T,為了避免各組CAN網(wǎng)絡(luò)節(jié)點(diǎn)出現(xiàn)重疊被喚醒,采用如下喚醒機(jī)制:第一組CAN網(wǎng)絡(luò)節(jié)點(diǎn)在(T+T1)時(shí)被喚醒,第二組CAN網(wǎng)絡(luò)節(jié)點(diǎn)在(T+T2)時(shí)被喚醒,第三組CAN網(wǎng)絡(luò)節(jié)點(diǎn)在(T+T3)時(shí)初醒,其中T1、T2、T3互不相等,且都不能大于或等于T,其余各組以此類推;
圖3中,將各組均分成兩級(jí)處理,包括一個(gè)一級(jí)節(jié)點(diǎn)和多個(gè)二級(jí)節(jié)點(diǎn),其中,一級(jí)節(jié)點(diǎn)具有最高優(yōu)先權(quán),并賦予特殊的通訊協(xié)議,使其每次被喚醒后向二級(jí)的所有CAN網(wǎng)絡(luò)節(jié)點(diǎn)廣播數(shù)據(jù)交換指令,通知二級(jí)所有CAN網(wǎng)絡(luò)節(jié)點(diǎn)開始發(fā)送數(shù)據(jù),二級(jí)所有CAN網(wǎng)絡(luò)節(jié)點(diǎn)收到指令后,確定參與數(shù)據(jù)交換的二級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)并開始向一級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送數(shù)據(jù),從而實(shí)現(xiàn)CAN網(wǎng)絡(luò)節(jié)點(diǎn)之間的數(shù)據(jù)交換;
為了保證二級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)都能接收到一級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)廣播的數(shù)據(jù)交換指令,因此需要二級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)比一級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)先被喚醒,如二級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)在(T+T1-300ms)時(shí)被喚醒,而一級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)在(T+T1)時(shí)被喚醒;
當(dāng)一級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)間隔一定的時(shí)間(如30S)內(nèi)沒有接收到二級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)所發(fā)送的數(shù)據(jù)后,向二級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)廣播休眠指令,通知二級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)入休眠,此時(shí)一級(jí)CAN網(wǎng)絡(luò)節(jié)點(diǎn)也進(jìn)入休眠,使得整組的CAN網(wǎng)絡(luò)節(jié)點(diǎn)都進(jìn)入休眠,從而降低CAN網(wǎng)絡(luò)整體功耗;
為了避免累積喚醒時(shí)間的誤差,每一組CAN網(wǎng)絡(luò)節(jié)點(diǎn)在進(jìn)入休眠前,將各組之間采用的通信協(xié)議的通訊頭作為本組的網(wǎng)絡(luò)節(jié)點(diǎn)同步,重新預(yù)設(shè)各組的喚醒時(shí)間,從而可以實(shí)現(xiàn)重新初始化本組各個(gè)CAN節(jié)點(diǎn)的定時(shí)被喚醒值,使得每組都會(huì)循環(huán)執(zhí)行如下步驟:預(yù)設(shè)喚醒時(shí)間—休眠—喚醒—交換信息—同步初醒值。
實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
本發(fā)明對(duì)CAN網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行分組,然后再對(duì)每一組進(jìn)行分級(jí)定時(shí)被喚醒通訊,避免每次通訊沖突太多,從而達(dá)到進(jìn)一步降低CAN網(wǎng)絡(luò)整體功耗的目的,使得電池供電的CAN網(wǎng)絡(luò)節(jié)點(diǎn)的不必加大電池容量,降低了成本。
值得注意的是,上述系統(tǒng)實(shí)施例中,所包括的各個(gè)系統(tǒng)單元只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能單元的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如ROM/RAM、磁盤、光盤等。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。