一種雙冗余can總線數據發(fā)送方法
【專利摘要】本發(fā)明為了提高數據傳輸的實時性及降低數據在兩個通道傳輸的延遲差,基于雙冗余通道數據同發(fā)同收技術提供了一種在雙冗余CAN總線網絡中實現雙冗余CAN總線數據發(fā)送的方法,包括如下步驟:(1)對待發(fā)送的數據進行整理,并根據預先確定的發(fā)送實時性優(yōu)先級由高到低對數據進行分類;(2)為經過步驟(1)的分類后得到的數據分配不同的消息標識符;(3)同時向兩個CAN控制器寫入數據,啟動數據的發(fā)送。本方法不需要現有技術中復雜的通道切換檢測方法,并且能夠進一步提高CAN總線通信的可靠性;同時,降低了相同數據在兩個總線上發(fā)送時的傳輸延遲。
【專利說明】—種雙冗余CAN總線數據發(fā)送方法
【技術領域】
[0001]本發(fā)明屬于數據通信【技術領域】,更具體地,涉及一種雙冗余CAN總線數據發(fā)送方法。
【背景技術】
[0002]CAN總線具有標準幀和擴展幀兩種幀類型,標準幀采用11位的標識符,擴展幀采用29位的標識符。雙冗余CAN總線網絡的幀類型可為標準幀,也可為擴展幀。CAN總線的數據幀主要由仲裁場、控制場和數據場組成。仲裁場由CAN消息標識符構成,CAN消息標識符用于表征該消息的功能,例如通道檢測幀的CAN消息標識符用于表征該數據幀為通道檢測幀,同時對CAN通信起仲裁的作用。數據場攜帶CAN消息數據。
[0003]應用傳統(tǒng)的單CAN總線的控制網絡時,有時會出現某些失效環(huán)節(jié),比如主干線故障、分支線故障、驅動電路故障等。因此,雙冗余CAN總線網絡能夠很好地克服上述缺點。
[0004]就此, 申請人:開展了雙冗余CAN總線網絡的應用研究,先后嘗試采用了雙冗余通道熱切換技術以及雙冗余通道數據同發(fā)同收技術。
[0005]雙冗余通道熱切換技術是將雙冗余CAN總線的一個通道作為工作通道,另外一個通道熱備份。當工作通道出現故障時,切換到備份通道,備份通道作為工作通道繼續(xù)工作,原來的通道如果修復好則作為備份通道,如果不能修復好則標識故障。
[0006]雙冗余通道數據同發(fā)同收技術是將雙冗余CAN總線的兩個通道都作為工作通道,相同的數據在兩個通道上同時傳送,只要有一個通道數據傳送通暢,就認為工作正常。
[0007]然而,現有技術中,尚無針對同發(fā)同收技術的雙冗余CAN總線網絡的數據發(fā)送的有效解決方案。中國專利申請CN201110169089.0公開了一種CAN網絡數據發(fā)送方法,包括:分別設定CAN網絡中所有CAN節(jié)點的發(fā)送順序;所有CAN節(jié)點按照各自設定的發(fā)送順序依次向其它所有CAN節(jié)點發(fā)送信息,克服了現有CAN網絡中多個CAN節(jié)點同時向一個CAN節(jié)點發(fā)送信息,但數據發(fā)送的實時性較差。
【發(fā)明內容】
[0008]為了提高數據傳輸的實時性及降低數據在兩個通道傳輸的延遲差,本發(fā)明基于雙冗余通道數據同發(fā)同收技術提供了一種在雙冗余CAN總線網絡(或稱雙冗余CAN總線通信系統(tǒng))中實現雙冗余CAN總線數據發(fā)送的方法。
[0009]所述雙冗余CAN總線網絡包括一個處理器及與該處理器連接的兩條CAN總線,兩條CAN總線上均依次連接有CAN總線控制器和CAN總線驅動器,通信數據在所述兩條CAN總線上同時發(fā)送。
[0010]所述數據發(fā)送方法包括如下步驟:
[0011](I)對待發(fā)送的數據進行整理,并根據預先確定的發(fā)送實時性優(yōu)先級由高到低對數據進行分類;
[0012](2)為經過步驟(I)的分類后得到的數據分配不同的消息標識符;[0013](3)同時向兩個CAN控制器寫入數據,啟動數據的發(fā)送。
[0014]進一步地,所述步驟(2)和步驟(3)之間還包括:將待發(fā)送的數據的消息標識符、數據長度、數據打包成一幀數據,并將該幀數據送入發(fā)送隊列,所述發(fā)送隊列用于暫存待發(fā)送的多幀數據,所述發(fā)送隊列直接并同時向兩個CAN控制器寫入數據。
[0015]進一步地,所述步驟(3)包括所述處理器同時向所述兩個CAN控制器寫入發(fā)送數據,并啟動CAN總線驅動器進行數據發(fā)送。
[0016]進一步地,所述經過步驟(I)的分類后得到的數據包括:故障信息數據、通道檢測信息數據、控制指令信息數據、配置指令信息數據、過程信息數據及節(jié)點狀態(tài)信息數據。
[0017]進一步地,在步驟(2)中,所述數據按照優(yōu)先級由高到低進行消息標識符的分配。
[0018]本發(fā)明的有益效果如下:在雙冗余CAN總線通信系統(tǒng)上,本發(fā)明基于雙冗余通道數據同發(fā)同收技術實現數據發(fā)送,不需要現有技術中復雜的通道切換檢測方法,并且能夠進一步提高CAN總線通信的可靠性。此外,同時向兩個CAN控制器寫入數據,啟動數據發(fā)送,降低了相同數據在兩個總線上發(fā)送時的傳輸延遲。
【專利附圖】
【附圖說明】
[0019]圖1是根據本發(fā)明的一個實施例的雙冗余CAN總線網絡示意圖;
[0020]圖2是根據本發(fā)明的一個實施例的CAN接口擴展示意圖;
[0021]圖3是根據本發(fā)明的一個實施例的雙冗余CAN總線數據發(fā)送方法的流程圖。
【具體實施方式】
[0022]如圖1-2所示,描繪了根據本發(fā)明的一個實施例的雙冗余CAN總線網絡的結構和CAN接口擴展示意圖。
[0023]在硬件上,雙冗余CAN總線同時使用兩條CAN總線、兩個CAN總線驅動器和兩個CAN總線控制器和一個CPU。CPU通過不同的端口和中斷同時控制兩個CAN控制器。
[0024]在一個優(yōu)選的實施例中,所采用的雙冗余CAN總線BUS A、BUS B要求使用相同兩套CAN設備,從而實現物理介質的隔離。BUS A的CAN設備包括獨立的總線電纜、總線驅動器1-2和總線控制器1-1,BUS B的CAN設備包括獨立的總線電纜、總線驅動器2_2和總線控制器2-1。CPUl由FPGA實現。
[0025]工作過程中,發(fā)送時可以通過兩條總線BUS A、BUS B發(fā)送同一組數據;接收時CPU控制器1-1和2-1可以同時處理兩路總線BUS A、BUS B上發(fā)來的數據,接收并進行適當處理。
[0026]在一個優(yōu)選的實施例中,雙冗余CAN接口卡1-1和1-2均采用SJA1000。兩個雙冗余CAN接口卡1-1和1-2共提供兩路獨立的CAN接口、CAN總線控制芯片的8位地址/數據總線,還提供讀寫控制信號。SJA1000輸出信號經過光耦連接CAN收發(fā)器PCA82C250,PCA82C250供電電源為隔離電源,由隔離式電源轉換模塊提供。CAN總線的復位信號由FPGA芯片提供,CAN控制器SJA1000的中斷信號輸出到FPGA。
[0027]軟件設計上,雙冗余CAN接口卡1-1和1-2采用VXWorks開發(fā)驅動。VXWorks操作系統(tǒng)是風河公司(Wind River SyStem)推出的一款運行在目標機上的高性能、可裁減的嵌入式強實時操作系統(tǒng),它包括進程管理、存儲管理、設備管理、文件系統(tǒng)管理、網絡協(xié)議及系統(tǒng)應用等幾個部分,只占用了很小的存儲空間,并可高度裁減,保證了系統(tǒng)能以較高的效率運行。它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中。
[0028]VXfforks操作系統(tǒng)提供幾種標準驅動模型,如串行設備驅動、塊設備驅動、網絡接口驅動、總線控制器驅動等。根據設備不同,可選擇相應的標準驅動模型或自定CAN模塊是串行設備,設計選擇了標準串行設備驅動模型。
[0029]根據本發(fā)明的一個實施例提供的數據發(fā)送方法是基于上述圖1的雙冗余CAN總線網絡和圖2的CAN接口的,如圖3的流程圖所示,具體包括如下步驟:
[0030]步驟100:對待發(fā)送的數據進行整理,并根據預先確定的發(fā)送實時性優(yōu)先級由高到低對數據進行分類,得到包括故障信息數據、通道檢測信息數據、控制指令信息數據、配置指令信息數據、過程信息數據及節(jié)點狀態(tài)信息數據在內的多種數據。
[0031]步驟200:為經過步驟(I)的分類后得到的數據分配不同的消息標識符。這些數據按照優(yōu)先級由高到低進行消息標識符的分配。步驟300:同時向兩個CAN控制器寫入數據,啟動數據的發(fā)送。根據本發(fā)明的一個優(yōu)選的實施例,在此步驟中,所述處理器同時向所述兩個CAN控制器寫入發(fā)送數據,并啟動CAN總線驅動器進行數據發(fā)送。
[0032]在另一個優(yōu)選的實施例中,在上述步驟(2)和步驟(3)之間還包括:將待發(fā)送的數據的消息標識符、數據長度、數據打包成一幀數據,并將該幀數據送入發(fā)送隊列,所述發(fā)送隊列用于暫存待發(fā)送的多幀數據,所述發(fā)送隊列直接并同時向兩個CAN控制器寫入數據。這樣,待發(fā)送的多幀數據和CAN硬件直接打交道,規(guī)避了其他環(huán)節(jié)引起的時間延遲。這種方式能夠保證時序控制等引起的雙通道數據發(fā)送的延遲降到最小。
[0033]以上的各實施例僅僅是對本發(fā)明的優(yōu)選實施方式進行描述,并非對本發(fā)明的范圍進行限定,在不脫離本發(fā)明設計精神的前提下,本領域普通工程技術人員對本發(fā)明的技術方案做出的各種變形和改進,均應落入本發(fā)明的權利要求書確定的保護范圍內。
【權利要求】
1.一種在雙冗余CAN總線網絡基于雙冗余通道數據同發(fā)同收技術的數據發(fā)送方法,所述雙冗余CAN總線網絡包括一個處理器及與該處理器連接的兩條CAN總線,兩條CAN總線上均依次連接有CAN總線控制器和CAN總線驅動器,通信數據在所述兩條CAN總線上同時發(fā)送,其特征在于,所述數據發(fā)送方法包括如下步驟: (1)對待發(fā)送的數據進行整理,并根據預先確定的發(fā)送實時性優(yōu)先級由高到低對數據進行分類; (2)為經過步驟(I)的分類后得到的數據分配不同的消息標識符; (3)同時向兩個CAN控制器寫入數據,啟動數據的發(fā)送。
2.根據權利要求1所述的數據發(fā)送方法,其特征在于,所述步驟(2)和步驟(3)之間還包括:將待發(fā)送的數據的消息標識符、數據長度、數據打包成一幀數據,并將該幀數據送入發(fā)送隊列,所述發(fā)送隊列用于暫存待發(fā)送的多幀數據,所述發(fā)送隊列直接并同時向兩個CAN控制器寫入數據。
3.根據權利要求1或2所述的數據發(fā)送方法,其特征在于,所述步驟(3)包括所述處理器同時向所述兩個CAN控制器寫入發(fā)送數據,并啟動CAN總線驅動器進行數據發(fā)送。
4.根據權利要求1或2所述的數據發(fā)送方法,其特征在于,所述經過步驟(I)的分類后得到的數據包括:故障信息數據、通道檢測信息數據、控制指令信息數據、配置指令信息數據、過程信息數據及節(jié)點狀態(tài)信息數據。
5.根據權利要求1或2所述的數據發(fā)送方法,其特征在于,在步驟(2)中,所述數據按照優(yōu)先級由高到低進行消息標識符的分配。
【文檔編號】H04L12/40GK103840993SQ201410117301
【公開日】2014年6月4日 申請日期:2014年3月26日 優(yōu)先權日:2013年10月10日
【發(fā)明者】王小軍, 李向陽, 孫招鳳, 李 榮, 梁財海, 許進亮 申請人:北京航天發(fā)射技術研究所, 中國運載火箭技術研究院