本申請(qǐng)涉及通信技術(shù)領(lǐng)域,更具體地說,涉及一種AFDX總線消息的校驗(yàn)系統(tǒng)及方法。
背景技術(shù):
在航空電子網(wǎng)絡(luò)的通信過程中經(jīng)常包含一些數(shù)據(jù)或幀之間存在某種關(guān)聯(lián),需要保持接收的數(shù)據(jù)的順序完整性。AFDX(Avionics Full Duplex Switched Ethernet,航空電子全雙工交換式以太網(wǎng))通信協(xié)議中要求數(shù)據(jù)在給定的虛擬鏈路中保持順序完整性,為此,AFDX協(xié)議中提出了一種對(duì)虛擬鏈路中的數(shù)據(jù)順序進(jìn)行校驗(yàn)的通信規(guī)則:發(fā)送端通過“調(diào)度器”給一條虛擬鏈路上發(fā)送的每條數(shù)據(jù)分配一個(gè)SN(Sequence Number,序列號(hào)),每條數(shù)據(jù)的SN位于該條數(shù)據(jù)的尾部,SN從1-255循環(huán)遞增1,0代表發(fā)送端設(shè)備復(fù)位后發(fā)送的第一條數(shù)據(jù)。接收端在接收到一條虛擬鏈路的數(shù)據(jù)以后,將SN于從該條虛擬鏈路上接收到的上一條數(shù)據(jù)的SN進(jìn)行比對(duì),當(dāng)相鄰數(shù)據(jù)的SN的差值超過有效窗口時(shí),則丟棄當(dāng)前接收的數(shù)據(jù),以保證數(shù)據(jù)的順序完整性。
但是現(xiàn)有技術(shù)中對(duì)于數(shù)據(jù)的順序完整性的校驗(yàn)過程中,SN是以虛擬鏈路為單位進(jìn)行分配的,只能對(duì)一條虛擬鏈路上的數(shù)據(jù)順序進(jìn)行校驗(yàn),而不能對(duì)所有虛擬鏈路上的所有數(shù)據(jù)的順序進(jìn)行校驗(yàn),對(duì)于消息中數(shù)據(jù)的順序完整性的校驗(yàn)精度較低。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明提供了一種AFDX總線消息的校驗(yàn)系統(tǒng)及方法,以實(shí)現(xiàn)對(duì)所有虛擬鏈路上傳輸?shù)臄?shù)據(jù)的順序進(jìn)行校驗(yàn),增加對(duì)消息中數(shù)據(jù)的順序完整性的校驗(yàn)精度的目的。
為實(shí)現(xiàn)上述技術(shù)目的,本發(fā)明實(shí)施例提供了如下技術(shù)方案:
一種AFDX總線消息的校驗(yàn)系統(tǒng),包括:發(fā)送端和接收端;其中,
所述發(fā)送端用于生成消息,所述消息中至少包括一條數(shù)據(jù);
獲取本地時(shí)間作為時(shí)間戳,所述本地時(shí)間為所述發(fā)送端初始化之后的持續(xù)時(shí)間;
為所述消息中的每條數(shù)據(jù)分配所述時(shí)間戳,所述時(shí)間戳填充于所述數(shù)據(jù)的有效負(fù)載中;
所述接收端用于接收所述消息;
根據(jù)所述消息中每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn);
如果所述消息中的數(shù)據(jù)通過校驗(yàn),則接收通過校驗(yàn)的所述數(shù)據(jù),并將通過校驗(yàn)的數(shù)據(jù)的時(shí)間戳作為比對(duì)時(shí)間戳;
如果所述消息中的數(shù)據(jù)未通過校驗(yàn),則丟棄未通過校驗(yàn)的所述數(shù)據(jù),并將未通過校驗(yàn)的所述數(shù)據(jù)的時(shí)間戳作為所述比對(duì)時(shí)間戳。
可選的,所述為所述消息中的每條數(shù)據(jù)分配所述時(shí)間戳,具體為:
按照所述數(shù)據(jù)的發(fā)送順序?yàn)樗鱿⒅械拿織l數(shù)據(jù)分配所述時(shí)間戳。
可選的,所述時(shí)間戳填充于每條數(shù)據(jù)的有效負(fù)載的頭部。
可選的,所述根據(jù)所述消息中每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn),具體為:
按照所述數(shù)據(jù)的接收順序?qū)λ鱿⒅械拿織l數(shù)據(jù)進(jìn)行校驗(yàn);
校驗(yàn)過程為:
判斷所述消息中的每條數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳的差值是否大于或等于有效閾值,如果是,則所述數(shù)據(jù)通過校驗(yàn);如果否,則所述數(shù)據(jù)未通過校驗(yàn)。
可選的,所述有效閾值為0;
所述時(shí)間戳的大小大于或等于6字節(jié)。
一種AFDX總線消息的校驗(yàn)方法,應(yīng)用于發(fā)送端;所述AFDX總線消息的校驗(yàn)方法包括:
生成消息,所述消息中至少包括一條數(shù)據(jù);
獲取本地時(shí)間作為時(shí)間戳,所述本地時(shí)間為所述發(fā)送端初始化之后的持續(xù)時(shí)間;
為所述消息中的每條數(shù)據(jù)分配所述時(shí)間戳,所述時(shí)間戳填充于所述數(shù)據(jù)的有效負(fù)載中。
可選的,所述為所述消息中的每條數(shù)據(jù)分配所述時(shí)間戳,具體為:
按照所述數(shù)據(jù)的發(fā)送順序?yàn)樗鱿⒅械拿織l數(shù)據(jù)分配所述時(shí)間戳;其中,所述時(shí)間戳填充于每條數(shù)據(jù)的有效負(fù)載的頭部。
可選的,所述時(shí)間戳的大小大于或等于6字節(jié)。
一種AFDX總線消息的校驗(yàn)方法,應(yīng)用于接收端,所述AFDX總線消息的校驗(yàn)方法包括:
接收消息,所述消息中至少包括一條數(shù)據(jù);
根據(jù)所述消息中每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn);
如果所述消息中的數(shù)據(jù)通過校驗(yàn),則接收通過校驗(yàn)的所述數(shù)據(jù),并將通過校驗(yàn)的數(shù)據(jù)的時(shí)間戳作為比對(duì)時(shí)間戳;
如果所述消息中的數(shù)據(jù)未通過校驗(yàn),則丟棄未通過校驗(yàn)的所述數(shù)據(jù),并將未通過校驗(yàn)的所述數(shù)據(jù)的時(shí)間戳作為所述比對(duì)時(shí)間戳。
可選的,所述對(duì)所述消息中的每條數(shù)據(jù)進(jìn)行校驗(yàn),具體為:
按照所述數(shù)據(jù)的接收順序?qū)λ鱿⒅械拿織l數(shù)據(jù)進(jìn)行校驗(yàn);
校驗(yàn)過程為:
判斷所述消息中的每條數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳的差值是否大于或等于有效閾值,如果是,則所述數(shù)據(jù)通過校驗(yàn);如果否,則所述數(shù)據(jù)未通過校驗(yàn)。
從上述技術(shù)方案可以看出,本發(fā)明實(shí)施例提供了一種AFDX總線消息的校驗(yàn)系統(tǒng)及方法,其中,所述AFDX總線消息的校驗(yàn)系統(tǒng)的發(fā)送端在消息發(fā)送之前,在消息的每條數(shù)據(jù)的有效負(fù)載中分配一個(gè)時(shí)間戳來標(biāo)志消息中每條數(shù)據(jù)的順序,所述AFDX總線消息的校驗(yàn)系統(tǒng)的接收端根據(jù)接收到的消息中的每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn),依次判斷數(shù)據(jù)自身順序是否正常,從而實(shí)現(xiàn)了對(duì)所有虛擬鏈路中傳輸?shù)南?shù)據(jù)的順序進(jìn)行校驗(yàn)的目的,增加了對(duì)消息數(shù)據(jù)的順序完整性的校驗(yàn)精度。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請(qǐng)的一個(gè)實(shí)施例提供的一種AFDX總線消息的校驗(yàn)系統(tǒng)示意圖;
圖2和圖3為現(xiàn)有技術(shù)中的AFDX總線消息數(shù)據(jù)的格式結(jié)構(gòu)示意圖;
圖4和圖5為本申請(qǐng)實(shí)施例提供的AFDX總線消息數(shù)據(jù)的格式結(jié)構(gòu)示意圖;
圖6為本申請(qǐng)的一個(gè)實(shí)施例提供的一種AFDX總線消息的校驗(yàn)方法的流程示意圖;
圖7為本申請(qǐng)的另一個(gè)實(shí)施例提供的一種AFDX總線消息的校驗(yàn)方法的流程示意圖;
圖8為本申請(qǐng)的又一個(gè)實(shí)施例提供的一種AFDX總線消息的校驗(yàn)方法的流程示意圖;
圖9為本申請(qǐng)的一個(gè)實(shí)施例提供的一種數(shù)據(jù)校驗(yàn)過程的流程示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本申請(qǐng)實(shí)施例提供了一種AFDX總線消息的校驗(yàn)系統(tǒng),如圖1所示,包括:發(fā)送端和接收端;其中,
所述發(fā)送端用于生成消息,所述消息中至少包括一條數(shù)據(jù);
獲取本地時(shí)間作為時(shí)間戳,所述本地時(shí)間為所述發(fā)送端初始化之后的持續(xù)時(shí)間;
為所述消息中的每條數(shù)據(jù)分配所述時(shí)間戳,所述時(shí)間戳填充于所述數(shù)據(jù)的有效負(fù)載中;
所述接收端用于接收所述消息;
根據(jù)所述消息中每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn);
如果所述消息中的數(shù)據(jù)通過校驗(yàn),則接收通過校驗(yàn)的所述數(shù)據(jù),并將通過校驗(yàn)的數(shù)據(jù)的時(shí)間戳作為比對(duì)時(shí)間戳;
如果所述消息中的數(shù)據(jù)未通過校驗(yàn),則丟棄未通過校驗(yàn)的所述數(shù)據(jù),并將未通過校驗(yàn)的所述數(shù)據(jù)的時(shí)間戳作為所述比對(duì)時(shí)間戳。
需要說明的是,現(xiàn)有技術(shù)中的AFDX總線消息中的數(shù)據(jù)格式如圖2和圖3所示,其中,圖2示出的是現(xiàn)有技術(shù)中最小以太網(wǎng)框架長(zhǎng)度(minimum Ethernet frame length)的數(shù)據(jù)格式,包括:前導(dǎo)頭(Preamble,7bytes)、幀首定界符(Start Frame Delimiter,1byte)、目的物理地址(Destination Address,6bytes)、源物理地址(Source Address,6bytes)、協(xié)議類型(0x800 Ipv4,2bytes)、IP頭(IP Structure,20bytes)、UDP頭(UDP Structure,8bytes)、有效負(fù)載(AFDX Payload,1-17bytes)、補(bǔ)償(Padding,0-16bytes)、序列號(hào)(SN,1byte)、框架檢驗(yàn)序列(Frame Check Seq,4bytes)和框架間隔(Inter Frame Gap,12bytes)。圖3示出的是現(xiàn)有技術(shù)中最大以太網(wǎng)框架長(zhǎng)度(maximum Ethernet frame length)的數(shù)據(jù)格式,包括:前導(dǎo)頭(Preamble,7bytes)、幀首定界符(Start Frame Delimiter,1byte)、目的物理地址(Destination Address,6bytes)、源物理地址(Source Address,6bytes)、協(xié)議類型(0x800 Ipv4,2bytes)、IP頭(IP Structure,20bytes)、UDP頭(UDP Structure,8bytes)、有效負(fù)載(AFDX Payload,1471bytes)、序列號(hào)(SN,1byte)、框架檢驗(yàn)序列(Frame Check Seq,4bytes)和框架間隔(Inter Frame Gap,12bytes)。
由于SN是以虛擬鏈路為單位分配的,而一條虛擬鏈路上可以傳輸多條消息數(shù)據(jù),所以在現(xiàn)有技術(shù)中AFDX協(xié)議中的完整性校驗(yàn)規(guī)則只能對(duì)一條虛擬鏈路上的數(shù)據(jù)順序完整性進(jìn)行校驗(yàn),而不能對(duì)每條消息自身數(shù)據(jù)的順序進(jìn)行校驗(yàn);
另外,由于SN由“調(diào)度器”分配,從OSI(Open System Interconnection,開放系統(tǒng)互聯(lián))的七層參考模型來看,調(diào)度器位于網(wǎng)絡(luò)層和鏈路層之間,也就是說SN是在數(shù)據(jù)進(jìn)入網(wǎng)絡(luò)層之后分配的,而數(shù)據(jù)的有效負(fù)載產(chǎn)生于應(yīng)用層,這就意味著可能出現(xiàn)由于發(fā)送端一條消息的應(yīng)用數(shù)據(jù)順序發(fā)生了異常,即使在傳輸過程中保持了順序完整,接收端接收到的數(shù)據(jù)自身順序仍然是錯(cuò)誤的情況。
因此,參考圖4和圖5,所述發(fā)送端發(fā)送的每條數(shù)據(jù)的有效負(fù)載中包含了分配的時(shí)間戳(TTS),這個(gè)時(shí)間戳理論上可以位于每條數(shù)據(jù)的有效負(fù)載的任意位置,但是為了保證每條數(shù)據(jù)的有效負(fù)載的內(nèi)容完整和降低接收端校驗(yàn)難度,所述時(shí)間戳優(yōu)選位于所述有效負(fù)載的頭部或尾部;但為了與數(shù)據(jù)尾部原有的SN進(jìn)行區(qū)別,更優(yōu)選地,將所述時(shí)間戳設(shè)置于每條數(shù)據(jù)的有效負(fù)載的頭部。本申請(qǐng)對(duì)所述時(shí)間戳所處的具體位置并不做限定,具體視實(shí)際情況而定。
另外,所述時(shí)間戳包含的內(nèi)容為本地時(shí)間,所述本地時(shí)間指所述發(fā)送端初始化之后的持續(xù)時(shí)間,所述發(fā)送端的初始化包括重啟、復(fù)位或重新上電,也就是說在發(fā)送端重啟、復(fù)位或重新上電之后,所述本地時(shí)間從零開始計(jì)時(shí),所述本地時(shí)間用于標(biāo)識(shí)發(fā)送端初始化后的持續(xù)工作時(shí)間。
在本申請(qǐng)中,所述發(fā)送端在消息發(fā)送之前,在消息的每條數(shù)據(jù)的有效負(fù)載中分配一個(gè)時(shí)間戳來標(biāo)志消息中每條數(shù)據(jù)的順序,所述AFDX總線消息的校驗(yàn)系統(tǒng)的接收端根據(jù)接收到的消息中的每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn),依次判斷數(shù)據(jù)自身順序是否正常,從而實(shí)現(xiàn)了對(duì)所有虛擬鏈路中傳輸?shù)南?shù)據(jù)的順序進(jìn)行校驗(yàn)的目的,增加了對(duì)消息數(shù)據(jù)的順序完整性的校驗(yàn)精度。
在上述實(shí)施例的基礎(chǔ)上,在本申請(qǐng)的一個(gè)實(shí)施例中,所述為所述消息中的每條數(shù)據(jù)分配所述時(shí)間戳,具體為:
按照所述數(shù)據(jù)的發(fā)送順序?yàn)樗鱿⒅械拿織l數(shù)據(jù)分配所述時(shí)間戳。
同樣的,在本實(shí)施例中,所述數(shù)據(jù)的時(shí)間戳也按照數(shù)據(jù)的發(fā)送順序進(jìn)行分配,例如一條發(fā)送周期為10ms的消息,待發(fā)送的當(dāng)前數(shù)據(jù)的時(shí)間戳為9000000μs,則下一條待發(fā)送的數(shù)據(jù)的時(shí)間戳為9010000μs,這兩條數(shù)據(jù)在發(fā)送順序上稱之為相鄰數(shù)據(jù)。
在上述實(shí)施例的基礎(chǔ)上,在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施例中,所述根據(jù)所述消息中每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn),具體為:
按照所述數(shù)據(jù)的接收順序?qū)λ鱿⒅械拿織l數(shù)據(jù)進(jìn)行校驗(yàn);
校驗(yàn)過程為:
判斷所述消息中的每條數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳的差值是否大于或等于有效閾值,如果是,則所述數(shù)據(jù)通過校驗(yàn);如果否,則所述數(shù)據(jù)未通過校驗(yàn)。
需要說明的是,所述消息中的每條數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳的差值是指所述數(shù)據(jù)的時(shí)間戳減去所述比對(duì)時(shí)間戳所得的值。例如當(dāng)前進(jìn)行校驗(yàn)的數(shù)據(jù)所攜帶的時(shí)間戳為A,當(dāng)前進(jìn)行校驗(yàn)的數(shù)據(jù)的比對(duì)時(shí)間戳為B,則所述數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳的差值為A-B。
在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施例中,所述有效閾值優(yōu)選為0。
在所述接收端將每條數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳進(jìn)行比對(duì)時(shí),如果該條數(shù)據(jù)的時(shí)間戳與所述比對(duì)時(shí)間戳的差值(數(shù)據(jù)的時(shí)間戳-比對(duì)時(shí)間戳)等于0時(shí),也認(rèn)為該條數(shù)據(jù)有效,這是因?yàn)樵贏FDX總線通信中,每條消息有BAG(Bandwidth Allocation Gap,最小幀間隔)約束,每條消息上兩條相鄰數(shù)據(jù)的最小幀間隔為1ms(參考《ARINC664 Part7》“3.2.3調(diào)度”章節(jié)),所以在正常情況下,一條消息的兩條相鄰數(shù)據(jù)的TTS應(yīng)單向遞增,而當(dāng)兩條相鄰數(shù)據(jù)的TTS差值等于0時(shí),說明發(fā)送端本地計(jì)時(shí)功能出現(xiàn)異常,無法通過所述數(shù)據(jù)中攜帶的時(shí)間戳判斷所述數(shù)據(jù)的順序,因此采取接受全部數(shù)據(jù)的策略。
當(dāng)該條數(shù)據(jù)的時(shí)間戳與所述比對(duì)時(shí)間戳的差值小于0時(shí),認(rèn)為該條數(shù)據(jù)無效并丟棄,但該條數(shù)據(jù)的時(shí)間戳卻需要被保存下來作為所述比對(duì)時(shí)間戳。這是因?yàn)槿绻l(fā)生發(fā)送端重啟,則其本地時(shí)間會(huì)從0μs開始重新計(jì)時(shí),所以發(fā)送端重啟后發(fā)送的第一條數(shù)據(jù)的時(shí)間戳?xí)∮诮邮斩私邮盏降纳弦粭l數(shù)據(jù)的時(shí)間戳,此時(shí)發(fā)送端數(shù)據(jù)通信為正常狀態(tài),采用上述判斷策略后,接收端僅會(huì)丟棄發(fā)送端重啟后發(fā)送的第一條數(shù)據(jù),后續(xù)數(shù)據(jù)均會(huì)正常接收,如果在丟棄數(shù)據(jù)的同時(shí)也不記錄其時(shí)間戳,則接收端會(huì)在發(fā)送端重啟后連續(xù)丟棄數(shù)據(jù),直到發(fā)送端本地計(jì)時(shí)時(shí)間超過接收端記錄的比對(duì)時(shí)間戳。
例如,假設(shè)當(dāng)前通過校驗(yàn)的數(shù)據(jù)所攜帶的時(shí)間戳為1000000μs,則比對(duì)時(shí)間戳更新為1000000μs,此時(shí)所述發(fā)送端進(jìn)行了一次初始化,則下一條數(shù)據(jù)所攜帶的時(shí)間戳為0μs,如果不將0μs更新為所述比對(duì)時(shí)間戳,則之后發(fā)送的數(shù)據(jù)都會(huì)被丟棄,一直到攜帶的時(shí)間戳超過1000000μs的數(shù)據(jù)才會(huì)被正常接收,這顯然會(huì)丟棄大量的數(shù)據(jù)(長(zhǎng)達(dá)1000000μs的數(shù)據(jù));但是如果將所述發(fā)送端進(jìn)行初始化后的第一條數(shù)據(jù)所攜帶的時(shí)間戳0μs更新為所述比對(duì)時(shí)間戳,則只會(huì)丟棄一條數(shù)據(jù),不會(huì)對(duì)整個(gè)系統(tǒng)的信息通信產(chǎn)生較大的影響。
在上述實(shí)施例的基礎(chǔ)上,在本申請(qǐng)的一個(gè)實(shí)施例中,所述時(shí)間戳的大小大于或等于6字節(jié)。
由于所述時(shí)間戳記錄的內(nèi)容為本地時(shí)間,6字節(jié)的時(shí)間戳最大可以表示(248-1)us=281474976710655us>78000小時(shí),遠(yuǎn)遠(yuǎn)超過了航空電子系統(tǒng)一次上電后的連續(xù)工作時(shí)間(飛機(jī)一個(gè)起降經(jīng)過時(shí)間),因此所述時(shí)間戳的大小等于6字節(jié)即可滿足所有航空電子系統(tǒng)的使用要求。
綜上所述,本申請(qǐng)實(shí)施例提供了一種AFDX總線消息的校驗(yàn)系統(tǒng),所述AFDX總線消息的校驗(yàn)系統(tǒng)的發(fā)送端在消息發(fā)送之前,在消息的每條數(shù)據(jù)的有效負(fù)載中分配一個(gè)時(shí)間戳來標(biāo)志消息中每條數(shù)據(jù)的順序,所述AFDX總線消息的校驗(yàn)系統(tǒng)的接收端根據(jù)接收到的消息中的每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn),依次判斷數(shù)據(jù)自身順序是否正常,從而實(shí)現(xiàn)了對(duì)所有虛擬鏈路中傳輸?shù)南?shù)據(jù)的順序進(jìn)行校驗(yàn)的目的,增加了對(duì)消息數(shù)據(jù)的順序完整性的校驗(yàn)精度。
相應(yīng)的,本申請(qǐng)實(shí)施例還提供了一種AFDX總線消息的校驗(yàn)方法,如圖6所示,應(yīng)用于發(fā)送端;所述AFDX總線消息的校驗(yàn)方法包括:
S101:生成消息,所述消息中至少包括一條數(shù)據(jù);
S102:獲取本地時(shí)間作為時(shí)間戳,所述本地時(shí)間為所述發(fā)送端初始化之后的持續(xù)時(shí)間;
S103:為所述消息中的每條數(shù)據(jù)分配所述時(shí)間戳,所述時(shí)間戳填充于所述數(shù)據(jù)的有效負(fù)載中。
需要說明的是,現(xiàn)有技術(shù)中的AFDX總線消息中的數(shù)據(jù)格式如圖2和圖3所示,其中,圖2示出的是現(xiàn)有技術(shù)中最小以太網(wǎng)框架長(zhǎng)度(minimum Ethernet frame length)的數(shù)據(jù)格式,包括:前導(dǎo)頭(Preamble,7bytes)、幀首定界符(Start Frame Delimiter,1byte)、目的物理地址(Destination Address,6bytes)、源物理地址(Source Address,6bytes)、協(xié)議類型(0x800 Ipv4,2bytes)、IP頭(IP Structure,20bytes)、UDP頭(UDP Structure,8bytes)、有效負(fù)載(AFDX Payload,1-17bytes)、補(bǔ)償(Padding,0-16bytes)、序列號(hào)(SN,1byte)、框架檢驗(yàn)序列(Frame Check Seq,4bytes)和框架間隔(Inter Frame Gap,12bytes)。圖3示出的是現(xiàn)有技術(shù)中最大以太網(wǎng)框架長(zhǎng)度(maximum Ethernet frame length)的數(shù)據(jù)格式,包括:前導(dǎo)頭(Preamble,7bytes)、幀首定界符(Start Frame Delimiter,1byte)、目的物理地址(Destination Address,6bytes)、源物理地址(Source Address,6bytes)、協(xié)議類型(0x800 Ipv4,2bytes)、IP頭(IP Structure,20bytes)、UDP頭(UDP Structure,8bytes)、有效負(fù)載(AFDX Payload,1471bytes)、序列號(hào)(SN,1byte)、框架檢驗(yàn)序列(Frame Check Seq,4bytes)和框架間隔(Inter Frame Gap,12bytes)。
由于SN是以虛擬鏈路為單位分配的,而一條虛擬鏈路上可以傳輸多條消息數(shù)據(jù),所以在現(xiàn)有技術(shù)中AFDX協(xié)議中的完整性校驗(yàn)規(guī)則只能對(duì)一條虛擬鏈路上的數(shù)據(jù)順序完整性進(jìn)行校驗(yàn),而不能對(duì)每條消息自身數(shù)據(jù)的順序進(jìn)行校驗(yàn);
在本申請(qǐng)中,參考圖4和圖5,所述發(fā)送端發(fā)送的每條數(shù)據(jù)的有效負(fù)載中包含了分配的時(shí)間戳(TTS),這個(gè)時(shí)間戳理論上可以位于每條數(shù)據(jù)的有效負(fù)載的任意位置,但是為了保證每條數(shù)據(jù)的有效負(fù)載的內(nèi)容完整和降低接收端校驗(yàn)難度,所述時(shí)間戳優(yōu)選位于所述有效負(fù)載的頭部或尾部;但為了與數(shù)據(jù)尾部原有的SN進(jìn)行區(qū)別,更優(yōu)選地,將所述時(shí)間戳設(shè)置于每條數(shù)據(jù)的有效負(fù)載的頭部。本申請(qǐng)對(duì)所述時(shí)間戳所處的具體位置并不做限定,具體視實(shí)際情況而定。
另外,所述時(shí)間戳包含的內(nèi)容為本地時(shí)間,所述本地時(shí)間指所述發(fā)送端初始化之后的持續(xù)時(shí)間,所述發(fā)送端的初始化包括重啟、復(fù)位或重新上電,也就是說在發(fā)送端重啟、復(fù)位或重新上電之后,所述本地時(shí)間從零開始計(jì)時(shí),所述本地時(shí)間用于標(biāo)識(shí)發(fā)送端初始化后的持續(xù)工作時(shí)間
在本申請(qǐng)中,所述發(fā)送端在消息發(fā)送之前,在消息的每條數(shù)據(jù)的有效負(fù)載中分配一個(gè)時(shí)間戳來標(biāo)志消息中每條數(shù)據(jù)的順序,所述AFDX總線消息的校驗(yàn)系統(tǒng)的接收端根據(jù)接收到的消息中的每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn),依次判斷數(shù)據(jù)自身順序是否正常,從而實(shí)現(xiàn)了對(duì)所有虛擬鏈路中傳輸?shù)南?shù)據(jù)的順序進(jìn)行校驗(yàn)的目的,增加了對(duì)消息數(shù)據(jù)的順序完整性的校驗(yàn)精度。
在上述實(shí)施例的基礎(chǔ)上,在本申請(qǐng)的一個(gè)實(shí)施例中,如圖7所示,步驟S103,具體為:
S1031:按照所述數(shù)據(jù)的發(fā)送順序?yàn)樗鱿⒅械拿織l數(shù)據(jù)分配所述時(shí)間戳,所述時(shí)間戳填充于所述數(shù)據(jù)的有效負(fù)載中。
同樣的,在本實(shí)施例中,所述數(shù)據(jù)的時(shí)間戳也按照數(shù)據(jù)的發(fā)送順序進(jìn)行分配,例如一條發(fā)送周期為10ms的消息,待發(fā)送的當(dāng)前數(shù)據(jù)的時(shí)間戳為9000000μs,則下一條待發(fā)送的數(shù)據(jù)的時(shí)間戳則為9010000μs,這兩條數(shù)據(jù)在發(fā)送順序上稱之為相鄰數(shù)據(jù)。
在上述實(shí)施例的基礎(chǔ)上,在本申請(qǐng)的一個(gè)實(shí)施例中,所述時(shí)間戳的大小大于或等于6字節(jié)。
由于所述時(shí)間戳記錄的內(nèi)容為本地時(shí)間,6字節(jié)的時(shí)間戳最大可以表示(248-1)us=281474976710655us>78000小時(shí),遠(yuǎn)遠(yuǎn)超過了航空電子系統(tǒng)一次上電后的連續(xù)工作時(shí)間(飛機(jī)一個(gè)起降經(jīng)過時(shí)間),因此所述時(shí)間戳的大小等于6字節(jié)即可滿足所有航空電子系統(tǒng)的使用要求。
相應(yīng)的,本申請(qǐng)實(shí)施例還提供了一種AFDX總線消息的校驗(yàn)方法,如圖8所示,應(yīng)用于接收端,所述AFDX總線消息的校驗(yàn)方法包括:
S201:接收消息,所述消息中至少包括一條數(shù)據(jù);
S201:根據(jù)所述消息中每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn);
如果所述消息中的數(shù)據(jù)通過校驗(yàn),則接收通過校驗(yàn)的所述數(shù)據(jù),并將通過校驗(yàn)的數(shù)據(jù)的時(shí)間戳作為比對(duì)時(shí)間戳;
如果所述消息中的數(shù)據(jù)未通過校驗(yàn),則丟棄未通過校驗(yàn)的所述數(shù)據(jù),并將未通過校驗(yàn)的所述數(shù)據(jù)的時(shí)間戳作為所述比對(duì)時(shí)間戳。
在上述實(shí)施例的基礎(chǔ)上,在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施例中,所述根據(jù)所述消息中每條數(shù)據(jù)的時(shí)間戳進(jìn)行校驗(yàn),具體為:
按照所述數(shù)據(jù)的接收順序?qū)λ鱿⒅械拿織l數(shù)據(jù)進(jìn)行校驗(yàn);
如圖9所示,校驗(yàn)過程為:
判斷所述消息中的每條數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳的差值是否大于或等于有效閾值,如果是,則所述數(shù)據(jù)通過校驗(yàn);如果否,則所述數(shù)據(jù)未通過校驗(yàn)。
需要說明的是,所述消息中的每條數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳的差值是指所述數(shù)據(jù)的時(shí)間戳減去所述比對(duì)時(shí)間戳所得的值。例如當(dāng)前進(jìn)行校驗(yàn)的數(shù)據(jù)所攜帶的時(shí)間戳為A,當(dāng)前進(jìn)行校驗(yàn)的數(shù)據(jù)的比對(duì)時(shí)間戳為B,則所述數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳的差值為A-B。
在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施例中,所述有效閾值優(yōu)選為0。
在所述接收端將每條數(shù)據(jù)的時(shí)間戳與比對(duì)時(shí)間戳進(jìn)行比對(duì)時(shí),如果該條數(shù)據(jù)的時(shí)間戳與所述比對(duì)時(shí)間戳的差值(數(shù)據(jù)的時(shí)間戳-比對(duì)時(shí)間戳)等于0時(shí),也認(rèn)為該條數(shù)據(jù)有效,這是因?yàn)樵贏FDX總線通信中,每條消息有BAG(Bandwidth Allocation Gap,最小幀間隔)約束,每條消息上兩條相鄰數(shù)據(jù)的最小幀間隔為1ms(參考《ARINC664 Part7》“3.2.3調(diào)度”章節(jié)),所以在正常情況下,一條消息的兩條相鄰數(shù)據(jù)的TTS應(yīng)單向遞增,而當(dāng)兩條相鄰數(shù)據(jù)的TTS差值等于0時(shí),說明發(fā)送端本地計(jì)時(shí)功能出現(xiàn)異常,無法通過所述數(shù)據(jù)中攜帶的時(shí)間戳判斷所述數(shù)據(jù)的順序,因此采取接受全部數(shù)據(jù)的策略。
當(dāng)該條數(shù)據(jù)的時(shí)間戳與所述比對(duì)時(shí)間戳的差值小于0時(shí),認(rèn)為該條數(shù)據(jù)無效并丟棄,但該條數(shù)據(jù)的時(shí)間戳卻需要被保存下來作為所述比對(duì)時(shí)間戳。這是因?yàn)槿绻l(fā)生發(fā)送端重啟,則其本地時(shí)間會(huì)從0μs開始重新計(jì)時(shí),所以發(fā)送端重啟后發(fā)送的第一條數(shù)據(jù)的時(shí)間戳?xí)∮诮邮斩私邮盏降纳弦粭l數(shù)據(jù)的時(shí)間戳,此時(shí)發(fā)送端數(shù)據(jù)通信為正常狀態(tài),采用上述判斷策略后,接收端僅會(huì)丟棄發(fā)送端重啟后發(fā)送的第一條數(shù)據(jù),后續(xù)數(shù)據(jù)均會(huì)正常接收,如果在丟棄數(shù)據(jù)的同時(shí)也不記錄其時(shí)間戳,則接收端會(huì)在發(fā)送端重啟后連續(xù)丟棄數(shù)據(jù),直到發(fā)送端本地計(jì)時(shí)時(shí)間超過接收端記錄的比對(duì)時(shí)間戳。
例如,假設(shè)當(dāng)前通過校驗(yàn)的數(shù)據(jù)所攜帶的時(shí)間戳為1000000μs,則比對(duì)時(shí)間戳更新為1000000μs,此時(shí)所述發(fā)送端進(jìn)行了一次初始化,則下一條數(shù)據(jù)所攜帶的時(shí)間戳為0μs,如果不將0μs更新為所述比對(duì)時(shí)間戳,則之后發(fā)送的數(shù)據(jù)都會(huì)被丟棄,一直到攜帶的時(shí)間戳超過1000000μs的數(shù)據(jù)才會(huì)被正常接收,這顯然會(huì)丟棄大量的數(shù)據(jù)(長(zhǎng)達(dá)1000000μs的數(shù)據(jù));但是如果將所述發(fā)送端進(jìn)行初始化后的第一條數(shù)據(jù)所攜帶的時(shí)間戳0μs更新為所述比對(duì)時(shí)間戳,則只會(huì)丟棄一條數(shù)據(jù),不會(huì)對(duì)整個(gè)系統(tǒng)的信息通信產(chǎn)生較大的影響。
綜上所述,本申請(qǐng)實(shí)施例提供了一種AFDX總線消息的校驗(yàn)系統(tǒng)及方法,其中,所述AFDX總線消息的校驗(yàn)系統(tǒng)的發(fā)送端在消息發(fā)送之前,在消息的每條數(shù)據(jù)的有效負(fù)載中分配一個(gè)時(shí)間戳來標(biāo)志消息中每條數(shù)據(jù)的順序,所述接收端根據(jù)接收到的消息中的每條數(shù)據(jù)的時(shí)間戳與所述比對(duì)時(shí)間戳判斷該條數(shù)據(jù)自身順序是否正常,從而實(shí)現(xiàn)了對(duì)所有虛擬鏈路中傳輸?shù)南?shù)據(jù)的順序進(jìn)行校驗(yàn)的目的,增加了對(duì)消息數(shù)據(jù)的順序完整性的校驗(yàn)精度。
本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。