專利名稱:基于can網絡的數據通訊系統(tǒng)及基于該系統(tǒng)的數據通訊方法
技術領域:
本發(fā)明涉及測控網絡總線通訊領域。
背景技術:
CAN是ControllerAreaNetwork的縮寫,是ISO國際標準化的串行通信協(xié)議。1986年德國電氣商博世公司為解決現代汽車中眾多的電子控制單元(ECU)之間的數據交換而開發(fā)的一種串行數據通信協(xié)議。CAN總線通信接口中集成了 CAN協(xié)議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作。CAN最大的特點是廢除了傳統(tǒng)的站地址編碼,取而代之對通信數據塊進行編碼。采用這種方法的優(yōu)點可使網絡內的節(jié)點個數在理論上不受限制。它采用雙線多主/從模塊方式,所以一個模塊出故障對系統(tǒng)不會有什么影響,就是一般稱的被緩機制。目前CAN的高性能和可靠性已被認同,并被廣泛的應用于分布式測控系統(tǒng)之間的通訊領域。以CAN總線技術組建的分布式測控網絡,用于連接現場的智能傳感器、執(zhí)行器、智能I/o模塊、智能儀表、測試儀器等,就形成了基于CAN的測控網絡。目前,CAN總線使用的技術規(guī)范主要是CAN2. OA和CAN2. OB, CAN2. OA報文標示符可以達到2032種,而擴展標準CAN2. OB的報文標示符幾乎不受限制。為了保證數據通訊的可靠性要求,CAN2. O技術規(guī)范中規(guī)定CAN總線數據采用短幀結構,一般數據長度不超過8個字節(jié),組成一個單幀,這樣的好處是傳輸時間短,受干擾概率低,具有良好的檢錯效果。但是由于測控網絡之間ECU與ECU之間或者測控設備與ECU之間的信息交換通常超過8個字節(jié),因此,必須進行有效的多幀數據通訊的方法。
發(fā)明內容
本發(fā)明是為了在基于CAN網絡的通訊系統(tǒng)中,實現不增加系統(tǒng)額外資源的情況下提高字節(jié)數據傳輸能力,從而提供一種基于CAN網絡的數據通訊系統(tǒng)及基于該系統(tǒng)的數據通訊方法?;贑AN網絡的數據通訊系統(tǒng),它包括發(fā)送端I、發(fā)送數據請求模塊、數據拆分模塊31、接收端2、接收數據請求模塊、數據重組模塊32、時間管理模塊4、一號錯誤處理模塊51和二號錯誤處理模塊52 ;發(fā)送端I是發(fā)送數據請求模塊的E⑶數據請求的主動提供者;發(fā)送數據請求模塊用于將ECU數據請求發(fā)送至數據拆分模塊31 ;接收端2是接收數據請求模塊的ECU數據請求的被動接收者;接收數據請求模塊用于接收來自數據重組模塊32的數據;數據拆分模塊31用于對數據進行拆分;還用于將拆分后的數據發(fā)送到CAN網絡;數據重組模塊32用于從CAN網絡中接收數據,還用于對數據進行重組;時間管理模塊4用于對數據拆分模塊31和數據重組模塊32進行時間管理;還用于當數據拆分模塊31出現錯誤時序時,將錯誤信息提供給一號錯誤處理模塊51 ;還用于將數據重組模塊32出現錯誤時序時,將錯誤信息提供給二號錯誤處理模塊52 ;一號錯誤處理模塊51用于回復信息給發(fā)送端I ;二號錯誤處理模塊52用于回復信息給接收端2?;谏鲜鱿到y(tǒng)的數據通訊方法,它由以下步驟實現步驟一、首先為連接在總線上的數據通訊系統(tǒng)E⑶分配發(fā)送與接收的唯一身份標識ID,并將其建立成一個地址映射字典;步驟二、當發(fā)送端要請求數據發(fā)送的時,則根據發(fā)送端的身份標識ID,并查找地址映射字典,開通一個通訊通道,動態(tài)創(chuàng)建一個用戶協(xié)議數據單元rou,并為PDU分配所需要·的資源信息,進入發(fā)送數據處理步驟;當接收端根據接收身份標識,判斷出要接收數據時,則查找地址映射字典,開通一個通訊通道,動態(tài)創(chuàng)建一個用戶協(xié)議數據單元rou,為PDU分配所需要的資源信息,進入接收數據處理步驟;發(fā)送數據處理步驟 步驟Al、首先判斷發(fā)送端請求的數據量,需要采取不同的解決方式進行數據傳送;并判斷請求的數據量是否小于8個字節(jié),如果判斷結果為是,則執(zhí)行步驟A2,如果判斷結果為否,則執(zhí)行步驟A3;步驟A2、通過發(fā)送管理模塊,采用一個CAN幀將完整的請求數據傳送出去,并執(zhí)行步驟A5 ;步驟A3、通過發(fā)送管理模塊,進入發(fā)送多幀數據處理狀態(tài),并執(zhí)行步驟A31 ;步驟A31、進行請求數據的拆分,并對拆分的多幀數據進行順序編號,保證接收實體能夠根據編號的順序來判斷接收到的數據幀是否正確,以及能夠重組多段數據幀,得到完整的原始請求數據,并首先發(fā)送第一幀數據即首幀數據;發(fā)送完成后,等待接收端應答信息,即流控幀,并設定超時等待參數,執(zhí)行步驟A32 ;步驟A32、判斷在超時等待的時間內,是否收到流控數據幀,如果判斷結果為否,則執(zhí)行步驟A4 ;如果判斷結果為是,則執(zhí)行步驟A33 ;步驟A33、收到流控數據幀后,根據編號順序,判斷是否為最后一幀數據,如果判斷結果為否,則繼續(xù)發(fā)送一幀數據,即連續(xù)幀,重新延時等待接收流控幀,并執(zhí)行返回執(zhí)行步驟步驟A32 ;如果判斷結果為是,則執(zhí)行步驟A5 ;步驟A4、終止數據發(fā)送,并執(zhí)行步驟A5 ;步驟A5、向發(fā)送端回復發(fā)送狀態(tài)信息,結束數據發(fā)送,并進執(zhí)行步驟A6 ;步驟A6、刪除H)U,釋放PDU占用的內存空間,釋放占用的通訊通路;完成發(fā)送數據處理;接收數據處理步驟步驟BI、接收端收到CAN網絡提供的數據幀,判斷該數據幀是否為單幀,如果判斷結果為是,則執(zhí)行步驟B2 ;如果判斷結果為否,則執(zhí)行步驟B3 ;步驟B2、接收到單幀,進入步驟B5 ;步驟B3、接收到首幀,設定延時發(fā)送時間參數,等待發(fā)送流控數據幀;發(fā)送流控幀后,設置等待接收連續(xù)幀超時時間參數;并判斷數據是否接收完畢,如果判斷結果為否,則執(zhí)行步驟B31 ;如果判斷結果為是,則執(zhí)行步驟B33 ;步驟B31、判斷是否在規(guī)定時間內接收到連續(xù)幀,如果判斷結果為是,則執(zhí)行步驟B32 ;如果判斷結果為否,則執(zhí)行步驟B4 ;步驟B32、繼續(xù)進行后續(xù)的數據接收工作,并判斷是否完成接收,如果判斷結果為是,則執(zhí)行步驟B5 ;如果判斷結果為否,則執(zhí)行步驟B31 ;步驟B33、根據預設的數據格式,進行數據重組,并執(zhí)行步驟B5 ;步驟B4、進入超時處理,終止數據接收,并執(zhí)行步驟B5 ;步驟B5、給發(fā)送端回復接收狀態(tài)信息,將數據上報接收端,退出接收功能,進入步 驟B6 ;步驟B6、刪除rou,釋放rou占用的內存空間,釋放占用的通訊通路;完成接收數據處理。步驟一中建立的地址映射字典是一個一維數據表格,該一維數據表格中的數據項包括ECU的地址信息,即包括發(fā)送端的地址映射字典和接收端的地址映射字典。步驟二中所述的開通一個通訊通道的具體含義是初始化CAN通訊功能,完成開啟通路和通路波特率的設定。步驟二中動態(tài)創(chuàng)建的用戶協(xié)議數據單元rou中的數據項包括地址信息、身份標識、狀態(tài)信息、數據緩存、數據長度和當前收發(fā)數據的長度。在該數據通訊方法中,時間管理是通過定時中斷來實現延時與超時控制。在該數據通訊方法中,時間管理是采用計時鏈表來實現。在該數據通訊方法中,采用錯誤處理機制處理處理超時情況或沒有及時接收到連續(xù)幀的問題,具體為接收端接收到數據幀時當收到單幀的長度為O時或者單幀的長度大于7時,接收端會忽略接收到的數據幀;當收到無效首幀或者單幀時,向發(fā)送端發(fā)出無效回復信息,數據發(fā)送將被終止;當收到正確的首幀時,向發(fā)送端回復流控幀,并且定時連續(xù)幀超時參數;當發(fā)生超時情況時,向接收端發(fā)出超時信息,采取超時處理;當接收端沒有及時接收到連續(xù)幀時,終止數據接收,向接收端回復信息;當發(fā)送端沒有及時收到流控幀時,終止數據傳送,向發(fā)送端回復錯誤信息。在該數據通訊方法中,采用錯誤處理機制處理超時情況或沒有及時接收到連續(xù)幀的問題,發(fā)送端發(fā)送數據幀時當發(fā)送數據無效或者數據長度錯誤時,丟掉數據;當發(fā)送數據有效并且數據長度可以形成多幀數據時,首先發(fā)送首幀數據,并且定時流控陣超時參數;當發(fā)生超時情況時,向發(fā)送端回復超時信息,采取超時處理;當發(fā)送端沒有及時收到流控幀時,終止數據傳送,向發(fā)送端回復錯誤信息;當發(fā)送端正確接收到流控陣時,繼續(xù)數據傳送,向接收端傳送連續(xù)中貞。本發(fā)明基于CAN網絡的數據通訊系統(tǒng)及基于該系統(tǒng)的數據通訊方法,實現了在不增加系統(tǒng)額外資源的情況下提高字節(jié)數據傳輸能力。解決了 CAN2. O規(guī)范中只能傳遞小于8個字節(jié)數據的缺點,同時滿足對系統(tǒng)資源的苛刻要求情況下,實現了大于8個字節(jié)數據的準確傳輸。本發(fā)明尤其對于測控網絡通訊要求比較苛刻的情況下,減小系統(tǒng)中的運行資源,很好的滿足性能要求,是系統(tǒng)高效的工作。
圖I為CAN網絡通訊方法的結 構示意圖;圖2為CAN網絡通訊方法發(fā)送端請求數據發(fā)送的方法流程圖;圖3為CAN網絡通訊方法接收端請求數據接收的方法流程圖;圖中“Y”表示“是”,“N”表示“否”;圖4為CAN網絡通訊方法中用戶協(xié)議數據單元創(chuàng)建示意圖;圖5為CAN網絡通訊方法時間管理機制方法流程圖;圖6為CAN網絡通訊方法中時間管理機制方法示意圖;圖7為CAN網絡通訊方法中單幀數據的收發(fā)方法示意圖;圖8為CAN網絡通訊方法中多幀數據的收發(fā)方法示意圖。
具體實施例方式具體實施方式
一、結合圖I說明本具體實施方式
,基于CAN網絡的數據通訊系統(tǒng),它包括發(fā)送端I、發(fā)送數據請求模塊、數據拆分模塊31、接收端2、接收數據請求模塊、數據重組模塊32、時間管理模塊4、一號錯誤處理模塊51和二號錯誤處理模塊52 ;發(fā)送端I是發(fā)送數據請求模塊的E⑶數據請求的主動提供者;發(fā)送數據請求模塊用于將ECU數據請求發(fā)送至數據拆分模塊31 ;接收端2是接收數據請求模塊的ECU數據請求的被動接收者;接收數據請求模塊用于接收來自數據重組模塊32的數據;數據拆分模塊31用于對數據進行拆分;還用于將拆分后的數據發(fā)送到CAN網絡;數據重組模塊32用于從CAN網絡中接收數據,還用于對數據進行重組;時間管理模塊4用于對數據拆分模塊31和數據重組模塊32進行時間管理;還用于當數據拆分模塊31出現錯誤時序時,將錯誤信息提供給一號錯誤處理模塊51 ;還用于將數據重組模塊32出現錯誤時序時,將錯誤信息提供給二號錯誤處理模塊52 ;一號錯誤處理模塊51用于回復信息給發(fā)送端I ;二號錯誤處理模塊52用于回復信息給接收端2。CAN網絡地址映射字典如表I所示表I
權利要求
1.基于CAN網絡的數據通訊系統(tǒng),其特征是它包括發(fā)送端(I)、發(fā)送數據請求模塊、數據拆分模塊(31)、接收端(2)、接收數據請求模塊、數據重組模塊(32)、時間管理模塊(4)、 一號錯誤處理模塊(51)和二號錯誤處理模塊(52);發(fā)送端(I)是發(fā)送數據請求模塊的E⑶數據請求的主動提供者;發(fā)送數據請求模塊用于將E⑶數據請求發(fā)送至數據拆分模塊(31);接收端(2)是接收數據請求模塊的ECU數據請求的被動接收者;接收數據請求模塊用于接收來自數據重組模塊(32)的數據;數據拆分模塊(31)用于對數據進行拆分;還用于將拆分后的數據發(fā)送到CAN網絡; 數據重組模塊(32)用于從CAN網絡中接收數據,還用于對數據進行重組;時間管理模塊(4)用于對數據拆分模塊(31)和數據重組模塊(32)進行時間管理;還用于當數據拆分模塊(31)出現錯誤時序時,將錯誤信息提供給一號錯誤處理模塊(51);還用于將數據重組模塊(32)出現錯誤時序時,將錯誤信息提供給二號錯誤處理模塊(52); 一號錯誤處理模塊(51)用于回復信息給發(fā)送端(I);二號錯誤處理模塊(52)用于回復信息給接收端(2)。
2.基于權利要求I的數據通訊方法,其特征在于,它由以下步驟實現步驟一、首先為連接在總線上的數據通訊系統(tǒng)ECU分配發(fā)送與接收的唯一身份標識 ID,并將其建立成一個地址映射字典;步驟二、當發(fā)送端要請求數據發(fā)送的時,則根據發(fā)送端的身份標識ID,并查找地址映射字典,開通一個通訊通道,動態(tài)創(chuàng)建一個用戶協(xié)議數據單元H)U,并為PDU分配所需要的資源信息,進入發(fā)送數據處理步驟;當接收端根據接收身份標識,判斷出要接收數據時,則查找地址映射字典,開通一個通訊通道,動態(tài)創(chuàng)建一個用戶協(xié)議數據單元rou,為PDU分配所需要的資源信息,進入接收數據處理步驟;發(fā)送數據處理步驟步驟Al、首先判斷發(fā)送端請求的數據量,需要采取不同的解決方式進行數據傳送;并判斷請求的數據量是否小于8個字節(jié),如果判斷結果為是,則執(zhí)行步驟A2,如果判斷結果為否,則執(zhí)行步驟A3;步驟A2、通過發(fā)送管理模塊,采用一個CAN幀將完整的請求數據傳送出去,并執(zhí)行步驟A5 ;步驟A3、通過發(fā)送管理模塊,進入發(fā)送多幀數據處理狀態(tài),并執(zhí)行步驟A31 ;步驟A31、進行請求數據的拆分,并對拆分的多幀數據進行順序編號,保證接收實體能夠根據編號的順序來判斷接收到的數據幀是否正確,以及能夠重組多段數據幀,得到完整的原始請求數據,并首先發(fā)送第一幀數據即首幀數據;發(fā)送完成后,等待接收端應答信息,即流控幀,并設定超時等待參數,執(zhí)行步驟A32 ;步驟A32、判斷在超時等待的時間內,是否收到流控數據幀,如果判斷結果為否,則執(zhí)行步驟A4 ;如果判斷結果為是,則執(zhí)行步驟A33 ;步驟A33、收到流控數據幀后,根據編號順序,判斷是否為最后一幀數據,如果判斷結果為否,則繼續(xù)發(fā)送一幀數據,即連續(xù)幀,重新延時等待接收流控幀,并執(zhí)行返回執(zhí)行步驟步驟A32 ;如果判斷結果為是,則執(zhí)行步驟A5 ;步驟A4、終止數據發(fā)送,并執(zhí)行步驟A5 ; 步驟A5、向發(fā)送端回復發(fā)送狀態(tài)信息,結束數據發(fā)送,并進執(zhí)行步驟A6 ; 步驟A6、刪除rou,釋放rou占用的內存空間,釋放占用的通訊通路;完成發(fā)送數據處理; 接收數據處理步驟 步驟BI、接收端收到CAN網絡提供的數據幀,判斷該數據幀是否為單幀,如果判斷結果為是,則執(zhí)行步驟B2 ;如果判斷結果為否,則執(zhí)行步驟B3 ; 步驟B2、接收到單幀,進入步驟B5 ; 步驟B3、接收到首幀,設定延時發(fā)送時間參數,等待發(fā)送流控數據幀;發(fā)送流控幀后,設置等待接收連續(xù)幀超時時間參數;并判斷數據是否接收完畢,如果判斷結果為否,則執(zhí)行步驟B31 ;如果判斷結果為是,則執(zhí)行步驟B33 ; 步驟B31、判斷是否在規(guī)定時間內接收到連續(xù)幀,如果判斷結果為是,則執(zhí)行步驟B32 ;如果判斷結果為否,則執(zhí)行步驟B4 ; 步驟B32、繼續(xù)進行后續(xù)的數據接收工作,并判斷是否完成接收,如果判斷結果為是,則執(zhí)行步驟B5 ;如果判斷結果為否,則執(zhí)行步驟B31 ; 步驟B33、根據預設的數據格式,進行數據重組,并執(zhí)行步驟B5 ; 步驟B4、進入超時處理,終止數據接收,并執(zhí)行步驟B5 ; 步驟B5、給發(fā)送端回復接收狀態(tài)信息,將數據上報接收端,退出接收功能,進入步驟B6 ; 步驟B6、刪除rou,釋放rou占用的內存空間,釋放占用的通訊通路; 完成接收數據處理。
3.根據權利要求2所述的數據通訊方法,其特征在于步驟一中建立的地址映射字典是一個一維數據表格,該一維數據表格中的數據項包括ECU的地址信息,S卩包括發(fā)送端的地址映射字典和接收端的地址映射字典。
4.根據權利要求2所述的數據通訊方法,其特征在于步驟二中所述的開通一個通訊通道的具體含義是初始化CAN通訊功能,完成開啟通路和通路波特率的設定。
5.根據權利要求2所述的數據通訊方法,其特征在于步驟二中動態(tài)創(chuàng)建的用戶協(xié)議數據單元PDU中的數據項包括地址信息、身份標識、狀態(tài)信息、數據緩存、數據長度和當前收發(fā)數據的長度。
6.根據權利要求2所述的數據通訊方法,其特征在于在該數據通訊方法中,時間管理是通過定時中斷來實現延時與超時控制。
7.根據權利要求6所述的數據通訊方法,其特征在于在該數據通訊方法中,時間管理是采用計時鏈表來實現。
8.根據權利要求2所述的數據通訊方法,其特征在于在該數據通訊方法中,采用錯誤處理機制處理超時情況或沒有及時接收到連續(xù)幀的問題,具體為接收端接收到數據幀時 當收到單幀的長度為O時或者單幀的長度大于7時,接收端會忽略接收到的數據幀; 當收到無效首幀或者單幀時,向發(fā)送端發(fā)出無效回復信息,數據發(fā)送將被終止; 當收到正確的首幀時,向發(fā)送端回復流控幀,并且定時連續(xù)幀超時參數;當發(fā)生超時情況時,向接收端發(fā)出超時信息,采取超時處理; 當接收端沒有及時接收到連續(xù)幀時,終止數據接收,向接收端回復信息; 當發(fā)送端沒有及時收到流控幀時,終止數據傳送,向發(fā)送端回復錯誤信息。
9.根據權利要求2所述的數據通訊方法,其特征在于在該數據通訊方法中,采用錯誤處理機制處理超時情況或沒有及時接收到連續(xù)幀的問題,具體為發(fā)送端發(fā)送數據幀時 當發(fā)送數據無效或者數據長度錯誤時,丟掉數據; 當發(fā)送數據有效并且數據長度可以形成多幀數據時,首先發(fā)送首幀數據,并且定時流控陣超時參數; 當發(fā)生超時情況時,向發(fā)送端回復超時信息,采取超時處理; 當發(fā)送端沒有及時收到流控幀時,終止數據傳送,向發(fā)送端回復錯誤信息; 當發(fā)送端正確接收到流控陣時,繼續(xù)數據傳送,向接收端傳送連續(xù)中貞。
全文摘要
基于CAN網絡的數據通訊系統(tǒng)及基于該系統(tǒng)的數據通訊方法,涉及測控網絡總線通訊領域。它是為了在基于CAN網絡的通訊系統(tǒng)中,實現不增加系統(tǒng)額外資源的情況下提高字節(jié)數據傳輸能力。本發(fā)明的數據通訊系統(tǒng)包括發(fā)送端、發(fā)送數據請求模塊、接收端、接收數據請求模塊、數據接收模塊、時間管理模塊、一號錯誤處理模塊和二號錯誤處理模塊。其方法定義了數據傳輸格式后,連接在CAN網絡上的ECU準備收發(fā)總線上的數據,整理成符合應用層數據通訊幀格式,對數據進行拆分、組包處理。并且在此基礎上,建立可靠的收發(fā)機制、時間管理機制和錯誤處理機制功能維護系統(tǒng)正常的運轉,實現了CAN總線數據準確快捷的通訊。本發(fā)明適用于測控網絡總線通訊。
文檔編號H04L12/40GK102932224SQ20121048287
公開日2013年2月13日 申請日期2012年11月23日 優(yōu)先權日2012年11月23日
發(fā)明者高會軍, 潘惠惠, 汪超, 于金泳 申請人:哈爾濱工業(yè)大學