常用的RS232、RS485以及RS422协议,都属于接口协议(多数为美国协会或组织制定),即硬件层普遍认可的一种协议。其中协议规定的0和1的电平,RS232是-3v~-15v表示低电平,3v~15v表示高电平;RS485和RS422是-2v~-6v表示低电平,2v~6v表示高电平。而我们最熟悉的TTL电平是0v-0.8v表示低电平,2.4v-5v表示高电平。
串行通信中我们最常用的应用层协议就是modbus了。很多人认为modbus就是RS485,其实不然,硬件层面的协议和软件层的协议没有必然的联系,只是软件层协议适合用那种硬件层的协议(硬件层协议即传输媒介)进行传输,modbus也可以通过RJ45传输。也就是说modbus也可以使用RS232进行传输,但是RS232的一大缺点会导致信号失真,即232协议是共地传输,会存在共模干扰;而485不会,485采用的是差分传输,即保证了即便在受到干扰,两芯信号线的电压同时上升或者下降,而它们之间的压差不会变。具体可以去了解差模信号和共模信号的区别。因为485硬件层协议符合modbus的可靠传输理念,所以几乎大部分设备用modbus协议时都会选用485媒介进行数据传输。
对于KNX协议,我只了解到它的传输媒介有很多,可以实现信号和电源共用两根线,其实现方式是使用到载波技术,简单点就是两芯线去除电源部分(如何调制不太清楚)的电压之差就是信号了(实现起来可能是用的了恒压电源,以保证电源电压部分不失真)。