支持多點遠距離通信的rs232通信系統的制作方法
【專利摘要】本發明提供了一種支持多點遠距離通信的RS232通信系統。該RS232串行通信系統包括連接在RS232串行差分總線上的主設備和至少一個從設備。該RS232串行通信系統中,環回控制模塊對總線進行控制、輸出控制模塊對接入的設備進行控制,沖突檢測模塊對總線沖突進行檢測以及載波監聽模塊實現總線控制權的爭奪,通過接口轉換模塊能夠增強信號抗干擾能力,增加通信距離,通過環回控制模塊、輸出控制模塊、沖突檢測模塊和載波監聽模塊之間的相互配合,可以支持半雙工通信模式和全雙工通信模式,并實現多點對多點之間的通信。
【專利說明】
支持多點遠距離通信的RS232通信系統
技術領域
[0001]本發明涉及串行通信技術領域,特別是涉及一種支持多點遠距離通信的RS232通信系統。
【背景技術】
[0002]RS232是由電子工業協會(EIA)制定的用于數據通訊設備(DCE)和數據終端設備(DTE)之間進行串行二進制數據交換的接口技術標準,該標準定義了 25個信號以及相應的引腳。在實際使用當中,最少只需要發送數據(TXD),接收數據(RXD)和地(GND)三個信號線互連即可以通訊。由于RS232接口簡單、方便,成本低,因此得到了廣泛應用。
[0003]目前,該標準已經集成到了很多的微處理器、嵌入式處理器、DSP、CPU中,很多高性能的處理器也集成了 RS232接口。采用這些處理器的設備在管理平面上常以RS232為通信接口,實現不同板卡,不同模塊,甚至不同機架、設備間的通信。
[0004]然而,該標準仍然存在著較多的問題:一是其接口信號是單端信號,存在共地噪聲和共模干擾等問題,抗干擾能力弱,通信距離短,速率低;二是只能實現點對點之間的通信,不能實現多點對多點之間的通信,如不同板卡,不同模塊,甚至不同機架、設備間需要實現多點互通時,不能充分利用處理器上已經集成的RS232接口,只能采用其它接口,導致處理器和通信接口的選擇較為困難,軟件控制和編程較為復雜;三是該標準規范了接口的電氣標準,但沒有規范總線的檢測標準,沒有自我檢測功能,無法判斷總線是否出現故障。
[0005]上述問題為RS232標準所固有的問題,極大地限制了其在計算機、板卡、模塊以及不同設備之間通信的能力。
【發明內容】
[0006]本發明主要解決的技術問題是提供一種支持多點遠距離通信的RS232通信系統,能夠增強信號抗干擾能力,增加通信距離,并實現多點對多點之間的通信。
[0007]為解決上述技術問題,本發明采用的一個技術方案是:提供一種支持多點遠距離通信的RS232通信系統,包括連接在RS232串行差分總線上的主設備和至少一個從設備,所述主設備包括環回控制模塊,第一接口轉換模塊,第一輸出控制模塊,第一保護模塊、第一沖突檢測模塊、第一載波監聽模塊和主處理器,所述從設備包括第二接口轉換模塊,第二輸出控制模塊,第二保護模塊、第二沖突檢測模塊、第二載波監聽模塊和從處理器;所述主處理器的發送端口、第一接口轉換模塊、第一輸出控制模塊依次連接構成主數據發送路徑,所述主數據發送路徑接入RS232串行差分總線的差分接收線,所述主處理器的接收端口、第一接口轉換模塊依次連接構成主數據接收路徑,所述主數據接收路徑接入RS232串行差分總線的差分發送線,所述環回控制模塊、第一保護模塊、第一沖突檢測模塊、第一載波監聽模塊均連接主處理器,所述第一沖突檢測模塊和第一載波監聽模塊連接在主處理器的接收端口與第一接口轉換模塊之間的主數據接收路徑上,所述第一保護模塊連接第一輸出控制模塊,所述環回控制模塊用于將差分接收線和差分發送線連接或斷開;所述從處理器的發送端口、第二接口轉換模塊、第二輸出控制模塊依次連接構成從數據發送路徑,所述從數據發送路徑接入差分發送線,所述從處理器的接收端口、第二接口轉換模塊依次連接構成從數據接收路徑,所述從數據接收路徑接入差分接收線,所述第二保護模塊、第二沖突檢測模塊、第二載波監聽模塊均連接從處理器,所述第二沖突檢測模塊和第二載波監聽模塊還通過第二接口轉換模塊連接差分發送線,所述第二保護模塊連接第二輸出控制模塊;其中,在自檢模式下,所述主處理器控制環回控制模塊將差分接收線和差分發送線連接;所述第一載波監聽模塊和第二載波監聽模塊監聽RS232串行差分總線是否空閑;所述主處理器和從處理器在RS232串行差分總線空閑時,按照預設策略爭奪RS232串行差分總線的控制權;當所述主處理器或從處理器爭奪到總線控制權時,通過第一保護模塊或第二保護模塊將第一輸出控制模塊或第二輸出控制模塊設置為非高阻態,并在發送端口發送單端自檢發送信號;所述第一接口轉換模塊或第二接口轉換模塊將單端自檢發送信號轉換為差分自檢發送信號后送入差分接收線或差分發送線;爭奪到總線控制權的主設備或從設備中的第一接口轉換模塊或第二接口轉換模塊從差分發送線或差分接收線上接收差分自檢接收信號,并將差分自檢接收信號轉換為單端自檢接收信號后送入第一沖突檢測模塊或第二沖突檢測模塊;所述第一沖突檢測模塊或第二沖突檢測模塊對單端自檢接收信號進行校驗產生檢驗結果;爭奪到總線控制權的主設備的主處理器或從設備的從處理器將單端自檢接收信號的校驗結果與單端自檢發送信號的校驗結果進行比較,并在比較結果為相同時,放棄總線控制權,以及在比較結果為不相同時,進行總線故障報警后放棄總線控制權;沒有爭奪到總線控制權的主設備和從設備通過第一保護模塊或第二保護模塊將第一輸出控制模塊或第二輸出控制模塊設置為高阻態;在半雙工通信模式下,所述主處理器控制環回控制模塊將差分接收線和差分發送線連接;所述第一載波監聽模塊和第二載波監聽模塊監聽RS232串行差分總線是否空閑;所述主處理器和從處理器在RS232串行差分總線空閑時,按照預設策略爭奪RS232串行差分總線的控制權;當所述主處理器或從處理器爭奪到總線控制權時,通過第一保護模塊或第二保護模塊將第一輸出控制模塊或第二輸出控制模塊設置為非高阻態,并在發送端口發送單端數據發送信號;所述第一接口轉換模塊或第二接口轉換模塊將單端數據發送信號轉換為差分數據發送信號后送入差分接收線或差分發送線;爭奪到總線控制權的主設備或從設備中的第一接口轉換模塊或第二接口轉換模塊從差分發送線或差分接收線上接收差分數據接收信號,并將差分數據接收信號轉換為單端數據接收信號后送入第一沖突檢測模塊或第二沖突檢測模塊;所述第一沖突檢測模塊或第二沖突檢測模塊對單端數據接收信號進行校驗產生檢驗結果;爭奪到總線控制權的主設備的主處理器或從設備的從處理器將單端數據接收信號的校驗結果與單端數據發送信號的校驗結果進行比較,并在比較結果為相同時,在數據發送完成之后放棄總線控制權,以及在比較結果為不相同時,進行總線沖突報警后放棄總線控制權;沒有爭奪到總線控制權的主設備和從設備通過第一保護模塊或第二保護模塊將第一輸出控制模塊或第二輸出控制模塊設置為高阻態;在全雙工通信模式下,所述主處理器控制環回控制模塊將差分接收線和差分發送線斷開連接,并通過第一保護模塊將第一輸出控制模塊設置為非高阻態;所述第二載波監聽模塊監聽RS232串行差分總線是否空閑;每一所述從處理器在RS232串行差分總線空閑時,按照預設策略爭奪RS232串行差分總線的控制權;爭奪到總線控制權的從處理器通過第二保護模塊將第二輸出控制模塊設置為非高阻態,并在發送端口發送單端數據發送信號;所述第二接口轉換模塊將單端數據發送信號轉換為差分數據發送信號后送入差分發送線、從差分接收線上接收差分數據接收信號,并將差分數據接收信號轉換為單端數據接收信號后送入從處理器的接收端口以及從差分發送線上接收差分數據發送信號,并將差分數據發送信號轉換為單端數據發送信號后送入第二沖突檢測模塊;所述第二沖突檢測模塊對單端數據發送信號進行校驗產生檢驗結果;從處理器將主數據接收路徑上的單端數據發送信號的校驗結果與主數據發送路徑上的單端數據發送信號的校驗結果進行比較,并在比較結果為相同時,在數據發送完成之后放棄總線控制權,以及在比較結果為不相同時,進行總線沖突報警后放棄總線控制權;所述第一接口轉換模塊從差分發送線上接收差分數據發送信號,并將差分數據發送信號轉換為單端數據發送信號后送入主處理器的接收端口以及將主處理器的發送端口發送的單端數據接收信號轉換為差分數據接收信號后送入差分接收線;沒有爭奪到總線控制權的從設備通過第二保護模塊將第二輸出控制模塊設置為高阻態。
[0008]優選地,所述主設備包括第一看門狗模塊,所述從設備還包括第二看門狗模塊,所述第一看門狗模塊連接主處理器和第一保護模塊,所述第二看門狗模塊連接從處理器和第二保護模塊,所述第一看門狗模塊用于在監測到主處理器出現故障時通過第一保護模塊將第一輸出控制模塊設置為高阻態,所述第二看門狗模塊用于在監測到從處理器出現故障時通過第二保護模塊將第二輸出控制模塊設置為高阻態。
[0009]優選地,所述預設策略為P-堅持的CSMA/⑶算法,P為預設概率值。
[0010]優選地,所述第一沖突檢測模塊或第二沖突檢測模塊進行校驗時采用奇偶校驗。
[0011]優選地,所述第一載波監聽模塊和第二載波監聽模塊監聽RS232串行差分總線是否空閑的方式具體為:所述第一載波監聽模塊和第二載波監聽模塊監聽由第一接口轉換模塊和第二接口轉換模塊轉換得到的單端信號中的高電平持續時間是否達到預設時間,如果達到預設時間,則判定RS232串行差分總線空閑,否則判定RS232串行差分總線忙。
[0012]優選地,在半雙工通信模式和全雙工通信模式下,所述主處理器和從處理器在比較結果為不相同時,進行總線沖突報警后放棄總線控制權后,還進行預設時間間隔的延遲,并在延遲后重新獲取第一載波監聽模塊或第二載波監聽模塊的監聽結果,其中,所述主處理器和從處理器的預設時間間隔均不相同。
[0013]區別于現有技術的情況,本發明的有益效果是:
[0014]1.通過將單端信號改變為差分信號進行傳送,解決了單端信號抗干擾能力弱,通信距離短的問題,信號質量得以保證。在相同的傳輸速率條件下,傳輸距離可延長至原來的10倍以上。同時提高了數據傳送速率,從而提高了系統的性能;
[0015]2.通過沖突檢測模塊、載波監聽模塊、輸出控制模塊和環回控制模塊相配合,有效解決RS232只支持點對點通信,不支持多點對多點通信的問題,實現多個RS232設備之間的互通信,能夠支持多達20個以上的設備進行多點通信;
[0016]3.通過環回控制模塊和沖突檢測模塊,實現總線自我檢測的功能,完善了 RS232總線的功能,提高了總線的維護能力;
[0017]4.環回控制模塊應用于通信模式的控制,使本系統可以支持半雙工通信模式和全雙工通信模式,實現多種總線接入方式;
[0018]5.支持各個設備以競爭方式接入RS232總線,能夠實現各個設備接入RS232總線后主動上報,方便管理平臺發現接入的設備以及對其進行配置,實現“即插即用”功能,使系統能夠實現智能管理和維護;
[0019]6.能夠充分利用處理器集成的RS232接口實現不同設備之間的通信,使系統互連更加靈活,方便,管理更加智能、高效,同時也使處理器在選型時不再受接口類型的限制,能夠充分發揮處理器的性能。
【附圖說明】
[0020]圖1是本發明實施例支持多點遠距離通信的RS232通信系統的框架圖;
[0021]圖2是本發明實施例支持多點遠距離通信的RS232通信系統中主設備的框架圖;
[0022]圖3是本發明實施例支持多點遠距離通信的RS232通信系統中從設備的框架圖。
【具體實施方式】
[0023]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發明的一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0024]請一并參見圖1至圖3。本發明實施例支持多點遠距離通信的RS232通信系統包括連接在RS232串行差分總線上的主設備I和至少一個從設備2AS232串行差分總線由差分接收線和差分發送線組成。
[0025]主設備I包括環回控制模塊11,第一接口轉換模塊12,第一輸出控制模塊13,第一保護模塊14、第一沖突檢測模塊15、第一載波監聽模塊16和主處理器17。主處理器17的發送端口、第一接口轉換模塊12、第一輸出控制模塊13依次連接構成主數據發送路徑,主數據發送路徑接入RS232串行差分總線的差分接收線。主處理器17的接收端口、第一接口轉換模塊12依次連接構成主數據接收路徑,主數據接收路徑接入RS232串行差分總線的差分發送線。環回控制模塊11、第一保護模塊14、第一沖突檢測模塊15、第一載波監聽模塊16均連接主處理器17。第一沖突檢測模塊15和第一載波監聽模塊16連接在主處理器17的接收端口與第一接口轉換模塊12之間的主數據接收路徑上。第一保護模塊14連接第一輸出控制模塊13。環回控制模塊11用于將差分接收線和差分發送線連接或斷開。
[0026]從設備2包括第二接口轉換模塊21,第二輸出控制模塊22,第二保護模塊23、第二沖突檢測模塊24、第二載波監聽模塊25和從處理器26。從處理器26的發送端口、第二接口轉換模塊21、第二輸出控制模塊22依次連接構成從數據發送路徑,從數據發送路徑接入差分發送線。從處理器26的接收端口、第二接口轉換模塊21依次連接構成從數據接收路徑,從數據接收路徑接入差分接收線。第二保護模塊23、第二沖突檢測模塊24、第二載波監聽模塊25均連接從處理器26。第二沖突檢測模塊24和第二載波監聽模塊25還通過第二接口轉換模塊21連接差分發送線。第二保護模塊23連接第二輸出控制模塊22。
[0027]本實施例的RS232串行通信系統支持自檢模式、半雙工通信模式和全雙工通信模式。
[0028]在自檢模式下,主處理器17控制環回控制模塊11將差分接收線和差分發送線連接;第一載波監聽模塊16和第二載波監聽模塊25監聽RS232串行差分總線是否空閑;主處理器17和從處理器26在RS232串行差分總線空閑時,按照預設策略爭奪RS232串行差分總線的控制權;當主處理器17或從處理器26爭奪到總線控制權時,通過第一保護模塊14或第二保護模塊23將第一輸出控制模塊13或第二輸出控制模塊22設置為非高阻態,并在發送端口發送單端自檢發送信號;第一接口轉換模塊12或第二接口轉換模塊21將單端自檢發送信號轉換為差分自檢發送信號后送入差分接收線或差分發送線;爭奪到總線控制權的主設備I或從設備2中的第一接口轉換模塊12或第二接口轉換模塊21從差分發送線或差分接收線上接收差分自檢接收信號,并將差分自檢接收信號轉換為單端自檢接收信號后送入第一沖突檢測模塊15或第二沖突檢測模塊24;第一沖突檢測模塊15或第二沖突檢測模塊24對單端自檢接收信號進行校驗產生檢驗結果;爭奪到總線控制權的主設備I的主處理器17或從設備2的從處理器26將單端自檢接收信號的校驗結果與單端自檢發送信號的校驗結果進行比較,并在比較結果為相同時,放棄總線控制權,以及在比較結果為不相同時,進行總線故障報警后放棄總線控制權;沒有爭奪到總線控制權的主設備I和從設備2通過第一保護模塊14或第二保護模塊23將第一輸出控制模塊13或第二輸出控制模塊22設置為高阻態。
[0029]具體而言,首先,主處理器17和從處理器26在初始化時首先進入自檢模式,主處理器17向環回控制模塊11發出控制信號,環回控制模塊11根據控制信號將差分接收線和差分發送線連接,然后第一載波監聽模塊16監聽RS232串行差分總線是否空閑,同時,從處理器26完成初始化后,第二載波監聽模塊25監聽RS232串行差分總線是否空閑。在本實施例中,第一載波監聽模塊16和第二載波監聽模塊25監聽RS232串行差分總線是否空閑的方式具體為:第一載波監聽模塊16和第二載波監聽模塊25監聽由第一接口轉換模塊12和第二接口轉換模塊21轉換得到的單端信號中的高電平持續時間是否達到預設時間,如果達到預設時間,則判定RS232串行差分總線空閑,否則判定RS232串行差分總線忙。由于數據格式通常由起始比特(低電平)、數據比特(7位或8位)、校驗比特(O位或I位)、停止比特(高電平)依次組成,根據RS232通信協議,每次傳送至少有9位比特(起始位I個比特,數據位7個比特,停止位I個比特),至多有11位比特(起始位I個比特,數據位8個比特,校驗位I個比特,停止位I個比特),因此,如果連續檢測到單端信號中的高電平持續時間達到11位以上,則表明總線空閑,否則總線忙。由于主處理器17和從處理器26在初始化時還沒有發送數據,因此,RS232差分總線上并沒有數據傳送,第一載波監聽模塊16和第二載波監聽模塊25必然監聽到總線空閑。
[0030]然后,由于第一載波監聽模塊16和第二載波監聽模塊25監聽到總線空閑,主處理器17和從處理器26按照預設策略爭奪RS232串行差分總線的控制權。在本實施例中,預設策略為P-堅持的CSMA/CD算法,P為預設概率值。P-堅持的CSMA/CD算法的運行過程如下:步驟1:生成隨機概率值X;步驟2:將隨機概率值X與P比較;步驟3:如果x<p,則主處理器17和從處理器26可以開始發送數據,即爭奪到總線控制權;步驟4:如果X多p,則延時特定時間后重新獲取第一載波監聽模塊16或第二載波監聽模塊25的監聽結果。由于采用P-堅持的CSMA/⑶算法,只要主設備I或從設備2爭奪到總線控制權發送數據后,沒有爭奪到總線控制權的主設備I或從設備2必然會監聽到總線忙。
[0031]再次,如果主處理器17爭奪到總線控制權,主處理器17通過第一保護模塊14將第一輸出控制模塊13設置為非高阻態,以使主設備I接入差分接收線,并且主處理器17在發送端口發送單端自檢發送信號,第一接口轉換模塊12將單端自檢發送信號轉換為差分自檢發送信號后送入差分接收線,而沒有爭奪到總線控制權的從設備2通過第二保護模塊23將第二輸出控制模塊22設置為高阻態,以使從設備2從差分發送線上隔離。如果從處理器26爭奪到總線控制權,從處理器26通過第二保護模塊23將第二輸出控制模塊22設置為非高阻態,以使從設備2接入差分發送線,并且從處理器26在發送端口發送單端自檢發送信號,第二接口轉換模塊21將單端自檢發送信號轉換為差分自檢發送信號后送入差分發送線。而沒有爭奪到總線控制權的主設備I通過第一保護模塊14將第一輸出控制模塊13設置為高阻態,以使主設備I從差分接收線上隔離,沒有爭奪到總線控制權的其它從設備2通過第二保護模塊23將第二輸出控制模塊22設置為高阻態,以使其它從設備2從差分發送線上隔離。
[0032]最后,由于環回控制模塊11根據控制信號將差分接收線和差分發送線連接,相當于差分接收線和差分發送線在邏輯上成為一根數據線,所以,不論是主設備I還是從設備2爭奪到總線控制權后,所發出的數據在傳送到其它設備的同時,都將環回到自身。因此,如果是主設備I爭奪到總線控制權,那么第一接口轉換模塊12將從差分發送線上接收差分自檢接收信號。第一接口轉換模塊12將差分自檢接收信號轉換為單端自檢接收信號后送入第一沖突檢測模塊15,第一沖突檢測模塊15對單端自檢接收信號進行校驗產生檢驗結果,主處理器17將單端自檢接收信號的校驗結果與單端自檢發送信號的校驗結果進行比較,如果比較結果為相同,表明單端自檢接收信號和差分自檢發送信號為同一個信號,RS232差分總線的狀態正常,則主處理器17放棄總線控制權;如果比較結果為不相同,表明單端自檢接收信號與單端自檢發送信號存在差異,RS232差分總線出現了故障,則主處理器17進行總線故障報警后放棄總線控制權。如果是從設備2爭奪到總線控制權,那么第二接口轉換模塊21將從差分接收線上接收差分自檢接收信號。第二接口轉換模塊21將差分自檢接收信號轉換為單端自檢接收信號后送入第二沖突檢測模塊24,第二沖突檢測模塊24對單端自檢接收信號進行校驗產生檢驗結果,從處理器26將單端自檢接收信號的校驗結果與單端自檢發送信號的校驗結果進行比較,如果比較結果為相同,表明單端自檢接收信號和單端自檢發送信號為同一個信號,RS232差分總線的狀態正常,則從處理器26放棄總線控制權;如果比較結果為不相同,表明單端自檢接收信號與單端自檢發送信號存在差異,RS232差分總線出現了故障,則從處理器26進行總線故障報警后放棄總線控制權。
[0033]在自檢模式下,RS232差分總線上的主設備I和任一從設備2發送的自檢信號都能夠環回到自身,從而實現了總線自我檢測功能,實現了 RS232差分總線的自我檢測和維護。
[0034]在半雙工通信模式下,主處理器17控制環回控制模塊11將差分接收線和差分發送線連接;主設備I的第一載波監聽模塊16和從設備2的第二載波監聽模塊25監聽RS232串行差分總線是否空閑;主處理器17和從處理器26在RS232串行差分總線空閑時,按照預設策略爭奪RS232串行差分總線的控制權;當主處理器17或從處理器26爭奪到總線控制權時,通過第一保護模塊14或第二保護模塊23將第一輸出控制模塊13或第二輸出控制模塊22設置為非高阻態,并在發送端口發送單端數據發送信號;第一接口轉換模塊12或第二接口轉換模塊21將單端數據發送信號轉換為差分數據發送信號后送入差分接收線或差分發送線;爭奪到總線控制權的主設備I或從設備2中的第一接口轉換模塊12或第二接口轉換模21從差分發送線或差分接收線上接收差分數據接收信號,并將差分數據接收信號轉換為單端數據接收信號后送入第一沖突檢測模塊15或第二沖突檢測模塊24;第一沖突檢測模塊15或第二沖突檢測模塊24對單端數據接收信號進行校驗產生檢驗結果;爭奪到總線控制權的主設備I的主處理器17或從設備2的從處理器26將單端數據接收信號的校驗結果與單端數據發送信號的校驗結果進行比較,并在比較結果為相同時,在數據發送完成之后放棄總線控制權,同時第一載波監聽模塊16和第二載波監聽模塊25重新監聽RS232串行差分總線是否空閑,以及在比較結果為不相同時,進行總線沖突報警后放棄總線控制權;沒有爭奪到總線控制權的主設備I和從設備2通過第一保護模塊14或第二保護模塊23將第一輸出控制模塊13或第二輸出控制模塊22設置為高阻態。
[0035]具體而言,首先,主處理器17在初始化完成后,根據預先設定的半雙工通信模式發出控制信號,環回控制模塊11根據控制信號將差分接收線和差分發送線連接,然后第一載波監聽模塊16監聽RS232串行差分總線是否空閑,同時,從處理器26完成初始化后,第二載波監聽模塊25監聽RS232串行差分總線是否空閑。在本實施例中,第一載波監聽模塊16和第二載波監聽模塊25監聽RS232串行差分總線是否空閑的方式具體為:第一載波監聽模塊16和第二載波監聽模塊25監聽由第一接口轉換模塊12和第二接口轉換模塊21轉換得到的單端信號中的高電平持續時間是否達到預設時間,如果達到預設時間,則判定RS232串行差分總線空閑,否則判定RS232串行差分總線忙。由于主處理器17和從處理器26完成初始化后還沒有發送數據,因此,總線上并沒有數據傳送,第一載波監聽模塊16和第二載波監聽模塊25必然監聽到總線空閑。
[0036]然后,由于第一載波監聽模塊16和第二載波監聽模塊25監聽到總線空閑,主處理器17和從處理器26按照預設策略爭奪RS232串行差分總線的控制權。在本實施例中,預設策略為P-堅持的CSMA/CD算法,P為預設概率值。P-堅持的CSMA/CD算法的運行過程如下:步驟1:生成隨機概率值X;步驟2:將隨機概率值X與P比較;步驟3:如果x<p,則主處理器17和從處理器26可以開始發送數據,即爭奪到總線控制權;步驟4:如果X多p,則延時特定時間后重新獲取第一載波監聽模塊16或第二載波監聽模塊25的監聽結果。由于采用P-堅持的CSMA/⑶算法,只要主設備I或從設備2爭奪到總線控制權發送數據后,沒有爭奪到總線控制權的主設備I或從設備2必然會監聽到總線忙
[0037]再次,如果主處理器17爭奪到總線控制權,主處理器17通過第一保護模塊14將第一輸出控制模塊13設置為非高阻態,以使主設備I接入差分接收線,并且主處理器17在發送端口發送單端數據發送信號,第一接口轉換模塊12將單端數據發送信號轉換為差分數據發送信號后送入差分接收線,而沒有爭奪到總線控制權的從設備2通過第二保護模塊23將第二輸出控制模塊22設置為高阻態,以使從設備2從差分發送線上隔離。如果從處理器26爭奪到總線控制權,從處理器26通過第二保護模塊23將第二輸出控制模塊22設置為非高阻態,以使從設備2接入差分發送線,并且從處理器26在發送端口發送單端數據發送信號,第二接口轉換模塊21將單端數據發送信號轉換為差分數據發送信號后送入差分發送線。而沒有爭奪到總線控制權的主設備I通過第一保護模塊14將第一輸出控制模塊13設置為高阻態,以使主設備I從差分接收線上隔離,沒有爭奪到總線控制權的其它從設備2通過第二保護模塊23將第二輸出控制模塊22設置為高阻態,以使其它從設備2從差分發送線上隔離。
[0038]最后,由于環回控制模塊11根據控制信號將差分接收線和差分發送線連接,相當于差分接收線和差分發送線在邏輯上成為一根數據線,所以,不論是主設備I還是從設備2爭奪到總線控制權后,所發出的數據在傳送到其它設備的同時,都將環回到自身。因此,如果是主設備I爭奪到總線控制權,那么第一接口轉換模塊12將從差分發送線上接收差分數據接收信號。第一接口轉換模塊12將差分數據接收信號轉換為單端數據接收信號后送入第一沖突檢測模塊15,第一沖突檢測模塊15對單端數據接收信號進行校驗產生檢驗結果,主處理器17將單端數據接收信號的校驗結果與單端數據發送信號的校驗結果進行比較,如果比較結果為相同,表明單端數據接收信號和單端數據發送信號為同一個信號,RS232差分總線的狀態正常,發送的數據信號沒有產生沖突,則主處理器17在數據發送完成之后放棄總線控制權,同時第一載波監聽模塊16和第二載波監聽模塊25重新監聽RS232串行差分總線是否空閑;如果比較結果為不相同,表明單端數據接收信號與單端數據發送信號存在差異,RS232差分總線出現了沖突,則主處理器17進行總線沖突報警后放棄總線控制權。如果是從設備2爭奪到總線控制權,那么第二接口轉換模塊21將從差分接收線上接收差分數據接收信號。第二接口轉換模塊21將差分數據接收信號轉換為單端數據接收信號后送入第二沖突檢測模塊24,第二沖突檢測模塊24對單端數據接收信號進行校驗產生檢驗結果,從處理器26將單端數據接收信號的校驗結果與單端數據發送信號的校驗結果進行比較,如果比較結果為相同,表明單端數據接收信號和單端數據發送信號為同一個信號,RS232差分總線的狀態正常,發送的數據信號沒有產生沖突,則從處理器26在數據發送完成之后放棄總線控制權,同時第一載波監聽模塊16和第二載波監聽模塊25重新監聽RS232串行差分總線是否空閑;如果比較結果為不相同,表明單端數據接收信號與差分數據發送信號存在差異,RS232差分總線出現了沖突,則從處理器26進行總線沖突報警后放棄總線控制權。在本實施例中,第一沖突檢測模塊15或第二沖突檢測模塊24進行校驗時采用奇偶校驗。
[0039]在半雙工通信模式下,RS232差分總線上的主設備I和任一從設備2都可以接收到其它設備發送的數據,從而實現了多點之間的相互通信。并且RS232差分總線上沒有爭奪到總線控制權的主設備I和從設備2雖然不能發送數據,但是可以隨時接收其它設備發送的數據。
[0040]在全雙工通信模式下,主處理器17控制環回控制模塊11將差分接收線和差分發送線斷開連接,并通過第一保護模塊14將第一輸出控制模塊13設置為非高阻態;第二載波監聽模塊25監聽RS232串行差分總線是否空閑;每一從處理器26在RS232串行差分總線空閑時,按照預設策略爭奪RS232串行差分總線的控制權;爭奪到總線控制權的從處理器26通過第二保護模塊23將第二輸出控制模塊22設置為非高阻態,并在發送端口發送單端數據發送信號;第二接口轉換模塊21將單端數據發送信號轉換為差分數據發送信號后送入差分發送線、從差分接收線上接收差分數據接收信號,并將差分數據接收信號轉換為單端數據接收信號后送入從處理器26的接收端口以及從差分發送線上接收數據發送信號,并將差分數據發送信號轉換為單端數據發送信號后送入第二沖突檢測模塊24;第二沖突檢測模塊24對單端數據發送信號進行校驗產生檢驗結果;從處理器26將主數據接收路徑上的單端數據發送信號的校驗結果與主數據發送路徑上的單端數據發送信號的校驗結果進行比較,并在比較結果為相同時,在數據發送完成之后放棄總線控制權,以及在比較結果為不相同時,進行總線沖突報警后放棄總線控制權。第一接口轉換模塊12從差分發送線上接收差分數據發送信號,并將差分數據發送信號轉換為單端數據發送信號后送入主處理器17的接收端口以及將主處理器17的發送端口發送的單端數據接收信號轉換為差分數據接收信號后送入差分接收線;沒有爭奪到總線控制權的從設備2通過第二保護模塊23將第二輸出控制模塊22設置為1?阻態D
[0041]具體而言,首先,主處理器17在初始化完成后,根據預先設定的全雙工通信模式發出控制信號,環回控制模塊11根據控制信號將差分接收線和差分發送線斷開連接,然后通過第一保護模塊14將第一輸出控制模塊13設置為非高阻態,以使主設備I接入差分接收線。同時,從處理器26完成初始化后,第二載波監聽模塊25監聽RS232串行差分總線是否空閑。在本實施例中,第二載波監聽模塊25監聽RS232串行差分總線是否空閑的方式具體為:第二載波監聽模塊25監聽由第二接口轉換模塊21轉換得到的單端信號中的高電平持續時間是否達到預設時間,如果達到預設時間,則判定RS232串行差分總線空閑,否則判定RS232串行差分總線忙。由于主處理器17和從處理器26完成初始化后還沒有發送數據,因此,總線上并沒有數據傳送,第二載波監聽模塊25必然監聽到總線空閑。
[0042]然后,由于第二載波監聽模塊25監聽到總線空閑,所有從處理器26按照預設策略爭奪RS232串行差分總線的控制權。在本實施例中,預設策略為P-堅持的CSMA/CD算法,P為預設概率值。P-堅持的CSMA/CD算法的運行過程如下:步驟I:生成隨機概率值X;步驟2:將隨機概率值X與P比較;步驟3:如果x<p,則從處理器26可以開始發送數據,即爭奪到總線控制權;步驟4:如果X多P,則延時特定時間后重新獲取第一載波監聽模塊16或第二載波監聽模塊25的監聽結果。由于采用P-堅持的CSMA/CD算法,只要某個從設備2爭奪到總線控制權發送數據后,沒有爭奪到總線控制權的其它從設備2必然會監聽到總線忙。
[0043]其次,爭奪到總線控制權的從設備2的從處理器26通過第二保護模塊23將第二輸出控制模塊22設置為非高阻態,以使該從設備2接入差分接收線,并在發送端口發送單端數據發送信號。第二接口轉換模塊21將單端數據發送信號轉換為差分數據發送信號后送入差分發送線、從差分接收線上接收差分數據接收信號,并將差分數據接收信號轉換為單端數據接收信號后送入從處理器的接收端口以及從差分發送線上接收差分數據發送信號,并將差分數據發送信號轉換為單端數據發送信號后送入第二沖突檢測模塊24。而沒有爭奪到總線控制權的其它從設備2通過第二保護模塊23將第二輸出控制模塊22設置為高阻態,以使其它從設備2從差分接收線上隔離。由于第二沖突檢測模塊24通過第二接口轉換模塊21直接接在差分發送線上,因此,從處理器26發送的單端數據發送信號進入差分發送線后,會被第二接口轉換模塊21接收并轉換為單端數據發送信號。
[0044]最后,第二沖突檢測模塊24對單端數據發送信號進行校驗產生檢驗結果,從處理器26主數據接收路徑上的單端數據發送信號的校驗結果與主數據發送路徑上的單端數據發送信號的校驗結果進行比較,如果比較結果為相同,表明從處理器26發送的單端數據發送信號沒有產生沖突,RS232差分總線的狀態正常,數據發送成功,則從處理器26在數據發送完成之后放棄總線控制權;如果比較結果為不相同,表明RS232差分總線出現了沖突,則從處理器26進行總線沖突報警后放棄總線控制權。同時,由于環回控制模塊11根據控制信號將差分接收線和差分發送線斷開連接,相當于差分接收線和差分發送線在邏輯上成為兩根獨立的數據線。所以,第一接口轉換模塊12從差分發送線上接收差分數據發送信號,并將差分數據發送信號轉換為單端數據發送信號后送入主處理器17的接收端口以及將主處理器17的發送端口發送的單端數據接收信號轉換為差分數據接收信號后送入差分接收線。在本實施例中,第二沖突檢測模塊24進行校驗時采用奇偶校驗。
[0045]在全雙工通信模式下,由于主設備I的主數據發送路徑通過差分接收線與從設備2的從數據接收路徑相連接,主設備I的主數據接收路徑通過差分發送線與從設備2的從數據發送路徑端相連接,因此主設備I可以與任意從設備2進行全雙工通信,但是從設備2只能與主設備I進行通信,從設備2之間需要通過主設備I中繼才能相互通信,從而實現單點對多點的通信。
[0046]進一步地,在半雙工通信模式和全雙工通信模式下,主處理器17和從處理器26在比較結果為不相同時,進行總線沖突報警后放棄總線控制權后,還進行預設時間間隔的延遲,并在延遲后重新獲取第一載波監聽模塊16或第二載波監聽模塊25的監聽結果,其中,主處理器17和從處理器26的預設時間間隔均不相同。其中,由于主處理器17和從處理器26在爭奪總線控制權時,會存在兩個以上同時爭奪到總線控制權的情況,在這種情況下,主處理器17和從處理器26會判斷到數據沖突,也就是前述的比較結果為不相同的情形,此時,同時爭奪到總線控制權的主處理器17和從處理器26進行不同時間間隔的延遲,并再次獲取總線是否空閑的監聽結果,該預設時間間隔可以采用“截斷的二進制指數退避算法”生成,也可以是其他算法隨機生成。這樣,爭奪到總線控制權的主處理器17和從處理器26再次在總線空閑時發送單端數據發送信號,重復上述過程。當然,還可以規定重復次數不超過預設次數,如果重復次數不超過預定次數,可以在發生數據沖突時重復上述過程,如果重復次數超過預定次數,則進行總線沖突報警。
[0047]本發明實施例的多點遠距離通信的RS232串行通信系統的硬件部分既可以采用標準的74系列器件實現,也可以采用CPLD或FPGA實現。本發明優選為由FPGA或CPLD實現,因為FPGA或CPLD的邏輯運算是通過硬件完成的,運行速度快,帶來的通訊延時很小,具有很好的靈活性,可以實現并行處理,能夠大大提高運算實時性。軟件部分可以采用C語言或其它編程語言實現。
[0048]在本實施例中,主設備I還包括第一看門狗模塊18,從設備2還包括第二看門狗模塊27,第一看門狗模塊18連接主處理器17和第一保護模塊14,第二看門狗模塊27連接從處理器26和第二保護模塊23,第一看門狗模塊18用于在監測到主處理器17出現故障時通過第一保護模塊14將第一輸出控制模塊13設置為高阻態,第二看門狗模塊27用于在監測到從處理器26出現故障時通過第二保護模塊23將第二輸出控制模塊22設置為高阻態。通過第一看門狗模塊18和第二看門狗模塊27,可以將出現故障的主設備I和從設備2從RS232差分總線上隔離,以實現對RS232差分總線的保護,保證其它設備間的通信不受到影響。
[0049]通過上述方式,本發明實施例的支持多點遠距離通信的RS232通信系統中,環回控制模塊對總線進行控制、輸出控制模塊對接入的設備進行控制,沖突檢測模塊對總線沖突進行檢測以及載波監聽模塊實現總線控制權的爭奪,通過接口轉換模塊能夠增強信號抗干擾能力,增加通信距離,通過環回控制模塊、輸出控制模塊、沖突檢測模塊和載波監聽模塊之間的相互配合,可以支持半雙工通信模式和全雙工通信模式,并實現多點對多點之間的通信。
[0050]以上所述僅為本發明的實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。
【主權項】
1.一種支持多點遠距離通信的RS232通信系統,其特征在于,包括連接在RS232串行差分總線上的主設備和至少一個從設備,所述主設備包括環回控制模塊,第一接口轉換模塊,第一輸出控制模塊,第一保護模塊、第一沖突檢測模塊、第一載波監聽模塊和主處理器,所述從設備包括第二接口轉換模塊,第二輸出控制模塊,第二保護模塊、第二沖突檢測模塊、第二載波監聽模塊和從處理器; 所述主處理器的發送端口、第一接口轉換模塊、第一輸出控制模塊依次連接構成主數據發送路徑,所述主數據發送路徑接入RS232串行差分總線的差分接收線,所述主處理器的接收端口、第一接口轉換模塊依次連接構成主數據接收路徑,所述主數據接收路徑接入RS232串行差分總線的差分發送線,所述環回控制模塊、第一保護模塊、第一沖突檢測模塊、第一載波監聽模塊均連接主處理器,所述第一沖突檢測模塊和第一載波監聽模塊連接在主處理器的接收端口與第一接口轉換模塊之間的主數據接收路徑上,所述第一保護模塊連接第一輸出控制模塊,所述環回控制模塊用于將差分接收線和差分發送線連接或斷開; 所述從處理器的發送端口、第二接口轉換模塊、第二輸出控制模塊依次連接構成從數據發送路徑,所述從數據發送路徑接入差分發送線,所述從處理器的接收端口、第二接口轉換模塊依次連接構成從數據接收路徑,所述從數據接收路徑接入差分接收線,所述第二保護模塊、第二沖突檢測模塊、第二載波監聽模塊均連接從處理器,所述第二沖突檢測模塊和第二載波監聽模塊還通過第二接口轉換模塊連接差分發送線,所述第二保護模塊連接第二輸出控制模塊; 其中,在自檢模式下,所述主處理器控制環回控制模塊將差分接收線和差分發送線連接;所述第一載波監聽模塊和第二載波監聽模塊監聽RS232串行差分總線是否空閑;所述主處理器和從處理器在RS232串行差分總線空閑時,按照預設策略爭奪RS232串行差分總線的控制權;當所述主處理器或從處理器爭奪到總線控制權時,通過第一保護模塊或第二保護模塊將第一輸出控制模塊或第二輸出控制模塊設置為非高阻態,并在發送端口發送單端自檢發送信號;所述第一接口轉換模塊或第二接口轉換模塊將單端自檢發送信號轉換為差分自檢發送信號后送入差分接收線或差分發送線;爭奪到總線控制權的主設備或從設備中的第一接口轉換模塊或第二接口轉換模塊從差分發送線或差分接收線上接收差分自檢接收信號,并將差分自檢接收信號轉換為單端自檢接收信號后送入第一沖突檢測模塊或第二沖突檢測模塊;所述第一沖突檢測模塊或第二沖突檢測模塊對單端自檢接收信號進行校驗產生檢驗結果;爭奪到總線控制權的主設備的主處理器或從設備的從處理器將單端自檢接收信號的校驗結果與單端自檢發送信號的校驗結果進行比較,并在比較結果為相同時,放棄總線控制權,以及在比較結果為不相同時,進行總線故障報警后放棄總線控制權;沒有爭奪到總線控制權的主設備和從設備通過第一保護模塊或第二保護模塊將第一輸出控制模塊或第二輸出控制模塊設置為高阻態; 在半雙工通信模式下,所述主處理器控制環回控制模塊將差分接收線和差分發送線連接;所述第一載波監聽模塊和第二載波監聽模塊監聽RS232串行差分總線是否空閑;所述主處理器和從處理器在RS232串行差分總線空閑時,按照預設策略爭奪RS232串行差分總線的控制權;當所述主處理器或從處理器爭奪到總線控制權時,通過第一保護模塊或第二保護模塊將第一輸出控制模塊或第二輸出控制模塊設置為非高阻態,并在發送端口發送單端數據發送信號;所述第一接口轉換模塊或第二接口轉換模塊將單端數據發送信號轉換為差分數據發送信號后送入差分接收線或差分發送線;爭奪到總線控制權的主設備或從設備中的第一接口轉換模塊或第二接口轉換模塊從差分發送線或差分接收線上接收差分數據接收信號,并將差分數據接收信號轉換為單端數據接收信號后送入第一沖突檢測模塊或第二沖突檢測模塊;所述第一沖突檢測模塊或第二沖突檢測模塊對單端數據接收信號進行校驗產生檢驗結果;爭奪到總線控制權的主設備的主處理器或從設備的從處理器將單端數據接收信號的校驗結果與單端數據發送信號的校驗結果進行比較,并在比較結果為相同時,在數據發送完成之后放棄總線控制權,以及在比較結果為不相同時,進行總線沖突報警后放棄總線控制權;沒有爭奪到總線控制權的主設備和從設備通過第一保護模塊或第二保護模塊將第一輸出控制模塊或第二輸出控制模塊設置為高阻態; 在全雙工通信模式下,所述主處理器控制環回控制模塊將差分接收線和差分發送線斷開連接,并通過第一保護模塊將第一輸出控制模塊設置為非高阻態;所述第二載波監聽模塊監聽RS232串行差分總線是否空閑;每一所述從處理器在RS232串行差分總線空閑時,按照預設策略爭奪RS232串行差分總線的控制權;爭奪到總線控制權的從處理器通過第二保護模塊將第二輸出控制模塊設置為非高阻態,并在發送端口發送單端數據發送信號;所述第二接口轉換模塊將單端數據發送信號轉換為差分數據發送信號后送入差分發送線、從差分接收線上接收差分數據接收信號,并將差分數據接收信號轉換為單端數據接收信號后送入從處理器的接收端口以及從差分發送線上接收差分數據發送信號,并將差分數據發送信號轉換為單端數據發送信號后送入第二沖突檢測模塊;所述第二沖突檢測模塊對單端數據發送信號進行校驗產生檢驗結果;從處理器將主數據接收路徑上的單端數據發送信號的校驗結果與主數據發送路徑上的單端數據發送信號的校驗結果進行比較,并在比較結果為相同時,在數據發送完成之后放棄總線控制權,以及在比較結果為不相同時,進行總線沖突報警后放棄總線控制權;所述第一接口轉換模塊從差分發送線上接收差分數據發送信號,并將差分數據發送信號轉換為單端數據發送信號后送入主處理器的接收端口以及將主處理器的發送端口發送的單端數據接收信號轉換為差分數據接收信號后送入差分接收線;沒有爭奪到總線控制權的從設備通過第二保護模塊將第二輸出控制模塊設置為高阻態。2.根據權利要求1所述的支持多點遠距離通信的RS232通信系統,其特征在于,所述主設備包括第一看門狗模塊,所述從設備還包括第二看門狗模塊,所述第一看門狗模塊連接主處理器和第一保護模塊,所述第二看門狗模塊連接從處理器和第二保護模塊,所述第一看門狗模塊用于在監測到主處理器出現故障時通過第一保護模塊將第一輸出控制模塊設置為高阻態,所述第二看門狗模塊用于在監測到從處理器出現故障時通過第二保護模塊將第二輸出控制模塊設置為高阻態。3.根據權利要求1所述的支持多點遠距離通信的RS232通信系統,其特征在于,所述預設策略為P-堅持的CSMA/⑶算法,P為預設概率值。4.根據權利要求1所述的支持多點遠距離通信的RS232通信系統,其特征在于,所述第一沖突檢測模塊或第二沖突檢測模塊進行校驗時采用奇偶校驗。5.根據權利要求1所述的支持多點遠距離通信的RS232通信系統,其特征在于,所述第一載波監聽模塊和第二載波監聽模塊監聽RS232串行差分總線是否空閑的方式具體為:所述第一載波監聽模塊和第二載波監聽模塊監聽由第一接口轉換模塊和第二接口轉換模塊轉換得到的單端信號中的高電平持續時間是否達到預設時間,如果達到預設時間,則判定RS232串行差分總線空閑,否則判定RS232串行差分總線忙。6.根據權利要求1所述的支持多點遠距離通信的RS232通信系統,其特征在于,在半雙工通信模式和全雙工通信模式下,所述主處理器和從處理器在比較結果為不相同時,進行總線沖突報警后放棄總線控制權后,還進行預設時間間隔的延遲,并在延遲后重新獲取第一載波監聽模塊或第二載波監聽模塊的監聽結果,其中,所述主處理器和從處理器的預設時間間隔均不相同。
【文檔編號】H04L1/24GK106059878SQ201610311025
【公開日】2016年10月26日
【申請日】2016年5月11日
【發明人】黃建剛, 羅正華, 陳紹祥
【申請人】成都大學