串口——RS232与UART
MCU上的UART是TTL电平的,3.3V是高电平,0是低电平;PC上的UART是RS232电平的,+5~+12为低电平,-5~-12为高电平。
下面两张图是发送0000 0001时,TTL和RS232电平的波形图,使用的器件是USB转TTL和USB转RS232
RS232的-6V代表高电平,+6V代表低电平,第一位是起始位;TTL电平+3.3V代表高电平,0V代表低电平,MCU中只有两种电平,Gnd和Vcc
这里想起大二上微机原理时,问王向阳的一个问题,当时纠结于单片机5V的系统,而RS232却是12V的系统,这其中有升压芯片?12V不会把5V的系统给弄坏么?
还记得模电项目时,张学凡问我们知道不知道这个USB转RS232的线中是不是有芯片?后来仔细一想,这句话点拨了当时的我,我当时没有想这么细,觉得这就是一根转换线,没有想过其中的工作原理和电平的转换。后来回去查了资料,弄清楚了许多概念,这些概念在当时还是很容易搞混的:串口,COM,RS232,USB为什么要转成RS232等等。
图1.RS232电平
图2.TTL电平
一般地,异步通信方式(RS232,485等)采用LSB在前的方式
同步通信方式(IIC,SPI,Microwire)采用MSB在前的方式
同步通信快一些,误码率小一些