这里只是一个讨论的过程,因为这个电路在实际的电路当中,到我现在位置还没有调试出来,只是那出来与大家一起探讨一下,希望对我们大家都有帮助。电路如上所示,RXD2、TXD2接单片机,TX、RX通过串口线连接到PC机。
首先,对于RS232通讯要了解,即在232通讯当中,“-3V~-15V”表示逻辑1,“+3V~+15V”表示逻辑0。现在我们来对电路进行分析一下。
下面先看单片机这边:当单片机TXD2端口放送数据时,当为低电平“0”时,光耦导通,+6V经过RX、R52、D13、R51、光耦1,2脚到地形成回路。此回路阻值大致为2.2K+2.2K+1.6K=6K,I=6/6K=1mA。在这种情况下,RX大概在5.几V,故PC机接收为逻辑“0”。与单片机这边发送相一致。由于此时1mA为截止,驱动不了发光二极管,但能导通。故对TX没有影响。
同理当TXD2为高电平“1”时,IC14截止,RX为低电平,+6经过C21、C20、R52回到RX,注意G3的位置,此时RX由于放电处于负压状态,故为逻辑“1”,与发送状态相一致。
接下俩看看PC机这边。当TX发送“0”,极为高电平时,IC13导通,RXD2为低电平,故为“0”。当TX为“1”,即为“-3~-15V”时,明显IC13截止而RXD2为高电平。
总体上说,RS232就是一个电平转换的过程,不管是上面所搭的电路还是MAX232都是电平转换。但在调试的过程当中,发现PC机发送数据时,单片机接受的是发送数据的2倍。只有讲接收到的数除以2才能得到实际发送的数据。
这一问题有待解决。