新四季網

實現rs-485多點通訊的方法

2023-05-28 23:34:31 1

專利名稱:實現rs-485多點通訊的方法
技術領域:
本發明涉及一種串行通信標準的實現方法,尤其涉及一種實現RS-485多點通訊的方法。
背景技術:
在數據通訊、計算機網絡以及工業上的分布式控制系統中,經常需要採用串行通訊來達到遠程信息交換的目的,由於串行通訊方式具有使用線路少、成本低,特別是在遠程傳輸時,避免了多條線路特性的不一致而被廣泛採用。在串行通訊時,要求通訊雙方都採用一個標準接口,使不同的設備可以方便地連接起來進行通訊。目前可用於串行通訊的接口標準包括RS-232、RS-422、RS-423和RS-485。RS232是最早的串行接口標準,在短距離、較低波特率串行通信中得到了廣泛應用。其後發展起來的RS-422、RS-485是平衡傳送的電氣標準,較RS-232非平衡的傳送方式在電氣指標上有了大幅度的提高。
RS-485串行接口的電氣標準實際上是RS-422的變型,它屬於七層開放系統互連(OSIOpen System Interconnection)模型物理層的協議標準。由於RS-485總線僅需用一對雙絞線即可實現多站聯網構成分布式系統,且設備簡單、價格低廉,故RS-485總線標準得到了越來越廣泛的應用。
RS-485總線的互連方式如圖1所示,RS-485採用平衡發送和差分接收方式來實現通信,在發送端驅動器TXD將串行口的TTL電平信號轉換成差分信號A、B兩路輸出,經傳輸後在接收端將差分信號還原成TTL電平信號。兩條傳輸線通常使用雙絞線,又是差分傳輸,因此有極強的抗共模幹擾的能力,接收靈敏度也相當高。同時,最大傳輸速率和最大傳輸距離也大大提高。如果以100Kbps速率傳輸數據時傳輸距離可達12m,而用10Kbps時傳輸距離可達1.2km。如果降低波特率,傳輸距離還可進一步提高。另外RS-485實現了多點互連,最多可達32臺驅動器和32接收器,非常便於多器件的連接。不僅可以實現半雙工通信,而且可以實現全雙工通信。
485總線支持多個設備間的通信,一般來說,多個設備之間的通信協議都比較複雜,而採用485通信的多個設備間由於每次交互的數據量相對比較少,如果採用複雜的通信協議,會大大地降低通信效率、並佔用大量的CPU資源,但是採用比較簡單的通信協議,又會使可靠性大大地降低。並且在目前的485多點通信系統中,地址識別多是通過一個字節、甚至幾位來表示,這樣容易與數據產生衝突。對於成幀處理,目前的系統都是採用單板地址+數據+校驗來進行,採用奇偶校驗和數據和校驗,檢錯程度有很大的缺陷,而且不具有可測試性。因此如何在保證多點通信可靠性的同時極大地提高通信效率是當前485通信設計中亟待解決的問題。

發明內容
鑑於以此,本發明所要解決的技術問題是提供一種實現RS-485多點通訊的方法,該方法在保證多點通信可靠性的同時,提高通信效率,使RS-485調試更加容易,並且能夠準確的定位錯誤,增加可測試性。
所以,為達上述目的,本發明提供一種實現RS-485多點通訊的發送方法,採用平衡發送的方式實現一個主機與多個從機之間的通信,首先接收上層數據,然後進行成幀處理,在該數據字節前加入協議頭(包括幀頭、單板地址、幀長),並在該數據字節後加入CRC校驗,再進行初始化處理,最後發送數據幀,包括發送幀頭,發送單板地址,發送幀長,發送數據字節,以及發送循環冗餘校驗(CRC)。
所述的數據字節的第一個字節為命令類型,包括招測命令和狀態查詢命令。
所述的幀頭由3個C0構成,其長度為3個字節;所述單板地址為單板槽位號前面加00,其長度為2個字節;所述幀長包括數據字節長度以及循環冗餘校驗字節長度。
所述發送數據幀還包括對數據進行發送轉義處理步驟,即在幀頭後,添加一個E0,同時幀長加1。
所述初始化處理是將主機初始化為發送允許、接收禁止狀態。
所述發送數據幀之後還包括將主機初始化為發送禁止、接收允許狀態。
另外本發明進而提供一種實現RS-485多點通訊的接收方法,採用差分接收的方式實現一個主機與多個從機之間的通信,首先初始化處理,然後接收數據幀,包括接收幀頭,接收單板地址,接收幀長,接收數據字節;以及接收循環冗餘碼(CRC),接著進行解幀處理,包括識別幀頭,確定一幀數據的開始;比較單板地址,將單板地址與本地地址進行比較;檢驗幀長;確定數據字節;以及接受循環冗餘校驗(CRC),再根據接收到的淨荷進行相應的處理。
所述初始化處理是將從機初始化為接收允許、發送禁止狀態。
所述幀頭由3個C0構成,其長度為3個字節;所述單板地址為單板槽位號前面加00,其長度為2個字節;所述幀長包括數據字節長度以及循環冗餘校驗字節長度。
所述解封裝處理過程還包括進行接收轉義處理步驟,即在數據中收到3個C0後,將後面的E0去掉,同時將幀長減1。
所述解封裝處理還包括統計錯誤的步驟,包括統計幀長錯、幀頭錯、以及循環冗餘校驗錯誤。
所述接收到的淨荷為主機發送的查詢命令。
所述處理查詢命令時,若從機正常並且數據準備好,則立即響應主機;若從機正常,但數據沒有準備好,則不響應主機的查詢命令。
根據本發明提供的實現RS-485多點通訊的方法,實現了可靠的485主從多點通信系統,對地址採用2個字節來表示,並且採用了轉義處理,確保地址不會與數據發生衝突。成幀處理採用了幀頭+單板地址+幀長+數據+CRC16校驗的成幀方式,另外在成幀的過程中還採用了轉義處理,並且採用了CRC16校驗,增加了可靠性。本發明增加了幀頭錯、幀長錯、CRC校驗錯誤統計以及環回等功能,大大增加了可測試性,並進一步使485調試更加容易,方便了出錯時的錯誤定位。


圖1為現有技術RS-485總線互連示意圖;圖2為本發明RS-485通信網絡架構圖;圖3為本發明通信處理流程圖;
圖4為本發明RS-485總線型網絡原理圖;圖5為本發明實施例的RS-485接口電路圖;圖6為本發明實施例主機發送數據幀流程圖;圖7為本發明實施例從機解封裝的流程圖。
具體實施例方式
網絡協議是保證通信暢通的關鍵,在一定程度上也影響著網絡通信的可靠性,它必須能夠抵抗實際運作環境的幹擾。RS-485通信只是整個系統中的一個部分,這就要求通信佔用儘量少的時間,以求達到整個系統的高效率。
根據本發明提供的實現RS-485多點通訊的方法,請參考圖2,該圖是本發明網絡架構圖。主設備210與多個從設備相連。在通信處理過程中,由主設備210發起通信命令,從設備接收、解析、執行命令並返回執行結果,主設備根據接收到的從設備執行結果,進行相應的動作。
請參考圖3,該圖是本發明通信處理流程圖,主設備發起命令、從設備返回執行結果涉及到成幀處理,從設備接受、解析命令,以及主設備接收從設備的返回結果又涉及到解幀處理。首先RS-485通信系統處理上層軟體的數據,包括接收上層數據(步驟3010),並對數據進行封裝處理(步驟3011),接下來初始化發送程序(步驟3012),之後發送數據幀(步驟3013)。從設備初始化接收程序(步驟3014)之後,接收數據幀(步驟3015),然後對數據幀進行解封裝處理(步驟3016),再根據接收到的淨荷進行相應的處理(步驟3017)後,從而完成一個通信處理過程。
本發明的RS-485多點通信系統的網絡拓撲採用總線方式,傳送數據採用主從站的方法。請參考圖4,圖4是本發明RS-485總線型網絡原理圖。如圖所示,RS-485採用主從方式進行多點通信。主機擁有固定的地址,每個從機根據各自的物理地址,按照一定的映射關係計算得到自己的地址,由主機控制完成網上的每一次通信。其中R為平衡電阻,其阻值為120歐姆。
CPU和RS-485接口的原理如圖5所示,由於使用半雙工方式,RS-485接口晶片採用的是ADM3485EAR集成電路,其為具有瞬變高壓抑制功能的晶片,能抗雷擊、靜電放電,避免因交流電故障引起的非正常高壓脈衝衝擊。A、B為RS-485總線接口,DI是發送端,RO為接收端,分別與CPU串行口的TXD、RXD連接,RE、DE為收發使能端,在這裡為了增加可靠性,在485差分線上增加上下拉電阻R4、R5為680歐姆,同時在TTL接收端增加上拉電阻,阻值為2K。
為了能使具體的命令、數據在網絡上正確地傳輸,在數據鏈路層必須提供一定的網絡協議,實現地址識別、成幀、多點通信衝突、容錯、可測實性等功能,同時保證在物理層的比特流出現錯誤時,可以進行檢測,並儘量提高通信效率,為達到所述目的,本發明的數據幀格式如下表所示。

幀頭由3個C0構成,長度為3個字節。
單板地址00+單板槽位號,長度為2個字節。
幀長數據字節長度+CRC校驗字節長度,長度隨數據字節的長度變化而變化。
數據字節第一個字節為命令類型,為了增加可測性,我們在數據命令類型中增加了招測命令和查詢命令,招測命令可以將系統寄存器以及內存中的值查詢到,而狀態查詢命令可以讓主機隨時查詢從機的接收、發送、以及幀頭錯、數據長度錯、CRC校驗錯的數據包的個數。
CRC校驗CRC16校驗,長度為2個字節。
在上述幀格式中,由3個C0標誌幀頭,既可以有效的定位一幀的開始,又可以有效的防止線路中的突發乾擾和隨機幹擾,為了防止與後面的數據淨荷中可能出現的3個C0引起衝突,在發送和接收端都增加了轉義處理,同時為了防止轉義後淨荷加地址與實際的幀頭加地址衝突,在真正的地址前增加了00作為實際的單板地址,因為數據淨荷C0C0C0轉義後為C0C0C0E0不可能與幀頭+地址衝突,為了增加可靠性,還使用了CRC16校驗。
請參考圖6,該圖是本實施例主機發送數據幀的流程圖,首先初始化發送程序(步驟610),包括設置延時計數器、485晶片發送使能、接收禁止,然後主機以串口方式1發送幀頭(步驟620),幀頭為連續的3個C0,標誌著一幀數據的開始,接著以串口方式1發送要與之通信的單板的地址(步驟630),再進行轉義處理(步驟640),隨後發送幀長(步驟650),幀長為後面所有數據的長度和,包括2個字節的CRC16檢驗,然後發送控制命令(步驟660),發送完控制命令後,最後發送CRC16檢驗(步驟670),當傳輸過程中出現誤碼時,接收端可以根據CRC16校驗將出現誤碼的幀丟棄,為了防止數據中出現的數據出現幀頭+地址造成接收單板誤判,在發送幀長之前對數據進行轉義處理,即當數據中出現3個C0時,在3個C0後添加1個E0,同時幀長也要相應地加1。
請參考圖7,該圖是本實施例從機解封裝的流程圖在接收數據之前首先進行初始化處理(步驟710),然後從機識別幀頭(步驟720),從機收到3個C0表示一幀數據的開始,接收幀頭後,所有從機均認為要開始接收一幀數據了,此時將設置的標誌位flag由0變為1,準備接收地址,然後接收地址並與自己的地址比較(步驟730),假設從機與自己的地址比較後一樣,則從機將標誌位flag由1變為2,準備接收數據,此時若接收數據中出現幀頭+地址與其它單板一致,就可能出現問題,為了避免這種情況的出現,在前面發送過程已經進行了轉義處理,約定發送方在3個連續的C0後面添加一個E0,同理在接收方也要進行轉義處理(步驟740),然後確定當前幀長(步驟750),在數據中收到3個C0後,將後面的E0去掉,同時將幀長減1。之後再確定數據字節(步驟760),並接受CRC16校驗(步驟770)。請參考圖8a~圖8c,該圖是本發明實施例接收過程的具體流程。為了保證通信的可靠性,在通信過程中只要有任何一個地方出錯,例如幀長超過預先規定的幀長、CRC校驗錯、地址比較後不符等,接收的數據全部都要丟棄,同時為了增加可測性,對幀頭錯、幀長錯、CRC校驗錯均進行統計。
為了避免在一條485總線上有多個單板發送數據,上電時各從機初始化為接收允許、發送禁止狀態,主機初始化為發送允許、接收禁止狀態,準備發送查詢或控制命令。在這裡各從機沒有主動上報的功能,只能響應主機的查詢或控制命令。主機發查詢命令給從機後,將主機變為發送禁止、接收允許狀態,並等待接收從機的數據。
如果從機正常並且數據準備好,則從機立即響應,主機可以查詢下一塊單板的數據。
如果從機正常但數據沒有準備好,則從機不響應這次查詢,但記錄查詢次數,若查詢次數小於5,假設發第四次查詢命令時從機數據沒有準備好,但是數據在主機發第四次查詢命令之後、第五次查詢命令之前已經準備好,則從機並不在第四次查詢結束後發送數據,而是等待第五次查詢命令後,再發送數據。若單板正常但數據在主機發第5次查詢命令後才準備好,那麼數據不上報給主機,當然這種概率很小。總之,主機要是沒有收到從機的數據,它就發5次查詢命令,兩次查詢命令之間有比較充足的時間間隔,若發完5次查詢命令後,從板還沒反應,那麼它就認為,從機不在位或者從機出問題了。
權利要求
1.一種實現RS-485多點通訊的發送方法,採用平衡發送的方式實現一個主機與多個從機之間的通信,其特徵在於,所述主機發送的方法包含如下步驟步驟1,接收上層待發送的數據;步驟2,數據封裝處理,在數據字節前加入幀頭、單板地址、幀長,並在該數據字節後加入循環冗餘校驗CRC;步驟3,初始化處理;步驟4,發送數據幀,包括發送幀頭;發送單板地址;發送幀長;發送數據字節;及發送循環冗餘校驗CRC。
2.如權利要求1所述的實現RS-485多點通訊的發送方法,其特徵在於所述數據字節的第一個字節為命令類型,包括招測命令和狀態查詢命令。
3.如權利要求1所述的實現RS-485多點通訊的發送方法,其特徵在於所述幀頭由3個CO構成,其長度為3個字節;所述單板地址為單板槽位號前面加00,其長度為2個字節;所述幀長包括數據字節長度以及循環冗餘校驗字節長度。
4.如權利要求1所述的實現RS-485多點通訊的發送方法,其特徵在於所述步驟4還包括對數據進行發送轉義處理步驟,即在幀頭後,添加一個EO,同時幀長加1。
5.如權利要求1所述的實現RS-485多點通訊的發送方法,其特徵在於所述初始化處理步驟是將主機初始化為發送允許、接收禁止狀態。
6.如權利要求1所述的實現RS-485多點通訊的發送方法,其特徵在於所述步驟4之後還包括將主機初始化為發送禁止、接收允許狀態。
7.一種實現RS-485多點通訊的接收方法,採用差分接收的方式實現一個主機與多個從機之間的通信,其特徵在於,所述從機接收的方法包含如下步驟步驟一,初始化處理;步驟二,接收數據幀,包括接收幀頭;接收單板地址;接收幀長;接收數據字節;及接收循環冗餘碼CRC;步驟三,數據解封裝處理,包括識別幀頭,確定一幀數據的開始;比較單板地址,將單板地址與從機地址進行比較;檢驗幀長;確定數據字節;及接受循環冗餘校驗CRC;步驟四,根據接收到的淨荷進行相應的處理。
8.如權利要求7所述的實現RS-485多點通訊的接收方法,其特徵在於所述初始化處理步驟是將從機初始化為接收允許、發送禁止狀態。
9.如權利要求7所述的實現RS-485多點通訊的接收方法,其特徵在於所述幀頭由3個CO構成,其長度為3個字節;所述單板地址為單板槽位號前面加00,其長度為2個字節;所述幀長包括數據字節長度以及循環冗餘校驗字節長度。
10.如權利要求7所述的實現RS-485多點通訊的接收方法,其特徵在於所述步驟三還包括進行接收轉義處理步驟,即在數據中收到3個CO後,將後面的EO去掉,同時將幀長減1。
11.如權利要求7所述的實現RS-485多點通訊的接收方法,其特徵在於所述步驟三還包括統計錯誤的步驟,包括統計幀長錯、幀頭錯、以及循環冗餘校驗錯誤。
12.如權利要求7所述的實現RS-485多點通訊的接收方法,其特徵在於所述步驟四為處理主機發送的查詢命令。
13.如權利要求12所述的實現RS-485多點通訊的接收方法,其特徵在於所述處理查詢命令時,若從機正常並且數據準備好,則立即響應主機;若從機正常,數據沒有準備好,則不響應主機的查詢命令。
全文摘要
一種實現RS-485多點通訊的方法,採用平衡發送和差分接收的方式實現一個主機與多個從機之間的通信,在發送端首先接收上層數據,然後在數據字節前加入協議頭(包括幀頭、單板地址、幀長),並在該數據字節後加入CRC校驗,進行初始化處理後,發送數據幀,接收端接收到數據幀後,進行解幀處理,包括識別幀頭,比較單板地址,檢驗幀長,確定數據字節以及接受循環冗餘校驗(CRC),最後根據接受到的淨荷進行相應的處理。本發明在保證多點通信可靠性的同時,提高通信效率,使RS-485調試更加容易,並且能夠準確的定位錯誤,增加可測試性。
文檔編號H03M13/00GK1527561SQ0316002
公開日2004年9月8日 申請日期2003年9月22日 優先權日2003年9月22日
發明者徐德軍, 陳詩軍, 於學鴻 申請人:中興通訊股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀