專利名稱:Can節(jié)點報文發(fā)送等待條件與等待時間確定的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是CAN節(jié)點報文發(fā)送等待條件產(chǎn)生與等待時間確定的技術(shù)領(lǐng)域。
背景技術(shù):
現(xiàn)場總線技術(shù)已經(jīng)越來越多地應(yīng)用于工業(yè)現(xiàn)場。CAN總線更是以其高效率、低價位、高可靠性等獨特優(yōu)點而獲得了越來越廣泛的應(yīng)用。在對CAN總線的研究和應(yīng)用中,與報文發(fā)送有關(guān)的時間特性是人們所關(guān)心的一個問題。對于絕大多數(shù)現(xiàn)場總線,其報文發(fā)送總延時包括等待時間和發(fā)送凈延時,發(fā)送凈延時是一個相對容易確定的時間,它取決于報文的數(shù)量和波特率,而等待時間則主要取決于網(wǎng)絡(luò)的MAC(媒體訪問控制)機制,分析、確定起來往往比較復(fù)雜和困難。目前,國內(nèi)外針對CAN總線的MAC機制、報文發(fā)送的各組成時間/延時的理論分析比較普遍,但現(xiàn)有技術(shù)存在不能有效的對CAN總線的MAC機制、報文發(fā)送的各組成時間/延時進行確定,這在很大程度上阻礙了CAN總線教學(xué)實驗和培訓(xùn)的開展。
發(fā)明內(nèi)容
本發(fā)明是為了克服現(xiàn)有技術(shù)存在不能有效的對CAN總線的MAC機制、報文發(fā)送的各組成時間/延時進行確定的問題,進而提供一種CAN節(jié)點報文發(fā)送等待條件與等待時間確定的系統(tǒng)及方法。
本發(fā)明的系統(tǒng)由第一節(jié)點1、第二節(jié)點2、第三節(jié)點3組成;所述第一節(jié)點1由第一鍵盤1-1、第一處理器1-2、第一顯示單元1-3、第一通信單元1-4、第一啟動發(fā)送按鈕1-5組成;第一鍵盤1-1的控制數(shù)據(jù)輸出總線端、第一啟動發(fā)送按鈕1-5的控制數(shù)據(jù)輸出總線端分別連接第一處理器1-2的兩個控制數(shù)據(jù)輸入總線端,第一通信單元1-4的通信數(shù)據(jù)輸出輸入總線端連接第一處理器1-2的通信數(shù)據(jù)輸出輸入總線端,第一處理器1-2的顯示數(shù)據(jù)輸出總線端連接第一顯示單元1-3的數(shù)據(jù)輸入總線端;第二節(jié)點2由第二鍵盤2-1、第二處理器2-2、第二顯示單元2-3、第二通信單元2-4、第二啟動發(fā)送按鈕2-5組成,第二鍵盤2-1的控制數(shù)據(jù)輸出總線端、第二啟動發(fā)送按鈕2-5的控制數(shù)據(jù)輸出總線端分別連接第二處理器2-2的兩個控制數(shù)據(jù)輸入總線端,第二通信單元2-4的通信數(shù)據(jù)輸出輸入總線端連接第二處理器2-2的通信數(shù)據(jù)輸出輸入總線端,第二處理器2-2的顯示數(shù)據(jù)輸出總線端連接第二顯示單元2-3的數(shù)據(jù)輸入總線端;第三節(jié)點3由第三鍵盤3-1、第三處理器3-2、第三顯示單元3-3、第三通信單元3-4組成;第三鍵盤3-1的控制數(shù)據(jù)輸出總線端連接第三處理器3-2的控制數(shù)據(jù)輸入總線端,第三通信單元3-4的通信數(shù)據(jù)輸出輸入總線端連接第三處理器3-2的通信數(shù)據(jù)輸出輸入總線端,第三處理器3-2的顯示數(shù)據(jù)輸出總線端連接第三顯示單元3-3的數(shù)據(jù)輸入總線端;第一節(jié)點1的第一通信單元1-4的CAN接口、第二節(jié)點2的第二通信單元2-4的CAN接口、第三節(jié)點3的第三通信單元3-4的CAN接口都依次連接在CAN總線上;它的步驟為一、啟動系統(tǒng);二、初始化第一節(jié)點1,即通過第一鍵盤1-1對CAN控制器的各個寄存器的初始化、對定時器的初始化(設(shè)置定時器的工作方式,設(shè)置定時器初值)和對顯示單元的初始化,并通過相關(guān)寄存器的設(shè)置,保證第一節(jié)點1不接收任何報文;三、設(shè)置第一節(jié)點1的標(biāo)識符場、控制場和數(shù)據(jù)場;四、按下第一節(jié)點1的第一啟動發(fā)送按鈕1-5,實施如下操作在總線空閑狀態(tài)下,使第一節(jié)點1發(fā)送一幀報文,然后立即檢測發(fā)送狀態(tài)并啟動定時器開始計時,通過判斷可知,第一節(jié)點1正在發(fā)送報文,即第一節(jié)點1報文已被立即發(fā)送,說明總線空閑條件下報文發(fā)送等待時間為零,同時判斷報文是否發(fā)送完成,如果報文未發(fā)送完成則繼續(xù)計時,發(fā)送完成則停止計時,并將計時值t0傳送給第一處理器1-2內(nèi)的時間寄存器,則t0即為總線空閑條件下該幀報文的實際發(fā)送時間,再把t0送第一顯示單元1-3顯示;五、初始化第二節(jié)點2,并設(shè)置第二節(jié)點2的標(biāo)識符場、控制場和數(shù)據(jù)場,其步驟如下通過第二鍵盤2-1對CAN控制器的各個寄存器初始化,設(shè)置標(biāo)識符場時要保證第二節(jié)點2發(fā)送的報文優(yōu)先級比第一節(jié)點1發(fā)送的報文優(yōu)先級低;六、按下第二節(jié)點2的第二啟動發(fā)送按鈕2-5,實施如下操作第二節(jié)點2連續(xù)發(fā)送報文,以使總線處于“忙”的狀態(tài);七、按下第一節(jié)點1的第一啟動發(fā)送按鈕1-5,實施如下操作第一節(jié)點1發(fā)送一幀報文,并與步驟四發(fā)送的報文相同;同時啟動定時器開始計時,判斷報文是否發(fā)送完成,如果報文未發(fā)送完成則繼續(xù)計時,發(fā)送完成則停止計時,并將計時值傳送給第一處理器1-2內(nèi)的時間寄存器,計時值記為t1,令Δt10=t1-t0,則Δt10即為最高優(yōu)先級發(fā)送時的等待時間,再把Δt10送第一顯示單元1-3顯示;八、初始化第三節(jié)點3,并設(shè)置第三節(jié)點3的標(biāo)識符場、控制場和數(shù)據(jù)場,其步驟如下通過第三鍵盤3-1對CAN控制器的各個寄存器初始化,保證第三節(jié)點3只接收第二節(jié)點2發(fā)送的報文,設(shè)置標(biāo)識符場時要保證第三節(jié)點3發(fā)送的報文優(yōu)先級比第一節(jié)點1發(fā)送的報文優(yōu)先級高;九、重新初始化第一節(jié)點1,其步驟如下通過第一鍵盤1-1對CAN控制器的各個寄存器初始化,通過設(shè)置相關(guān)寄存器,保證第一節(jié)點1只接收第二節(jié)點2發(fā)送的報文;十、按下第二節(jié)點2的第二啟動發(fā)送按鈕2-5,實施如下操作第二節(jié)點2連續(xù)發(fā)送報文,以使總線處于“忙”的狀態(tài),第一節(jié)點1和第三節(jié)點3成功接收第二節(jié)點2的報文后,等待一個相同的隨機時間,然后同時發(fā)送報文,由于第三節(jié)點3的報文優(yōu)先級比第一節(jié)點1的高,因此第三節(jié)點3贏得仲裁;第一節(jié)點1在啟動發(fā)送后同時啟動定時器開始計時,判斷報文是否發(fā)送完成,如果報文未發(fā)送完成則繼續(xù)計時,發(fā)送完成則停止計時,并將計時值傳送給第二處理器2-2內(nèi)的時間寄存器,計時值記為t2,令Δt20=t2-t0,則Δt20即為中間優(yōu)先級報文發(fā)送時的等待時間;十一、結(jié)束。
本發(fā)明能實時對CAN總線的MAC機制、報文發(fā)送的各組成時間/延時進行確定,通過對比分析,確定出了相應(yīng)的等待時間,清晰地表明了不同等待條件下等待時間的長短,得出的結(jié)果精確、直觀,有助于掌握CAN總線的MAC機制。
圖1是本發(fā)明的電路結(jié)構(gòu)圖,圖2是本發(fā)明的方法步驟流程圖。
具體實施例方式
具體實施方式
一結(jié)合圖1、圖2說明本實施方式,本實施方式的系統(tǒng)由第一節(jié)點1、第二節(jié)點2、第三節(jié)點3組成;所述第一節(jié)點1由第一鍵盤1-1、第一處理器1-2、第一顯示單元1-3、第一通信單元1-4、第一啟動發(fā)送按鈕1-5組成;第一鍵盤1-1的控制數(shù)據(jù)輸出總線端、第一啟動發(fā)送按鈕1-5的控制數(shù)據(jù)輸出總線端分別連接第一處理器1-2的兩個控制數(shù)據(jù)輸入總線端,第一通信單元1-4的通信數(shù)據(jù)輸出輸入總線端連接第一處理器1-2的通信數(shù)據(jù)輸出輸入總線端,第一處理器1-2的顯示數(shù)據(jù)輸出總線端連接第一顯示單元1-3的數(shù)據(jù)輸入總線端;第二節(jié)點2由第二鍵盤2-1、第二處理器2-2、第二顯示單元2-3、第二通信單元2-4、第二啟動發(fā)送按鈕2-5組成,第二鍵盤2-1的控制數(shù)據(jù)輸出總線端、第二啟動發(fā)送按鈕2-5的控制數(shù)據(jù)輸出總線端分別連接第二處理器2-2的兩個控制數(shù)據(jù)輸入總線端,第二通信單元2-4的通信數(shù)據(jù)輸出輸入總線端連接第二處理器2-2的通信數(shù)據(jù)輸出輸入總線端,第二處理器2-2的顯示數(shù)據(jù)輸出總線端連接第二顯示單元2-3的數(shù)據(jù)輸入總線端,第三節(jié)點3由第三鍵盤3-1、第三處理器3-2、第三顯示單元3-3、第三通信單元3-4組成;第三鍵盤3-1的控制數(shù)據(jù)輸出總線端連接第三處理器3-2的控制數(shù)據(jù)輸入總線端,第三通信單元3-4的通信數(shù)據(jù)輸出輸入總線端連接第三處理器3-2的通信數(shù)據(jù)輸出輸入總線端,第三處理器3-2的顯示數(shù)據(jù)輸出總線端連接第三顯示單元3-3的數(shù)據(jù)輸入總線端;第一節(jié)點1的第一通信單元1-4的CAN接口、第二節(jié)點2的第二通信單元2-4的CAN接口、第三節(jié)點3的第三通信單元3-4的CAN接口都依次連接在CAN總線上;它的顯示和檢測步驟為一、啟動系統(tǒng);二、初始化第一節(jié)點1,即通過第一鍵盤1-1對CAN控制器的各個寄存器的初始化、對定時器的初始化(設(shè)置定時器的工作方式,設(shè)置定時器初值)和對顯示單元的初始化,并通過相關(guān)寄存器的設(shè)置,保證第一節(jié)點1不接收任何報文;三、設(shè)置第一節(jié)點1的標(biāo)識符場、控制場和數(shù)據(jù)場;四、按下第一節(jié)點1的第一啟動發(fā)送按鈕1-5,實施如下操作在總線空閑狀態(tài)下,使第一節(jié)點1發(fā)送一幀報文,然后立即檢測發(fā)送狀態(tài)并啟動定時器開始計時,通過判斷可知,第一節(jié)點1正在發(fā)送報文,即第一節(jié)點1報文已被立即發(fā)送,說明總線空閑條件下報文發(fā)送等待時間為零,同時判斷報文是否發(fā)送完成,如果報文未發(fā)送完成則繼續(xù)計時,發(fā)送完成則停止計時,并將計時值t0傳送給第一處理器1-2內(nèi)的時間寄存器,則t0即為總線空閑條件下該幀報文的實際發(fā)送時間,再把t0送第一顯示單元1-3顯示;五、初始化第二節(jié)點2,并設(shè)置第二節(jié)點2的標(biāo)識符場、控制場和數(shù)據(jù)場,其步驟如下通過第二鍵盤2-1對CAN控制器的各個寄存器初始化,設(shè)置標(biāo)識符場時要保證第二節(jié)點2發(fā)送的報文優(yōu)先級比第一節(jié)點1發(fā)送的報文優(yōu)先級低;六、按下第二節(jié)點2的第二啟動發(fā)送按鈕2-5,實施如下操作第二節(jié)點2連續(xù)發(fā)送報文,以使總線處于“忙”的狀態(tài);七、按下第一節(jié)點1的第一啟動發(fā)送按鈕1-5,實施如下操作第一節(jié)點1發(fā)送一幀報文,并與步驟四發(fā)送的報文相同;同時啟動定時器開始計時,判斷報文是否發(fā)送完成,如果報文未發(fā)送完成則繼續(xù)計時,發(fā)送完成則停止計時,并將計時值傳送給第一處理器1-2內(nèi)的時間寄存器,計時值記為t1,令Δt10=t1-t0,則Δt10即為最高優(yōu)先級發(fā)送時的等待時間,再把Δt10送第一顯示單元1-3顯示;八、初始化第三節(jié)點3,并設(shè)置第三節(jié)點3的標(biāo)識符場、控制場和數(shù)據(jù)場,其步驟如下通過第三鍵盤3-1對CAN控制器的各個寄存器初始化,保證第三節(jié)點3只接收第二節(jié)點2發(fā)送的報文,設(shè)置標(biāo)識符場時要保證第三節(jié)點3發(fā)送的報文優(yōu)先級比第一節(jié)點1發(fā)送的報文優(yōu)先級高;九、重新初始化第一節(jié)點1,其步驟如下通過第一鍵盤1-1對CAN控制器的各個寄存器初始化,通過設(shè)置相關(guān)寄存器,保證第一節(jié)點1只接收第二節(jié)點2發(fā)送的報文;十、按下第二節(jié)點2的第二啟動發(fā)送按鈕2-5,實施如下操作第二節(jié)點2連續(xù)發(fā)送報文,以使總線處于“忙”的狀態(tài),第一節(jié)點1和第三節(jié)點3成功接收第二節(jié)點2的報文后,等待一個相同的隨機時間,然后同時發(fā)送報文,由于第三節(jié)點3的報文優(yōu)先級比第一節(jié)點1的高,因此第三節(jié)點3贏得仲裁;第一節(jié)點1在啟動發(fā)送后同時啟動定時器開始計時,判斷報文是否發(fā)送完成,如果報文未發(fā)送完成則繼續(xù)計時,發(fā)送完成則停止計時,并將計時值傳送給第二處理器2-2內(nèi)的時間寄存器,計時值記為t2,令Δt20=t2-t0,則Δt20即為中間優(yōu)先級報文發(fā)送時的等待時間;十一、結(jié)束。
所述第一處理器1-2、第二處理器2-2、第三處理器3-2都選用的是8051系列、C8051F系列、8096系列的芯片;第一顯示單元1-3、第二顯示單元2-3、第三顯示單元3-3都選用的是12864-2W;第一鍵盤1-1、第二鍵盤2-1、第三鍵盤3-1都選用的是OMRON;第一啟動發(fā)送按鈕1-5、第二啟動發(fā)送按鈕2-5選用的都是OMRON;第一通信單元1-4、第二通信單元2-4、第三通信單元3-4都選用的是SJA1000、82C250、6N137。
權(quán)利要求
1.CAN節(jié)點報文發(fā)送等待條件與等待時間確定的系統(tǒng),其特征在于它由第一節(jié)點(1)、第二節(jié)點(2)、第三節(jié)點(3)組成;所述第一節(jié)點(1)由第一鍵盤(1-1)、第一處理器(1-2)、第一顯示單元(1-3)、第一通信單元(1-4)、第一啟動發(fā)送按鈕(1-5)組成;第一鍵盤(1-1)的控制數(shù)據(jù)輸出總線端、第一啟動發(fā)送按鈕(1-5)的控制數(shù)據(jù)輸出總線端分別連接第一處理器(1-2)的兩個控制數(shù)據(jù)輸入總線端,第一通信單元(1-4)的通信數(shù)據(jù)輸出輸入總線端連接第一處理器(1-2)的通信數(shù)據(jù)輸出輸入總線端,第一處理器(1-2)的顯示數(shù)據(jù)輸出總線端連接第一顯示單元(1-3)的數(shù)據(jù)輸入總線端;第二節(jié)點(2)由第二鍵盤(2-1)、第二處理器(2-2)、第二顯示單元(2-3)、第二通信單元(2-4)、第二啟動發(fā)送按鈕(2-5)組成,第二鍵盤(2-1)的控制數(shù)據(jù)輸出總線端、第二啟動發(fā)送按鈕(2-5)的控制數(shù)據(jù)輸出總線端分別連接第二處理器(2-2)的兩個控制數(shù)據(jù)輸入總線端,第二通信單元(2-4)的通信數(shù)據(jù)輸出輸入總線端連接第二處理器(2-2)的通信數(shù)據(jù)輸出輸入總線端,第二處理器(2-2)的顯示數(shù)據(jù)輸出總線端連接第二顯示單元(2-3)的數(shù)據(jù)輸入總線端,第三節(jié)點(3)由第三鍵盤(3-1)、第三處理器(3-2)、第三顯示單元(3-3)、第三通信單元(3-4)組成;第三鍵盤(3-1)的控制數(shù)據(jù)輸出總線端連接第三處理器(3-2)的控制數(shù)據(jù)輸入總線端,第三通信單元(3-4)的通信數(shù)據(jù)輸出輸入總線端連接第三處理器(3-2)的通信數(shù)據(jù)輸出輸入總線端,第三處理器(3-2)的顯示數(shù)據(jù)輸出總線端連接第三顯示單元(3-3)的數(shù)據(jù)輸入總線端;第一節(jié)點(1)的第一通信單元(1-4)的CAN接口、第二節(jié)點(2)的第二通信單元(2-4)的CAN接口、第三節(jié)點(3)的第三通信單元(3-4)的CAN接口都依次連接在CAN總線上。
2.CAN節(jié)點報文發(fā)送等待條件與等待時間確定的方法,其特征在于它的步驟為一、啟動系統(tǒng);二、初始化第一節(jié)點(1),即通過第一鍵盤(1-1)對CAN控制器的各個寄存器的初始化、對定時器的初始化和對顯示單元的初始化,并通過相關(guān)寄存器的設(shè)置,保證第一節(jié)點(1)不接收任何報文;三、設(shè)置第一節(jié)點(1)的標(biāo)識符場、控制場和數(shù)據(jù)場;四、按下第一節(jié)點(1)的第一啟動發(fā)送按鈕(1-5),實施如下操作在總線空閑狀態(tài)下,使第一節(jié)點(1)發(fā)送一幀報文,然后立即檢測發(fā)送狀態(tài)并啟動定時器開始計時,通過判斷可知,第一節(jié)點(1)正在發(fā)送報文,即第一節(jié)點(1)報文已被立即發(fā)送,說明總線空閑條件下報文發(fā)送等待時間為零,同時判斷報文是否發(fā)送完成,如果報文未發(fā)送完成則繼續(xù)計時,發(fā)送完成則停止計時,并將計時值t0傳送給第一處理器(1-2)內(nèi)的時間寄存器,則t0即為總線空閑條件下該幀報文的實際發(fā)送時間,再把t0送第一顯示單元(1-3)顯示;五、初始化第二節(jié)點(2),并設(shè)置第二節(jié)點(2)的標(biāo)識符場、控制場和數(shù)據(jù)場,其步驟如下通過第二鍵盤(2-1)對CAN控制器的各個寄存器初始化,設(shè)置標(biāo)識符場時要保證第二節(jié)點(2)發(fā)送的報文優(yōu)先級比第一節(jié)點(1)發(fā)送的報文優(yōu)先級低;六、按下第二節(jié)點(2)的第二啟動發(fā)送按鈕(2-5),實施如下操作第二節(jié)點(2)連續(xù)發(fā)送報文,以使總線處于“忙”的狀態(tài);七、按下第一節(jié)點(1)的第一啟動發(fā)送按鈕(1-5),實施如下操作第一節(jié)點(1)發(fā)送一幀報文,并與步驟四發(fā)送的報文相同;同時啟動定時器開始計時,判斷報文是否發(fā)送完成,如果報文未發(fā)送完成則繼續(xù)計時,發(fā)送完成則停止計時,并將計時值傳送給第一處理器(1-2)內(nèi)的時間寄存器,計時值記為t1,令Δt10=t1-t0,則Δt10即為最高優(yōu)先級發(fā)送時的等待時間,再把Δt10送第一顯示單元(1-3)顯示;八、初始化第三節(jié)點(3),并設(shè)置第三節(jié)點(3)的標(biāo)識符場、控制場和數(shù)據(jù)場,其步驟如下通過第三鍵盤(3-1)對CAN控制器的各個寄存器初始化,保證第三節(jié)點(3)只接收第二節(jié)點(2)發(fā)送的報文,設(shè)置標(biāo)識符場時要保證第三節(jié)點(3)發(fā)送的報文優(yōu)先級比第一節(jié)點(1)發(fā)送的報文優(yōu)先級高;九、重新初始化第一節(jié)點(1),其步驟如下通過第一鍵盤(1-1)對CAN控制器的各個寄存器初始化,通過設(shè)置相關(guān)寄存器,保證第一節(jié)點(1)只接收第二節(jié)點(2)發(fā)送的報文;十、按下第二節(jié)點(2)的第二啟動發(fā)送按鈕(2-5),實施如下操作第二節(jié)點(2)連續(xù)發(fā)送報文,以使總線處于“忙”的狀態(tài),第一節(jié)點(1)和第三節(jié)點(3)成功接收第二節(jié)點(2)的報文后,等待一個相同的隨機時間,然后同時發(fā)送報文,由于第三節(jié)點(3)的報文優(yōu)先級比第一節(jié)點(1)的高,因此第三節(jié)點(3)贏得仲裁;第一節(jié)點(1)在啟動發(fā)送后同時啟動定時器開始計時,判斷報文是否發(fā)送完成,如果報文未發(fā)送完成則繼續(xù)計時,發(fā)送完成則停止計時,并將計時值傳送給第二處理器(2-2)內(nèi)的時間寄存器,計時值記為t2,令Δt20=t2-t0,則Δt20即為中間優(yōu)先級報文發(fā)送時的等待時間;十一、結(jié)束。
全文摘要
CAN節(jié)點報文發(fā)送等待條件與等待時間確定的系統(tǒng)及方法,它涉及的是CAN節(jié)點報文發(fā)送等待條件與等待時間確定的技術(shù)領(lǐng)域。它是為了克服現(xiàn)有技術(shù)存在不能有效的對MAC機制、報文發(fā)送的各組成時間/延時進行確定的問題。第一通信單元(1-4)、第二通信單元(2-4)、第三通信單元(3-4)的CAN接口都依次連接在CAN總線上;它的步驟(一)、啟動系統(tǒng);(二)、初始化第一節(jié)點(1);(三)、設(shè)置第一節(jié)點(1)的標(biāo)識符場、控制場和數(shù)據(jù)場;(四)、按下第一啟動發(fā)送按鈕(1-5);(五)、初始化第二節(jié)點(2);(六)、按下第二啟動發(fā)送按鈕(2-5);(七)、按下第一啟動發(fā)送按鈕(1-5);(八)、初始化第三節(jié)點(3);(九)、重新初始化第一節(jié)點(1);(十)、按下第二啟動發(fā)送按鈕(2-5)。本發(fā)明能實時對MAC機制、報文發(fā)送的各組成時間/延時進行確定。
文檔編號H04L12/56GK1909490SQ20061001042
公開日2007年2月7日 申請日期2006年8月22日 優(yōu)先權(quán)日2006年8月22日
發(fā)明者佟為明, 劉勇, 林景波, 李鳳閣, 李中偉, 金顯吉, 高洪偉 申請人:哈爾濱工業(yè)大學(xué)