modbus4-232 485 单机 多机
http://www.mcuol.com/download/upfile/20090504091459_PL-2303HX.pdf
http://datasheets.maxim-ic.com/en/ds/MAX220-MAX249.pdf
http://datasheets.maxim-ic.com/en/ds/MAX1487-MAX491.pdf
①max232:占用mcu的2个引脚即用于串口的那2个,c51的是p3.1(tx)和p3.0(rx)。mcu使用tx发数据,rx接数据,二者独立所以在线路上满足全双工。并且在c51内部的串口电路也有独立的接受器和发送器。接收器由输入移位寄存器和接受SBUF构成,发送器由发送SBUF(不同于接受SBUF)构成。在接收的时候,RXD引脚数据自动按照波特率移位进输入移位寄存器,与此同时发送SBUF里德数据可以自动移位到引脚TXD。引脚与寄存器之间的移位由硬件电路完成,cpu不必参与。所以在电路上满足全双工。
![](http://hi.csdn.net/attachment/201111/17/0_1321510519KDd9.gif)
②max485:需要多机互联的如要实现modbus通信的mcu需要加一个max485,而不是max232。如果是半双工的max485,则占用mcu的3个引脚即用于串口的那2个外加一个读or写控制的一个io口。当然如果已经用的是max232也没关系也可进行485通信,外部再加一个232-485转换器就ok.但是这样的话,在mcu侧的串口代码就需要按照max232的写即不必管控制引脚。另外,因为pc侧始终是232接口,所以pc与232设备通信则可以直接通信,与458设备通信需要一个232-485的转换器。所以不管以上那种通信途径,pc侧的代码始终按照232de.
![](http://hi.csdn.net/attachment/201111/17/0_1321510011kOwu.gif)
③usb-232转换器,即一个同时含usb和uart接口的mcu设备,mcu一般使用pl-230hx进行串口和usb口之间的数据转发,和用8051f320去实现差不多。
由于232接口基本都是为连接pc而设计的,所以几乎所有的232串口设备都会配置一个max232芯片,也包括usb-232转换器。max232芯片进行电平转换,是在单片机侧使用的TTL与pc侧使用的RS-232C之间。这样串口设备就可以直接连接pc的232串口了。当然如果仅用于设备与设备之间的232连接,就没必要在每个设备侧都加一个max232,恩,加了也没关系(但要加就要每个设备都加)可以预留着以后方便跟pc通信。
并且貌似一般的usb-232转换器的23脚在转换器内部已经交叉过,所以使用usb-232转换器连接其他232设备时直连即可。
![](http://hi.csdn.net/attachment/201111/17/0_132150714367AE.gif)
一.232单机
![](http://hi.csdn.net/attachment/201111/17/0_1321512624055E.gif)
![](http://hi.csdn.net/attachment/201111/17/0_13214946207Bhr.gif)
二.232多机
232多机通信在硬件线路部分会出问题,所以行不通。
三.485单机--假设mcu使用max232进行电平转换,则需要外部使用232-485 converter。
(如果设备内部使用max485进行电平转换的就不必在设备外部外加232-485 converter。)
![](http://hi.csdn.net/attachment/201111/17/0_1321512548QQ55.gif)
比如(右键大图)
![](http://hi.csdn.net/attachment/201111/17/0_1321495184VA25.gif)
四.485多机--假设mcu使用max232进行电平转换。如下是pc作主机,stc51和micro2440作从机使用modbus通信的连线实物图。地址分别是1,2。
![](http://hi.csdn.net/attachment/201111/30/0_1322656602pxyS.gif)
http://datasheets.maxim-ic.com/en/ds/MAX220-MAX249.pdf
http://datasheets.maxim-ic.com/en/ds/MAX1487-MAX491.pdf
①max232:占用mcu的2个引脚即用于串口的那2个,c51的是p3.1(tx)和p3.0(rx)。mcu使用tx发数据,rx接数据,二者独立所以在线路上满足全双工。并且在c51内部的串口电路也有独立的接受器和发送器。接收器由输入移位寄存器和接受SBUF构成,发送器由发送SBUF(不同于接受SBUF)构成。在接收的时候,RXD引脚数据自动按照波特率移位进输入移位寄存器,与此同时发送SBUF里德数据可以自动移位到引脚TXD。引脚与寄存器之间的移位由硬件电路完成,cpu不必参与。所以在电路上满足全双工。
![](http://hi.csdn.net/attachment/201111/17/0_1321510519KDd9.gif)
②max485:需要多机互联的如要实现modbus通信的mcu需要加一个max485,而不是max232。如果是半双工的max485,则占用mcu的3个引脚即用于串口的那2个外加一个读or写控制的一个io口。当然如果已经用的是max232也没关系也可进行485通信,外部再加一个232-485转换器就ok.但是这样的话,在mcu侧的串口代码就需要按照max232的写即不必管控制引脚。另外,因为pc侧始终是232接口,所以pc与232设备通信则可以直接通信,与458设备通信需要一个232-485的转换器。所以不管以上那种通信途径,pc侧的代码始终按照232de.
![](http://hi.csdn.net/attachment/201111/17/0_1321510011kOwu.gif)
③usb-232转换器,即一个同时含usb和uart接口的mcu设备,mcu一般使用pl-230hx进行串口和usb口之间的数据转发,和用8051f320去实现差不多。
由于232接口基本都是为连接pc而设计的,所以几乎所有的232串口设备都会配置一个max232芯片,也包括usb-232转换器。max232芯片进行电平转换,是在单片机侧使用的TTL与pc侧使用的RS-232C之间。这样串口设备就可以直接连接pc的232串口了。当然如果仅用于设备与设备之间的232连接,就没必要在每个设备侧都加一个max232,恩,加了也没关系(但要加就要每个设备都加)可以预留着以后方便跟pc通信。
并且貌似一般的usb-232转换器的23脚在转换器内部已经交叉过,所以使用usb-232转换器连接其他232设备时直连即可。
![](http://hi.csdn.net/attachment/201111/17/0_132150714367AE.gif)
一.232单机
![](http://hi.csdn.net/attachment/201111/17/0_1321512624055E.gif)
![](http://hi.csdn.net/attachment/201111/17/0_13214946207Bhr.gif)
二.232多机
232多机通信在硬件线路部分会出问题,所以行不通。
三.485单机--假设mcu使用max232进行电平转换,则需要外部使用232-485 converter。
(如果设备内部使用max485进行电平转换的就不必在设备外部外加232-485 converter。)
![](http://hi.csdn.net/attachment/201111/17/0_1321512548QQ55.gif)
比如(右键大图)
![](http://hi.csdn.net/attachment/201111/17/0_1321495184VA25.gif)
四.485多机--假设mcu使用max232进行电平转换。如下是pc作主机,stc51和micro2440作从机使用modbus通信的连线实物图。地址分别是1,2。
![](http://hi.csdn.net/attachment/201111/30/0_1322656602pxyS.gif)