RS485标准抗干扰能力强, 传输速率高, 传送距离远. 采用双绞线, 不用MODEM 的情况下, 在100kbit/s的速率时, 可传送的距离为1.2 km, 若速率降到9600 bit/s, 则传送距离可达15 km. 它允许的最大速率可达10Mbit/s. RS 485允许平衡电缆上连接32个发送器/接收器对, 因此RS485适用于多点通信系统中。
2.5.3 RS232C 与RS485的转换
微机不能直接与RS485接口, 因此还须加上RS232C 与RS485的转换电路[7]。RS232C 与RS485 转换电路设计选用SN75LBC184芯片。SN75LBC184 是美国TI公司生产的一种RS485 接口芯片, 可在总线上连接64 个收发器. 其工作原理如图3所示. 发送使能端DE 为高电平, SN75LBC184作为发送器, 数据从第4脚输入, 第6、7 脚输出, 其中7脚输出信号的非;接收使能RE 为高电平, SN75LBC184作为接收器, 信号从6脚或7脚输入, 1脚输出。
利用SN 75LBC184设计的RS232C 与RS485转换电路。选用PC 机的COM2 接口, 但COM2的9个端口只使用其中的RTS、RXD 、TXD与GND四个端口,以构成简易的四线通信线路。该电路使用了三片光电耦合器TLP521- 1进行隔离, 这使PC机与SN75LBC184之间完全没有了电的联系, 从而提高了工作的可靠性。当RS232的RTS端为逻辑电平1 (-12V)时, 光电耦合器的发光二极管不发光,光敏三极管不导通, 输出端为TTL逻辑电平1(+5V), 此时选中RS485的DE 端允许RS485接收, 这样, RS232的TXD 端就可以发送数据(工作逻辑与RTS端相似)。 当RS232的RTS端为逻辑电平0(+12V)时,光电耦合器的发光二极管发光, 光敏三极管导通, 输出端为TTL逻辑电平0(0V),此时选中RS485 的RE 端允许RS485 发送. 当RS485的R 端的输出为逻辑电平1时, 光电耦合器发光二极管不发光, 光敏三极管不导通, 这样, 在RS232输出停止时,其TXD电平为-12V, 电容被充电到-12V以使其输出也变成-12V,即逻辑电平1;当其输出为逻辑电平0时, 光电耦合器发光二极管发光,光敏三极管导通,这时,其输出为+5V, 也在RS232逻辑电平0的范围之内, 即为逻辑电平0.
3、 通信协议
对于单片机来说,为了进行串行数据通信,同样也要有相应的串行接口电路。只不过这个接口电路不是单独的芯片,而是集成在单片机芯片内部,成为单片机的一个组成部分。MCS-51内部含有一个可编程全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可以作为一个同步移位寄存器使用。
3.1 单片机串行口的结构
MCS-51有两个单独的接收、发送缓冲器SBUF(属于特殊功能寄存器),一个用作发送,一个用作接收。发送缓冲器只能写入不能读出;接收缓冲器只能读出不能写入,两者共用一个字节地址(99H)。
在发送时,CPU由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,然后从TXD端一位位地向外发送。与此同时,接收端RXD也可一位位地接收数据,直到收到一个完整的字符数据后通知CPU,再用一条指令把接收缓冲器SBUF(收)的内容读入累加器。可见,在整个串行收发过程中,CPU的操作时间很短,使用CPU还可以从事其他的各种操作(指工作在中断方式下),从而大大提高了CPU的效率。 串行数据通信控制和应用+源程序(7):http://www.youerw.com/tongxin/lunwen_5358.html