找回密碼
         注冊會員
        搜索附件  

        熱門下載

        附件中心&附件聚合2.0
        For Discuz! X2.5 © hgcad.com

        1253512699_3.jpg

         

        單片機RS-485多機通訊的實現:
        摘 要 本文介紹一種能利用RS-485電氣特性和簡單的結構方式,采用自定義串行通信協議,實現單片機RS-485多機通訊的方法和技巧。  關鍵詞 單片機,RS-485總線,總線沖突,串行通信
          1 簡介
          RS-485串行總線接口標準以差分平衡方式傳輸信號,具有很強的抗共模干擾的能力,允許一對雙絞線上一個發送器驅動多個負載設備。工業現場控制系統中一般都采用該總線標準進行數據傳輸,而且一般采用RS-485串行總線接口標準的系統都使用8044芯片作為通信控制器或各分機的CPU。8044芯片內部集成了SDLC,HDLC等通信協議,并且集成了相應的硬件電路,通過硬件電路和標準協議的配合,使系統的通訊準確、可靠、快速。8044在市場上日漸稀少,雖然有8344可替代,但幾百元的價位與普通單片機幾元至幾十元的價位相差甚遠,用戶在開發一般的單片機應用系統時,都希望能用簡單的電路和簡單的通信協議完成數據交換。譬如:利用單片機本身所提供的簡單串行接口,加上總線驅動器如SN75176等組合成簡單的RS-485通訊網絡。本文所述的方法已成功地應用于工程項目,一臺主機與60臺從機通訊,通訊波特率達64KBPS。
          2 總線驅動器芯片SN75176
          常用的RS-485總線驅動芯片有SN75174,SN75175,SN75176。SN75176芯片有一個發送器和一個接收器,非常適合作為RS-485總線驅動芯片。
          SN75176及其邏輯如圖1所示。
          

          圖1 SN75176芯片及其邏輯關系
          3 RS-485方式構成的多機通信原理
          在由單片機構成的多機串行通信系統中,一般采用主從式結構:從機不主動發送命令或數據,一切都由主機控制。并且在一個多機通信系統中,只有一臺單機作為主機,各臺從機之間不能相互通訊,即使有信息交換也必須通過主機轉發。采用RS-485構成的多機通訊原理框圖,如圖2所示。
          

          圖2 采用RS-485構成的多機通訊原理框圖
          在總線末端接一個匹配電阻,吸收總線上的反射信號,保證正常傳輸信號干凈、無毛刺。匹配電阻的取值應該與總線的特性阻抗相當。
          當總線上沒有信號傳輸時,總線處于懸浮狀態,容易受干擾信號的影響。將總線上差分信號的正端A+和+5電源間接一個10K的電阻;正端A+和負端B-間接一個10K的電阻;負端B-和地間接一個10K的電阻,形成一個電阻網絡。當總線上沒有信號傳輸時,正端A+的電平大約為3.2V,負端B-的電平大約為1.6V,即使有干擾信號,卻很難產生串行通信的起始信號0,從而增加了總線抗干擾的能力。
          4 通信規則
          由于RS-485通訊是一種半雙工通訊,發送和接收共用同一物理信道。在任意時刻只允許一臺單機處于發送狀態。因此要求應答的單機必須在偵聽到總線上呼叫信號已經發送完畢,并且沒有其它單機發出應答信號的情況下,才能應答。半雙工通訊對主機和從機的發送和接收時序有嚴格的要求。如果在時序上配合不好,就會發生總線沖突,使整個系統的通訊癱瘓,無法正常工作。要做到總線上的設備在時序上的嚴格配合,必須要遵從以下幾項原則:
          1) 復位時,主從機都應該處于接收狀態。
          SN75176芯片的發送和接收功能轉換是由芯片的 RE* ,DE端控制的。RE*=1,DE=1時,SN75176發送狀態;RE*=0,DE=0時,SN75176處于接收狀態。一般使用單片機的一根口線連接RE*,DE端。在上電復位時,由于硬件電路穩定需要一定的時間,并且單片機各端口復位后處于高電平狀態,這樣就會使總線上各個分機處于發送狀態,加上上電時各電路的不穩定,可能向總線發送信息。因此,如果用一根口線作發送和接收控制信號,應該將口線反向后接入SN75176的控制端,使上電時SN75176處于接收狀態。
          另外,在主從機軟件上也應附加若干處理措施,如:上電時或正式通訊之前,對串行口做幾次空操作,清除端口的非法數據和命令。
          2) 控制端RE*,DE的信號的有效脈寬應該大于發送或接收一幀信號的寬度。
          在RS-232,RS-422等全雙工通訊過程中,發送和接收信號分別在不同的物理鏈路上傳輸,發送端始終為發送端,接收端始終為接收端,不存在發送、接收控制信號切換問題。在RS-485半雙工通訊中,由于SN75176的發送和接收都由同一器件完成,并且發送和接收使用同一物理鏈路,必須對控制信號進行切換。控制信號何時為高電平,何時為低電平,一般以單片機的TI,RI信號作參考。
          發送時,檢測TI是否建立起來,當TI為高電平后關閉發送功能轉為接收功能;
          接收時,檢測RI是否建立起來,當RI為高電平后,接收完畢,又可以轉為發送。
          在理論上雖然行得通,但在實際聯調中卻出現傳輸數據時對時錯的現象。根據查證有關資料,并在聯調中借助存儲示波器反復測試,才發現一個值得注意的問題,我們可以查看單片機的時序:
          

          圖3 串行口模式3時序圖
          單片機在串行口發送數據時,只要將8位數據位傳送完畢,TI標志即建立,但此時應發送的第九位數據位(若發送地址幀時)和停止位尚未發出。如果在這是關閉發送控制,勢必造成發送幀數據不完整。如果單片機多機通訊采用較高的波特率,幾條操作指令的延時就可能超過2位(或1位)數據的發送時間,問題或許不會出現。但是如果采用較低波特率,如9600,發送一位數據需100μs左右,單靠幾條操作指令的延時遠遠不夠,問題就明顯地暴露出來。接收數據時也同樣如此,單片機在接收完8個數據位后就建立起RI信號,但此時還未接收到第九位數據位(若接收地址幀時)和停止位。所以,接收端必須延時大于2位數據位的時間(1位數據位時間=1/波特率),再作應答,否則會發生總線沖突。
          3) 總線上所連接的各單機的發送控制信號在時序上完全隔開。
          為了保證發送和接收信號的完整和正確,避免總線上信號的碰撞,對總線的使用權必須進行分配才能避免競爭,連接到總線上的單機,其發送控制信號在時間上要完全隔離。
          總之,發送和接收控制信號應該足夠寬,以保證完整地接收一幀數據,任意兩個單機的發送控制信號在時間上完全分開,避免總線爭端。
          程序流程框圖,參見圖4。其中:a)為發送流程圖;b)為接收流程圖。
          

          圖4 程序流程圖
          注:延時T秒的取值
          (1) 傳送地址幀時,T>2X(1/波特率),可以選取T=2.5X(1/波特率)。
          (2) 傳送數據幀時,T>1X(1/波特率),可以選取T=1.5X(1/波特率)。
          作者簡介:尹 紅 工程師。主要從事計算機應用和數控產品的研究和開發工作
          唐 煜 研究員。主要從事計算機自動化會議系列產品的研究和開發工作
          作者單位:中國科學院成都計算機應用研究所 四川。成都(610041)
        很好很強大  不錯的文檔
        1253512699_3.jpg

        QQ|手機版|MCU資訊論壇 ( 京ICP備18035221號-2 )|網站地圖

        GMT+8, 2025-5-1 00:28 , Processed in 0.024373 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        返回頂部
        日韩国产精品无码一区二区三区| 国自产精品手机在线观看视 | 精品国产乱码一区二区三区| 国产成人精品天堂| 久久国产乱子伦精品免费强| 国内精品久久久久国产盗摄| 老司机午夜精品视频在线观看免费| 精品无码人妻一区二区免费蜜桃| 四虎最新永久在线精品免费| 青青青青久久精品国产h久久精品五福影院1421 | 久久99精品久久久久久9蜜桃 | 国产精品久久久久久久久鸭| 好湿好大硬得深一点动态图91精品福利一区二区| 亚洲精品美女久久久久99小说| 久久这里只有精品18| 99久久精品费精品国产| 亚洲一区二区精品视频| 99RE6热在线精品视频观看| 99熟女精品视频一区二区三区 | 国产精品多p对白交换绿帽| 国产成人无码精品久久久久免费 | 久久精品成人| 亚洲AV永久青草无码精品| 亚洲精品免费在线观看| 曰本福利写真片视频在线| 国产福利视精品永久免费| 久久九九久精品国产| 精品一区二区三区在线观看视频 | 亚洲精品无码成人AAA片| 四虎最新永久在线精品免费| 亚洲欧洲国产精品| 欧美精品一区二区三区视频| 亚洲第一天堂无码专区| 亚洲精品综合一二三区在线| 视频一区二区三区在线看免费看| 国产精品素人搭讪在线播放 | 国产a精品视频| 99精品久久久久中文字幕| 久久久久这里只有精品| 国产精品女同久久久久电影院| 国产午夜亚洲精品国产成人小说 |