回覆列表
  • 1 # 哦哦無痛vvv

    RS485主從式多機通訊協議一、資料傳輸協議此協議定義了一個控制器能認識使用的訊息結構,而不管它們是經過何種網路進行通訊的。它描述了一控制器請求訪問其它裝置的過程,如何迴應來自其它裝置的請求,以及怎樣偵測錯誤並記錄。它制定了訊息域格局和內容的公共格式。此協議決定了每個控制器須要知道它們的裝置地址,識別按地址發來的訊息,決定要產生何種行動。如果需要回應,控制器將生成反饋資訊按本協議發出。1、資料在網路上轉輸控制器通訊使用主―從技術,即僅一裝置(主裝置)能初始化傳輸(查詢)。其它裝置(從裝置)根據主裝置查詢提供的資料作出相應反應。主裝置可單獨和從裝置通訊,也能以廣播方式和所有從裝置通訊。如果單獨通訊,從裝置返回一訊息作為迴應,如果是以廣播方式查詢的,則從裝置不作任何迴應。協議建立了主裝置查詢的格式:裝置(或廣播)地址、功能程式碼、所有要傳送的資料、一錯誤檢測域。從裝置迴應訊息也由協議構成,包括確認要行動的域、任何要返回的資料、和一錯誤檢測域。如果在訊息接收過程中發生一錯誤(無相應的功能碼),或從裝置不能執行其命令,從裝置將建立一錯誤訊息並把它作為迴應傳送出去。2、在對等型別網路上轉輸在對等網路上,控制器使用對等技術通訊,故任何控制都能初始和其它控制器的通訊。這樣在單獨的通訊過程中,控制器既可作為主裝置也可作為從裝置。在訊息位,本協議仍提供了主―從原則,儘管網路通訊方法是“對等”。如果一控制器傳送一訊息,它只是作為主裝置,並期望從裝置得到迴應。同樣,當控制器接收到一訊息,它將建立一從裝置迴應格式並返回給傳送的控制器。3、查詢―迴應週期(1)查詢查詢訊息中的功能程式碼告之被選中的從裝置要執行何種功能。資料段包含了從裝置要執行功能的任何附加資訊。錯誤檢測域為從裝置提供了一種驗證訊息內容是否正確的方法。(2)迴應如果從裝置產生一正常的迴應,在迴應訊息中的功能程式碼是在查詢訊息中的功能程式碼的迴應。資料段包括了從裝置收集的資料。如果有錯誤發生,功能程式碼將被修改以用於指出迴應訊息是錯誤的,同時資料段包含了描述此錯誤資訊的程式碼。錯誤檢測域允許主裝置確認訊息內容是否可用。二、傳輸方式控制器能設定傳輸模式為RS485序列傳輸,通訊引數為9600,n,8,1。在配置每個控制器的時候,在一個網路上的所有裝置都必須選擇相同的串列埠引數。地址 功能程式碼 資料數量 資料1 ……. 資料n CRC位元組每個位元組的位・ 1個起始位・ 8個數據位,最小的有效位先發送・ 1個停止位錯誤檢測域・ CRC(迴圈冗餘碼校驗)三、訊息幀1.幀格式傳輸裝置將訊息轉為有起點和終點的幀,這就允許接收的裝置在訊息起始處開始工作,讀地址分配資訊,判斷哪一個裝置被選中(廣播方式則傳給所有裝置),判知何時資訊已完成。錯誤訊息也能偵測到並能返回結果。訊息傳送至少要以10ms 時間的停頓間隔開始。傳輸的第一個域是裝置地址。網路裝置不斷偵測網路匯流排,包括停頓間隔時間內。當第一個域(地址域)接收到,每個裝置都進行解碼以判斷是否發往自己的。在最後一個傳輸字元之後,一個至少10ms 時間的停頓標定了訊息的結束。一個新的訊息可在此停頓後開始。整個訊息幀必須作為一連續的流轉輸。如果在幀完成之前有超過5ms時間的停頓時間,接收裝置將重新整理不完整的訊息並假定下一位元組是一個新訊息的地址域。同樣地,如果一個新訊息在小於5ms的時間內接著前個訊息開始,接收的裝置將認為它是前一訊息的延續。這將導致一個錯誤,因為在最後的CRC域的值不可能是正確的。一典型的訊息幀如下所示:起始間隔 裝置地址 功能程式碼 資料數量及資料 CRC校驗 結束2、地址域訊息幀的地址域包含一個字元8Bit。可能的從裝置地址是0…247 (十進位制)。單個裝置的地址範圍是1…247。主裝置透過將要聯絡的從裝置的地址放入訊息中的地址域來選通從裝置。當從裝置傳送迴應訊息時,也把自己的地址放入迴應的地址域中,以便主裝置知道是哪一個裝置作出迴應。地址0是用作廣播地址,以使所有的從裝置都能認識。3、如何處理功能域訊息幀中的功能程式碼域包含了一個字元8Bits。可能的程式碼範圍是十進位制的1…255。當然,有些程式碼是適用於所有控制器,有此是應用於某種控制器,還有些保留以備後用。當訊息從主裝置發往從裝置時,功能程式碼域將告之從裝置需要執行哪些行為。例如去讀取當前檢測參量的值或開關狀態,讀從裝置的診斷狀態,允許調入、記錄、校驗在從裝置中的程式等。當從裝置迴應時,它使用功能程式碼域來指示是正常回應(無誤)還是有某種錯誤發生(稱作異議迴應)。對正常回應,從裝置僅迴應相應的功能程式碼。對異議迴應,從裝置返回一等同於正常程式碼的程式碼,但功能程式碼的最高位為邏輯1。例如:一從主裝置發往從裝置的訊息要求讀一組保持暫存器,將產生如下功能程式碼:0 0 0 0 0 0 1 1 (十六進位制03H)對正常回應,從裝置僅迴應同樣的功能程式碼。對異議迴應,它返回:1 0 0 0 0 0 1 1 (十六進位制83H)除功能程式碼因異議錯誤作了修改外,從裝置將一獨特的程式碼放到迴應訊息的資料域中,這能告訴主裝置發生了什麼錯誤。主裝置應對程式得到異議的迴應後,典型的處理過程是重發訊息,或者診斷髮給從裝置的訊息並報告給操作員。4、資料域從主裝置發給從裝置訊息的資料域包含附加的資訊:從裝置用於進行執行由功能程式碼所定義的行為所必須的資料。如果沒有錯誤發生,從裝置返回的資料域包含請求的資料。如果有錯誤發生,此域包含一異議程式碼,主裝置應用程式可以用來判斷採取下一步行動。在某種訊息中資料域可以是0長度。例如,主裝置要求從裝置迴應通訊事件記錄,從裝置迴應不需任何附加的資訊。資料域最長為70位元組。5、錯誤檢測域錯誤檢測域包含一位元組8Bits。錯誤檢測域的內容是透過對訊息內容進行迴圈冗長檢測方法得出的。CRC域附加在訊息的最後,故CRC位元組是傳送訊息的最後一個位元組。四、錯誤檢測方法1、超時檢測使用者要給主裝置配置一預先定義的超時時間間隔,這個時間間隔要足夠長,以使任何從裝置都能作為正常反應。如果從裝置檢測到一傳輸錯誤,訊息將不會接收,也不會向主裝置作出迴應。這樣超時事件將觸發主裝置來處理錯誤。發往不存在的從裝置的地址也會產生超時。2、CRC檢測CRC域是一個位元組,檢測了整個訊息的內容。它由傳輸裝置計算後加入到訊息中。接收裝置重新計算收到訊息的CRC,並與接收到的CRC域中的值比較,如果兩值不同,則有誤,從裝置對本訊息不作迴應。通訊網路只設有一個主機,所有通訊都由他發起。網路可支援254個之多的遠端從屬控制器,但實際所支援的從機數要由所用通訊裝置決定。

  • 2 # 使用者4520626945846

    RS485是物理層不是通訊協議,以RS485為物理層的通訊協議有很多,例如:MODBUS,西門子的PROFIBUS DP , PA, MPI ,PPI ,等等。

  • 中秋節和大豐收的關聯?
  • 如何看待《哪吒之魔童降世》票房突破30億,未來的國產動畫行業路在何方?