示波器分析UART串口数据

 从泰克示波器里面看UART数据的时候  截下来一段传输几个字节的数据信号数据

改天把图和数据传上来了  再对着图分析 各个UART中的各个概念

文件弄回来了  原始的是CSV格式的  原文件  放在Dbank  数据银行上



  这个是示波器一段的图   上面的数据(原文件)就是这段的


Y的座标单位是 电压值 V   

X的单位是 时间 S   都是几十uS的    从这个可以分析出来 是多大波特率

UART的格式 可以通过程序设置   有些会在停止位之前有一个奇偶校验之类的  停止位也不一定只是一个单位大小  可以设置为1、1.5、2等

中间的数据位长度也可以设置位 6 7 8 位等

还有数据的传输顺序   我这个是LSB先出的  所以可以看出

第一个数据 01010101  反过来就是10101010 =0xAA 

 第二个10101010 反过来01010101  0x55

第三个11001011  反过来  11010011  0xD3

第三个 11010000  反过来 00001011  0x0B

对着示波器  分析一遍之后  没错就是这样的  就是传的这些   也就是  数据和实际传输的信号  很好的对应上了

这个信号 是TXD 与 GND 之间的电压信号     此时  RXD与GND之间  一直为高电平电压值

这就是  UART : Universal Asynchronous Receiver/Transmitter,通用异步接收/发送   异步  没有时钟   接受端得有相应的采样时钟  否则会乱的  

对于波特率的问题  这份数据有记录时间(具体精确的时间要看数据表)  好像记得在通信里面有码元这个概念  这里就是1bit   波特率=1/(1bit的时长)   这份数据1bit的时长≈8.6*10^(-6)s  也就是8.6us  1/8.6us =116279.06976744Hz   也就是115200的波特率了  因为那个8.6us的时间是估计的    而常用的波特率有这么些:看图片吧

也就是1200 1800 2400 4800 7200 9600 14400 19200 38400 57600 115200 128000 还有一些

115200 原来以为速度还挺快的   用示波器看了之后  我再运行了一段代码  输出两个引脚信号 来看时间 发现当运行一段不短的代码之后串口才发完3、4个码元(不是byte哦)  天哪   算一算  如果发16byte的数据   总共16*10(1bit起始位+8bit数据位+1bit的结束位)=160个码元的时间  160*1/115200=0.0013888888888889  也就是1.38ms  有时候中断都不知道发生多少次了  肯定 这也是相对的


   UART里面还有一个经常提到的 RS232    这是一种标准(协议 )  就像说市电一样的  就知道是220V   RS-232  就是把TTL(0~5V) 转换到10+V的电压   提要电压  可以增强抗干扰的能力    增加传输距离   

  一般用芯片来实现 MAX232  很典型  工作电压5V  输出有12V左右  和输出的负载有关吧   例如TTL的逻辑1  232对应的就是 负10几V  0对应的就是10+V   就是一个变换  变换后一般用9针的接口线  工程应用上就是这样的   用到3根线  2、3、5  收发地

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章