楊 云,韋 明,何雙亮,孫京霞
(中國航天員科研訓練中心,北京100094)
載人航天飛行過程中,對航天員實施常規醫監和定期醫學檢查會產生大量的醫監和醫學檢查數據。如何采集各類醫學監督設備和醫學檢查設備(下稱醫學外設)檢測的數據,并按要求傳輸至載人航天器下行傳輸鏈路的發送端,是航天員系統醫監計算機(下稱醫監主機)承擔的主要任務。
載人航天初期,選擇的醫監指標、醫學檢查項目一般較少,醫監主機配置與醫學外設相對應的數據接口,與醫學外設進行點對點的數據傳輸即可滿足數據傳輸要求。
隨著我國載人航天任務的深入開展,地面醫監醫生關注的檢測項目、指標不斷增加,需要通過醫監主機下傳數據的醫學外設數量不斷增加,醫學外設傳輸的數據種類、數據量也呈不斷上升趨勢,傳統的點對點數據傳輸模式已無法滿足任務要求,醫監主機經常遇到多種醫學外設同時傳輸數據的情況,如何可靠接收醫學數據,特別是滿足航天員各種工況下的醫學數據傳輸要求,成了醫監主機在設計過程中主要考慮的問題。組建專門的醫學數據傳輸網絡,實施多路醫學數據的網絡化傳輸成為解決上述問題的有效辦法。
通過對 RS232、RS422、RS485、CAN、1553B、Ethernet等多種串行總線的數據傳輸特性詳細分析研究后,選擇CAN總線組建交會對接任務天宮一號航天員醫學信息管理網絡。
CAN全稱控制局域網,是德國Bosch公司20世紀80年代初為解決現代汽車中眾多的控制和測試儀器間的數據交換而開發的一種通信協議[1],CAN總線規范已被ISO國際標準組織1993年制訂為國際標準(ISO11898)。憑借其極高的實時性和可靠性,同時兼備成本低、速率高、抗電磁干擾性強、易擴展等優點,目前已成為最廣泛的現場總線之一,應用于各領域[2-5]。CAN總線的主要特點如下:
①多主方式工作,網絡上所有節點均可在任一時刻向總線發送信息,不分主從;
②采用非破壞總線仲裁技術。當多個節點同時發送信息時,優先級較低的節點退出通信,優先級高的節點不受影響,從而大大減少了總線沖突仲裁時間,尤其在網絡負載很重的情況下,也不會出現癱瘓;
③基于通信數據塊的編碼方式使得網絡內部的節點個數在理論上不受限制,數據塊的標識符可由11位或29位二進制數組成,因此可以定義211或229個不同的數據塊,這種方法還可使不同的節點同時接到相同的數據,CAN節點只需要通過對報文的標識符濾除即可用點對點、一點對多點及全局廣播等幾種方式傳送數據。當然實際節點數僅受限于總線收發器的驅動能力;
④實時性、容錯性好,報文的短幀結構以及CRC校驗保證了極低的出錯率和很好的校驗效果,最長8Byte的數據幀不會占用總線時間過長,從而保證通信的實時性,在出現嚴重錯誤時,CAN節點可以自動關閉,而不影響總線上的其他節點工作。
交會對接任務中,需要通過醫監主機向地面傳送數據的醫學外設多達十個。分析這些醫監設備和醫學檢查設備存在以下特點。
設備的數據產生方式不相同。有加電工作后立即連續對外傳輸數據的,如用于常規生理信號監測的醫學監督設備;有加電后先進行信息檢測,檢測完成后再傳輸檢測結果的,如各類醫學檢查設備、生化檢測設備、環境監測設備;還有讀取存儲卡中的數據后進行數據傳輸的。
設備的數據傳輸要求不相同。有些醫學外設對傳輸速率要求較高,必須在限定時間內完成數據傳輸,否則,將被后續數據覆蓋,造成數據丟失;有些醫學外設對傳輸速率沒有嚴格要求,但對總的傳輸時間有要求,如動態心電數據的傳輸要求不超過1h。
設備的數據傳輸容量不相同。有些醫學外設一次只傳輸幾個字節;有些醫學外設一次需傳輸幾十兆字節。
設備對數據傳輸的誤碼率要求不相同。對于實時醫學監督設備,如心電、呼吸波形等,只要不影響后續心率提取或心電特異性分析,有限誤碼是允許的;但對于醫學檢查類,關鍵位置的誤碼意味著檢查結果的合格與否,因此后者對數據傳輸可靠性的要求極高。
醫學外設與醫監主機的連接是隨機的,設備中除個別固定安裝的設備可以作為固定的接入通信點外,其余設備均是便攜式的,使用時與醫監主機相連,使用后需要立即斷開連接。
分析上述醫學外設的實際要求,交會對接任務醫學信息管理網絡的特點是:網絡節點個數有限、信息的傳遞距離短、實時增強、總線調度機制要求簡潔、網絡結構力求簡單、網絡具有開放性等。參照ISO國際標準化組織頒布的OSI(Open System Interconnection)7層開放系統互聯模型,采用簡化的CAN總線型網絡結構,以醫監主機為核心,組建了一個基于CAN總線的醫學信息管理網絡。
由于醫學信息管理網絡中醫學外設只與醫監主機之間進行數據通信,為提高網絡傳輸效率,避免無謂的總線沖突,確保不同優先級醫學外設數據的可靠傳輸,網絡采用一主多從的方式,醫監主機作為網絡主節點,各個醫學外設作為從節點。網絡拓撲結構如下圖1所示:
圖中的Node1–Node10即為與醫監主機進行醫學數據傳輸通信的醫學外設。

圖1 網絡拓撲
為了使醫學信息管理網絡簡單可靠,對OSI開放系統中的7層協議模式進行了裁剪,只采用物理層、鏈路層和應用層3層網絡結構。
物理層規定了CAN總線的機械、電氣和傳輸位時間的要求。網絡內所有節點的物理層協議必須是相同的。每臺設備的CAN總線的接口芯片的管腳(CANL、CANH)分別連接總線的 CANL、CANH。
鏈路層規定了CAN總線的傳送規則,也就是控制幀結構、執行仲裁、錯誤檢測、出錯標定、故障界定。總線上何時開始發送數據及何時開始接收數據,均在鏈路層里確定。位定時的一些普通功能也可以看作是鏈路層的一部分。
上述物理層、鏈路層的功能可直接由專門的CAN總線控制器來完成,CAN控制器的作用是在CAN協議中實現物理層和鏈路層協議。
一方面,CAN總線控制器通過收發器(驅動器)與物理總線連接。典型的總線是雙絞線,總線末端均連接120Ω的匹配電阻。醫監主機選用的CAN收發器為Philips公司的PCA82C250,該芯片完全兼容ISO11898,傳輸位速率在1Mbps以上,具有很強的抗電磁干擾的能力,驅動能力很強,最多可驅動110個以上的節點。
另一方面,CAN總線控制器提供與微處理器的接口。通過編程,CPU可以設置其工作方式,控制其工作狀態,進行數據的發送和接收,在其上實現應用層傳輸協議。目前一些知名的半導體廠家都生產CAN控制器芯片,類型有兩種,一種是獨立的CAN控制器芯片,如Intel公司的82527,Philips公司的SJA1000等;另一種是集成在微處理器之中,如TI公司 2407、2812等 DSP芯片,Cgnal公司 C8051F040系列等。根據系統硬件設計的需要進行選取,醫監主機選用的就是Intel公司的82527獨立CAN控制器,通過并行總線與CPU接口,借助CPU的極小開銷完成報文的發送和接收、報文濾波、中斷掃描等。
CAN總線幀格式分為數據幀、遠程幀、超載幀。在醫學信息管理網絡總線通信中只使用數據幀。CAN 2.0規范中,數據幀有標準幀和擴展幀,本系統只使用標準幀。CAN標準數據幀由7個不同的位場組成:幀起始、仲裁場、控制場、數據場、校驗場、應答場、幀結束。數據幀格式見下表1所示:

表1 數據幀格式
幀起始標志數據幀和遠程幀的起始,它由1個單獨的“顯性”(0)位構成。
仲裁場由標識符ID和遠程發送請求RTR組成。標識符的長度為11bit,最高7bit(ID10~ID4)不能全為“隱性”(1);RTR 位在數據幀中為“顯性”,在遠程幀中為“隱性”。仲裁場決定了數據幀傳輸的優先級,較高優先級的標識符具有較低的二進制值。
控制場長度為6bit,包括1bit IDE位(識別符擴展位、顯性)、1bit保留位 r0、4bit數據長度碼 DLC3~DLC0表示數據場的字節數0~8。
數據場由數據幀中的發送數據組成,可以是0~8個Byte,每Byte包括8bit,首先發送MSB。
CRC場包括CRC序列,其后是CRC界定符。CRC是前面幀起始、仲裁場、控制場、數據場的循環冗余校驗碼,CRC界定符為一個單獨的“隱形”位。
應答場由應答間隙和應答界定符兩個隱性位組成。在應答場內,發送站發送兩個隱性位,當接收器正確接收到有效報文,接收器就會在應答間隙期間,向發送器發送一“顯性”位以示應答。應答界定符為一“隱形”位。幀結束由7bit隱性位組成。
應用層協議規定通信類別、數據包格式、收發規程等網絡應用規則。CAN總線數據幀數據場中的數據表示通信過程中數據源地址傳送至目的地址的有效數據。
3.2.1 標識符設計
CAN標準幀的幀標識符ID為11位長,可以分配給16-2032個外設,實際應用中節點數量有限,只應用其中部分位作站地址,其它位可作為優先級、數據類型等信息位使用。
醫學信息管理網絡中,11位幀標識符ID分成3部分,高3位表示優先級、中間5位表示站地址、低3位表示幀類型。
優先級只決定數據幀的優先級,而不決定站地址和數據包類型,在每次發送數據包過程中數據優先級保持不變。根據實時性要求不同數據包選擇不同的優先級,如下表2所示:

表2 數據優先級
站地址表示節點的地址,確定數據鏈路層數據傳輸的對象,范圍是0至31,CAN總線網絡中每個節點的站地址必須是唯一的。醫學信息網絡中站地址的分配下文專門說明。
幀類型表示CAN總線數據包中數據幀的結構類型和通信節點之間的關系。醫學信息網絡中,該字段作為優先級字段的備份使用。
3.2.2 數據包傳輸協議
交會對接任務中,各醫學外設向醫監主機傳輸的航天員醫學信息均是以數據包方式排列的,數據包的長度遠遠大于CAN總線數據幀的最大8字節長度,因此醫學信息數據包必須按幀進行拆分。對于包長度小于等于8個字節的按單幀方式在醫學信息網絡上傳送,大于8個字節的需要分成幾個數據幀按多幀方式在網絡上傳送,必須嚴格按幀順序傳送到醫學信息網絡上。
如前所述,由于各醫學外設與醫監主機的連接關系是動態變化的,連接后的數據傳輸模式也不相同。因此應用層協議設計無法使用串行總線常用的定時通知的方式進行。同時考慮到CAN總線的特點,要盡量避免醫監主機通知不在線外設的情況出現,因為該現象會引起出現CAN總線錯誤從而導致主節點狀態逐漸向“主動錯誤”、“被動錯誤”、“主線關閉”方向轉化,因此應用層協議設計必須在每個通信周期內提供一個需要進行數據傳輸的外設列表(簡稱數傳列表)。
數傳列表由在線醫學外設協助,在醫監主機節點生成,每個數據通信周期內,需要傳輸數據的醫學外設向醫監主機傳輸一2Byte的請求幀后,醫監主機將其ID號加入到數傳列表中,當所有需要傳輸數據的醫學外設均發送完請求幀后,本周期內的數傳列表也就生成了,醫監主機就能在該周期內通知相應醫學外設傳輸數據。
可見數傳列表在本協議中的重要性,未發送數傳請求幀或已發送但醫監主機未收到數傳請求幀的醫學外設在網絡中是不能發送醫學數據的。因此,為了保證醫學外設的數傳請求幀及時、可靠的傳輸,避免優先級低的醫學外設發送不出數傳請求的情況出現,在協議設計時,采用靜態時間分配的原則進行數傳請求幀的發送,避免造成多主競爭沖突。

圖2 應用層傳輸協議
最終生成的應用層傳輸協議如下圖2所示:
每個通信周期開始,醫監主機向CAN總線發送一幀廣播幀,在線醫學外設收到該廣播幀后,進行相應延時,需要傳輸數據的醫學外設向醫監主機發送數傳請求幀,無需傳輸數據的醫學外設無需響應,所有響應均在每個通信周期前8ms內完成;8ms時間到,醫監主機根據接收的數傳請求幀,形成本通信周期內需要進行數據傳輸的醫學外設數傳列表;然后根據數傳列表,發送數傳通知幀,逐個通知需要傳輸數據的醫學外設;醫學外設收到數傳通知幀后,向醫監主機發送數據包;醫監主機完成一個醫學外設的數據接收后,再向下一個醫學外設發送數傳通知幀,該醫學外設才向主機傳送數據包;當最后一個醫學外設數據包傳輸完成后,本通信周期內數據傳輸完畢。
醫學信息網絡中,各通信幀報文的主要內容如下:
廣播幀報文ID高3位為 001,中間5位為醫監主機站地址,低3位為001,幀長度為6,內容為6字節系統時間碼。
上注幀報文ID高3位為010,中間5位為醫監主機站地址,低3位為010,幀長度為8,內容為通過醫監主機向某醫學外設傳輸的專用系數。
請求幀報文ID高3位為011,中間5位為醫學外設站地址,低3位為011,幀長度為1,內容為1字節外設狀態遙測參數。
通知幀報文ID高3位為100,中間5位為醫監主機站地址,低3位為100,幀長度為1,內容為1字節醫學外設站標識,低5位為站地址,高3位保留。
數據幀報文ID高3位為101,中間5位為醫學外設站地址,低3位為101,幀長度為8,內容為醫學外設向醫監主機發送的醫學生理數據或醫學檢查數據。
站地址是各醫學外設在數據通信過程中的節點代號,醫學外設數據傳輸是通過數據幀來實現的,站地址占數據幀標識符的中間5位,全1地址作為廣播站地址。各通信節點根據站地址設置屏蔽字,只接收與本通信節點有關的數據,包括廣播數據。
4.1.1 分配原則
由于CAN總線控制器驗收字和屏蔽字特殊的設置方式,使得對于接收自相關數據和廣播數據的節點,從理論上還可以接收到其他站地址的數據。為避免此類節點的應用程序對非相關數據的處理,系統必須合理分配站地址。
假設所有節點均可接收自相關數據和廣播數據,每個節點與其關聯的站地址見下表3所示:
從表中可看出(不包括0和31)站地址的相關性,可分為4類:
① a類,自相關性最強的5個站地址(15、23、27、29、30),和其他節點不相關;
② b類,自相關性較強的10個站地址(7、11、13、14、19、21、22、25、26、28),分別和 a 類站地址中的兩個站地址相關;
③ c類,自相關性較差的10個站地址(3、5、6、9、10、12、17、18、20、24),分別和 a、b 類站地址中的 6個站地址相關;

表3 地址間相關性
④ d 類,自相關性最差的 5個站地址(1、2、4、8、16),分別和a、b、c類站地址中的14個站地址相關。
因此,如果系統中接收廣播的站點較多,如果大于5,就不能使用a類自相關性最強的5個站地址,如果大于10,就不能使用b類自相關性較強的10個站地址。
4.1.2 分配結果
如圖1所示,當前任務中醫學外設的節點數量為10,所以選用b類自相關性較強的10個站地址。同時將對數據實時性要求較高的醫學外設站地址分配靠前,醫學檢查外設相對在后;醫學檢查外設中,將數據量較小的外設相對靠前,較大的靠后。基于上述考慮,醫學信息管理網絡中各醫學外設站地址分配結果如下表4所示:

表4 站地址
醫學信息管理網絡設計中,為防止醫學外設帶電插拔,保證CAN總線醫學信息管理網絡數據通信的穩定、可靠,在醫監主機內部對外部CAN接口醫學外設電源的輸入進行了控制,由醫監主機通過采集外設開關電平信號來控制內部外設電源輸出繼電器的通斷。
醫監主機初始加電或復位時,軟件初始化使醫學外設電源統一關閉。在正常運行過程中定時查詢每個醫學外設的外設開關狀態量。該狀態量的使用情況如下:
①初始狀態時,醫學外設電纜與醫監主機的接插件未連接時或雖已連接但醫學外設開關處于關閉狀態時,該端口外設開關狀態量為高;
②當醫學外設開關置于打開狀態時,該端口外設開關信號與+5V信號回線短接,外設開關狀態量為低,醫監主機查詢該狀態量后打開該端口電源繼電器開關,醫學外設加電工作,該端口醫學外設可與醫監主機進行數據通信;
③當通信結束后,航天員關閉醫學外設開關,此時該端口外設開關狀態量由低變高,醫監主機關閉該端口電源繼電器開關。航天員此后可斷開醫學外設與醫監主機之間電纜。
本文首次將CAN總線技術應用于載人航天任務中醫監生理數據的傳輸,極大提高了在軌醫監生理數據的傳輸可靠性;對前端醫監及醫學檢查外設通過醫學信息網絡進行統一管理,不僅滿足交會對接任務10個外設同時進行高速數據傳輸的要求,而且還可滿足醫學外設數量不斷增加的需求,極大提高了醫監系統的可擴充性;基于ID站地址和規范數據包的應用層網絡傳輸協議的實現,淡化了軟件實現對硬件系統的依賴性,提高了軟件代碼的可重用性;基于外設電源管理的熱插拔技術的應用,成功解決了航天員使用過程中的即插即用問題。◇
[1]BOSCH.CAN Specification V2.0,1991.
[2]熊劍平,尤政,陸建華.微小衛星平臺公共總線技術-CAN網絡應用.航天器工程,2000,03.
[3]李孝同.小衛星星務管理技術.中國空間科學技術.2001.2.
[4]郭川生,潘明,于新業.基于CAN總線的汽車內部網絡設計.信息技術,2008,04.
[5]千應慶,張偉軍,王春香,等.基于 CAN總線的全自主移動車輛信息網絡設計.上海航天,2010,02.