賈海航,趙 霞
(同濟(jì)大學(xué) 電子與信息工程學(xué)院,上海 201804)
基于RS485總線(xiàn)的GSM-R從機(jī)故障檢測(cè)設(shè)計(jì)及實(shí)現(xiàn)
賈海航,趙 霞
(同濟(jì)大學(xué) 電子與信息工程學(xué)院,上海 201804)
RS485總線(xiàn)經(jīng)常被用做主從系統(tǒng)各節(jié)點(diǎn)間的通信方式,系統(tǒng)中主從機(jī)的通信狀態(tài)是整個(gè)系統(tǒng)正常工作的前提。文章設(shè)計(jì)了一種基于RS485總線(xiàn)的從機(jī)故障檢測(cè)方法。首先根據(jù)需求設(shè)計(jì)了一套穩(wěn)定的網(wǎng)絡(luò)通信協(xié)議和接口函數(shù),并提出了一種基于RS485網(wǎng)絡(luò)通信協(xié)議的輪詢(xún)方法,可實(shí)現(xiàn)一個(gè)主機(jī)可靠、穩(wěn)定地輪詢(xún)?cè)L問(wèn)多個(gè)從機(jī)。主機(jī)能夠檢測(cè)各個(gè)從機(jī)的通信狀況,并及時(shí)將從機(jī)通信故障信息上報(bào)到上位機(jī)。文章提出的在輪詢(xún)基礎(chǔ)上進(jìn)行故障檢測(cè)的方法,大大提高了系統(tǒng)的實(shí)時(shí)性。
RS485;輪詢(xún);故障檢測(cè)
圖1 GSM-R鐵路無(wú)線(xiàn)數(shù)字通信系統(tǒng)
隨著鐵路列車(chē)運(yùn)行速度的不斷提升,通信系統(tǒng)對(duì)于鐵路的安全運(yùn)行越來(lái)越重要。鐵路綜合數(shù)字移動(dòng)通信系統(tǒng)(Global System for Mobile Communications-Railway,GSM-R)是一種基于當(dāng)前世界最成熟、最通用的公共無(wú)線(xiàn)通信系統(tǒng)GSM平臺(tái),專(zhuān)為滿(mǎn)足鐵路應(yīng)用而設(shè)計(jì)開(kāi)發(fā)的無(wú)線(xiàn)數(shù)字通信系統(tǒng)[1]。圖1為GSM-R鐵路無(wú)線(xiàn)數(shù)字通信系統(tǒng)結(jié)構(gòu)示意圖,該系統(tǒng)包括遠(yuǎn)端機(jī)和近端機(jī)兩部分。近端機(jī)由時(shí)間分布控制單元 (Time Distributed Master Unit,TDMU)及射頻模塊組成,遠(yuǎn)端機(jī)由射頻拉遠(yuǎn)單元(Radio Remote Unit,RRU)和射頻模塊組成。TDMU和RRU不僅需要獲取各自射頻模塊的實(shí)時(shí)信息,以了解各個(gè)射頻模塊的運(yùn)行狀態(tài),同時(shí)還需將各個(gè)射頻模塊的故障信息及時(shí)上報(bào)到上位機(jī),使射頻模塊得到及時(shí)的維護(hù)。因此,TDMU和RRU與各自的射頻模塊之間穩(wěn)定可靠的通信是非常重要的。
常用的串口通信方式包括RS232和RS485。RS232串行通信總線(xiàn)屬于全雙工工作方式,數(shù)據(jù)的收發(fā)可以同時(shí)進(jìn)行,但傳輸距離短,且只適合點(diǎn)對(duì)點(diǎn)的通信方式。RS485串行通信總線(xiàn)采用半雙工工作方式,數(shù)據(jù)的收發(fā)不能同時(shí)進(jìn)行,任何時(shí)刻只能有一個(gè)主機(jī)處于主動(dòng)發(fā)送狀態(tài),其他所有從機(jī)處于被動(dòng)接收狀態(tài),非常適用于一主多從的通信要求[2]。RS485作為一種構(gòu)造簡(jiǎn)單、技術(shù)成熟、傳輸距離遠(yuǎn)的通信方式,得到了廣泛的應(yīng)用。
在本系統(tǒng)中,要求TDMU和RRU可以主動(dòng)訪(fǎng)問(wèn)射頻模塊,而射頻模塊只能被動(dòng)接收并響應(yīng)。根據(jù)上述需求,采用RS485串行總線(xiàn)作為T(mén)DMU和RRU訪(fǎng)問(wèn)射頻模塊的通信方式。將TDMU和RRU作為主機(jī),射頻模塊作為從機(jī),構(gòu)成RS485主從通信系統(tǒng)。上位機(jī)通過(guò)TDMU來(lái)監(jiān)控整個(gè)系統(tǒng)。
在一些相關(guān)文獻(xiàn)中關(guān)于RS485總線(xiàn)通信方式的設(shè)計(jì)都只提到了RS485輪詢(xún)過(guò)程的實(shí)現(xiàn),但均未考慮從機(jī)故障的處理問(wèn)題。本文針對(duì)在輪詢(xún)過(guò)程中的從機(jī)故障檢測(cè)問(wèn)題,提出了RS485總線(xiàn)輪詢(xún)與從機(jī)故障檢測(cè)相結(jié)合的實(shí)現(xiàn)方法。在本文的設(shè)計(jì)中,主機(jī)通過(guò)RS485總線(xiàn)輪詢(xún)各個(gè)從機(jī),獲取從機(jī)信息,同時(shí)實(shí)時(shí)檢測(cè)從機(jī)故障狀態(tài)。
1.1 通信協(xié)議
RS485接口標(biāo)準(zhǔn)通信協(xié)議需要用戶(hù)自己根據(jù)實(shí)際情況而設(shè)計(jì)[3]。設(shè)計(jì)一套結(jié)構(gòu)簡(jiǎn)單、功能完備,并且盡量標(biāo)準(zhǔn)化的通信協(xié)議是RS485通信最基本的通信要求。
RS485通信協(xié)議的設(shè)計(jì)主要包括物理層和數(shù)據(jù)鏈路層[4]。本文使用的VxWorks操作系統(tǒng)通過(guò)串口驅(qū)動(dòng)程序已經(jīng)實(shí)現(xiàn)了物理層的所有功能[5]。只需調(diào)用操作系統(tǒng)提供的發(fā)送和接收函數(shù)就可以實(shí)現(xiàn)數(shù)據(jù)通信。本文設(shè)計(jì)的RS485總線(xiàn)通信協(xié)議主要完成數(shù)據(jù)鏈路層的功能。
數(shù)據(jù)鏈路層的通信協(xié)議[5-6]包括開(kāi)始結(jié)束標(biāo)志、設(shè)備的類(lèi)型及地址、數(shù)據(jù)校驗(yàn)等。設(shè)置一個(gè)開(kāi)始、結(jié)束標(biāo)志來(lái)表明每一段數(shù)據(jù)幀的開(kāi)頭和結(jié)尾。設(shè)置一個(gè)標(biāo)志來(lái)標(biāo)識(shí)數(shù)據(jù)幀是請(qǐng)求數(shù)據(jù)幀還是應(yīng)答數(shù)據(jù)幀。用設(shè)備類(lèi)型和設(shè)備地址兩個(gè)標(biāo)志位來(lái)區(qū)分不同的從機(jī)。數(shù)據(jù)校驗(yàn)位用來(lái)保證數(shù)據(jù)幀的正確性。除上述單元,通信協(xié)議還應(yīng)包括命令標(biāo)識(shí)、數(shù)據(jù)長(zhǎng)度等。
根據(jù)以上描述,設(shè)計(jì)的通信協(xié)議如圖2所示。
圖2 通信協(xié)議格式
開(kāi)始標(biāo)志、結(jié)束標(biāo)志:表示一幀數(shù)據(jù)的開(kāi)始和結(jié)束,本文均用0x7f表示。
設(shè)備類(lèi)型:本文中用0x01表示功放,用0x02表示低噪放。
設(shè)備地址:對(duì)于同一種從機(jī)類(lèi)型,用設(shè)備地址區(qū)分不同設(shè)備類(lèi)型下的不同從機(jī)。例如:對(duì)于4個(gè)功放(設(shè)備類(lèi)型為0x01),設(shè)備地址分別為0x00、0x01、0x02、0x03。
命令標(biāo)識(shí):表示主機(jī)對(duì)從機(jī)發(fā)送的命令類(lèi)型。
響應(yīng)標(biāo)識(shí):主機(jī)主動(dòng)向從機(jī)發(fā)送數(shù)據(jù)用0xff表示,從機(jī)被動(dòng)響應(yīng)主機(jī)用0x00來(lái)表示。
數(shù)據(jù)長(zhǎng)度:表示具體數(shù)據(jù)的長(zhǎng)度。
數(shù)據(jù)校驗(yàn):為保證數(shù)據(jù)傳輸?shù)恼_性和完整性,本文采用CRC校驗(yàn)碼。CRC校驗(yàn)碼具有唯一性。若發(fā)送端與接收端的校驗(yàn)碼不一致,則表明數(shù)據(jù)幀的傳輸有誤[7]。
1.2 接口函數(shù)
數(shù)據(jù)鏈路層需為高層提供統(tǒng)一的RS485接口函數(shù),而接口函數(shù)的設(shè)計(jì)需要按照上述的網(wǎng)絡(luò)通信協(xié)議組包,調(diào)用底層串口驅(qū)動(dòng)將數(shù)據(jù)發(fā)送到目的從機(jī)并等待接收響應(yīng)消息。對(duì)接收到的數(shù)據(jù)解析,若此響應(yīng)數(shù)據(jù)完整無(wú)誤,則將需要的數(shù)據(jù)從中解析出來(lái)。在接口函數(shù)的設(shè)計(jì)中需要考慮數(shù)據(jù)幀的轉(zhuǎn)義、數(shù)據(jù)幀發(fā)送和接收、接口函數(shù)的保護(hù)三方面的內(nèi)容。
(1)在數(shù)據(jù)接收端,若具體數(shù)據(jù)中出現(xiàn)0x7f的數(shù)據(jù),在接收端就會(huì)影響對(duì)完整一幀數(shù)據(jù)的判斷。因此,在數(shù)據(jù)發(fā)送端要對(duì)發(fā)送數(shù)據(jù)進(jìn)行轉(zhuǎn)義處理。本文的方法是用0x5f和0x7d兩個(gè)字節(jié)的數(shù)據(jù)來(lái)代替0x7f,用0x5f和0x5d兩個(gè)字節(jié)的數(shù)據(jù)來(lái)代替0x5f;在數(shù)據(jù)接收端進(jìn)行反轉(zhuǎn)義處理,與轉(zhuǎn)義處理相反。
(2)接口函數(shù)中最重要的就是數(shù)據(jù)的發(fā)送和接收,本文使用的VxWorks操作系統(tǒng)已經(jīng)完成了底層RS485串口的配置,只需要調(diào)用操作系統(tǒng)提供的發(fā)送和接收函數(shù)就可以實(shí)現(xiàn)數(shù)據(jù)通信。數(shù)據(jù)的發(fā)送函數(shù)Tx485就是將組包好的數(shù)據(jù)發(fā)送到RS485總線(xiàn)上。RS485接收任務(wù)一直監(jiān)聽(tīng)總線(xiàn)上的數(shù)據(jù),通過(guò)監(jiān)聽(tīng)數(shù)據(jù)幀中的開(kāi)始和結(jié)束標(biāo)志來(lái)接收一條完整的RS485數(shù)據(jù)。將一幀完整數(shù)據(jù)發(fā)送到消息隊(duì)列,msgQReceive則從消息隊(duì)列中接收數(shù)據(jù)。RS485接口函數(shù)如下:
STATUS Port485Send (……)
{
semTake(sem485RdDone,WAIT_FOREVER);
//根據(jù)自定義的數(shù)據(jù)結(jié)構(gòu)進(jìn)行組包
……;
//進(jìn)行轉(zhuǎn)義處理
Escape(SendBuf,OutBuf);
//發(fā)送數(shù)據(jù)
Tx485(OutBuf);
//接收響應(yīng)數(shù)據(jù)
msgQReceive (Rx485QId, (char *)RespBuf, LEN_MAX , timeout);
//處理響應(yīng)數(shù)據(jù)
Port485_Handle(RespBuf, MsgLen);
semGive(sem485RdDone);
return OK;
}
(3)在RS485總線(xiàn)通信中,同一時(shí)刻,只能有一個(gè)主機(jī)處于發(fā)送狀態(tài),其他所有從機(jī)處于被動(dòng)接收狀態(tài),并且從機(jī)之間不能相互通信,否則將會(huì)引起總線(xiàn)沖突,無(wú)法正常工作[7]。RS485總線(xiàn)屬于半雙工的通信方式,數(shù)據(jù)的收發(fā)不能同時(shí)進(jìn)行,數(shù)據(jù)的發(fā)送必須等到上一次數(shù)據(jù)接收完成之后才能進(jìn)行。為了滿(mǎn)足上述RS485總線(xiàn)通信的特點(diǎn),本文需要對(duì)RS485接口函數(shù)進(jìn)行保護(hù)。
①RS485是一主多從的串行總線(xiàn),每一時(shí)刻只能有一個(gè)主機(jī)發(fā)送數(shù)據(jù),也即每一時(shí)刻RS485接口函數(shù)只能被調(diào)用一次。為了防止接口函數(shù)被同時(shí)調(diào)用,在接口函數(shù)中增加了信號(hào)量的保護(hù)。主機(jī)在調(diào)用接口函數(shù)時(shí),必須首先獲取信號(hào)量。如果沒(méi)能獲取信號(hào)量,說(shuō)明此刻有其他任務(wù)在調(diào)用接口函數(shù)。主機(jī)必須等到發(fā)送數(shù)據(jù)結(jié)束釋放信號(hào)量后,才能獲取信號(hào)量,調(diào)用接口函數(shù)來(lái)發(fā)送數(shù)據(jù)。
②RS485通信屬于半雙工的通信方式,數(shù)據(jù)的收發(fā)不能同時(shí)進(jìn)行。在實(shí)際的需求中,除了主機(jī)不斷輪詢(xún)從機(jī)之外,上位機(jī)也會(huì)通過(guò)主機(jī)向目標(biāo)從機(jī)發(fā)送一些查詢(xún)從機(jī)數(shù)據(jù)或配置從機(jī)參數(shù)的數(shù)據(jù)幀。主機(jī)的輪詢(xún)是一直進(jìn)行的,而上位機(jī)下發(fā)的數(shù)據(jù)幀是隨機(jī)的。為了避免輪詢(xún)數(shù)據(jù)和上位機(jī)下發(fā)的數(shù)據(jù)幀在485總線(xiàn)上沖突,本文設(shè)置一個(gè)全局變量作為主機(jī)輪詢(xún)的開(kāi)關(guān)。在上位機(jī)下發(fā)RS485數(shù)據(jù)幀時(shí),關(guān)閉輪詢(xún)開(kāi)關(guān),主機(jī)輪詢(xún)從機(jī)暫時(shí)停止。當(dāng)目標(biāo)從機(jī)響應(yīng)了上位機(jī)之后,打開(kāi)輪詢(xún)開(kāi)關(guān),主機(jī)繼續(xù)輪詢(xún)從機(jī)。
2.1 從機(jī)故障檢測(cè)的流程
圖3是基于輪詢(xún)機(jī)制的從機(jī)故障檢測(cè)的設(shè)計(jì)流程圖。主機(jī)每隔800 ms調(diào)用一次RS485接口函數(shù)輪詢(xún)從機(jī)設(shè)備。若800 ms內(nèi)未收到從機(jī)的響應(yīng),則認(rèn)為此從機(jī)通信異常。若連續(xù)異常次數(shù)達(dá)到上限,則主機(jī)需要將此從機(jī)通信故障信息上報(bào)到上位機(jī)。
圖3 從機(jī)故障檢測(cè)函數(shù)
2.2 從機(jī)故障檢測(cè)的實(shí)現(xiàn)
為了實(shí)現(xiàn)主機(jī)在輪詢(xún)從機(jī)過(guò)程中檢測(cè)從機(jī)通信狀況,本文將輪詢(xún)機(jī)制嵌套于故障檢測(cè)任務(wù)中。從機(jī)故障檢測(cè)任務(wù)包括輪詢(xún)時(shí)間間隔的設(shè)計(jì)、故障上報(bào)設(shè)計(jì)、輪詢(xún)過(guò)程中的從機(jī)故障檢測(cè)設(shè)計(jì)。其中,輪詢(xún)過(guò)程中的從機(jī)故障檢測(cè)是本文的重點(diǎn)。
(1)輪詢(xún)時(shí)間間隔的設(shè)計(jì)。通過(guò)看門(mén)狗定時(shí)器和信號(hào)量來(lái)實(shí)現(xiàn)800 ms的主機(jī)輪詢(xún)從機(jī)的時(shí)間間隔。在一個(gè)800 ms的看門(mén)狗定時(shí)器中,每隔800 ms釋放一次信號(hào)量。
(2)故障上報(bào)設(shè)計(jì)。在故障檢測(cè)任務(wù)中,Rs485AlmReport是根據(jù)當(dāng)前狀態(tài)和同步狀態(tài)進(jìn)行故障上報(bào)的函數(shù)。當(dāng)前狀態(tài)表示從機(jī)當(dāng)前的狀態(tài),而同步狀態(tài)表示從機(jī)的歷史狀態(tài)。若某一從機(jī)的當(dāng)前狀態(tài)是故障狀態(tài),同步狀態(tài)是正常狀態(tài),則主機(jī)就會(huì)向上位機(jī)上報(bào)此從機(jī)故障。故障檢測(cè)任務(wù)部分代碼如下:
LOCAL void Rs485AlarmManTask(void)
{
wdStart(TimerId, (int) Timer, (FUNCPTR) Rs485TimerFun, 0);
//輪詢(xún)時(shí)間間隔
While(1){
semTake(semAlmSampleT, WAIT_FOREVER) ;
if(RS485UseSwitch == 0){
Rs485AlmCheck( );}
//從機(jī)故障檢測(cè)
Rs485AlmReport( );}
//故障上報(bào)
}
(3)輪詢(xún)過(guò)程中的從機(jī)故障檢測(cè)設(shè)計(jì)。在故障檢測(cè)任務(wù)中,Rs485AlmCheck函數(shù)調(diào)用RS485接口訪(fǎng)問(wèn)從機(jī)設(shè)備。為了便于管理所有從機(jī)設(shè)備,建立如下從機(jī)設(shè)備信息的數(shù)據(jù)結(jié)構(gòu):
typedef struct alarm_info{
UINT8 AlmIndex;
/* index of the device */
UINT8 AlarmEna;
/* device enable */
UINT8 CurAlmState;
/* current alarm state */
UINT8 SyncAlmState;
/* synced alarm state */
UINT8 (*CommChk) (void);
/*detect function */
UINT8 AlmRaiseCnt;
/* device raise counter */
UINT8 AlmIdleCnt;
/* device clear counter */
} ALARM_INFO;
從機(jī)設(shè)備信息包括從機(jī)序列號(hào)、故障檢測(cè)使能、當(dāng)前狀態(tài)、同步狀態(tài)、故障檢測(cè)函數(shù)(輪詢(xún)函數(shù))、故障統(tǒng)計(jì)、正常統(tǒng)計(jì)等。根據(jù)從機(jī)設(shè)備信息數(shù)據(jù)結(jié)構(gòu)建立ALARM_INFO Rs485Devices[MAX_DEV_NUM]所有從機(jī)的信息。每隔800 ms執(zhí)行一次從機(jī)故障檢測(cè)函數(shù),并統(tǒng)計(jì)故障的次數(shù)。若故障次數(shù)達(dá)到上限,則等待Rs485AlmReport故障上報(bào)函數(shù)將信息上報(bào)到上位機(jī)。
在實(shí)際情況中,一次從機(jī)通信異常不能認(rèn)為此從機(jī)通信故障。在本文中,規(guī)定某從機(jī)連續(xù)4次通信異常,才能認(rèn)為此從機(jī)通信故障。當(dāng)從機(jī)數(shù)量較多時(shí),若某一從機(jī)通信故障,主機(jī)需要將所有的從機(jī)設(shè)備輪詢(xún)4次后,才能將從機(jī)通信故障檢測(cè)出來(lái)并上報(bào)到上位機(jī)。在這種情況下,主機(jī)不能及時(shí)將從機(jī)通信故障上報(bào)到上位機(jī),造成上位機(jī)獲取從機(jī)通信狀況非常滯后,系統(tǒng)實(shí)時(shí)性較差。主機(jī)為了能夠及時(shí)將從機(jī)發(fā)生故障上報(bào)到上位機(jī),在輪詢(xún)下一設(shè)備前需做如下判定條件:當(dāng)主機(jī)訪(fǎng)問(wèn)某一從機(jī)時(shí),如果從機(jī)通信異常,則繼續(xù)訪(fǎng)問(wèn)此從機(jī),而不是訪(fǎng)問(wèn)下一個(gè)從機(jī)設(shè)備;當(dāng)連續(xù)4次通信異常,主機(jī)將此從機(jī)的當(dāng)前狀態(tài)改為故障狀態(tài),繼續(xù)訪(fǎng)問(wèn)下一個(gè)從機(jī)設(shè)備。輪詢(xún)條件代碼如下:
void Rs485AlmCheck(void)
{
//保持不變
……
//輪詢(xún)條件
if(TmpState==Rs485Devices[DevOrder].CurAlmState)
DevOrder+=1;
}
在從機(jī)故障檢測(cè)函數(shù)中,如果實(shí)際狀態(tài)與當(dāng)前狀態(tài)一致,表明主機(jī)已將從機(jī)的實(shí)際狀態(tài)反饋到從機(jī)的當(dāng)前狀態(tài),則繼續(xù)輪詢(xún)下一個(gè)從機(jī)設(shè)備。
為了說(shuō)明基于輪詢(xún)的從機(jī)故障檢測(cè)的輪詢(xún)條件的優(yōu)化效果,作如下假設(shè):某一主機(jī)下共有7個(gè)從機(jī),最壞的情況下,這7個(gè)從機(jī)同時(shí)發(fā)生了通信故障。在不加輪詢(xún)條件的從機(jī)故障檢測(cè)中,檢測(cè)出第一個(gè)從機(jī)故障需要0.8×7×3+0.8=17.6 s,在加上輪詢(xún)條件后的從機(jī)故障檢測(cè)中,檢測(cè)出第一個(gè)從機(jī)故障需要0.8×4=3.2 s。如圖4是在7個(gè)從機(jī)同時(shí)故障的情況下,加上輪詢(xún)條件前后,主機(jī)檢測(cè)出這7個(gè)從機(jī)故障所需要的時(shí)間對(duì)比。加上輪詢(xún)條件后的檢測(cè)方法大大減少了從機(jī)故障檢測(cè)所需的時(shí)間。
圖4 加上輪詢(xún)條件前后時(shí)間對(duì)比
基于RS485總線(xiàn)的通信協(xié)議和接口函數(shù)的設(shè)計(jì)保證了主機(jī)穩(wěn)定可靠地訪(fǎng)問(wèn)從機(jī)。從機(jī)故障檢測(cè)的輪詢(xún)機(jī)制一方面可以不斷地獲取各個(gè)從機(jī)的設(shè)備信息,另一方面可以檢測(cè)從機(jī)通信故障。但是,當(dāng)從機(jī)數(shù)量較多時(shí),輪詢(xún)周期就會(huì)變長(zhǎng),從機(jī)的通信故障不能被及時(shí)檢測(cè)出來(lái),系統(tǒng)實(shí)時(shí)性變差。加上了輪詢(xún)條件優(yōu)化后的輪詢(xún)機(jī)制相比傳統(tǒng)的輪詢(xún)機(jī)制,實(shí)現(xiàn)了快速檢測(cè)從機(jī)通信故障。上位機(jī)可以及時(shí)獲取各個(gè)從機(jī)的通信狀況,提高了系統(tǒng)的實(shí)時(shí)性。
[1] 胡威.基于GSM-R的列車(chē)無(wú)線(xiàn)定位方法探索 [J].鐵路通信信號(hào)工程技術(shù),2016,13(5):21-23.
[2] 胡文濤. 一種基于協(xié)議的提高RS485實(shí)時(shí)性的方法 [J].現(xiàn)代電子技術(shù),2013,36(18):10-12.
[3] 周鵬,李艷艷. 提高RS485總線(xiàn)主從通信效率的軟件設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2008,8(8):70-73.
[4] 牛思先,向征. 基于RS-422/485的串行異步通訊接口設(shè)計(jì)和應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(10),2472-2474.
[5] 馬志強(qiáng),楊海明,王蘇毅. 基于RS-485總線(xiàn)的多主機(jī)通信方法 [J].電子產(chǎn)品世界,2016(1):45-48.
[6] 馮子陵,俞建新. RS485總線(xiàn)通信協(xié)議的設(shè)計(jì)與實(shí)現(xiàn) [J].工程應(yīng)用技術(shù)與實(shí)現(xiàn),2012,38(20):215-218.
[7] 周建章,趙穎. 基于RS-485主從通信協(xié)議的改進(jìn) [J].電子質(zhì)量,2011,32(1):23-25.
ADI公司推出集成數(shù)字電源監(jiān)控功能的+48 V熱插拔控制器可提供卓越的接插板保護(hù)并最大限度減少停機(jī)時(shí)間
北京2017年3月24日電/美通社/——Analog Devices, Inc. (ADI),今日宣布推出ADM1272,這是一款創(chuàng)新的+48 V熱插拔控制器和PMBusTM電源監(jiān)控器。ADM1272專(zhuān)為高達(dá)80 V的高壓系統(tǒng)控制而設(shè)計(jì),在關(guān)鍵任務(wù)系統(tǒng)(如服務(wù)器和通信設(shè)備)中提供可靠的接插板保護(hù)。先進(jìn)的系統(tǒng)控制和電路板電源監(jiān)控可以提供卓越的保護(hù),防止系統(tǒng)故障以及從高達(dá)120 V的瞬變電壓進(jìn)行系統(tǒng)復(fù)位,從而最大限度地減少系統(tǒng)停機(jī)時(shí)間并提高系統(tǒng)在所有條件下的可用性。ADM1272的自適應(yīng)安全工作區(qū)(SOA)保護(hù)功能大幅提高了整體的系統(tǒng)可靠性和MOSFET保護(hù)。有了SOA保護(hù)功能,就能夠使用比傳統(tǒng)熱插拔控制器解決方案外形更小、成本更低的MOSFET。其他性能優(yōu)化功能包括PMBus數(shù)字接口,為系統(tǒng)提供實(shí)時(shí)遙測(cè)和故障狀態(tài)信息。
像許多通信基礎(chǔ)設(shè)施一樣,在數(shù)據(jù)中心,高可用性和可靠性是系統(tǒng)設(shè)計(jì)的關(guān)鍵部分??刹灏文K/PCB(如服務(wù)器和存儲(chǔ)器)需要在電源入口點(diǎn)布置保護(hù)和控制電路,通常稱(chēng)為熱插拔控制電路。ADM1272熱插拔控制器適用于16 V~80 V的電源電壓,支持在帶電背板上安全地插拔電路板,無(wú)需關(guān)閉電源。ADM1272還針對(duì)過(guò)流事件、電壓瞬變和短路等故障提供系統(tǒng)保護(hù)。其他特性包括集成了12位模數(shù)轉(zhuǎn)換器(ADC),可通過(guò)PMBus接口進(jìn)行電流、電壓、功率和電能回讀。該熱插拔控制器能夠承受高達(dá)120 V電壓,具有浪涌和瞬變保護(hù),可避免高壓系統(tǒng)常見(jiàn)的系統(tǒng)復(fù)位問(wèn)題,性能非??煽?。封裝符合真正高壓(80 V) IPC-9592標(biāo)準(zhǔn)。
(ADI公司供稿)
The design and implementation of GSM-R slave device fault detection based on RS485 bus
Jia Haihang,Zhao Xia
(School of Electronics and Information Engineering, Tongji University, Shanghai 201804, China)
RS485 bus is often used as the communication means between the nodes of master-slave system, the communication state of devices is the premise in the system. In this paper, a slave device fault detection method based on RS485 bus is proposed. Firstly, a stable network communication protocol and interface function are designed according to the demand. Then, a polling mechanism based on RS485 network communication protocol is presented, which makes the master device communicate with multiple slaves stably and reliably. The master device can detect the communication state of each slave device, and timely report the fault information to the network management center. In this paper, the fault detection mechanism based on polling, can greatly improve the real-time performance of the system.
RS485; polling; fault detection
TP29
A
10.19358/j.issn.1674- 7720.2017.07.001
賈海航,趙霞.基于RS485總線(xiàn)的GSM-R從機(jī)故障檢測(cè)設(shè)計(jì)及實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2017,36(7):1-4,8.
2016-11-11)
賈海航(1991-),通信作者,男,碩士,主要研究方向:控制工程與通信技術(shù)。E-mail:15021777636@163.com。
趙霞(1974-),女,博士,副教授,主要研究方向:控制理論與工程,數(shù)字信號(hào)處理。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2017年7期