zhaofy521 发表于 2014-1-22 09:16 ![](https://bbs.21ic.com/static/image/common/back.gif)
我觉的通讯速度快应该不是问题,通讯速度慢才是问题,C6一次充电后,最坏的情况下RXD收10Bit 0,同时TXD ...
楼主说的有道理,之前对电路的工作原理不太了解(主要是对总线上的TXD不发送数据时默认为-15V的这个条件不知道),所以我上面说的不准确。
关于工作原理我补充一下:
计算机串口通信的RS-232电平:用正负电压来表示逻辑状态,逻辑1= -3V~-15V,逻辑0=+3~+15V。单片机串口通信的CMOS电平,逻辑1接近VDD,逻辑0接近VSS.有的单片机兼容TTL电平。计算机串口和单片机串口两者之间通信就必须进行RS-232/CMOS电平之间的转换,集成转换芯片就可以实现两者之间的转换,比如华清远见用的FS2410开发板用的是MAX3232,如果想节约成本,自己搭建电路进行转换也可以。 转换的原理图如下:
1、RS232_RXD:为RS-232电平信号接收端,RS232_TXD脚为RS-232电平信号发送端,没有数据通信的时候RS232_TXD端总是保持在-3V~-15V。由于二极管D1与电容C4的作用使得在二极管D1与电容C4交接处的电压也保持在-3V~-15V。 2、图中的Vcc应该是+5V,USART_TXD接单片机TXD,USART_RXD接单片机RXD。当USART_TXD为"0"时,Q1导通,则RS232_RXD电压约为+5V,这个电压在+3~+15V之间,根据RS232电平,它是"0";当USART_TXD为"1"时,Q1截止,从1中我们得知这个时候USART_TXD应该是保持RS232电平逻辑的“1”。 3、从RS232转换为CMOS电平那就简单了,当RS232_TXD为"1",即-3~-15V时,Q2截止,USART_RXD电压约为5V,为"1";当RS232_TXD为"0"时,Q4导通,电压为0,电平为"0"。
因此楼主所说的电容和电阻确实是由通讯波特率的最慢情况来决定。计算过程如下:
假设通讯波特率为9600bit/s
那么电容必须维持10个Bit低电平的时间长度,(1/9600)*10≈10e-3s;
假设电容取10uF那么,根据电容电压衰减0.707时的公式T=2πRC推出R≈15.92欧姆,可以估出电阻的取值要大于16欧姆便可以正常工作了。
所以上图中R取5.1K远大于理论电阻最小值,在9600波特率的条件下满足要求~
|