N76E003 之 RS485 通讯

1、RS485技术参数

  1. 两线电压差2~6V,兼容TTL电平
  2. 10m距离,最高速度35Mbps。1km距离,100Kbps
  3. 一般最多支持32个节点,某些特制芯片可达400
  4. 终端电阻:120R
  5. 通讯链路方式:总线型(如下图1)
  6. 通讯方式:半双工

N76E003 之 RS485 通讯_第1张图片

2、硬件电路

如下图2,R15、R16取值参考了原子哥的设计,RO、D1分别对应串口RX和TX,而中间的RE和DE则是(发送\接受)控制端,当端口为1时,为发送模式、为0时,为接受模式。

485协议中的,半双工模式则要求一方为发送模式,一方为接收模式
N76E003 之 RS485 通讯_第2张图片

3、程序逻辑

由于RS485不能像某些IIC器件一样,设置硬件地址位(其实也是软件设置的),所以我们需要使用一种方法来对该总线下的单片机设置地址,这里推荐的做法是使用单片机模拟EEPROM,这样就可以不用每次都去设置地址,修改方式可以为复用下载器的CLK\DAT两个端口,作为串口1使用,如果不想让用户二次修改,可以在程序中判别该位置是否被读写过。

另外的一种方法就是使用拨码开关,但此种办法需要占用IO,并不推荐。

由于RS485通讯模式类似广播。所以需要在通讯过程中,建议做好数据包的校验,添加报头、报尾、校验位、地址位等,可以在串口接收中断中进行校验,提高程序的执行效率(N76E003使用多个中断时,可能会出现速度变慢的问题)。

如果从机需要从接收器转换为发送器,直接翻转控制RE、DE的IO口电平即可。最好每次发送或正确接收完了,就切换到另一种状态下。

你可能感兴趣的:(N76E003)