通信方法及裝置與流程
2023-05-25 01:19:36 6

本申請涉及通信技術領域,尤其涉及一種通信方法及裝置。
背景技術:
星內通信總線用以完成衛星各分系統、部組件之間的信息交互。衛星通常由星務、姿控、載荷、能源、熱控、通信、推進等分系統組成,作為一個協同工作的整體,各分系統、部組件之間需要進行信息交互。
通常情況下,星內信息流的拓撲結構是網狀結構,但考慮到信號線太多,接口數量有限等因素,在星內採用點對點的連線方式進行通信是不現實的,因此星內系統採用總線是一種必然的選擇。
近年來衛星星內通信總線相關研究有很多,如1553、can(controllerareanetwork,控制器區域網路)、485、422等,這些總線設備均需要專用的接口。然而現實的情況是,各個星內組件的通信接口類型不盡相同,有些小型組件由於自身尺寸、質量、功耗、成本限制也不可能添加1553、can等接口,因此在不改變接口的基礎上,採用一個總線所有的組件連接起來,比較困難。
技術實現要素:
本申請公開了一種通信方法及裝置,以解決背景技術中衛星星內無法利用總線與所有的組件進行通信的問題。
為解決上述技術問題,本申請公開如下技術方案:
一種通信方法,應用於包括主控節點和多個被控節點的衛星系統中,所述主控節點與所述被控節點之間通過總線進行通信,每個所述被控節點與至少一條總線連接,所述通信方法應用於主控節點,所述通信方法包括:
通過與所述被控節點連接的一條總線,向所述被控節點發送點名信息;
在所述點名信息發送後的第一預設時間段內,判斷通過所述點名信息所使用的總線是否接收到所述被控節點發送的第一數據包,所述第一數據包攜帶有目的地址和源地址;
若接收到第一數據包,判斷所述目的地址是否為所述主控節點的地址;
若所述目的地址不是所述主控節點的地址,判斷所述目的地址與源地址是否在同一總線上;
若所述目的地址與源地址不在同一總線上,將所述第一數據包轉發到與所述目的地址對應的目標總線上。
可選地,所述通過與所述被控節點連接的至少一條總線,向所述被控節點發送點名信息,包括:
確定與每個被控節點對應的時間劃分信息,所述時間劃分信息包括:被控節點標識和時間片的對應關係,且所述被控節點與時間片一一對應;
確定與每個被控節點相連接的一條總線作為工作總線;
按照所有被控節點的地址排序順序,依次通過各自對應的工作總線向每個所述被控節點發送點名信息。
可選地,所述方法還包括:
若未接收到第一數據包,將與所述被控節點對應的通信錯誤計數值加1,並按照設定間隔繼續向所述被控節點發送點名信息;
若所述通信錯誤計數值大於預設錯誤門限值時,確定與所述點名信息相對應的被控節點通信異常;
判斷與所述通信異常的被控節點是否與多條總線相連接;
若所述通信異常的被控節點與多條總線相連接,根據預設總線備用列表中在所述通信異常的被控節點的剩餘總線選擇一條總線作為新工作總線;
在與所述通信異常的被控節點對應的下一個時間片,通過所述新工作總線向所述通信異常的被控節點發送點名信息。
可選地,所述方法還包括:
接收地面站通過與所述主控節點相連接的測控鏈路發送的第二數據包;
判斷所述第二數據包的目的地址是否等於所述主控節點的地址;
若所述第二數據包的目的地址不等於所述主控節點的地址,將所述第二數據包轉發到與所述目的地址對應的總線上;
或者,
若所述第一數據包的目的地址與源地址不在同一總線上,所述方法還包括:
判斷所述第一數據包的目的地址是否為地面站地址;
若所述第一數據包的目的地址為地面站地址,通過與所述主控節點相連接的測控鏈路將所述第一數據包發送給地面站。
一種通信方法,應用於包括主控節點和多個被控節點的衛星系統中,所述主控節點與所述被控節點之間通過總線進行通信,每個所述被控節點與至少一條總線連接,所述通信方法應用於被控節點,所述通信方法包括:
通過與所述被控節點相連接的至少一個總線接收點名信息;
將所述點名信息所使用的總線上確定為工作總線;
在接收到點名信息後的第二預設時間段內將第一數據包發送到所述工作總線上。
可選地,在接收到點名信息後的第二預設時間段內將第一數據包發送到所述工作總線上之前,所述方法還包括:
將所有待轉發數據包放入到發送隊列中,所述發送隊列中的數據包遵循先入先出原則;
將所述發送隊列中的排序第一的數據包確定為第一數據包;
或者,在所述第一數據包被發送後,所述方法還包括:
判斷所述第一數據包是否需要接收確認消息;
若不需要接收確認消息,將所述發送隊列中排序第一的數據包移除,將所述發送隊列中下一個排序第一的數據包確定為新的第一數據包;
若需要接收確認消息,判斷所述第一數據包發送後的第三預設時間段內是否接收到確認消息;若接收到確認消息,將預設通信異常值置0;若未接收到確認消息,重新發送所述第一數據包,並對重發次數進行計數;若重發次數大於預設重發門限值,丟失所述第一數據包,並將所述預設通信異常值加1;
若通信異常值大於預設異常值門限值,確定所述工作總線異常。
一種通信裝置,應用於包括主控節點和多個被控節點的衛星系統中,所述主控節點與所述被控節點之間通過總線進行通信,每個所述被控節點與至少一條總線連接,所述通信裝置應用於主控節點,所述通信裝置包括:
點名信息發送單元,用於通過與所述被控節點連接的一條總線,向所述被控節點發送點名信息;
數據包接收判斷單元,用於在所述點名信息發送後的第一預設時間段內,判斷通過所述點名信息所使用的總線是否接收到所述被控節點發送的第一數據包,所述第一數據包攜帶有目的地址和源地址;
地址判斷單元,用於當接收到第一數據包時,判斷所述目的地址是否為所述主控節點的地址;
總線判斷單元,用於當所述目的地址不是所述主控節點的地址時,判斷所述目的地址與源地址是否在同一總線上;
轉發單元,用於當所述目的地址與源地址不在同一總線上時,將所述第一數據包轉發到與所述目的地址對應的目標總線上。
可選地,所述點名信息發送單元,包括:
時間劃分信息確定子單元,用於確定與每個被控節點對應的時間劃分信息,所述時間劃分信息包括:被控節點標識和時間片的對應關係,且所述被控節點與時間片一一對應;
工作總線確定子單元,用於確定與每個被控節點相連接的一條總線作為工作總線;
發送子單元,用於按照所有被控節點的地址排序順序,依次通過各自對應的工作總線向每個所述被控節點發送點名信息。
可選地,所述裝置還包括:
計數確定單元,用於當未接收到第一數據包,將與所述被控節點對應的通信錯誤計數值加1;
所述點名信息發送單元還用於按照設定間隔繼續向所述被控節點發送點名信息;
異常確定單元,用於在所述通信錯誤計數值大於預設錯誤門限值時,確定與所述點名信息相對應的被控節點通信異常;
總線判斷單元,用於判斷與所述通信異常的被控節點是否與多條總線相連接;
總線切換單元,用於當所述通信異常的被控節點與多條總線相連接時,根據預設總線備用列表中在所述通信異常的被控節點的剩餘總線選擇一條總線作為新工作總線;
所述發送單元,還用於在與所述通信異常的被控節點對應的下一個時間片,通過所述新工作總線向所述通信異常的被控節點發送點名信息。
可選地,所述裝置還包括:
數據包接收單元,用於接收地面站通過與所述主控節點相連接的測控鏈路發送的第二數據包;
第一地址判斷單元,用於判斷所述第二數據包的目的地址是否等於所述主控節點的地址;
數據包轉發單元,用於當所述數據包的目的地址不等於所述主控節點的地址時,將所述第二數據包轉發到與所述目的地址對應的總線上;
或者,
若所述第一數據包的目的地址與源地址不在同一總線上,所述裝置還包括:
第二地址判斷單元,用於判斷所述第一數據包的目的地址是否為地面站地址;
數據包發送單元,用於當所述第一數據包的目的地址為地面站地址時,通過與所述主控節點相連接的測控鏈路將所述第一數據包發送給地面站。
一種通信裝置,應用於包括主控節點和多個被控節點的衛星系統中,所述主控節點與所述被控節點之間通過總線進行通信,每個所述被控節點與至少一條總線連接,所述通信裝置應用於被控節點,所述裝置包括:
點名信息接收單元,用於通過與所述被控節點相連接的至少一個總線接收點名信息;
工作總線確定單元,用於將所述點名信息所使用的總線上確定為工作總線;
數據包發送單元,用於在接收到點名信息後的第二預設時間段內將第一數據包發送到所述工作總線上。
可選地,所述裝置還包括:
數據包堆放單元,用於將所有待轉發數據包放入到發送隊列中,所述發送隊列中的數據包遵循先入先出原則;
第一數據包確定單元,用於將所述發送隊列中的排序第一的數據包確定為第一數據包;
或者,在所述第一數據包被發送後,所述裝置還包括:
確認消息判斷單元,用於判斷所述第一數據包是否需要接收確認消息;
第一數據包更新單元,用於當不需要接收確認消息時,將所述發送隊列中排序第一的數據包移除,將所述發送隊列中下一個排序第一的數據包確定為新的第一數據包;
確認消息判斷單元,用於當需要接收確認消息,判斷所述第一數據包發送後的第三預設時間段內是否接收到確認消息;通信異常設置單元,用於當接收到確認消息時,將預設通信異常值置0;第一數據包重發單元,用於當未接收到確認消息時,重新發送所述第一數據包,並對重發次數進行計數;所述通信異常設置單元,用於當重發次數大於預設重發門限值,丟失所述第一數據包,並將所述預設通信異常值加1;
異常確定單元,用於當通信異常值大於預設異常值門限值時,確定所述工作總線異常。
本公開的實施例提供的技術方案可以包括以下有益效果:
本申請實施例提供的該方法,應用於包括主控節點和多個被控節點的衛星系統中,所述主控節點與所述被控節點之間通過總線進行通信,每個所述被控節點與至少一條總線連接。在該衛星系統中,主控節點相當於一個控制樞紐,可以協調不同被控節點上傳數據包,並且在需要轉發時,可以將數據包在不同總線之間進行轉發。所以,只要主控節點上的接口兼容,使用原有的總線通信接口,即可方便實現不同星內系統中不同總線之間的通信。不僅使得星內系統的通信成本降低,而且有利於星內系統的拓撲結構的擴展。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本公開。
附圖說明
此處的附圖被併入說明書中並構成本說明書的一部分,示出了符合本申請的實施例,並與說明書一起用於解釋本申請的原理。
為了更清楚地說明本申請實施例或背景技術中的技術方案,下面將對實施例或背景技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對於本領域普通技術人員而言,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本申請實施例提供的衛星系統的一種結構示意圖;
圖2為本申請實施例提供的衛星系統的另一種結構示意圖;
圖3為本申請實施例提供的一種通信方法的流程示意圖;
圖4是本申請實施例提供的一種通信裝置的結構示意圖;
圖5是本申請實施例提供的一種通信裝置的結構示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本申請中的技術方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請的一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本申請保護的範圍。
圖1為本申請實施例提供的衛星系統的一種結構示意圖。
如圖1所示,圖中包括:主控節點0和多個被控節點(圖中標號1-6)主控節點0與被控節點之間通過總線進行通信,在圖1中,總線包括:can(controllerareanetwork,控制器區域網路)總線、spi(serialperipheralinterface,串行外設接口)總線、i2c(inter-integratedcircuit)總線以及422總線。在本申請實施例中,主控節點0具有常見的接口如uart接口、can接口、spi接口、i2c接口以及422接口等,所以,主控節點0可以與can總線、spi總線、i2c總線以及422總線直接通信,並且通過uart接口與一個被控節點(圖中被控節點6)直接進行通信。在圖1中,同一總線與不同節點進行通信時,採用相同的箭頭,例如:can總線與所有節點之間採用實線箭頭來表示,i2c總線與節點之間進行通信,採用長虛線箭頭來表示。
在本申請實施例中,每個被控節點可以與至少一條總線連接,例如:圖1中,被控節點3可以通過can總線和i2c總線與主控節點0進行通信。由於uart(universalasynchronousreceiver/transmitter,通用異步收發傳輸器)接口只能進行點到點連接,所以,被控節點6隻能通過一個uart接口與主控節點0進行通信。另外,由於主控節點只有一個uart接口,所以當有多個被控節點需要通過uart接口與主控節點0進行通信,可以採用fpga(field-programmablegatearray,即現場可編程門陣列)模塊10進行埠擴展,如圖2所示,主控節點0通過fpga模塊10上的兩個uart接口分別與被控節點6、被控節點7進行通信,主控節點0通過fpga模塊10分別與:can總線、spi總線、i2c總線以及422總線進行通信。
圖3為本申請實施例提供的一種通信方法的流程示意圖。
該方法應用與圖1或圖2所示衛星系統中,如圖3所示,該通信方法可以包括以下步驟。
s101,主控節點通過與所述被控節點連接的一條總線,向所述被控節點發送點名信息。
主控節點在工作之前,預先獲取到所有被控節點的地址列表,並且主控節點預先根據被控節點的數量對時間片進行劃分,得到與每個被控節點對應的通信時隙。這樣每個被控節點均有一個單獨對應的通信時隙。
點名信息中不包含具體的數據,其作用是為了和被控節點進行通信,以確定被控節點是否在線。在本申請實施例中,發送點名信息時,主控該節點可以根據所有被控節點的地址的順序依次向各個被控節點發送點名信息。點名信息的格式為預設格式,並且這種格式被控節點也已預知。
當被控節點只與一個總線連接時,主控節點可以直接通過該總線向被控節點發送點名信息即可。當被控節點與多個總線連接時,主控該節點可以在這多個總線中任意選擇一個總線,然後通過該選擇的總線向被控節點發送點名信息。
s102,被控節點通過與所述被控節點相連接的至少一個總線接收點名信息。
s103,被控節點將所述點名信息所使用的總線上確定為工作總線。
s104,被控節點在接收到點名信息後的第二預設時間段內將第一數據包發送到所述工作總線上。
s105,主控節點在所述點名信息發送後的第一預設時間段內,判斷通過所述點名信息所使用的總線是否接收到所述被控節點發送的第一數據包。
第一預設時間段可以在考慮上時延等因素的基礎上設置。
在本申請實施例中,數據包的格式也已經預先通知給主控節點,並且第一數據包攜帶有目的地址和源地址,進而當主控該節點接收到數據後,可以根據格式以及其內攜帶的源地址,可以準確判斷出是否為發送過點名信息的被控節點上傳的第一數據包。
若接收到第一數據包,執行步驟s106。否則,結束流程。
s106,主控該節點判斷所述目的地址是否為所述主控節點的地址。
由於主控節點起到的作用是數據中轉樞紐,所以當主控該節點接收到第一數據包後,首先要對該第一數據包的目的地址進行分析,第一步需要分析的就是該第一數據包是否為發送給主控節點的,通過的方式就是比較目的地址和主控節點的地址是否一致。
若所述目的地址不是所述主控節點的地址,執行步驟s107,否則,結束流程。
s107,主控節點判斷所述目的地址與源地址是否在同一總線上。
如果目的地址不是主控節點的地址,則證明該第一數據包並非發送給主控節點。為此,主控節點需要判斷目的地址是否和源地址在同一總線上,如果在同一總線上,那麼意味著第一數據包在所發送的總線上可以自動傳輸,主控節點無需對該第一數據包進行處理。但如果不在同一總線上,那麼,就需要主控節點將該第一數據包轉發到其它總線上。
若所述目的地址與源地址不在同一總線上,執行步驟s108,否則,結束流程。
s108,主控節點將所述第一數據包轉發到與所述目的地址對應的目標總線上。
在預先登記所有被控節點的地址時,還同時登記了被控節點與總線之間的隸屬對應關係,也即每條總線上有哪些被控節點,進而當得知待轉發的第一數據包中的目標地址後,即可根據前述隸屬對應關係,查找到和該目標地址對應的目標總線。
本申請實施例提供的該方法,應用於包括主控節點和多個被控節點的衛星系統中,所述主控節點與所述被控節點之間通過總線進行通信,每個所述被控節點與至少一條總線連接。在該衛星系統中,主控節點相當於一個控制樞紐,可以協調不同被控節點上傳數據包,並且在需要轉發時,可以將數據包在不同總線之間進行轉發。所以,只要主控節點上的接口兼容,使用原有的總線通信接口,即可方便實現不同星內系統中不同總線之間的通信。不僅使得星內系統的通信成本降低,而且有利於星內系統的拓撲結構的擴展。
此外,當主控節點上的接口數量較少,不夠使用時,還可以在增加一個fpga模塊作為擴展接口模塊,如圖2所示,以便於主控節點可以兼容更多的總線。
在本申請實施例中,前述步驟s101在轉發點名信息時,可以採用以下步驟。
s11,確定與每個被控節點對應的時間劃分信息。
所述時間劃分信息包括:被控節點標識和時間片的對應關係,且所述被控節點與時間片一一對應。在本申請實施例中,可以預先為每個被控節點劃分一個獨立的時間片,以便在該時間片內與該特定的被控節點進行通信。
s12,主控節點確定與每個被控節點相連接的一條總線作為工作總線。
s13,主控節點按照所有被控節點的地址排序順序,依次通過各自對應的工作總線向每個所述被控節點發送點名信息。
在本申請實施例中,主控節點在所述點名信息發送後的第一預設時間段內未接收到第一數據包,還可以包括以下步驟。
s21,主控節點將與所述被控節點對應的通信錯誤計數值加1,並按照設定間隔繼續向所述被控節點發送點名信息。
s22,主控節點按照設定間隔繼續向所述被控節點發送點名信息。
s23,主控節點確定與所述點名信息相對應的被控節點通信異常。
s24,主控節點判斷與所述通信異常的被控節點是否與多條總線相連接。
s25,若所述通信異常的被控節點與多條總線相連接,主控節點根據預設總線備用列表中在所述通信異常的被控節點的剩餘總線選擇一條總線作為新工作總線。
s26,主控節點在與所述通信異常的被控節點對應的下一個時間片,通過所述新工作總線向所述通信異常的被控節點發送點名信息。
通過該方法,對於與多條總線相連接的被控節點,主控節點可以通過嘗試的方式在多個總線之間進行切換,直至找到可以通信的總線。但如果某一個被控節點連接的所有總線都嘗試後,仍未收到該被控節點反饋的第一數據包,那麼就可以確定該被控節點下線或故障,並且對該被控節點進行標記,後續不再向其發送點名信息,並且同時可以將分配給被控節點的時間片剔除,以實現對分配的時間片進行優化。
在本申請實施例中,主控節點作為數據傳輸樞紐,通常還可以通過數傳設備直接與地面站進行通信,為了實現地面站與被控節點之間的通信,該方法還可以包括以下步驟。
s31,主控節點接收地面站通過與所述主控節點相連接的測控鏈路發送的第二數據包;
s32,主控節點判斷所述第二數據包的目的地址是否等於所述主控節點的地址;
s33,若所述第二數據包的目的地址不等於所述主控節點的地址,主控節點將所述第二數據包轉發到與所述目的地址對應的總線上。
相應地,當被控節點通過總線發送第一數據包後,在主控節點判斷出第一數據包的目標地址與源地址不在同一總線上時,該方法還可以包括以下步驟。
s41,主控節點判斷所述第一數據包的目的地址是否為地面站地址;
若所述第一數據包的目的地址為地面站地址,s42,主控節點通過與所述主控節點相連接的測控鏈路將所述第一數據包發送給地面站。
通過上述描述,可知,無論是地面站向被控節點發送數據包,還是被控節點向地面站發送數據包,主控節點均可以根據數據包中的目的地址輕鬆進行轉發。
在本申請實施例中,在接收到點名信息後的第二預設時間段內將第一數據包發送到所述工作總線上之前,,還包括以下步驟。
s51,被控節點將所有待轉發數據包放入到發送隊列中。
被控節點在有數據需要發送時,可以不等接收到點名信息,就一下將待轉發的數據包放入到發送隊列,以便於發送。在本申請實施例中,發送隊列中的數據包遵循先入先出原則。
s52,被控節點將所述發送隊列中的排序第一的數據包確定為第一數據包。
這樣,一旦接收到點名信息,被控節點就可以直接將第一個數據包作為第一數據包,並發送出去。
此外,考慮到數據包發送後的驗證過程,在本申請實施例中,該方法還可以包括以下步驟。
s61,在所述第一數據包被發送後,被控節點判斷所述第一數據包是否需要接收確認消息。
s62,若不需要接收確認消息,被控節點將所述發送隊列中排序第一的數據包移除,將所述發送隊列中下一個排序第一的數據包確定為新的第一數據包。
s63,若需要接收確認消息,被控節點判斷所述第一數據包發送後的第三預設時間段內是否接收到確認消息。
s64,若接收到確認消息,被控節點將預設通信異常值置0。
s65,若未接收到確認消息,被控節點重新發送所述第一數據包,並對重發次數進行計數。
s66,若重發次數大於預設重發門限值,被控節點丟失所述第一數據包,並將所述預設通信異常值加1。
s67,若通信異常值大於預設異常值門限值,被控節點確定所述工作總線異常。
當被控節點確定工作總線異常後,一方面可以自身記錄,或通過其它渠道上報,另一方面,可以不再通過該總線向主控節點發送任何數據,以使主控節點將被控節點確定為異常。
通過上述步驟,增加了被控節點對發送的第一數據包的準確性進行校驗,以確定發送出去的每個第一數據包,均是成功發送,避免由於總線異常,導致無所謂的空發,提高了數據的精準性。
本申請實施例提出的方案實質上是一種虛擬總線,利用虛擬總線可以解決以下兩個問題:(1)異構總線之間的通信,即兩條不同類型的總線之間的通信,例如can和422兩條總線,採用本申請實施例提供的該方法可以實現解決can和422之間的通信;(2)可以使得不具備總線接口的設備通過虛擬總線參與通信,例如,有的設備只有uart串行接口(如圖1中所示的被控節點6),uart不是總線接口,設備可通過fpga連接主控節點,通過與主控節點的信息交互進而參與其他總線的通信中。本申請實施例提供的該方案中,主控節點是信息中樞,可以實現數據在不同總線之間、非總線接口與總線之間的傳遞,通過時分多址實現多對多通信,這裡虛擬總線是指建立在物理總線、點對點通信基礎上的虛擬總線,主控節點控制被控節點採用時分多址的方式進行通信,這裡時分多址是指在虛擬總線上的時分多址。
通過以上的方法實施例的描述,所屬領域的技術人員可以清楚地了解到本申請可藉助軟體加必需的通用硬體平臺的方式來實現,當然也可以通過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:只讀存儲器(rom)、隨機存取存儲器(ram)、磁碟或者光碟等各種可以存儲程序代碼的介質。
圖4是本申請實施例提供的一種通信裝置的結構示意圖。
該裝置可以應用於包括主控節點和多個被控節點的衛星系統中,所述主控節點與所述被控節點之間通過總線進行通信,每個所述被控節點與至少一條總線連接,所述通信裝置應用於主控節點,如圖4所示,所述通信裝置包括:
點名信息發送單元11,用於通過與所述被控節點連接的一條總線,向所述被控節點發送點名信息;
數據包接收判斷單元12,用於在所述點名信息發送後的第一預設時間段內,判斷通過所述點名信息所使用的總線是否接收到所述被控節點發送的第一數據包,所述第一數據包攜帶有目的地址和源地址;
地址判斷單元13,用於當接收到第一數據包時,判斷所述目的地址是否為所述主控節點的地址;
總線判斷單元14,用於當所述目的地址不是所述主控節點的地址時,判斷所述目的地址與源地址是否在同一總線上;
轉發單元15,用於當所述目的地址與源地址不在同一總線上時,將所述第一數據包轉發到與所述目的地址對應的目標總線上。
本申請實施例提供的該裝置,應用於包括主控節點和多個被控節點的衛星系統中,所述主控節點與所述被控節點之間通過總線進行通信,每個所述被控節點與至少一條總線連接。在該衛星系統中,主控節點相當於一個控制樞紐,可以協調不同被控節點上傳數據包,並且在需要轉發時,可以將數據包在不同總線之間進行轉發。所以,只要主控節點上的接口兼容,使用原有的總線通信接口,即可方便實現不同星內系統中不同總線之間的通信。不僅使得星內系統的通信成本降低,而且有利於星內系統的拓撲結構的擴展。
在本申請一個實施例中,點名信息發送單元,包括:
時間劃分信息確定子單元,用於確定與每個被控節點對應的時間劃分信息,所述時間劃分信息包括:被控節點標識和時間片的對應關係,且所述被控節點與時間片一一對應;
工作總線確定子單元,用於確定與每個被控節點相連接的一條總線作為工作總線;
發送子單元,用於按照所有被控節點的地址排序順序,依次通過各自對應的工作總線向每個所述被控節點發送點名信息。
在本申請一個實施例中,所述裝置還包括:
計數確定單元,用於當未接收到第一數據包,將與所述被控節點對應的通信錯誤計數值加1;
所述點名信息發送單元還用於按照設定間隔繼續向所述被控節點發送點名信息;
異常確定單元,用於在所述通信錯誤計數值大於預設錯誤門限值時,確定與所述點名信息相對應的被控節點通信異常;
總線判斷單元,用於判斷與所述通信異常的被控節點是否與多條總線相連接;
總線切換單元,用於當所述通信異常的被控節點與多條總線相連接時,根據預設總線備用列表中在所述通信異常的被控節點的剩餘總線選擇一條總線作為新工作總線;
所述發送單元,還用於在與所述通信異常的被控節點對應的下一個時間片,通過所述新工作總線向所述通信異常的被控節點發送點名信息。
在本申請一個實施例中,所述裝置還包括:
數據包接收單元,用於接收地面站通過與所述主控節點相連接的測控鏈路發送的第二數據包;
第一地址判斷單元,用於判斷所述第二數據包的目的地址是否等於所述主控節點的地址;
數據包轉發單元,用於當所述數據包的目的地址不等於所述主控節點的地址時,將所述第二數據包轉發到與所述目的地址對應的總線上;
在本申請另一個實施例中,若所述第一數據包的目的地址與源地址不在同一總線上,所述裝置還包括:
第二地址判斷單元,用於判斷所述第一數據包的目的地址是否為地面站地址;
數據包發送單元,用於當所述第一數據包的目的地址為地面站地址時,通過與所述主控節點相連接的測控鏈路將所述第一數據包發送給地面站。
圖5是本申請實施例提供的一種通信裝置的結構示意圖。
該裝置應用於包括主控節點和多個被控節點的衛星系統中,所述主控節點與所述被控節點之間通過總線進行通信,每個所述被控節點與至少一條總線連接,所述通信裝置應用於被控節點,如圖5所示,所述裝置包括:
點名信息接收單元21,用於通過與所述被控節點相連接的至少一個總線接收點名信息;
工作總線確定單元22,用於將所述點名信息所使用的總線上確定為工作總線;
數據包發送單元23,用於在接收到點名信息後的第二預設時間段內將第一數據包發送到所述工作總線上。
在本申請實施例提供的該裝置中,對於與多條總線相連接的被控節點,主控節點可以通過嘗試的方式在多個總線之間進行切換,直至找到可以通信的總線。
在本申請一個實施例中,該裝置還可以包括:
數據包堆放單元,用於將所有待轉發數據包放入到發送隊列中,所述發送隊列中的數據包遵循先入先出原則;
第一數據包確定單元,用於將所述發送隊列中的排序第一的數據包確定為第一數據包。
在本申請另一實施例中,在所述第一數據包被發送後,所述裝置還可以包括:
確認消息判斷單元,用於判斷所述第一數據包是否需要接收確認消息;
第一數據包更新單元,用於當不需要接收確認消息時,將所述發送隊列中排序第一的數據包移除,將所述發送隊列中下一個排序第一的數據包確定為新的第一數據包;
確認消息判斷單元,用於當需要接收確認消息,判斷所述第一數據包發送後的第三預設時間段內是否接收到確認消息;通信異常設置單元,用於當接收到確認消息時,將預設通信異常值置0;第一數據包重發單元,用於當未接收到確認消息時,重新發送所述第一數據包,並對重發次數進行計數;所述通信異常設置單元,用於當重發次數大於預設重發門限值,丟失所述第一數據包,並將所述預設通信異常值加1;
異常確定單元,用於當通信異常值大於預設異常值門限值時,確定所述工作總線異常。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置或系統實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置及系統實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
本文中,各個優選方案僅僅重點描述的是與其它方案的不同,各個優選方案只要不衝突,都可以任意組合,組合後所形成的實施例也在本說明書所公開的範疇之內,考慮到文本簡潔,本文就不再對組合所形成的實施例進行單獨描述。
可以理解的是,本申請可用於眾多通用或專用的計算系統環境或配置中。例如:個人計算機、伺服器計算機、手持設備或可攜式設備、平板型設備、多處理器系統、基於微處理器的系統、置頂盒、可編程的消費電子設備、網絡pc、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環境等等。
本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位於包括存儲設備在內的本地和遠程計算機存儲介質中。
以上所述僅是本申請的具體實施方式,使本領域技術人員能夠理解或實現本申請。對這些實施例的多種修改對本領域的技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或範圍的情況下,在其它實施例中實現。因此,本申請將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。