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