專(zhuān)利名稱(chēng):一種星載雙can總線(xiàn)節(jié)點(diǎn)故障自恢復(fù)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種星載雙CAN總線(xiàn)節(jié)點(diǎn)故障自恢復(fù)系統(tǒng),屬于星載CAN總線(xiàn)技術(shù)領(lǐng) 域。
背景技術(shù):
CAN(ControIler Area Network)總線(xiàn)是一種串行通信的現(xiàn)場(chǎng)總線(xiàn),具有可靠性 高、實(shí)時(shí)性好、抗干擾能力強(qiáng)、通信方式靈活、組網(wǎng)簡(jiǎn)單等優(yōu)點(diǎn),因此國(guó)內(nèi)外均已將其引入星 上電子系統(tǒng),甚至作為星上骨干網(wǎng)絡(luò)來(lái)完成星上設(shè)備間的信息傳遞。星上電子系統(tǒng)對(duì)CAN總線(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)通信的可靠性要求很高,為了提高可靠性,通 常每個(gè)通信節(jié)點(diǎn)都采用雙CAN總線(xiàn),CAN總線(xiàn)A和CAN總線(xiàn)B。但由于目前的星載CAN總線(xiàn) 節(jié)點(diǎn)的電路模塊大多由非宇航級(jí)器件實(shí)現(xiàn),在軌情況下容易受到空間環(huán)境(尤其是空間粒 子)的影響而出現(xiàn)邏輯異常,導(dǎo)致通信異?;蛑袛?。為消除節(jié)點(diǎn)故障對(duì)總線(xiàn)通信的影響,目 前常用的故障檢測(cè)及處理方法包括兩方面措施一方面是與CAN總線(xiàn)控制器連接的微處理 器采用讀取的方式定期查詢(xún)CAN總線(xiàn)控制器的狀態(tài)寄存器,當(dāng)狀態(tài)寄存器指示總線(xiàn)關(guān)閉或 總線(xiàn)出錯(cuò)時(shí),對(duì)總線(xiàn)控制器進(jìn)行初始化;另一方面是與CAN總線(xiàn)控制器連接的微處理器采 用定時(shí)器對(duì)兩次總線(xiàn)響應(yīng)(進(jìn)入總線(xiàn)通訊中斷服務(wù)程序)的時(shí)間間隔進(jìn)行計(jì)時(shí),超過(guò)規(guī)定 時(shí)間后認(rèn)為總線(xiàn)異常,對(duì)總線(xiàn)控制器進(jìn)行初始化。上述方法存在以下問(wèn)題故障檢測(cè)全部采 用軟件功能來(lái)實(shí)現(xiàn),檢測(cè)的可靠性和實(shí)時(shí)性相對(duì)較低;在某些故障情況下僅通過(guò)軟件重新 初始化總線(xiàn)A及總線(xiàn)B的CAN控制器不能使得兩個(gè)控制器恢復(fù)正常收發(fā)功能。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問(wèn)題是克服現(xiàn)有技術(shù)的不足,提供一種星載雙CAN總線(xiàn)節(jié)點(diǎn) 故障自恢復(fù)系統(tǒng),該系統(tǒng)是一種軟硬結(jié)合的星載雙CAN總線(xiàn)故障系統(tǒng),解決了故障檢測(cè)的 可靠性和實(shí)時(shí)性問(wèn)題,同時(shí)確保故障自動(dòng)解除。本發(fā)明的技術(shù)解決方案是一種星載雙CAN總線(xiàn)節(jié)點(diǎn)故障自恢復(fù)系統(tǒng),包括第一 CAN總線(xiàn)、第二 CAN總線(xiàn)、第 一 CAN總線(xiàn)收發(fā)器、第二 CAN總線(xiàn)收發(fā)器、第一 CAN總線(xiàn)控制器、第二 CAN總線(xiàn)控制器、中斷 處理單元、硬件看門(mén)狗和處理器;第一 CAN總線(xiàn)連接第一 CAN總線(xiàn)收發(fā)器,第一 CAN總線(xiàn)收發(fā)器連接第一 CAN總線(xiàn) 控制器,第一 CAN總線(xiàn)控制器連接處理器;第二 CAN總線(xiàn)連接第二 CAN總線(xiàn)收發(fā)器,第二 CAN 總線(xiàn)收發(fā)器連接第二 CAN總線(xiàn)控制器,第二 CAN總線(xiàn)控制器連接處理器;第一 CAN總線(xiàn)控制 器和第二 CAN總線(xiàn)控制器之間還連接有中斷處理單元,中斷處理單元連接硬件看門(mén)狗和處 理器,硬件看門(mén)狗連接處理器、第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器;第一 CAN總線(xiàn)收發(fā)器接收來(lái)自第一 CAN總線(xiàn)的信號(hào)并將該信號(hào)發(fā)送給第一 CAN總 線(xiàn)控制器,第一 CAN總線(xiàn)控制器接收到信號(hào)之后產(chǎn)生第一中斷信號(hào)并將第一中斷信號(hào)發(fā)送 給中斷處理單元;第二 CAN總線(xiàn)收發(fā)器接收來(lái)自第二 CAN總線(xiàn)的信號(hào)并將該信號(hào)發(fā)送給第二 CAN總線(xiàn)控制器,第二 CAN總線(xiàn)控制器接收到信號(hào)之后產(chǎn)生第二中斷信號(hào)并將第二中斷 信號(hào)發(fā)送給中斷處理單元;中斷處理單元將第一中斷信號(hào)和第二中斷信號(hào)進(jìn)行邏輯與運(yùn)算 產(chǎn)生數(shù)據(jù)接收中斷信號(hào),并將數(shù)據(jù)接收中斷信號(hào)送入處理器的第一中斷端口中,同時(shí),中斷 處理單元將所述數(shù)據(jù)接收中斷信號(hào)經(jīng)過(guò)脈沖生成邏輯單元的處理產(chǎn)生脈沖,送入硬件看門(mén) 狗中;硬件看門(mén)狗根據(jù)接收到的所述脈沖生成故障中斷信號(hào),并將所述故障中斷信號(hào)同時(shí) 輸入到第一 CAN總線(xiàn)控制器中、第二 CAN總線(xiàn)控制器中和處理器的第二中斷端口中;當(dāng)?shù)谝?CAN總線(xiàn)處于工作狀態(tài),第二 CAN總線(xiàn)處于非工作狀態(tài)時(shí),若第一 CAN總線(xiàn)無(wú)故障,則第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為低電平信 號(hào),第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的 數(shù)據(jù)接收中斷信號(hào)為低電平,硬件看門(mén)狗接收到低電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障 中斷信號(hào)為高電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的高 電平后不做處理;處理器的中斷端口均為低電平有效,則當(dāng)處理器接收到的數(shù)據(jù)接收中斷 信號(hào)為低電平,故障中斷信號(hào)為高電平時(shí),處理器正常工作,不對(duì)第一 CAN總線(xiàn)控制器和第 二 CAN總線(xiàn)控制器進(jìn)行處理;若第一 CAN總線(xiàn)有故障,則第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為高電平信 號(hào),第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的 數(shù)據(jù)接收中斷信號(hào)為高電平,硬件看門(mén)狗接收到高電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障 中斷信號(hào)為低電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的低 電平后,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器均硬件復(fù)位;當(dāng)處理器接收到的數(shù)據(jù)接 收中斷信號(hào)為高電平,故障中斷信號(hào)為低電平時(shí),處理器發(fā)送信號(hào)給第一 CAN總線(xiàn)控制器 和第二 CAN總線(xiàn)控制器,通過(guò)重新配置第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器中寄存 器的值使得第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器軟件復(fù)位;當(dāng)?shù)谝?CAN總線(xiàn)處于非工作狀態(tài),第二 CAN總線(xiàn)處于工作狀態(tài)時(shí),若第二 CAN總線(xiàn)無(wú)故障,則第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為低電平信 號(hào),第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的 數(shù)據(jù)接收中斷信號(hào)為低電平,硬件看門(mén)狗接收到低電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障 中斷信號(hào)為高電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的高 電平后不做處理;處理器的中斷端口均為低電平有效,則當(dāng)處理器接收到的數(shù)據(jù)接收中斷 信號(hào)為低電平,故障中斷信號(hào)為高電平時(shí),處理器正常工作,不對(duì)第一 CAN總線(xiàn)控制器和第 二 CAN總線(xiàn)控制器進(jìn)行處理;若第二 CAN總線(xiàn)有故障,則第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為高電平信 號(hào),第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的 數(shù)據(jù)接收中斷信號(hào)為高電平,硬件看門(mén)狗接收到高電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障 中斷信號(hào)為低電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的低 電平后,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器均硬件復(fù)位;當(dāng)處理器接收到的數(shù)據(jù)接 收中斷信號(hào)為高電平,故障中斷信號(hào)為低電平時(shí),處理器發(fā)送信號(hào)給第一 CAN總線(xiàn)控制器 和第二 CAN總線(xiàn)控制器,通過(guò)重新配置第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器中寄存 器的值使得第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器軟件復(fù)位。所述處理器配置第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器中的寄存器過(guò)程如下(1)通過(guò)配置CAN控制器的中斷控制寄存器的值來(lái)清除CAN控制器中斷;(2)通過(guò)配置CAN控制器中的復(fù)位控制寄存器的值來(lái)使得CAN控制器進(jìn)入復(fù)位狀 態(tài);(3)通過(guò)配置CAN控制器中相應(yīng)的工作參數(shù)配置寄存器的值來(lái)設(shè)置CAN控制器的 工作參數(shù);(4)通過(guò)配置CAN控制器中的接收中斷寄存器的值使能CAN控制器接收中斷;( 通過(guò)配置CAN控制器中的復(fù)位控制寄存器的值使得CAN控制器退出復(fù)位狀態(tài), 進(jìn)入正常狀態(tài)。
本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是(1)采用硬件邏輯電路結(jié)合硬件看門(mén)狗對(duì)星載雙CAN總線(xiàn)節(jié)點(diǎn)總線(xiàn)控制器的數(shù)據(jù) 接收中斷信號(hào)進(jìn)行監(jiān)測(cè),進(jìn)而實(shí)現(xiàn)了節(jié)點(diǎn)通信故障的有效檢測(cè),監(jiān)測(cè)可靠性高;當(dāng)雙總線(xiàn)通 信節(jié)點(diǎn)的當(dāng)前通信通道存在故障不能正常接收數(shù)據(jù),進(jìn)而不能產(chǎn)生數(shù)據(jù)接收中斷時(shí),硬件 邏輯與操作單元便會(huì)保持高電平,從而不產(chǎn)生硬件看門(mén)狗的清狗信號(hào),硬件看門(mén)狗在設(shè)定 的時(shí)間內(nèi)沒(méi)有收到清狗信號(hào)便產(chǎn)生硬件復(fù)位信號(hào)對(duì)CAN控制器進(jìn)行復(fù)位,可使得雙CAN總 線(xiàn)的兩個(gè)CAN控制器可靠恢復(fù)到上電初始狀態(tài),本發(fā)明中使得CAN控制器復(fù)位是通過(guò)硬件 方式實(shí)現(xiàn),相比現(xiàn)有技術(shù)中的單純軟件復(fù)位方式,具有更高的可靠性,使得現(xiàn)有技術(shù)中的單 純使用軟件方式有時(shí)無(wú)法復(fù)位的問(wèn)題得到了解決,提高了衛(wèi)星系統(tǒng)運(yùn)行的可靠性。(2)本發(fā)明中當(dāng)檢測(cè)到雙CAN總線(xiàn)通信節(jié)點(diǎn)的CAN控制器出現(xiàn)故障時(shí),硬件看門(mén)狗 產(chǎn)生中斷信號(hào)通知處理器,處理器接收到該中斷信號(hào)后在中斷服務(wù)程序中對(duì)兩路CAN控制 器進(jìn)行初始化,包括清除CAN控制器中斷,配置CAN控制器進(jìn)入復(fù)位狀態(tài),設(shè)置CAN控制器 的工作參數(shù),使能CAN控制器接收中斷,配置CAN控制器退出復(fù)位狀態(tài),進(jìn)入正常狀態(tài)等,實(shí) 現(xiàn)CAN控制器的故障恢復(fù),由于采用了中斷方式來(lái)處理恢復(fù)過(guò)程,因此故障恢復(fù)實(shí)時(shí)性高, 本發(fā)明通過(guò)軟件復(fù)位和硬件復(fù)位兩種方式雙管齊下,給衛(wèi)星中CAN總線(xiàn)故障自恢復(fù)上了雙 重保險(xiǎn)。
圖1為本發(fā)明一種星載雙CAN總線(xiàn)節(jié)點(diǎn)故障自恢復(fù)系統(tǒng)的原理框圖;圖2為本發(fā)明的硬件中斷處理模塊示意圖;圖3為本發(fā)明的軟件故障處理程序流程圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行進(jìn)一步的詳細(xì)描述。為了確保通信的可靠性,現(xiàn)有的星載CAN總線(xiàn)網(wǎng)絡(luò)普遍采用雙CAN總線(xiàn)網(wǎng)絡(luò),即每 個(gè)CAN總線(xiàn)通信節(jié)點(diǎn)具備兩個(gè)通信通道,節(jié)點(diǎn)間通過(guò)兩條線(xiàn)纜連接,形成兩個(gè)獨(dú)立的通信 通道,當(dāng)一個(gè)通信通道故障時(shí),可以采用另一個(gè)通信通道通信,且任一時(shí)刻只有一個(gè)通信通 道在進(jìn)行通信。每個(gè)通信通道各包括一個(gè)CAN總線(xiàn)通信控制器和一個(gè)CAN總線(xiàn)收發(fā)器,同時(shí) 每個(gè)通信節(jié)點(diǎn)還包括一個(gè)處理器。連接關(guān)系是通信節(jié)點(diǎn)的處理器和CAN總線(xiàn)控制器連接, CAN總線(xiàn)控制器和CAN收發(fā)器連接,CAN收發(fā)器連接CAN總線(xiàn)通信線(xiàn)纜。當(dāng)一個(gè)通信通道故6障時(shí),可以采用另一個(gè)通信通道通信,且任一時(shí)刻只有一個(gè)通信通道在進(jìn)行通信。其中,CAN 總線(xiàn)收發(fā)器和CAN總線(xiàn)控制器都屬于常規(guī)電路,有專(zhuān)用芯片實(shí)現(xiàn)其功能。在故障檢測(cè)和恢 復(fù)方面,現(xiàn)有的手段包括兩方面措施一方面是與CAN總線(xiàn)控制器連接的微處理器采用讀 取的方式定期查詢(xún)CAN總線(xiàn)控制器的狀態(tài)寄存器,當(dāng)狀態(tài)寄存器指示總線(xiàn)關(guān)閉或總線(xiàn)出錯(cuò) 時(shí),對(duì)總線(xiàn)控制器進(jìn)行初始化;另一方面是與CAN總線(xiàn)控制器連接的微處理器采用定時(shí)器 對(duì)兩次總線(xiàn)響應(yīng)(進(jìn)入總線(xiàn)通訊中斷服務(wù)程序)的時(shí)間間隔進(jìn)行計(jì)時(shí),超過(guò)規(guī)定時(shí)間后認(rèn) 為總線(xiàn)異常,對(duì)總線(xiàn)控制器進(jìn)行初始化。現(xiàn)有技術(shù)方法存在以下問(wèn)題故障檢測(cè)全部采用軟 件功能來(lái)實(shí)現(xiàn),檢測(cè)的可靠性和實(shí)時(shí)性相對(duì)較低;在某些故障情況下僅通過(guò)軟件重新初始 化總線(xiàn)A及總線(xiàn)B的CAN控制器不能使得兩個(gè)控制器恢復(fù)正常收發(fā)功能。如圖1所示,本發(fā)明是一種星載雙CAN總線(xiàn)節(jié)點(diǎn)故障自恢復(fù)系統(tǒng),該系統(tǒng)的特點(diǎn)是 采用了硬件看門(mén)狗對(duì)雙CAN總線(xiàn)的故障進(jìn)行了檢測(cè),并通過(guò)先硬件、后軟件的處理方式對(duì) 故障進(jìn)行了自動(dòng)恢復(fù),相比現(xiàn)有技術(shù)純軟件復(fù)位更加有保證,可靠性更高。本發(fā)明的一種星 載雙CAN總線(xiàn)節(jié)點(diǎn)故障自恢復(fù)系統(tǒng),包括第一 CAN總線(xiàn)、第二 CAN總線(xiàn)、第一 CAN總線(xiàn)收發(fā) 器、第二 CAN總線(xiàn)收發(fā)器、第一 CAN總線(xiàn)控制器、第二 CAN總線(xiàn)控制器、中斷處理單元、硬件 看門(mén)狗和處理器,其中,第一 CAN總線(xiàn)指代CAN總線(xiàn)A,第二 CAN總線(xiàn)指代CAN總線(xiàn)B,第一 CAN總線(xiàn)收發(fā)器指代CAN總線(xiàn)收發(fā)器A,第二 CAN總線(xiàn)收發(fā)器指代CAN總線(xiàn)收發(fā)器B,第一 CAN總線(xiàn)控制器指代CAN總線(xiàn)控制器A,第二 CAN總線(xiàn)控制器指代CAN總線(xiàn)控制器B。其中,處理器可選用51系列單片機(jī)、ARM、DSP等,CAN總線(xiàn)收發(fā)器可采用飛利浦公 司的PCA82C250芯片,或其他功能相同的芯片,CAN控制器可采用飛利浦公司的SJA1000芯 片,或其他功能相同的芯片,硬件看門(mén)狗可采用MAXIM公司的MAX6746芯片或其它功能相 同的芯片,硬件看門(mén)狗通常有一個(gè)清狗信號(hào)輸入引腳和一個(gè)狗咬信號(hào)(復(fù)位信號(hào))輸出引 腳,同時(shí)可設(shè)定(制造時(shí)設(shè)定或電路中設(shè)定)狗咬時(shí)間,當(dāng)硬件看門(mén)狗的清狗信號(hào)輸入引腳 在狗咬時(shí)間內(nèi)收到清狗信號(hào)(通常為一個(gè)低電平脈沖),則不產(chǎn)生狗咬信號(hào),輸出保持高電 平,當(dāng)在狗咬時(shí)間內(nèi)沒(méi)有收到清狗信號(hào),則產(chǎn)生狗咬輸出信號(hào),通常為一個(gè)低電平脈沖。
第一 CAN總線(xiàn)(CAN-A)連接第一 CAN總線(xiàn)收發(fā)器(CAN總線(xiàn)收發(fā)器A),第一 CAN總 線(xiàn)收發(fā)器連接第一 CAN總線(xiàn)控制器(CAN總線(xiàn)控制器A),第一 CAN總線(xiàn)控制器連接處理器; 第二 CAN總線(xiàn)(CAN-B)連接第二 CAN總線(xiàn)收發(fā)器(CAN總線(xiàn)收發(fā)器B),第二 CAN總線(xiàn)收發(fā)器 連接第二 CAN總線(xiàn)控制器,第二 CAN總線(xiàn)控制器(CAN總線(xiàn)控制器B)連接處理器;第一 CAN 總線(xiàn)控制器和第二 CAN總線(xiàn)控制器之間還連接有中斷處理單元,中斷處理單元連接硬件看 門(mén)狗和處理器,硬件看門(mén)狗連接處理器、第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器;第一 CAN總線(xiàn)收發(fā)器接收來(lái)自第一 CAN總線(xiàn)的信號(hào)并將該信號(hào)發(fā)送給第一 CAN總 線(xiàn)控制器,第一 CAN總線(xiàn)控制器接收到信號(hào)之后產(chǎn)生第一中斷信號(hào)并將第一中斷信號(hào)發(fā)送 給中斷處理單元;第二 CAN總線(xiàn)收發(fā)器接收來(lái)自第二 CAN總線(xiàn)的信號(hào)并將該信號(hào)發(fā)送給第 二 CAN總線(xiàn)控制器,第二 CAN總線(xiàn)控制器接收到信號(hào)之后產(chǎn)生第二中斷信號(hào)并將第二中斷 信號(hào)發(fā)送給中斷處理單元;中斷處理單元將第一中斷信號(hào)和第二中斷信號(hào)進(jìn)行邏輯與運(yùn)算 產(chǎn)生數(shù)據(jù)接收中斷信號(hào),并將數(shù)據(jù)接收中斷信號(hào)送入處理器的第一中斷端口(INT1引腳) 中,同時(shí),中斷處理單元將所述數(shù)據(jù)接收中斷信號(hào)經(jīng)過(guò)脈沖生成邏輯單元的處理產(chǎn)生脈沖, 送入硬件看門(mén)狗中,脈沖生成邏輯單元屬于常規(guī)電路,可采用FPGA或數(shù)字門(mén)電路來(lái)實(shí)現(xiàn);硬件看門(mén)狗狗咬時(shí)間的選取要求大于兩次總線(xiàn)數(shù)據(jù)通信時(shí)間間隔,即硬件看門(mén)狗在超過(guò)兩次總線(xiàn)通信時(shí)間間隔的時(shí)間沒(méi)有收到清狗信號(hào)則產(chǎn)生狗咬信號(hào),輸出低電平脈 沖,硬件看門(mén)狗所配置的狗咬低電平脈沖的寬度一方面需要滿(mǎn)足CAN控制器復(fù)位低電平脈 沖持續(xù)時(shí)間需求,另一方面還要滿(mǎn)足處理器中斷響應(yīng)的脈寬需求,即,需要選取硬件看門(mén)狗 芯片的狗咬信號(hào)電平持續(xù)時(shí)間參數(shù)滿(mǎn)足此處的時(shí)間匹配需求。硬件看門(mén)狗根據(jù)接收到的所述脈沖生成故障中斷信號(hào),并將所述故障中斷信號(hào)同 時(shí)輸入到第一 CAN總線(xiàn)控制器中、第二 CAN總線(xiàn)控制器中和處理器的第二中斷端口(INT2 引腳)中;對(duì)于第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器來(lái)說(shuō),上述輸入的故障中斷信號(hào) 也就是各自的復(fù)位信號(hào),即復(fù)位信號(hào)A和復(fù)位信號(hào)B。當(dāng)?shù)谝?CAN總線(xiàn)處于工作狀態(tài),第二 CAN總線(xiàn)處于非工作狀態(tài)時(shí),若第一 CAN總線(xiàn)無(wú)故障,則第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為低電平信 號(hào),第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的 數(shù)據(jù)接收中斷信號(hào)為低電平,硬件看門(mén)狗接收到低電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障 中斷信號(hào)為高電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的高 電平后不做處理;處理器的中斷端口均為低電平有效,則當(dāng)處理器接收到的數(shù)據(jù)接收中斷 信號(hào)為低電平,故障中斷信號(hào)為高電平時(shí),處理器正常工作,不對(duì)第一 CAN總線(xiàn)控制器和第 二 CAN總線(xiàn)控制器進(jìn)行處理;若第一 CAN總線(xiàn)有故障,則第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為高電平信 號(hào),第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的 數(shù)據(jù)接收中斷信號(hào)為高電平,硬件看門(mén)狗接收到高電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障 中斷信號(hào)為低電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的低 電平后,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器均硬件復(fù)位;當(dāng)處理器接收到的數(shù)據(jù)接 收中斷信號(hào)為高電平,故障中斷信號(hào)為低電平時(shí),處理器發(fā)送信號(hào)給第一 CAN總線(xiàn)控制器 和第二 CAN總線(xiàn)控制器,通過(guò)重新配置第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器中寄存 器的值使得第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器軟件復(fù)位;當(dāng)?shù)谝?CAN總線(xiàn)處于非工作狀態(tài),第二 CAN總線(xiàn)處于工作狀態(tài)時(shí),若第二 CAN總線(xiàn)無(wú)故障,則第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為低電平信 號(hào),第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的 數(shù)據(jù)接收中斷信號(hào)為低電平,硬件看門(mén)狗接收到低電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障 中斷信號(hào)為高電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的高 電平后不做處理;處理器的中斷端口均為低電平有效,則當(dāng)處理器接收到的數(shù)據(jù)接收中斷 信號(hào)為低電平,故障中斷信號(hào)為高電平時(shí),處理器正常工作,不對(duì)第一 CAN總線(xiàn)控制器和第 二 CAN總線(xiàn)控制器進(jìn)行處理;若第二 CAN總線(xiàn)有故障,則第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為高電平信 號(hào),第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的 數(shù)據(jù)接收中斷信號(hào)為高電平,硬件看門(mén)狗接收到高電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障 中斷信號(hào)為低電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的低 電平后,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器均硬件復(fù)位;當(dāng)處理器接收到的數(shù)據(jù)接 收中斷信號(hào)為高電平,故障中斷信號(hào)為低電平時(shí),處理器發(fā)送信號(hào)給第一 CAN總線(xiàn)控制器 和第二 CAN總線(xiàn)控制器,通過(guò)重新配置第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器中寄存器的值使得第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器軟件復(fù)位。處理器配置第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器中的寄存器過(guò)程如下(1)通過(guò)配置CAN控制器的中斷控制寄存器的值來(lái)清除CAN控制器中斷,對(duì)于CAN 控制器SJA1000,實(shí)現(xiàn)方式是讀取寄存器頂;;(2)通過(guò)配置CAN控制器中的復(fù)位控制寄存器的值來(lái)使得CAN控制器進(jìn)入復(fù)位狀 態(tài),對(duì)于CAN控制器SJA1000,實(shí)現(xiàn)方式是寫(xiě)寄存器CR的CR. 0位為“ 1” ;(3)通過(guò)配置CAN控制器中相應(yīng)的工作參數(shù)配置寄存器的值來(lái)設(shè)置CAN控制器的 工作參數(shù),對(duì)于CAN控制器SJA1000,設(shè)置接收碼的實(shí)現(xiàn)方式是寫(xiě)寄存器ACR為設(shè)計(jì)值,設(shè) 置屏蔽碼的實(shí)現(xiàn)方式是寫(xiě)寄存器AMR為設(shè)計(jì)值,設(shè)置波特率的實(shí)現(xiàn)方式是寫(xiě)寄存器BTRO和 BTRl為設(shè)計(jì)值,其它參數(shù)設(shè)置采用類(lèi)似實(shí)現(xiàn)方式;(4)通過(guò)配置CAN控制器中的接收中斷寄存器的值使能CAN控制器接收中斷,對(duì)于 CAN控制器SJA1000,實(shí)現(xiàn)方式是寫(xiě)寄存器CR的CR. 1位為“ 1” ;( 通過(guò)配置CAN控制器中的復(fù)位控制寄存器的值使得CAN控制器退出復(fù)位狀態(tài), 進(jìn)入正常狀態(tài),對(duì)于CAN控制器SJA1000,實(shí)現(xiàn)方式是寫(xiě)寄存器CR的CRO位為“0”。對(duì)于其它CAN控制器,可采用類(lèi)似的初始化流程和寄存器設(shè)置方式。本發(fā)明說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員的公知技術(shù)。
權(quán)利要求
1. 一種星載雙CAN總線(xiàn)節(jié)點(diǎn)故障自恢復(fù)系統(tǒng),其特征在于包括第一 CAN總線(xiàn)、第二 CAN總線(xiàn)、第一 CAN總線(xiàn)收發(fā)器、第二 CAN總線(xiàn)收發(fā)器、第一 CAN總線(xiàn)控制器、第二 CAN總線(xiàn) 控制器、中斷處理單元、硬件看門(mén)狗和處理器;第一 CAN總線(xiàn)連接第一 CAN總線(xiàn)收發(fā)器,第一 CAN總線(xiàn)收發(fā)器連接第一 CAN總線(xiàn)控制 器,第一 CAN總線(xiàn)控制器連接處理器;第二 CAN總線(xiàn)連接第二 CAN總線(xiàn)收發(fā)器,第二 CAN總 線(xiàn)收發(fā)器連接第二 CAN總線(xiàn)控制器,第二 CAN總線(xiàn)控制器連接處理器;第一 CAN總線(xiàn)控制器 和第二 CAN總線(xiàn)控制器之間還連接有中斷處理單元,中斷處理單元連接硬件看門(mén)狗和處理 器,硬件看門(mén)狗連接處理器、第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器;第一 CAN總線(xiàn)收發(fā)器接收來(lái)自第一 CAN總線(xiàn)的信號(hào)并將該信號(hào)發(fā)送給第一 CAN總線(xiàn) 控制器,第一 CAN總線(xiàn)控制器接收到信號(hào)之后產(chǎn)生第一中斷信號(hào)并將第一中斷信號(hào)發(fā)送給 中斷處理單元;第二 CAN總線(xiàn)收發(fā)器接收來(lái)自第二 CAN總線(xiàn)的信號(hào)并將該信號(hào)發(fā)送給第二 CAN總線(xiàn)控制器,第二 CAN總線(xiàn)控制器接收到信號(hào)之后產(chǎn)生第二中斷信號(hào)并將第二中斷信 號(hào)發(fā)送給中斷處理單元;中斷處理單元將第一中斷信號(hào)和第二中斷信號(hào)進(jìn)行邏輯與運(yùn)算產(chǎn) 生數(shù)據(jù)接收中斷信號(hào),并將數(shù)據(jù)接收中斷信號(hào)送入處理器的第一中斷端口中,同時(shí),中斷處 理單元將所述數(shù)據(jù)接收中斷信號(hào)經(jīng)過(guò)脈沖生成邏輯單元的處理產(chǎn)生脈沖,送入硬件看門(mén)狗 中;硬件看門(mén)狗根據(jù)接收到的所述脈沖生成故障中斷信號(hào),并將所述故障中斷信號(hào)同時(shí)輸 入到第一 CAN總線(xiàn)控制器中、第二 CAN總線(xiàn)控制器中和處理器的第二中斷端口中; 當(dāng)?shù)谝?CAN總線(xiàn)處于工作狀態(tài),第二 CAN總線(xiàn)處于非工作狀態(tài)時(shí), 若第一 CAN總線(xiàn)無(wú)故障,則第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為低電平信號(hào), 第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的數(shù) 據(jù)接收中斷信號(hào)為低電平,硬件看門(mén)狗接收到低電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障中 斷信號(hào)為高電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的高電 平后不做處理;處理器的中斷端口均為低電平有效,則當(dāng)處理器接收到的數(shù)據(jù)接收中斷信 號(hào)為低電平,故障中斷信號(hào)為高電平時(shí),處理器正常工作,不對(duì)第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器進(jìn)行處理;若第一 CAN總線(xiàn)有故障,則第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為高電平信號(hào),第 二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的數(shù)據(jù) 接收中斷信號(hào)為高電平,硬件看門(mén)狗接收到高電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障中斷 信號(hào)為低電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的低電平 后,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器均硬件復(fù)位;當(dāng)處理器接收到的數(shù)據(jù)接收中 斷信號(hào)為高電平,故障中斷信號(hào)為低電平時(shí),處理器發(fā)送信號(hào)給第一 CAN總線(xiàn)控制器和第 二 CAN總線(xiàn)控制器,通過(guò)重新配置第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器中寄存器的 值使得第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器軟件復(fù)位;當(dāng)?shù)谝?CAN總線(xiàn)處于非工作狀態(tài),第二 CAN總線(xiàn)處于工作狀態(tài)時(shí), 若第二 CAN總線(xiàn)無(wú)故障,則第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為低電平信號(hào), 第一 CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的數(shù) 據(jù)接收中斷信號(hào)為低電平,硬件看門(mén)狗接收到低電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障中 斷信號(hào)為高電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的高電 平后不做處理;處理器的中斷端口均為低電平有效,則當(dāng)處理器接收到的數(shù)據(jù)接收中斷信號(hào)為低電平,故障中斷信號(hào)為高電平時(shí),處理器正常工作,不對(duì)第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器進(jìn)行處理;若第二 CAN總線(xiàn)有故障,則第二 CAN總線(xiàn)控制器輸出的第二中斷信號(hào)為高電平信號(hào),第一CAN總線(xiàn)控制器輸出的第一中斷信號(hào)為高電平,經(jīng)過(guò)中斷處理單元的處理,輸出的數(shù)據(jù) 接收中斷信號(hào)為高電平,硬件看門(mén)狗接收到高電平的數(shù)據(jù)接收中斷信號(hào),輸出的故障中斷 信號(hào)為低電平,第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器接收到故障中斷信號(hào)的低電平 后,第一CAN總線(xiàn)控制器和第二CAN總線(xiàn)控制器均硬件復(fù)位;當(dāng)處理器接收到的數(shù)據(jù)接收中 斷信號(hào)為高電平,故障中斷信號(hào)為低電平時(shí),處理器發(fā)送信號(hào)給第一 CAN總線(xiàn)控制器和第二CAN總線(xiàn)控制器,通過(guò)重新配置第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器中寄存器的 值使得第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器軟件復(fù)位。
2.根據(jù)權(quán)利要求1所述的星載雙CAN總線(xiàn)節(jié)點(diǎn)故障自恢復(fù)系統(tǒng),其特征在于所述處 理器配置第一 CAN總線(xiàn)控制器和第二 CAN總線(xiàn)控制器中的寄存器過(guò)程如下(1)通過(guò)配置CAN控制器的中斷控制寄存器的值來(lái)清除CAN控制器中斷;(2)通過(guò)配置CAN控制器中的復(fù)位控制寄存器的值來(lái)使得CAN控制器進(jìn)入復(fù)位狀態(tài);(3)通過(guò)配置CAN控制器中相應(yīng)的工作參數(shù)配置寄存器的值來(lái)設(shè)置CAN控制器的工作 參數(shù);(4)通過(guò)配置CAN控制器中的接收中斷寄存器的值使能CAN控制器接收中斷;(5)通過(guò)配置CAN控制器中的復(fù)位控制寄存器的值使得CAN控制器退出復(fù)位狀態(tài),進(jìn)入 正常狀態(tài)。
全文摘要
本發(fā)明涉及一種星載雙CAN總線(xiàn)節(jié)點(diǎn)故障自恢復(fù)系統(tǒng),該系統(tǒng)首先采用硬件邏輯與操作對(duì)基于雙CAN總線(xiàn)通信節(jié)點(diǎn)的兩個(gè)CAN控制器的中斷信號(hào)進(jìn)行處理,輸出的信號(hào)一方面?zhèn)魉徒o處理器用于數(shù)據(jù)的接收中斷,另一方面利用該信號(hào)產(chǎn)生脈沖信號(hào)對(duì)故障監(jiān)測(cè)硬件看門(mén)狗進(jìn)行清狗,當(dāng)看門(mén)狗在設(shè)定時(shí)間內(nèi)沒(méi)有收到清狗信號(hào)則產(chǎn)生硬件復(fù)位信號(hào)對(duì)兩個(gè)CAN控制器進(jìn)行復(fù)位,同時(shí)產(chǎn)生故障報(bào)警中斷信號(hào),通知處理器對(duì)兩個(gè)CAN控制器進(jìn)行初始化,完成CAN通信節(jié)點(diǎn)的故障恢復(fù),解決了故障檢測(cè)的可靠性和實(shí)時(shí)性問(wèn)題,同時(shí)確保故障自動(dòng)解除。
文檔編號(hào)H04L12/24GK102055633SQ20101029800
公開(kāi)日2011年5月11日 申請(qǐng)日期2010年9月29日 優(yōu)先權(quán)日2010年9月29日
發(fā)明者劉思遠(yuǎn), 劉勝利, 張曉敏, 楊芳, 申澤庶 申請(qǐng)人:航天東方紅衛(wèi)星有限公司