欢迎来到天天文库
浏览记录
ID:27873444
大小:245.00 KB
页数:5页
时间:2018-12-06
《如何用示波器进行UART串口数据分析.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、如何用示波器进行UART串口数据分析UART的特征 一般uart控制器在嵌入式系统里面都做在cpu一起,像飞思卡尔的IMX6芯片就是这样,有多个uart控制器。 引脚介绍(COM口比较多pin,但是常用的也是这几个): VCC:供电pin,一般是3.3v,在我们的板子上没有过电保护,这个pin一般不接更安全 GND:接地pin,有的时候rx接受数据有问题,就要接上这个pin,一般也可不接 RX:接收数据pin TX:发送数据pin,我之前碰到串口只能收数据,不能发数据问题,经baidu,原来是设置了流控制,取消就可以了,适用于putty,SecureCRT
2、 在调试的时候,多数情况下我们只引出rx,tx即可。比如调试gps模块,IC数据直接通过uart上报,我就直接用了两个线连出了rx,tx,连上串口转USB小板,电脑从串口直接获取数据,这样跳过了开发板,测试了gps的数据有没有问题。示波器调试UARE 一、串行数据的格式 异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。 起始位是一个值为0的位,所以对于正逻辑的TTL电平,起始位是一位时间的低电平;停止位是值为1的位,所以对于正逻辑的TTL电平,停止位是高电平。对于负逻辑(如RS-232电
3、平)则相反。 例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时。 二、根据波形图计算波特率 在示波器中的显示示意,其中灰色线是示波器的时间分度线,此时假设是200ms/格。 可以看了,第一个字节的10位(1位起始位,8位数据位和1位停止位)共占约1.05ms,这样可计算出其波特率约为:10bit/1.05msX1000≈9600bit/s 如果时间轴是100ms/格,同样可以计算出波特率应是19200bit/s。 当通讯不正常,又能观察到波形时,就可根据上述方法,从波形图计算一下波特率是否正确。 三、根据波形图判断RS-485收发数据的
4、正确与否 RS-485是一种半双工的串行通讯方式,485电平芯片所以要正确接收和发送数据,必需保证控制信号和数据的同步,否则要么发送数据丢失,要么接收数据可能丢失。 发送控制信号的宽度基本与数据信号的宽度一致,所以能保证发送数据的正确和发送后及时转为接收。 由于控制信号关闭过早,则第二个字节的后两位将发送错误;在图6中,由于控制信号关闭过迟,使485芯片在发送数据后,不能及时转到接收状态,此时总线若有数据过来,则本单元将不能正确接收。示波器分析UART串口数据 这个是示波器一段的图上面的数据(原文件)就是这段的 Y的坐标单位是电压值V X的单位是时间
5、S都是几十uS的从这个可以分析出来是多大波特率的 UART的格式可以通过程序设置有些会在停止位之前有一个奇偶校验之类的停止位也不一定只是一个单位大小可以设置为1、1.5、2等 中间的数据位长度也可以设置位678位等 还有数据的传输顺序我这个是LSB先出的所以可以看出 第一个数据01010101反过来就是10101010=0xAA 第二个10101010反过来010101010x55 第三个11001011反过来110100110xD3 第三个11010000反过来000010110x0B 对着示波器分析一遍之后没错就是这样的就是传的这些也就是数据和实际传
6、输的信号很好的对应上了 这个信号是TXD与GND之间的电压信号此时RXD与GND之间一直为高电平电压值 这就是UART:UniversalAsynchronousReceiver/Transmitter,通用异步接收/发送异步没有时钟接受端得有相应的采样时钟否则会乱的003840057600115200128000还有一些 115200原来以为速度还挺快的用示波器看了之后我再运行了一段代码输出两个引脚信号来看时间发现当运行一段不短的代码之后串口才发完3、4个码元(不是byte哦)天哪算一算如果发16byte的数据总共16*10(1bit起始位+8bit数据位+1b
7、it的结束位)=160个码元的时间160*1/115200=0.0013888888888889也就是1.38ms有时候中断都不知道发生多少次了肯定这也是相对的 UART里面还有一个经常提到的RS232这是一种标准(协议)就像说市电一样的就知道是220VRS-232就是把TTL(0~5V)转换到10+V的电压提要电压可以增强抗干扰的能力增加传输距离 一般用芯片来实现MAX232很典型工作电压5V输出有12V左右和输出的负载有关吧例如TTL的逻辑1232对应的就是负10几V0对应的就是10+V就是一个变换变换后一般用9针的接口线工程应用
此文档下载收益归作者所有