您的位置:首页 > 其它

示波器分析UART串口数据

2012-02-06 17:36 351 查看
从泰克示波器里面看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 收发地
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: