專利名稱:通訊芯片故障消除實現方法及裝置的制作方法
技術領域:
本發明涉及工業自動化技術領域,更具體地說,涉及一種PR0FIBUS-DP協議通訊 芯片故障消除實現方法及裝置。
背景技術:
現場總線是用于生產制造現場的最低層通信網絡,它實現了微機化的現場測量 控制儀器或設備之間的雙向串行多節點數字通信。PR0FIBUS-DP是底層控制網絡,專為自 動控制系統和設備級分散I/O之間通信設計,廣泛應用于分布式控制系統(Distributed Control System, DCS)的高速數據傳輸。中央控制器通過高速串行線同分散的現場設備 (如I/O、驅動器等)進行通信。現有技術中,PR0FIBUS-DP采用RS485傳輸技術,DCS系統中的各從控制站通過 PR0FIBUS-DP協議通訊專用芯片SPC3、CPLD (復雜可編輯邏輯器件)以及RS485總線組成的 通信模塊與主控制站通訊協議解析和物理層的數據流傳輸功能,具體的模塊電路如圖1所
7J\ o當從控制站處于發送數據狀態時,SPC3芯片將單片機要傳送的數據轉換為 PR0FIBUS-DP協議規定的報文,按照PR0FIBUS-DP協議的規定轉換為相應串行BIT(比特) 流,通過SPC3芯片上的TXD管腳將數據發出,通過CPLD將一路數據信號分為兩路信號,提 供給兩路RS485總線分別進行數據傳輸。RS485負責將BIT碼轉換成差分電平,以滿足總線 傳輸的要求。當從控制站處于接收數據狀態時,SPC3芯片處于接收狀態,接收總線上發送過來 的數據。RS485接口收發模塊負責將總線上的差分信號轉換為電平信號,通過CPLD的A/B 選擇邏輯,SPC3選擇接收其中一路總線發送的信號,并對接收到的BIT流,進行解析,組合 成報文,提供給單片機。但是,通過發明人的研究發現,現有技術中仍然存在著以下缺點當某從控制站的通信模塊發生故障時,RS485總線接口電路一直處于發送狀態,則 導致該從控制站的通信模塊一直占有總線,當總線上其它從控制站的通信模塊在發送數據 時,將造成數據總線上的數據混亂,系統的其它從控制站的通信模塊無法正常的收發數據, 從而導致整個系統無法正常工作。
發明內容
有鑒于此,本發明實施例提供一種通訊芯片故障消除實現方法及裝置,當通訊芯 片發生故障占用通訊總線時,能夠快速切斷故障芯片對通訊總線的占用。本發明實施例提供一種PR0FIBUS-DP協議通訊芯片故障消除實現方法,所述方法 包括獲取通訊芯片的工作狀態;當所述工作狀態為數據發送狀態時,判斷所述數據發送狀態的維持時間是否超過
4預置時間閾值,如果是,則確定所述通訊芯片發生故障;將連接所述通訊芯片的總線收發器當前的數據發送狀態設置為數據接收狀態。優選的,所述判斷所述數據發送狀態的維持時間是否超過預置時間閾值,包括獲取所述通訊芯片的發送數據端口輸出的電平信號;判斷在第一預置時間內,所述發送數據端口輸出的每個字節的電平信號中是否有電平變化,如果否,則確定所述數據發送狀態的維持時間超過所述預置時間閾值。優選的,所述判斷所述數據發送狀態的維持時間是否超過預置時間閾值,包括獲取所述通訊芯片上標識芯片工作狀態的端口輸出的電平信號;判斷在第二預置時間內,所述標識芯片工作狀態的端口輸出的電平信號中是否有 電平變化,如果否,則確定所述數據發送狀態的維持時間超過所述預置時間閾值。優選的,所述將連接所述通訊芯片的總線收發器當前的數據發送狀態設置為數據 接收狀態的實現方式為通過設置所述總線收發器的收發控制端口為低電平,將所述收發器設置為數據接 收狀態。一種PR0FIBUS-DP協議通訊芯片故障消除實現裝置,所述裝置包括通訊芯片狀態獲取模塊,用于獲取通訊芯片的工作狀態;故障判斷模塊,用于當所述工作狀態為數據發送狀態時,判斷所述數據發送狀態 的維持時間是否超過預置時間閾值,如果是,則確定所述通訊芯片發生故障;故障消除模塊,用于將連接所述通訊芯片的總線收發器當前的數據發送狀態設置 為數據接收狀態。優選的,所述故障判斷模塊包括第一端口信號獲取子模塊,用于獲取所述通訊芯片的發送數據端口輸出的電平信 號;第一判斷子模塊,用于判斷在第一預置時間內,所述發送數據端口輸出的每個字 節的電平信號中是否有電平變化,如果否,則確定所述數據發送狀態的維持時間超過所述 預置時間閾值。優選的,所述故障判斷模塊包括第二端口信號獲取子模塊,用于獲取所述通訊芯片上標識芯片工作狀態的端口輸 出的電平信號;第二判斷子模塊,用于判斷在第二預置時間內,所述標識芯片工作狀態的端口輸 出的電平信號中是否有電平變化,如果否,則確定所述數據發送狀態的維持時間超過所述 預置時間閾值。優選的,所述故障消除模塊通過設置所述總線收發器的收發控制端口為低電平, 將所述收發器設置為數據接收狀態。同現有技術相比,本發明提供的技術方案中,對通訊芯片的工作狀態進行監測,當 確定通訊芯片當前的工作狀態是數據發送狀態時,則對當前數據發送狀態持續的時間進行 監測,當持續時間超過預置時間閾值時,則確定該通訊芯片發生故障,通過改變連接所述通 訊芯片的總線收發器的當前數據發送狀態為數據接收狀態,從而避免故障芯片長時間占用 數據總線,而導致當數據總線上的其他通訊模塊發送數據時,造成數據總線上數據混亂的情形的出現。
為了更清楚地說明本發明實施例的技術方案,下面將對實施例或現有技術描述中 所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實 施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖 獲得其他的附圖。圖1為現有技術中從控制站的模塊電路示意圖;圖2為本發明實施例提供的一種PR0FIBUS-DP協議通訊芯片故障消除實現方法步 驟流程示意圖;圖3為本發明實施例提供的從控制站的模塊電路示意圖;圖4為圖3中故障判斷邏輯的封裝芯片的管腳示意圖;圖5為本發明實施例提供的一種PR0FIBUS-DP協議通訊芯片故障消除實現裝置的 結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。下面首先對本發明提供的PR0FIBUS-DP協議通訊芯片故障消除實現方法進行說 明,參照圖2所示,所述方法包括步驟201、獲取通訊芯片的工作狀態;步驟202、當所述工作狀態為數據發送狀態時,判斷所述數據發送狀態的維持時間 是否超過預置時間閾值,如果是,則確定所述通訊芯片發生故障;步驟203、將連接所述通訊芯片的總線收發器當前的數據發送狀態設置為數據接 收狀態。本發明實施例中,通過對通訊芯片的工作狀態進行監測,當確定通訊芯片當前的 工作狀態是數據發送狀態時,則對當前數據發送狀態持續的時間進行監測,當持續時間超 過預置時間閾值時,則確定該通訊芯片發生故障,這時,通訊芯片長時間占用數據總線,當 數據總線上的其他通訊模塊發送數據時,將造成數據總線上數據發生混亂。當通訊芯片發 生故障時,連接所述通訊芯片的總線收發器的當前狀態為數據發送狀態。為了避免上述情 形的出現,通過改變總線收發器的狀態為數據接收狀態,使得故障芯片釋放對數據總線的 占用,從而保證數據總線上的其他通訊模塊可以正常通訊,提高整個系統的穩定性。在本發明的一個優選實施例中,判斷所述數據發送狀態的維持時間是否超過預置 時間閾值的具體實現方式可以有以下兩種在第一種實現方式中,通過獲取所述通訊芯片的發送數據端口輸出的電平信號; 判斷在第一預置時間內,所述發送數據端口輸出的每個字節的電平信號中是否有電平變 化,如果否,則確定所述數據發送狀態的維持時間超過所述預置時間閾值。
在第二種實現方式中,通過獲取所述通訊芯片上標識芯片工作狀態的端口輸出的 電平信號;判斷在第二預置時間內,所述標識芯片工作狀態的端口輸出的電平信號中是否 有電平變化,如果否,則確定所述數據發送狀態的維持時間超過所述預置時間閾值。需要說明的是,上述兩種實現方式可以單獨使用,也可以同時使用,即同時監測通 訊芯片的發送數據端口和標識芯片工作狀態的端口的電平信號,使得對于通訊芯片的故障 判斷更為準確。其中,對于發送數據端口和標識芯片工作狀態的端口,根據PR0FIBUS-DP協議,預 先設定的端口工作狀態的持續時間閾值不一定相同,因此,對于兩個端口的工作狀態的持 續時間閾值分別以第一預置時間和第二預置時間進行區分。當確定通訊芯片發生故障,通訊芯片長時間占用數據總線時,在本發明的一個優 選實施例中,通過設置所述總線收發器的收發控制端口為低電平,將所述收發器設置為數 據接收狀態。當收發器被設置為接收狀態時,可以使得故障芯片釋放對數據總線的占用,從 而保證數據總線上的其他通訊模塊可以正常通訊,提高整個系統的穩定性。 下面通過一個具體實例對本發明實施例的技術方案進行解釋說明。SPC3芯片是PR0FIBUS-DP協議通訊專用芯片,通常設置于從控制站中。從控制站 在未和主控制站建立通訊連接之前,從控制站中的SPC3芯片的RTS管腳始終維持為低電 平信號輸出狀態;而當從控制站和主控制站建立通訊連接之后,從控制站中的SPC3芯片的 RTS管腳的輸出電平信號狀態則由從控制站和主控制站的通訊狀態決定。對于SPC3芯片來 說,通過RTS管腳輸出的電平信號可以判斷該芯片的工作狀態當SPC3芯片處于發送狀態 時,該芯片上的RTS管腳輸出電平信號為高電平信號;此時,RS485接口收發模塊處于發送 狀態,由其向總線上發送數據。當SPC3處于接收狀態時,該芯片上的RTS管腳輸出電平信 號為低電平信號;RS485接口收發模塊處于接收狀態,由其接收總線上由主控制站下發的 數據。除此之外,SPC3芯片上的TXD管腳是發送數據端,按照PR0FIBUS-DP協議規定, 如果芯片功能正常,在發送狀態時,TXD管腳在規定的時間內存在電平變化,這是由于 PR0FIBUS-DP協議采用NRZ (不歸零碼)編碼方式,在位持續時期,二值信號0或1不改變。 對于一個字符,在PR0FIBUS數據總線上通常利用11個BIT來表示,傳輸過程中,字符的表 示格式如下表 1 可見,在這11個BIT中,至少存在一個電平信號由0到1的跳變。由此,可以通過對PR0FIBUS-DP協議通訊芯片上的發送數據端口或標識芯片工作 狀態的端口進行監測,通過相應端口輸出的電平信號,判斷確定通訊芯片是否發生故障。如圖3所示,為本發明實施例中的從控制站通訊模塊電路連接示意圖。在圖3中,故障判斷邏輯用于監測SPC3芯片的工作狀態,從而判斷SPC3芯片是否發生故障。故障判斷邏輯的輸入端分別連接SPC3芯片的發送數據端口 TXD和標識芯片工作狀態的端口 RTS, 故障判斷邏輯的輸出端分別連接兩路RS485收發器的收發控制端(RE、DE),故障判斷邏輯 通過對RE、DE端電平信號的控制,從而實現對RS485收發器工作狀態的控制。當SPC3芯片 發生故障時,需要將RS485收發器設置為接收狀態,通過改變RS485收發器的狀態為數據接 收狀態,使得故障SPC3芯片釋放對RS485數據總線的占用,從而保證RS485數據總線上的 其他通訊模塊可以正常通訊,提高整個系統的穩定性。當需要將RS485收發器的狀態設置 為數據接收狀態時,通常將收發控制端(RE、DE)置為低電平。如圖3所示,需要說明的是,本發明實施例中,利用單片機從SPC3芯片獲取通訊波 特率,提供給故障判斷邏輯,故障判斷邏輯根據不同的波特率設定包數據發送定時器和字 節數據發送定時器的參數。包數據發送定時器用于設置發送數據端口(TXD)工作狀態的持 續時間閾值;字節數據發送定時器用于設置標識芯片工作狀態的端口(RTS)工作狀態的持 續時間閾值。圖4示出的是實現圖3中故障判斷邏輯的封裝芯片的管腳示意圖。上電初始化后, 單片機從SPC3獲取通訊波特率,根據不同的波特率,單片機將波特率信息以參數的方式通 過RDBAUD_CS、RDDATALEN_CS、DB
管腳寫入到故障判斷邏輯中,故障判斷邏輯根據 波特率參數配置,設定包數據發送定時器、字節數據發送定時器的參數,之后,故障判斷邏 輯開始檢測SPC3芯片的TXD管腳和RTS管腳的電平信號,如果發現異常,即兩個定時器 中有任何一個發生超時,則將故障判斷邏輯上的數據發送使能端T_EN管腳置為0,從而關 斷發送開關,使T_EN管腳連接的RS485收發器設置為接收狀態。這里,數據發送使能端T_ EN控制由通訊芯片SPC3輸出的控制RS485收發器工作狀態的控制信號,如果T_EN管腳輸 出為高電平(置1),則SPC3芯片輸出的控制RS485收發器的控制信號可以正常的控制收 RS485收發器為數據發送狀態;如果T_EN管腳輸出低電平(置0),則RS485收發器被強制 設置為數據接收狀態,不再接受SPC3芯片輸出的控制信號的控制。需要說明的是,當對SPC3芯片的TXD管腳和RTS管腳的輸出電平信號均進行監測 時,則當SPC3芯片上電后,故障判斷邏輯根據不同的波特率進行波特率參數的配置,并啟 動字節數據發送定時器,檢測SPC3芯片的發送數據在每個字節(串口為libit)的時間長 度內是否存在電平的跳變,如果否,則認為SPC3芯片串口輸出引腳存在故障,則切斷數據 發送使能端T_EN,從而保證當SPC3芯片發送故障時,可以將RS485收發器設置為接收狀態。上述監測過程進行的同時,故障判斷邏輯判斷復位管腳RST_L是否產生復位電平 信號,如果產生復位電平信號,則重新進行故障判斷邏輯中寄存器的初始化;如果沒有產 生復位電平信號,則對包數據發送定時器進行配置,啟動包數據發送定時器,在正確發送數 據后重新裝載包數據發送定時器,如果發送數據完成后,數據發送使能端T_EN仍然沒有復 位,則包數據發送定時器切斷數據發送使能端T_EN,直到下一次輪詢到該從站數據發送開 始時,再次啟動包數據發送定時器功能,從而保證當SPC3芯片發送故障時,可以將RS485收 發器設置為接收狀態。可見,上述實施例中,通過對通訊芯片的工作狀態進行監測,當確定通訊芯片當前 的工作狀態是數據發送狀態時,則對當前數據發送狀態持續的時間進行監測,當持續時間 超過預置時間閾值時,則確定該通訊芯片發生故障,這時,通訊芯片長時間占用數據總線, 當數據總線上的其他通訊模塊發送數據時,將造成數據總線上數據發生混亂。當通訊芯片
8發生故障時,連接所述通訊芯片的總線收發器的當前狀態為數據發送狀態。為了避免上述 情形的出現,通過改變總線收發器的狀態為數據接收狀態,使得故障芯片釋放對數據總線 的占用,從而保證數據總線上的其他通訊模塊可以正常通訊,提高整個系統的穩定性。上述實施例僅以SPC3芯片為例,當然,如果有其它的可以實現PR0FIBUS-DP協議 的芯片,由于芯片需要遵循PR0FIBUS-DP協議,即對于一個字符在PR0FIBUS總線上利用11 個BIT來表示,格式同SPC3芯片中字符的表示方法相類似,因此,也可以采用本發明實施例 技術方案,對此,本發明不再進行贅述。相應上述PR0FIBUS-DP協議通訊芯片故障消除實現方法,本發明實施例還提供了 一種PR0FIBUS-DP協議通訊芯片故障消除實現裝置,如圖5所示,為該裝置的結構示意圖, 該裝置具體可以包括通訊芯片狀態獲取模塊501,用于獲取通訊芯片的工作狀態;故障判斷模塊502,用于當所述工作狀態為數據發送狀態時,判斷所述數據發送狀 態的維持時間是否超過預置時間閾值,如果是,則確定所述通訊芯片發生故障;故障消除模塊503,用于將連接所述通訊芯片的總線收發器當前的數據發送狀態 設置為數據接收狀態。在本發明的一個優選實施例中,所述故障判斷模塊包括第一端口信號獲取子模塊,用于獲取所述通訊芯片的發送數據端口輸出的電平信 號; 第一判斷子模塊,用于判斷在第一預置時間內,所述發送數據端口輸出的每個字 節的電平信號中是否有電平變化,如果否,則確定所述數據發送狀態的維持時間超過所述 預置時間閾值。在本發明的另一個優選實施例中,所述故障判斷模塊包括第二端口信號獲取子模塊,用于獲取所述通訊芯片上標識芯片工作狀態的端口輸 出的電平信號;第二判斷子模塊,用于判斷在第二預置時間內,所述標識芯片工作狀態的端口輸 出的電平信號中是否有電平變化,如果否,則確定所述數據發送狀態的維持時間超過所述 預置時間閾值。其中,所述故障消除模塊通過設置所述總線收發器的收發控制端口為低電平,將 所述收發器設置為數據接收狀態。通過對通訊芯片的工作狀態進行監測,當確定通訊芯片當前的工作狀態是數據發 送狀態時,則對當前數據發送狀態持續的時間進行監測,當持續時間超過預置時間閾值時, 則確定該通訊芯片發生故障,這時,通訊芯片長時間占用數據總線,當數據總線上的其他通 訊模塊發送數據時,將造成數據總線上數據發生混亂。當通訊芯片發生故障時,連接所述通 訊芯片的總線收發器的當前狀態為數據發送狀態。為了避免上述情形的出現,通過改變總 線收發器的狀態為數據接收狀態,使得故障芯片釋放對數據總線的占用,從而保證數據總 線上的其他通訊模塊可以正常通訊,提高整個系統的穩定性。對于裝置實施例而言,由于其基本相應于方法實施例,所以描述得比較簡單,相關 之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所 述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。 可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普 通技術人員在不付出創造性勞動的情況下,即可以理解并實施。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以 通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于計算機可讀取存儲介質 中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為 磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。 對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的 一般原理可以在不脫離本發明實施例的精神或范圍的情況下,在其它實施例中實現。因此, 本發明實施例將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和 新穎特點相一致的最寬的范圍。
權利要求
一種PROFIBUS-DP協議通訊芯片故障消除實現方法,其特征在于,所述方法包括獲取通訊芯片的工作狀態;當所述工作狀態為數據發送狀態時,判斷所述數據發送狀態的維持時間是否超過預置時間閾值,如果是,則確定所述通訊芯片發生故障;將連接所述通訊芯片的總線收發器當前的數據發送狀態設置為數據接收狀態。
2.根據權利要求1所述的PR0FIBUS-DP協議通訊芯片故障消除實現方法,其特征在于, 所述判斷所述數據發送狀態的維持時間是否超過預置時間閾值,包括獲取所述通訊芯片的發送數據端口輸出的電平信號;判斷在第一預置時間內,所述發送數據端口輸出的每個字節的電平信號中是否有電平 變化,如果否,則確定所述數據發送狀態的維持時間超過所述預置時間閾值。
3.根據權利要求1所述的PR0FIBUS-DP協議通訊芯片故障消除實現方法,其特征在于, 所述判斷所述數據發送狀態的維持時間是否超過預置時間閾值,包括獲取所述通訊芯片上標識芯片工作狀態的端口輸出的電平信號;判斷在第二預置時間內,所述標識芯片工作狀態的端口輸出的電平信號中是否有電平 變化,如果否,則確定所述數據發送狀態的維持時間超過所述預置時間閾值。
4.根據權利要求1 3中任一項所述的PR0FIBUS-DP協議通訊芯片故障消除實現方 法,其特征在于,所述將連接所述通訊芯片的總線收發器當前的數據發送狀態設置為數據 接收狀態的實現方式為通過設置所述總線收發器的收發控制端口為低電平,將所述收發器設置為數據接收狀態。
5.一種PR0FIBUS-DP協議通訊芯片故障消除實現裝置,其特征在于,所述裝置包括通訊芯片狀態獲取模塊,用于獲取通訊芯片的工作狀態;故障判斷模塊,用于當所述工作狀態為數據發送狀態時,判斷所述數據發送狀態的維 持時間是否超過預置時間閾值,如果是,則確定所述通訊芯片發生故障;故障消除模塊,用于將連接所述通訊芯片的總線收發器當前的數據發送狀態設置為數 據接收狀態。
6.根據權利要求5所述的PR0FIBUS-DP協議通訊芯片故障消除實現裝置,其特征在于, 所述故障判斷模塊包括第一端口信號獲取子模塊,用于獲取所述通訊芯片的發送數據端口輸出的電平信號;第一判斷子模塊,用于判斷在第一預置時間內,所述發送數據端口輸出的每個字節的 電平信號中是否有電平變化,如果否,則確定所述數據發送狀態的維持時間超過所述預置 時間閾值。
7.根據權利要求5所述的PR0FIBUS-DP協議通訊芯片故障消除實現裝置,其特征在于, 所述故障判斷模塊包括第二端口信號獲取子模塊,用于獲取所述通訊芯片上標識芯片工作狀態的端口輸出的 電平信號;第二判斷子模塊,用于判斷在第二預置時間內,所述標識芯片工作狀態的端口輸出的 電平信號中是否有電平變化,如果否,則確定所述數據發送狀態的維持時間超過所述預置 時間閾值。
8.根據權利要求5 7中任一項所述的PR0FIBUS-DP協議通訊芯片故障消除實現裝 置,其特征在于,所述故障消除模塊通過設置所述總線收發器的收發控制端口為低電平,將 所述收發器設置為數據接收狀態。
全文摘要
本發明公開了一種PROFIBUS-DP協議通訊芯片故障消除實現方法及裝置,其中,所述方法包括獲取通訊芯片的工作狀態;當所述工作狀態為數據發送狀態時,判斷所述數據發送狀態的維持時間是否超過預置時間閾值,如果是,則確定所述通訊芯片發生故障;將連接所述通訊芯片的總線收發器當前的數據發送狀態設置為數據接收狀態。通過本發明,當通訊芯片發生故障占用通訊總線時,能夠快速切斷故障芯片對通訊總線的占用。
文檔編號H04L12/24GK101854258SQ201010192620
公開日2010年10月6日 申請日期2010年6月1日 優先權日2010年6月1日
發明者萬雪飛, 史洪源, 張云禧, 王常力, 韓寶林 申請人:杭州和利時自動化有限公司