在通信协议中,为什么有些用异步,比如uart,而不用同步呢
① 成本低,简易的uart版本只有两根线
② 长距离通信,同步时钟有电压损失,可靠性低
UART先发送低有效位,
通信速率9600bps 实际的工作并不是100%,大约是70%,1/9600 s是每一位bit的传输时间。
复杂的UART协议,还有握手信号,用来保证通知通信双方,当一方没有能力处理数据时,是否还要继续发送数据。
施密特器件用在外界RESET复位信号和CLK时钟信号的路径上。
上拉电阻和下拉电阻一般用在输入端口上,两种应用场景:
①外界输入信号在一段时间内无效,这时需要将输入上拉或者下拉,否则会产生错误。
②输入连接到MOS的栅上时,如果输入没有驱动,会产生大电流,增加功耗。
GPIO不能模拟UART协议,因为UART协议是异步通信的,每一位数据的时间都是严格要求的。可以模拟同步通信协议,比如SPI,I2C等。
GPIO外设中有的会有防抖动的功能debounce, 施密特触发器可以滤除小脉冲小毛刺,但是对于大毛刺施密特电路是无效的,这时需要debounce电路,多次采样,如果不一样则滤除。