您当前的位置:五五电子网电子知识通信技术综合通信技术单片机与微机RS-485通信 正文
单片机与微机RS-485通信

单片机与微机RS-485通信

点击数:7307 次   录入时间:03-04 11:55:44   整理:http://www.55dianzi.com   综合通信技术

  单片机与微机之间以RS-232通信最为常见,微机对外的两个串口COM1、COM2都是专门为RS-232通信而设置的。虽然RS-232的通信方式比较方便,但它也有一些缺点。例如,RS-232只能实现短距离通信,通常只有十余米,要实现长距离通信还得依赖于调制解调器。RS-232对地而言是共模传输方式,而各种电气干扰大多也是对地共模方式,尽管RS-232将信号传输电平提高到-12~+12V,但抗干扰能力仍不理想。

  RS-485通信方式与RS-232相比有很多优点,首先,它的通信距离比RS-232要远得多,通常可以做到数百米甚至千米以上,而且还可以实现多点通信方式,从而可以建立起一个小范围内的局域网,因而更有实用价值。RS-485采用差模信号传输方式,与地电平关系不大,因而它抗干扰的能力比RS-232强得多,即便在信号电压比较小的情况下也能获得稳定的传输。

  但是微机本身并不具备专用的RS-485通信口。由于RS-485与RS-232的工作电平不相同,工作方式与控制机理也有差别,故而想利用现成的COM1、COM2串行口来实现RS-485通信时,还需对硬件和软件进行相应的设计。

54

  上图是单片机与微机RS-485通信的方框示意图。下图是电原理图。

43

  要进行通信就必须使用专门的通信芯片,如上图中的IC2、IC3。这类芯片种类较多,但性能相近,本文以最常用的芯片MAX485为例,对其工作过程进行说明。MAX485芯片接线图见下图,

54

其中RO脚为数据输出脚,它接收RS-485的差模信号VAB,并转换为TTL电平由RO输出,RE的反脚为RO的使能端,低电平时选通RO,输出有效。DI脚为数据输入端,它将TTL电平的数据转换为差模信号VAB,并由A、B两脚输送出去,DE是DI的使能端,高电平选通DI,数据输出有效。故A、B两脚既是RS-485信号输入端,同时也是该信号的输出端,关键是由使能端RE、DE的电平来决定。为了控制上的方便,通常将RE、DE两脚连在一起。高电平时DI脚输入的数据有效;低电平时RO脚数据输出有效。从而实现了半双工的RS-485通信。

  MAX485的工作电压为+5V,静态电流约300mA,工作电流随负载而变,VAB的输出电压为-4~+4V(实测)。当VAB电压<-0.2V或>+0.2V时,从RO脚便可获得正确的输出。

  因MAX485的工作电平是TTL电平(0~+5V),而微机串口是RS-232电平(-12~+12V),两者不能直接相连而必须顺序进行变换。这类电平变换芯片类型较多,本文采用的是MAX203E,上图中的IC1,它的优点是外围无需接任何元器件便能正常工作,它能将右边输入的RS-232电平变换为TTL电平从左边输出;同时也能将左边输入的TTL电平变换为RS-232电平从右边输出。

  IC1、IC2的工作电压都是+5V,通常是由外部接一个+5V的电源供电,但本文的电路是通过微机串口中的某些脚的输出电压经稳压滤波后供给的,省去了外接电源的麻烦。由图2可知,该电源是由DB9的④脚(DTR)和③脚(TXD)(主要是前者)输出的正电压经二极管Dl、D2整流,Rl、Cl、C2滤波,D3稳压后提供+5V的电源。未工作时,④脚是-12V,故而在开始工作时必须先置④脚为+12V。③脚在发送信号时正负电位会交替进行,当为“正”时,会通过D2向电源提供电流。⑦脚(RTS)是用来控制收发过程的,当它为“正”时,IC2的RE的反、DE为“0”,接收信号;为“负”时,丽、DE为“+5V”,发送信号。

  由插头DB9、IC1、IC2以及提供电源的元器件等构成了微机RS-485的收发电路,通常是将它们做在一块小印制电路板上,将其插入串口COM2便可工作。由于串口提供电流的能力有限,故阻尼电阻R不能太小,通常在2kΩ以上。否则,应断开内部电源,由外部提供+5V的电源。

  IC3、IC4构成了单片机的RS-485收发电路,因两者均为TTL电平,故可直接相接。从图2可以看出,单片机与微机通信的过程中电平变换了4次:DB9与IC1之间RS-232电平,IC1与IC2之间TTL电平,IC2和IC3之间是RS-485电平,IC3与IC4之间是TTL电平。

5

上图和下图分别是单片机和微机进行RS-485通信的软件框图。从框图可以看出,它们都有一个允许发送和允许接收的指令或语句,以便实现半双工通信。对于单片机而言很方便,可通过某脚置位或清零来实施(见图2的IC4的P1.0脚)。对微机而言稍麻烦,DB9的④脚、⑦脚的电位是瘤串口(COM2口)所属的控制寄存器2FCH来进行控制的,它是一个8位寄存器,通常使用的是DO、Dl、D3三个位。其中,DO置1时,④脚输出+12V,置0时,输出-12V;Dl置1肘,⑦脚输出+12V,置0时,输出-12V;D3置1时,开放串口中断。

43

  开始工作时,需将DO置l,使④脚为正电平,用以提供+5V电源。D3置1,开放串口中断。发送信号时,置Dl为0;接收信号时,置Dl为l。

  当微机使用BASIC语言时,允许发送和允许接收的语句分别是:

  OUT&H2FC,&H9和OUT&H2FC,&HB

  当微机使用的是C语言时,允许发送和允许接收的函数语言分别是:outport(Ox2fc,Ox9);和out-port(Ox2fc,Oxb);在编程时务必注意。运行时,应先运行单片机程序,再运行微机程序。




本文关键字:单片机  通信  RS-485  综合通信技术通信技术 - 综合通信技术