采用C8051F020的RS485串行通信电路设计

【采用C8051F020的RS485串行通信电路设计】随着计算机技术和测控技术的不断发展,在以单片机为核心的数据采集系统中,需要实现单片机和计算机之间的数据交换,并以此来发挥单片机和计算机各自的长处,提升整个系统的性能价格比 。在计算机网络和工业控制系统中,经常需要采用串行通信来实现远程数据传输 。
目前,有多种接口标准可用于串行通信,包括RS232、RS422、RS485等 。RS232是最早的串行接口标准,在短距离、较低波特率串行通信中得到了广泛应用 。但是,RS232通信存在着传输速度慢、传输距离短、信号容易受到干扰等不足,其应用局限性已日益突出 。而RS485 通信采用差分方式来消除噪声,即信号在发送前会分解为正负2条线路,当到达接收端时将信号相减,使噪声相互抵消,还原成原来的信号,这种方式对共模干扰抑制能力较强,已广泛应用于工业控制等领域 。
要实现单片机与计算机之间的RS485通信,一般可以采用2 种方法:一种方法是在单片机与计算机两端分别采用RS232与RS485电平转换装置;另一种方法是采用RS485通信卡,并将其插在计算机主板上 。采用前一种方法的优点是硬件装置安装简便,软件编程相对简单;缺点是通信速率被限制在20kb/s以内 。第二种方法的优点是通信距离较远,速率较高,可达10 Mb/s;缺点是需要安装通讯卡和驱动程序,并进行必要的设置 。本文采用第二种方法 。
电路设计
采用UART 串行总线进行通信,因为UART是一种广泛应用于远距离、低速率、低成本通信的串行传输接口,由于其具有数据线少的特点,在数字系统设计中得到了大量应用 。基本的UART通信只需要两根数据线(RXD、TXD)即可完成数据的相互通信,接收和发送都是全双工形式,其中RXD 是接收端,TXD 是发送端 。
 
C8051F020单片机有2 个UART(UART0 和UARTl),以UART0 为例,它的TxD 和RXD 分别与数字I/0 引脚PO.O 和PO.1复用,通过交叉开关配置寄存器进行选择 。由于MAX485工作在半双工状态,它与单片机连接时的接线比较简单,只需要用单片机某一个引脚(如PO.2)来控制RE 和DE这2 个引脚 。PCL-846B 通信卡有4 个通道,选择通道1 与单片机进行通信,另外将通道2 和通道4进行连接,以自发自收的方式实现通信卡的自检 。单片机与外部电路的连接关系如图2 所示 。
在使用RS485通信卡进行通信时,当信号传递到通信线路两端时,如果阻抗不匹配,可能会产生信号反射问题 。信号反射会造成信号的失真和变形,从而导致通信错误 。其解决方法就是在通信线路的两端各连接一个终端匹配电阻,保证阻抗匹配 。当通信距离较短,一般在小于300 m 时,可不使用终端电阻 。当通信距离大于300 m 时,应当使用终端电阻,其阻值必须与通信线路的线性阻抗相同 。电阻值一般选取120Ω左右,当通信距离较长时,可以选用300 Ω 。

    推荐阅读