0 引言
  RS422/RS485總線接å£ä½œç‚ºå¤šé»žã€å·®åˆ†æ•¸æ“šå‚³è¼¸çš„電氣è¦èŒƒï¼Œç¾å·²æˆç‚ºæ¥ç•Œæ‡‰ç”¨è¼ƒç‚ºå»£æ³›çš„æ¨™æº–通信接å£ä¹‹ä¸€ã€‚RS422/RS485標準åªå°æŽ¥å£çš„電氣特性åšå‡ºäº†è¦å®šï¼Œè€Œä¸æ¶‰åпޥæ’ä»¶ã€é›»çºœæˆ–å”è°ï¼Œå› æ¤ï¼Œç”¨æˆ¶å¯åœ¨æ¤åŸºç¤Žä¸Šå»ºç«‹è‡ªå·±çš„高層通信å”è°ã€‚
1 基本原ç†
  RS422/RS485標準的全稱為TIA/EIA-422-Bå’ŒTIA/EIA-485串行通信標準。它們的數據信號å‡é‡‡ç”¨å·®åˆ†å‚³è¼¸æ–¹å¼ï¼Œä¹Ÿç¨±ä½œå¹³è¡¡å‚³è¼¸ã€‚這兩者在電氣特性上éžå¸¸æŽ¥è¿‘,ä¸åŒä¹‹è™•åªæ˜¯å‚³è¼¸æ–¹å¼çš„ä¸åŒã€‚
  RS485的典型工作方å¼å¦‚圖1所示。RS485典型的驅動器使用一å°é›™çµžç·šï¼Œå¹¶å°‡å…¶ä¸çš„一線定義為A,å¦ä¸€ç·šå®šç¾©ç‚ºB。兩線工作時采用åŠé›™å·¥é€šä¿¡æ–¹å¼ï¼Œå…¶å·¥ä½œç‹€æ…‹ï¼ˆç™¼é€ç‹€æ…‹å’ŒæŽ¥æ”¶ç‹€æ…‹ï¼‰ç”±ä½¿èƒ½æŽ§åˆ¶ä¿¡è™Ÿæ±ºå®šã€‚
  

  一般情æ³ä¸‹ï¼Œé©…動器的Aã€Bé–“çš„æ£é›»å¹³é›»å£“為+2~+6 V時代表一個é‚輯狀態;Aã€Bä¹‹é–“çš„è² é›»å¹³åœ¨-6~-2 V時代表å¦å¤–一個é‚輯狀態。å¦å¤–還有一個信號地C。事實上,在很多情æ³ä¸‹ï¼Œéƒ½æœƒå¿½è¦–信號地的連接。這里建è°é‡‡ç”¨ç¶“éŽè™•ç†çš„ä½Žé˜»é€šè·¯æŠŠä¿¡è™Ÿåœ°é€£æŽ¥èµ·ä¾†ï¼Œä»¥å¢žåŠ å…¶å…±æ¨¡æŠ—å¹²æ“¾èƒ½åŠ›å¹¶æ¸›å°‘é›»ç£è¼»å°„ã€‚â€œä½¿èƒ½â€æŽ§åˆ¶ä¿¡è™ŸE用于驅動器與傳輸線的切斷和連接,當ENABLE起作用時,發é€å™¨è™•于高阻狀態,稱作“第三態â€ï¼Œå®ƒæ˜¯æœ‰åˆ¥äºŽé‚輯“1â€èˆ‡â€œ0â€çš„第三種狀態。
  接收器與驅動器的è¦å®šç›¸ä¼¼ï¼Œå…¶æ”¶ã€ç™¼ç«¯å‡å¯é€šéŽå¹³è¡¡é›™çµžç·šå°‡A-A與B-Bå°æ‡‰ç›¸é€£ã€‚當接收端Aã€B之間有大于+200 mV的電平時,輸出為æ£é‚輯電平;å°äºŽ-200 mVæ™‚ï¼Œè¼¸å‡ºç‚ºè² é‚輯電平。在接收器的接收平衡線上,電平范åœé€šå¸¸æ˜¯åœ¨200 mV~6 V之間。
  一般å¯å®šç¾©é‚輯1(æ£é‚輯電平)為B>A的狀態,é‚輯0ï¼ˆè² é‚輯電平)為A>B的狀態,Aã€B之間的壓差ä¸å°äºŽ200 mV。
  RS485的四線工作狀態和RS422的四線工作狀態基本一致,從物ç†çš„角度上講,RS422相當于兩個RS485åŒæ™‚工作,一個工作于接收狀態,一個工作于發é€ç‹€æ…‹ã€‚
2 信號分æž
ã€€ã€€æ ¹æ“šä»¥ä¸Šèªªæ˜Žï¼Œé€™é‡Œå°RS422/RS485çš„å‚³è¼¸ç‰¹æ€§å»ºç«‹ä¸€å€‹ä¿¡è™Ÿåˆ†æžæ¨¡åž‹ï¼Œå› 為RS485更具有代表性,所以采用RS485作為分æžå°è±¡ã€‚RS485æ˜¯å…¸åž‹çš„ä¿¡è™Ÿè™•ç†æ¨™æº–,其傳éžå‡½æ•¸æ¨¡åž‹å¦‚圖2所示。
  

ã€€ã€€æ ¹æ“šåœ–2è¦èŒƒè¨è¨ˆå®šç¾©åŸŸæ™‚,Då¯ä»£è¡¨å¾®è™•ç†å™¨è¼¸å‡ºçš„æ•¸å—信號(TTL電平或者CMOS電平),其é‚輯信號的å–值空間為{0,1ï½;Dr代表微處ç†å™¨æŽ¥æ”¶çš„æ•¸å—信號(TTL電平或者CMOS電平),其é‚輯信號的å–值空間為{0,1ï½;E,EN為使能信號。驅動器和接收器與傳輸線的連接關系(高電平或者低電平有效控制)å˜åœ¨å…©ç¨®æƒ…æ³ï¼šå®šç¾©ENABLE為連接有效狀態,DISABLE為未連接狀態,å–值空間為{ENABLE,DISABLEï½ã€‚在RS485通信標準ä¸ï¼Œä¸€èˆ¬æƒ…æ³ä¸‹ï¼ŒEã€EN若一個有效則å¦ä¸€å€‹ç¦æ¢ï¼Œè€ŒRS422則兩個å‡ç‚ºæœ‰æ•ˆ;A,B為驅動器與傳輸線的接å£é›»å£“,其è¦èŒƒå®šç¾©ç‚ºï¼ˆ-6V,+6V);Ar,Br為接收器與傳輸線接å£çš„電壓。為了實ç¾RS422/RS485的接å£å…¼å®¹ï¼Œé€™é‡Œæ‡‰å®šç¾©ç‚ºï¼ˆ-7V,+10V)。實際上,驅動器傳éžå‡½æ•¸å®šç¾©ä¸æœ‰å››ç¨®å¯æ»¿è¶³RS485通信標準的情æ³ï¼š
  D=1,E=DISABLE時,輸出A,B狀態為未定;
  D=0,E=DISABLE時,輸出A,B狀態為未定;
  D=1,E=ENABLE時,輸出B-A>2V,且A,B∈(6V,+6V);
  D=0,E=ENABLE時,輸出A-B>2V,且A,B∈(6V,+6V)。
ã€€ã€€æ‰€ä»¥ï¼Œèƒ½å¤ å¯¦ç¾ä¸Šé¢å‚³éžå‡½æ•¸çš„æ‰€æœ‰é›»è·¯å‡å¯ä½œç‚ºRS485的驅動器åƒè€ƒè¨è¨ˆï¼Œç•¶ç„¶ï¼Œé‚„éœ€è¦æ»¿è¶³å…¶è¼¸å…¥è¼¸å‡ºç‰¹æ€§ã€‚
  從接收器傳éžå‡½æ•¸çš„定義å¯ä»¥æŠŠæŽ¥æ”¶å™¨åˆ†æˆå…©é¡žï¼Œå…¶ä¸€æ˜¯EN=DIABLE,這相當于驅動器沒有掛載在總線上(å¯ä»¥èªç‚ºä¸å˜åœ¨ï¼‰ã€‚其二是EN=ENABLEï¼Œæ¤æ™‚åˆå˜åœ¨å…©ç¨®æ£å¸¸å·¥ä½œæƒ…æ³ï¼Œä¸€æ˜¯è¼¸å‡ºDr=1時,Br-Ar>200 mV;二是輸出Dr=0時,Ar-Br>200 mV。
  為了滿足接收器æ£å¸¸å·¥ä½œçš„需è¦ï¼Œæ“作時還需è¦è€ƒæ…®ä»¥ä¸‹å¹¾ç¨®æƒ…æ³ï¼š
  (1)Arã€Brçš„é›»å£“èŒƒåœæ‡‰è©²åš´æ ¼é™åˆ¶åœ¨-7~10V,å¦å‰‡å¯èƒ½æå£žå™¨ä»¶ã€‚一般采用穩壓的二極管網絡來實ç¾é›»å£“çš„é™åˆ¶ã€‚
  (2)當|Ar-Br|<200 mV時,接收器數據的判別。一般å¯é‡‡ç”¨é›»é˜»ç¶²çµ¡ï¼Œå°‡Ar通éŽ10 kΩ的電阻接在VCC上,而將Br通éŽ10 kΩ的電阻接在GROUND上,這樣,當總線上沒有信號傳輸的時候,å³å¯ä¿æŒAr的電平為3.2 Vå·¦å³ï¼ŒBr的電平大約為1.6 V,這樣,å³ä½¿æœ‰å¹²æ“¾ä¿¡è™Ÿï¼Œä¹Ÿå¾ˆé›£ç”¢ç”Ÿä¸²è¡Œé€šä¿¡çš„其始信號0。
  (3)一般情æ³ä¸‹ï¼Œç‚ºäº†æ¸›å°‘線路上傳輸信號的å射,å¯åœ¨RS422總線電纜的é 端并接1個100Ω電阻,并應在RS485ç¶²çµ¡å‚³è¼¸ç·šçš„å§‹ç«¯å’Œæœ«ç«¯å„æŽ¥1個120 Ω的匹é…電阻。
3 工程實ç¾
ã€€ã€€æ ¹æ“šä»¥ä¸Šåˆ†æžï¼Œé€™é‡Œçµ¦å‡ºä¸€å€‹RS422/RS485兼容的實際應用電路,其具體電路如圖3所示。
 
  圖3電路ä¸é‡‡ç”¨çš„芯片為MAX491ESD。當用MAX491ESD進行RS422通信時,應把跳線帽安è£åœ¨JP2的管腳2和管腳1上,JP1å’ŒJP3跳線帽去掉;而當其作為RS485通信的時候,則應把跳線帽安è£åœ¨JP2的管腳2和管腳3上,JP1å’ŒJP3åŠ ä¸Šè·³ç·šå¸½ï¼Œå¾žè€Œæ§‹æˆå…©å€‹ç¯€é»žçš„RS485網絡。穩壓管D1,D2的作用是把A的電壓牢牢é™åˆ¶åœ¨-7V~+12V,以有效ä¿è·RS422/RS485ç¶²çµ¡ã€‚å¢žåŠ D3å’ŒD8çš„ç›®çš„ä¸»è¦æ˜¯ç‚ºäº†é˜²æ¢æµªæ¶Œé›»å£“ã€‚é€™å€‹å¯¦éš›é›»è·¯æ˜¯ä»¥ä¿¡è™Ÿåˆ†æžæ¨¡åž‹ä½œç‚ºæŒ‡å°Žçš„便“šå»ºç«‹èµ·ä¾†çš„,å¯ä»¥åœ¨å¯¦éš›çš„æ¸¬è©¦å’Œé‹è¡Œä¸æ»¿è¶³é æœŸè¦æ±‚。
4 çµæŸèªž
  本文從信號處ç†çš„角度分æžäº†RS422/RS485網絡的硬件構æˆï¼Œå¹¶å°‡å…¶æŠ½è±¡ç‚ºä¸€å€‹ä¿¡è™Ÿè™•ç†åˆ†æžæ¨¡åž‹ï¼Œå¾žè€Œçµ¦å‡ºç›¸æ‡‰çš„傳éžå‡½æ•¸å’Œå®šç¾©åŸŸã€‚