通讯,RS485, Modbus协议
串行通讯,数据是一串一串通讯的,一串就是一帧,数据是通过帧来通讯的。元器件级别的通讯大部分都是串行通讯,芯片除外,芯片之间的通讯一般都是并行通讯。RS485是串行通讯的一种标准。不同的通讯协议,什么Canopen,profinet,DP、device net,modbus,对应的帧结构是不同的。通讯的目的就是为了交互数据。同步通讯,发送端和接收端都有时钟,发送时间和接受时间同步,现在已经很少使用了。异步通讯,波特率必须一致,大部分通讯需要自己设置,发送端设多少,接收端也要设多少。波特率越高,数据传送的速度越快,也就是说单位时间内交互的数据量越多,但越不稳定。上网速度,宽带等也是波特率,有了波特率,就不需要时钟,靠两边约定的速度,解决时钟不同步的问题。西门子的DP通讯,它有自适应网口,不需要设置波特率。
帧一般的结构由起始位、数据、停止位还有校验位,起始位和停止位不一定都有,modbus通讯可设置几个停止位、是什么校验、也可不设停止位。检验位分奇校验、偶校验、无检验。主要看数据中1的个数,数据中1的个数有三个了,那就是奇数。主站设置成奇校验,从站也必须设置成奇校验。还有什么CRC校验、异或校验。帧就是数据。
通讯中的三个重要参数,波特率、校验位、校验形式,主站和从站必须一致。通讯的第一步,就是看看这些东西是否设置正确。这几个参数在我们Modbus RTU通讯时是用得最多的。
Modbus是一种事先约定好的协议,RS485是一种电气硬件的标准。
其实芯片级的通讯在不要求速度的情况下,都是串行的,比如I2C, 毕竟并行太占用接口资源了。
帧是由一串数据字节组成的,停止位,奇偶校验位是校验每个字节的,不要搞混了,整帧的校验由帧尾的校验码完成,比如和校验,CRC校验。 如果有心学,要会看报文,这样谁也蒙不了你
页:
[1]