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