一般情况下串口“bit 1 ”与“bit 0”宽度能基本维持对等,脉宽接近,把串口:“0x55”理解为一个占空比为50% 的方波,在占空比接近50%的情况下,通信一般不会出现错误。
但是,在一些脉宽有损失的场景中,则非常需要注意脉冲宽度要求。
使用波形发生器+串口模块进行测试。
串口接收芯片:CP2102
数据帧:0x55
波特率:115200
PWM:57600 Hz——模拟115200波特率0x55数据
串口接收数据为:0x55
验证:
占空比100%——不接收
占空比:90%——不接收
占空比:80%——不接收
占空比:73%——0x55,偶发0xD5,0xF5
占空比:74%——0x55,偶发0xD5
占空比:72%——0x55
占空比:70%——0x55,低电平脉宽5.2us,损失40%
占空比:60%——0x55
占空比:50%——0x55
占空比:40%——0x55
占空比:30%——0x55,高电平脉宽5.2us,损失40%
占空比:29%——0x55,偶发0x15
占空比:28%——0x55,出现0x15数据
占空比:27%——0x55,出现0x15数据增多现象
占空比:26%——出现0x01、0x05、0x15、0x55数据混杂现象
占空比:25%——出现0x00、0x01、0x05、0x40、0x55数据混杂现象
占空比:20%——0x00
占空比:10%——0x00
测试以下波特率亦出现类似情况:
600、1200bps、2400、4800、9600、14400、19200、28800、38400、115200、230400、460800
总结——
串口通信对于脉宽要求需要小于正负40%波形损失或延迟,超过45%基本上均出现通信数据错误的情况。