《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 浮空器慣性姿態(tài)測量系統(tǒng)冗余CAN總線設計
浮空器慣性姿態(tài)測量系統(tǒng)冗余CAN總線設計
來源:電子技術應用2013年第7期
李保國,吳 孟,胡文媛,張海宏
北京航空航天大學 儀器科學與光電工程學院,北京100191
摘要: 為滿足浮空器慣性姿態(tài)測量系統(tǒng)在高空長航時環(huán)境下對CAN通信高可靠性的要求,設計了一種雙CAN總線全系統(tǒng)冗余方案。采用兩片集成度較高的LPC11C24微控制器,在DSP+FPGA架構的導航計算機上搭建冗余系統(tǒng),并結合上位機對該系統(tǒng)進行了測試與驗證。測試結果表明,該冗余系統(tǒng)通信功能正常。當主CAN出現(xiàn)故障時,從CAN投入運行,有較好的容錯性,在不增加成本和空間的前題下,提高了慣性姿態(tài)測量系統(tǒng)的可靠性。
中圖分類號: TH873.7
文獻標識碼: A
文章編號: 0258-7998(2013)07-0021-04
Design of redundant CAN bus for aerostat inertial attitude measurement system
Li Baoguo,Wu Meng,Hu Wenyuan,Zhang Haihong
School of Instrumentation & Opto-Electronics Engineering,Beihang University,Beijing 100191,China
Abstract: In order to improve the CAN communication ability of aerostat inertial attitude measurement system under severe environment, a system method of double-CAN redundant bus is designed. Two LPC11C24 micro-controllers with high integration are used to establish the redundant system based on DSP & FPGA navigation computer. The system′s function is tested and verified with upper computer. The test result shows that this redundant system performs well. Slave CAN starts working when ever the master CAN fails. Fault tolerance is stable. The reliability and quality of aerostat inertial attitude measurement system are enhanced without adding cost and space.
Key words : inertial attitude measurement system;CAN bus;redundant;LPC11C24

    目前,CAN總線系統(tǒng)已經成熟應用在慣性姿態(tài)測量系統(tǒng)中,具有很好的實時性和抗干擾能力[1]。雖然CAN協(xié)議本身具有較強的檢錯糾錯能力,但在一些特殊應用場合,比如高空長航的工作狀態(tài),或受惡劣天氣等環(huán)境的干擾,以及傳輸介質損壞等都會嚴重影響CAN的可靠通信。在要求高可靠性的應用系統(tǒng)中,解決這一問題的有效途徑是進行CAN總線冗余設計[2-3]。本文針對浮空器慣性姿態(tài)測量系統(tǒng),基于兩片LPC11C24微控制器,設計實現(xiàn)了CAN總線冗余系統(tǒng)。

1 冗余系統(tǒng)設計
    典型的CAN總線通信電路主要由微控制器、CAN總線控制器和CAN總線驅動器以及總線4部分組成[4]。基于CAN總線的冗余方法主要從3個環(huán)節(jié)進行不同程度的冗余:有總線驅動器冗余、總線控制器冗余和全系統(tǒng)冗余3種。3種冗余方法各有優(yōu)缺點,其中全系統(tǒng)冗余方法可靠度最高[5]。全系統(tǒng)冗余方法由雙路CAN通信電路組成,需要的主要器件數(shù)為無冗余系統(tǒng)的2倍。傳統(tǒng)的慣性姿態(tài)測量系統(tǒng)由導航計算機作為微控制器,CAN總線節(jié)點設計需要CAN總線控制器、CAN總線驅動器以及相關電平轉換芯片。導航計算機屬于嵌入式產品,固定在載體的機械結構上,幾何形狀和質量都一般力求小型化。冗余設計器件數(shù)的增多不但會增加系統(tǒng)的成本和容量的開銷,而且使系統(tǒng)的構成較復雜,也可能會引來新的錯誤。
    本文選用LPC11C24微控制器來設計CAN總線冗余系統(tǒng),其基本架構如圖1所示。LPC11C24是恩智浦(NXP)公司近年推出的一款Cortex-M0微控制器,內嵌易用型片上CAN驅動,集成了高速CAN物理層收發(fā)器TJF1051,在低成本LQFP48封裝中實現(xiàn)了完整的CAN功能。LPC11C24的成本低、集成度高,是兼容CAN 2.0B的LPC11C00系列控制器的新成員之一,可為惡劣環(huán)境下的應用帶來最佳性能[6]。基于LPC11C24的CAN總線冗余設計能充分利用該款芯片的優(yōu)勢,減少導航計算機的電氣互連,節(jié)省50%以上的電路,從而提高了整個系統(tǒng)的可靠性。

2 系統(tǒng)硬件設計
    本文慣性姿態(tài)測量系統(tǒng)導航計算機采用DSP+FPGA架構,DSP主要實現(xiàn)導航姿態(tài)的實時解算和系統(tǒng)控制,F(xiàn)PGA集成系統(tǒng)所有的接口功能,包括CAN通信接口。CAN總線冗余系統(tǒng)是基于兩路LPC11C24最小系統(tǒng)來實現(xiàn)的,兩片LPC微控制器以主-從模式工作。其在導航計算機中的基本設計原理如圖2所示。

    DSP輸出的主要是導航姿態(tài)信息,接收的信息主要是IMU數(shù)據(jù)、外部傳感器(GPS、磁強計等)數(shù)據(jù)以及相關指令信息。CAN通信模塊搭建在FPGA上,通過FPGA與DSP進行數(shù)據(jù)交互,數(shù)據(jù)信息在FPGA內部寄存器中緩沖。這樣的設計減少了DSP對外開銷,保證了導航姿態(tài)的實時解算以及與人機交互低速數(shù)據(jù)的匹配。FPGA與LPC微控制器的主要連接如下:
    (1)數(shù)據(jù)線D0~D7:8根數(shù)據(jù)線,用于完成FPGA與LPC的數(shù)據(jù)交互。
    (2)地址線A0~A4:5根地址線,最大數(shù)據(jù)交互的字節(jié)數(shù)不應超過32,若超過,則需增加地址線。
    (3)信號控制線:讀控制信號CAN_RE、寫控制信號CAN_RE、數(shù)據(jù)發(fā)送準備完成信號CAN_RDY以及復位信號CAN_RST。
    兩LPC微控制器共用數(shù)據(jù)線D0~D7和數(shù)據(jù)發(fā)送準備完成信號線CAN_RDY,數(shù)據(jù)線和地址線通過GPIO口實現(xiàn)。數(shù)據(jù)發(fā)送準備完成后,同時觸發(fā)兩LPC微控制器INT,INT通過定時器捕獲外部事件中斷來實現(xiàn)。復位信號由FPGA產生一個低電平實現(xiàn),讀寫控制信號在FPGA與CAN通信數(shù)據(jù)交互過程中分別有效。
    實現(xiàn)CAN通信功能還需搭建LPC微控制器最小系統(tǒng)。LPC最小系統(tǒng)主要包括供電電源、外部時鐘和調試接口。LPC微控制器所需電壓3.3 V由導航計算機電源模塊提供。本文采用12 MHz外部時鐘給系統(tǒng)提供基準時鐘。由于LPC1100系列Cortex-M0不再支持JTAG調試模式,所以調試接口采用SWD串行調試模式。兩總線輸出之間連接EMI濾波器,濾除總線上的高頻干擾。此外,兩LPC之間有兩交互信號,分別為EN0和EN1,EN0是發(fā)出故障切換信號,EN1是接受處理信號,或稱之使能CAN通信信號。工作過程中,使能一個CAN的同時禁用一個CAN。
3 系統(tǒng)軟件設計
      CAN總線冗余系統(tǒng)采用兩條完全獨立的CAN總線,實現(xiàn)系統(tǒng)的物理層和數(shù)據(jù)鏈路層全面冗余。
      系統(tǒng)上電復位后,初始化兩路 CAN 總線;一路CAN總線中斷開啟,處于正常運行狀態(tài),另一路CAN總線中斷關閉,處于備用狀態(tài);系統(tǒng)采用兼容兩種觸發(fā)方式的報文分配方式,將傳輸報文分為周期傳送報文(時間觸發(fā))與非周期傳送報文(事件觸發(fā)),其中導航姿態(tài)信息為20 ms周期報文,控制報文為非周期報文。慣性姿態(tài)測量系統(tǒng)平時不輸出任何報文,當控制報文控制其啟動后才按照總線調度策略進行輸出,完成導航測姿功能。CAN總線冗余系統(tǒng)設計主要實現(xiàn)兩部分功能:一為單路通信程序設計,二為雙路總線切換設計。冗余系統(tǒng)的工作流程如圖3所示。

3.1 單路CAN通信程序設計
    CAN節(jié)點通信過程主要包括系統(tǒng)初始化、CAN報文接收、CAN報文發(fā)送和CAN中斷處理等。其中系統(tǒng)初始化主要包括系統(tǒng)配置初始化、管腳初始化、定時器初始化以及CAN模塊初始化等。LPC11C24微控制器中包含了C_CAN片上驅動,片上驅動程序存放在引導ROM中,并通過定義好的API向用戶應用程序提供CAN初始化和通信特性[7]。下列幾個常用的函數(shù)包含在API中,其調用實現(xiàn)如下:
    (1)CAN控制器的初始化是在基于寄存器的陣列值上實現(xiàn)的,這些值通過指針來進行傳遞。CAN初始化調用范例如下:
    void CAN_init()
    {
        ROM **rom =(ROM **)0x1fff1ff8;
        uint32_t CanApiClkInitTable[2] = {
        0x00000000UL, //晶振時鐘分頻數(shù)
        0x00007EC3UL };//位定時寄存器配置7EC3:24;
//CAN通信速率為500 kb/s
        (*rom)->pCANAPI->init_can(&CanApiCanInitTable
           [0]);
    }
    (2)CAN發(fā)送函數(shù)允許設置報文對象,并可在總線上觸發(fā)CAN報文的傳送;報文編號隨著每一次通信而增加,而且可用于監(jiān)控引入的信息。當超過255時,信息代碼會歸零。這使得網絡中的任意節(jié)點可以通過報文編號來測定報文的進程和正確的順序,以進行檢查。發(fā)送函數(shù)如下:
    void CAN_send(  )
    {
        msg_obj.msgobj = 2;//報文對象
        msg_obj.mode_id= 0x001UL;//報文對象編號
        msg_obj.mask = 0x0UL;//不屏蔽任何ID
        msg_obj.dlc = 1;//數(shù)據(jù)長度
        msg_obj.data[0] = 0x00;
        (*rom)->pCAND->can_transmit(&msg_obj);
    }
    (3)CAN接收函數(shù)在調用之前,必須在結構體中設置要被讀取的報文對象的編號,這樣指向報文對象結構的指針會被傳遞到接收函數(shù)中。其實現(xiàn)如下:
    void CAN_receive( )
    {
        msg_obj.msgobj = 1;
        (*rom)->pCAND->can_receive(&msg_obj);
    }
    (4)用戶應用程序必須為CAN中斷提供中斷處理程序才能處理CAN事件,調用回調函數(shù),并根據(jù)CAN總線上接收到的數(shù)據(jù)和檢查到的狀態(tài)采取相關的操作。CAN中斷處理程序調用如下:
    (*rom)->pCAND->isr();
    (5)CAN API支持各種事件的回調函數(shù),包括報文發(fā)送、報文接收和錯誤處理等。回調函數(shù)通過API函數(shù)來發(fā)布,CAN中斷處理程序會按照中斷級別來調用CAN回調函數(shù)。注冊回調表如下:
    const CAN_CALLBACKS callbacks =
    {
        CAN_rx,
        CAN_tx,
        CAN_error,
    };
3.2 雙路CAN總線切換設計

 


    雙CAN總線冗余采用熱備方式運行。一個CAN控制器作為系統(tǒng)上電后默認的CAN,另一個為系統(tǒng)的備用CAN。系統(tǒng)正常工作時,投入運行的CAN稱為主CAN,另一路稱為從CAN。當主CAN發(fā)生故障時,從CAN總線投入運行。系統(tǒng)運行時,要求兩路CAN控制器處于熱備狀態(tài),經初始化后都隨時準備接收信息,但是在一個時間點上,系統(tǒng)中有且僅有一路CAN通道在工作,另一路處于監(jiān)聽狀態(tài)(正常工作時)或故障狀態(tài)(發(fā)生故障時)。實現(xiàn)CAN總線系統(tǒng)的全面冗余,主要解決總線故障的自動檢測和總線的切換問題。
    CAN2.0協(xié)議中規(guī)定節(jié)點處于錯誤激活態(tài)、忽略錯誤態(tài)、脫離總線態(tài)3種狀態(tài)之一[8]。總線正常工作時處于錯誤激活狀態(tài),利用CAN總線控制器的故障界定機制可以判斷總線錯誤。硬件初始化后錯誤計數(shù)器為0,控制器檢測到錯誤后將發(fā)送/接收錯誤計數(shù)器的值遞增。當發(fā)送或者接收錯誤計數(shù)值大于127時,總線狀態(tài)為忽略錯誤態(tài),可能的原因是CANH、CANL斷開;當總線發(fā)送或者接收錯誤計數(shù)值大于255時,總線狀態(tài)為脫離總線態(tài),可能的原因是CANH與CANL短路,或者CANH與地短路,或者CANL與電源短路。在錯誤狀態(tài)發(fā)生時,需立即執(zhí)行總線切換操作。
    系統(tǒng)運行時,如兩路CAN(CAN0和CAN1)都運行良好,則選取CAN0作為默認主CAN,CAN1處于關閉狀態(tài),等待CAN0發(fā)出的使能信號,從CAN則隨時備用。當主CAN發(fā)生錯誤狀態(tài)時,讀取錯誤狀態(tài)寄存器,同時觸發(fā)CAN1使能引腳,CAN1給出響應并禁用CAN0,響應完畢后,開啟CAN1,兩CAN主從模式切換。CAN0處于故障狀態(tài),等待修復,若修復完畢,即可作為從CAN備用,在下一次出現(xiàn)故障時由CAN1給出使能信號啟動;若沒有及時修復,則系統(tǒng)處于無冗余狀態(tài),若再次出現(xiàn)故障,則禁止系統(tǒng)運行。
4 測試與驗證
    要驗證本文設計的CAN總線冗余系統(tǒng)的有效性,需搭建測試平臺進行實驗。實驗軟件環(huán)境包括TKScope嵌入式智能仿真開發(fā)平臺、ZLGCANTset監(jiān)測軟件以及串口調試助手等。硬件環(huán)境包括AK100仿真器、USBCAN模塊以及基于導航計算機的雙LPC組成的CAN冗余電路等。實驗過程主要是對單路CAN通信功能和雙路冗余功能進行測試。
    (1)單路CAN通信功能測試。單路CAN通信的功能測試主要包括CAN的收發(fā),以及I/O口的中斷、數(shù)據(jù)交互等。為了便于調試,隔離開導航計算機中DSP模塊,采用上位機串口進行模擬。首先由上位機串口模擬發(fā)送導航姿態(tài)信息,周期為20 ms,F(xiàn)PGA收取數(shù)據(jù)至內部緩存器,然后由LPC讀取并發(fā)送至CAN總線上。同樣,CAN模塊可以接收總線上的報文信息,產生中斷讀取并轉發(fā)至上位機串口顯示。測試過程中, CANTest監(jiān)測軟件收發(fā)和串口調試助手發(fā)收數(shù)據(jù)一致,表明CAN通信正常。
    (2)雙CAN冗余功能測試。冗余功能測試是在完成了單路通信測試而且雙路CAN通信都能獨立正常工作的基礎上進行的。實驗過程中,需增加一個USBCAN模塊。首先,系統(tǒng)上電正常工作時,只有CAN0處于運行狀態(tài),而且其基本通信功能正常,CAN1總線處于關閉狀態(tài);手動斷開CAN0總線,CAN1總線啟動,CAN0總線關閉;接好CAN0總線,手動斷開CAN1總線,CAN1總線關閉,CAN0總線恢復。圖4給出了在CAN模塊發(fā)送數(shù)據(jù)過程中,CAN0總線發(fā)生故障時,數(shù)據(jù)切換到CAN1總線上的情況。實驗測試過程中,主CAN出現(xiàn)故障,能及時切換到從CAN運行,有較強的容錯性。

    采用雙LPC設計實現(xiàn)的CAN總線冗余系統(tǒng)節(jié)約了導航計算機的成本和空間的開銷,而且開發(fā)過程中充分利用了LPC控制器片上CAN驅動模塊中的API函數(shù),縮短了開發(fā)周期。CAN總線冗余系統(tǒng)的設計增強了系統(tǒng)對環(huán)境的應對能力,有效提高了浮空器慣性姿態(tài)測量系統(tǒng)可靠性。
參考文獻
[1] 宋凝芳,任磊,林恒,等.光纖陀螺捷聯(lián)航姿系統(tǒng)CAN總線設計[J].中國慣性技術學報,2008,16(1):16-19.
[2] 杜倩倩.雙冗余CAN總線模塊研制[D].哈爾濱:哈爾濱工業(yè)大學,2011.
[3] 禹春來,許化龍,劉根旺,等.CAN總線冗余方法研究[J].測控技術,2003,22(10):28-30.
[4] 莫傳孟.CAN總新冗余通信在機車控制系統(tǒng)中的應用研究[D].成都:西南交通大學,2003.
[5] 湯宜涌,王傳德.CAN總線冗余系統(tǒng)的研究及可靠性分析[J].中原工學院學報,21(5):73-75.
[6] LPC11Cx2/Cx4 Product data sheet(Rev.2-3)[M].廣州周立功單片機公司,2010.
[7] LPC11C1x系列微控制器用戶手冊(Rev.00.13)[M].廣州周立功單片機公司,2010.
[8] 汪孟寅,高明煜.基于STM32F105微控制器的雙CAN冗余設計[J].杭州電子科技大學學報,2011,31(2):9-12.

此內容為AET網站原創(chuàng),未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品国码视频| 黑人巨大精品欧美一区二区小视频| 欧美在线1区| 亚洲一区二区三区精品视频| 亚洲精品久久嫩草网站秘色| 久久成人亚洲| 欧美一区国产二区| 亚洲欧美在线磁力| 欧美亚洲日本网站| 欧美一区高清| 久久国产99| 亚洲国产99| 亚洲精品乱码久久久久久按摩观| 亚洲国产精品久久人人爱蜜臀 | 欧美在线视频一区二区| 欧美一级在线视频| 欧美专区日韩专区| 久久精品视频在线| 亚洲黄色av| 99精品欧美一区二区三区综合在线| 亚洲精品综合在线| 亚洲美女尤物影院| 亚洲网站在线| 亚洲欧美资源在线| 久久精品日韩| 嫩草伊人久久精品少妇av杨幂| 欧美国产乱视频| 欧美日韩久久精品| 国产精品久线观看视频| 国产女主播一区二区三区| 国产日韩欧美麻豆| 精品va天堂亚洲国产| 最新国产成人在线观看| 日韩亚洲国产欧美| 亚洲在线免费观看| 久久精品人人| 亚洲美女区一区| 亚洲一区二区三区涩| 欧美影院午夜播放| 噜噜噜噜噜久久久久久91| 欧美激情精品久久久久| 欧美日韩一区二区在线| 国产欧美日韩激情| 亚洲福利小视频| av不卡在线观看| 亚洲欧美日韩久久精品| 亚洲国产一区在线观看| 艳女tv在线观看国产一区| 午夜精品成人在线视频| 久久人人爽人人爽爽久久| 欧美国产一区二区三区激情无套| 欧美日韩一区二区在线观看| 国产乱理伦片在线观看夜一区| 极品裸体白嫩激情啪啪国产精品| 亚洲精品日韩一| 亚洲欧美国产三级| 91久久午夜| 亚洲影视在线播放| 另类图片国产| 欧美性色视频在线| 合欧美一区二区三区| 99国产精品私拍| 欧美一区二区三区四区在线观看地址| 亚洲精品一区在线观看香蕉| 西瓜成人精品人成网站| 欧美成人视屏| 国产精品综合视频| 亚洲靠逼com| 欧美在线观看www| 亚洲图片欧美午夜| 久久婷婷麻豆| 国产精品男人爽免费视频1| 亚洲国产精品久久| 欧美一级久久久久久久大片| 一区二区三区国产精华| 久久三级视频| 国产精品进线69影院| 亚洲国产一区视频| 欧美一级播放| 亚洲视频999| 女人天堂亚洲aⅴ在线观看| 国产精品手机在线| 日韩午夜高潮| 亚洲人人精品| 久久久伊人欧美| 国产精品无人区| 亚洲美女淫视频| 亚洲国产精品一区二区尤物区| 午夜在线视频一区二区区别| 欧美日本不卡视频| 亚洲成人在线| 久久精品国产亚洲精品| 性欧美xxxx大乳国产app| 欧美日韩亚洲三区| 亚洲全黄一级网站| 91久久精品国产91久久性色tv| 欧美一区综合| 国产精品劲爆视频| 9i看片成人免费高清| 亚洲精品在线看| 美女脱光内衣内裤视频久久影院| 国产欧美一区二区视频| 亚洲视频图片小说| 在线一区日本视频| 欧美精品三级| 亚洲大胆人体视频| 久久国内精品自在自线400部| 欧美一区在线视频| 国产农村妇女毛片精品久久莱园子| 亚洲深夜av| 亚洲一区二区三区四区中文| 欧美乱大交xxxxx| 亚洲人成网站精品片在线观看 | 国际精品欧美精品| 欧美一区二区视频网站| 小嫩嫩精品导航| 国产精品视频福利| 亚洲欧美日韩在线观看a三区| 亚洲欧美一区在线| 国产精品入口日韩视频大尺度| 正在播放欧美一区| 亚洲欧美一级二级三级| 国产精品乱子乱xxxx| 亚洲视频欧美视频| 欧美一区二区高清| 国产偷国产偷亚洲高清97cao| 欧美一区二区三区免费视频| 久久久久久久一区二区| 国外成人在线视频网站| 欧美在线视屏| 鲁鲁狠狠狠7777一区二区| 狠狠综合久久| 亚洲国产精品一区二区三区| 麻豆91精品| 亚洲精品久久久久| 在线亚洲美日韩| 欧美视频在线观看一区二区| 亚洲视频在线观看网站| 欧美一区二区三区四区高清| 国产日韩欧美一区二区三区四区| 久久成人一区二区| 欧美福利一区二区三区| 亚洲久久视频| 亚洲欧美成aⅴ人在线观看| 国产精品一二| 久久激情中文| 欧美高清视频一区二区| 99精品国产在热久久婷婷| 亚洲欧美综合v| 国产中文一区| 日韩一区二区久久| 国产精品国产三级国产普通话三级 | 欧美日韩国产在线观看| 亚洲午夜一级| 久久精品一级爱片| 亚洲国产精品一区| 亚洲色图自拍| 国产一区二区精品在线观看| 亚洲国产一成人久久精品| 欧美日韩国产在线| 亚洲欧美精品伊人久久| 免费成人网www| 亚洲视频www| 久久久久久**毛片大全| 亚洲国产精彩中文乱码av在线播放| 中文精品视频一区二区在线观看| 国产精品一区免费观看| 亚洲欧洲精品一区二区三区| 欧美视频福利| 欧美在线地址| 欧美日韩一区二| 欧美专区在线观看一区| 欧美精品日韩综合在线| 亚洲综合国产精品| 欧美精品一卡| 久久不射电影网| 国产精品第一页第二页第三页| 久久精品天堂| 国产精品成av人在线视午夜片| 欧美综合国产| 国产精品xxx在线观看www| 欧美在线你懂的| 欧美午夜精品久久久久久孕妇| 久久电影一区| 国产精品麻豆成人av电影艾秋| 亚洲国产精品综合| 国产精品蜜臀在线观看| 亚洲欧洲一级| 国产一区二区高清| 亚洲男女毛片无遮挡| 亚洲高清不卡av| 欧美一区二区三区四区高清| 亚洲人成在线观看网站高清| 久久成人国产精品| 夜夜狂射影院欧美极品| 免费看黄裸体一级大秀欧美| 亚洲综合另类| 欧美在线视频免费观看| 99pao成人国产永久免费视频| 久久香蕉国产线看观看网|