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