這里只是一個討論的過程,因為這個電路在實際的電路當中,到我現在位置還沒有調試出來,只是那出來與大家一起探討一下,希望對我們大家都有幫助。電路如上所示,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才能得到實際發送的數據。
這一問題有待解決。