rs-485采用平衡发送和差分接收,具有抑制共模干扰的能力。其传输时的电气协议规定:当a线的电压低于b线时,传送的是信号1,当a线的电压高于b线时,传送的是信号0。a线和b线能承受的共模信号为 -7v~+12v,这里讲的共模信号是指a线或b线对地的电压。一个标准发送器能够直接驱动几个接收器,且发送器可以被关闭使其输出端变成高阻,因此只需 2条连线既可实现一个半双工的通信网络。rs-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。
由于rs-485通信是一种半双工通信,发送和接受共用同一物理通道,在任意时刻只允许一台单片机处于发送状态,因此要求应答的单片机必须在侦听到总线上呼叫信号己经发送完毕,并且在没有其他单片机应答信号的情况下才能应答。如果在时序上配合不好,就会发生总线冲突,使整个系统的通信瘫痪,无法正常工作。上位机与下位机之间如何进行数据传输,怎么提高通信的效率和可靠性,以及对通信过程中的故障处理,帧格式的约定,都需要一套详尽的通信协议。
由于rs-485标准只制定了物理层电气标准,对上层通信协议没有规定,这给设计者提供了很大的灵活性。一套完整的通信协议既要求结构简单,功能完备,又要求具有可扩充性与兼容性,并且尽量标准化。
在多mcu之间中长距离通信的诸多方案中,rs-485因硬件设计简单、控制方便、成本低廉等优点。本文完成了基于rs-485的单主机一多从机的集散式控制系统的设计,包括上位机主控端与下位机从动端,并详细分析了其通信时序