赞
踩
逻辑分析仪用于有时序要求的通信中,抓取通信过程中的信号,分析信号是否符合通信协议和信号的完整性。
一、实验前准备
1.安装好逻辑分析仪上位机软件KingstVIS
2.准备好一块单片机开发板(我用的是STM32F4)
3.准备好一个逻辑分析仪(我用的是LA5016)
二、硬件连接
1.将逻辑分析仪和电脑端口连接
2.将逻辑分析仪和STM32共地
3.将逻辑分析仪的采集通道和单片机发送信号的通道相连(我连接的是USART1_TX)。
三、软件设置
有四要素,
1.阈值电压:区分高低电平的间隔。例如标准3.3v单片机的高低电平阈值为1.65,高于1.65为高电平,低于1.65为低电平。(这里设置为CMOS 3.3V,即阈值电压为Vth=1.65V)
2.采样率:每秒钟采集信号的次数。这个和采样精度相关,采样率越高精度越高,一般采样率要5倍于待采样的信号频率,才能完好的还原出信号,当然最好是能10倍于待采样信号频率。在不知道待采样信号频率的时候,可设置为最高采样频率(我这里设置为500Mhz)
3.存储深度:一次采集能够存储的采样点数。深度越大,一次采集的数据量越大。数据采集时间=存储深度/采样率。(我这里采样深度为500MSa,所以采样时间为1s)
4.触发条件:高低电平或者边缘触发。(串口通讯拉低为起始信号,所以设置为下降沿触发)
四、开始采样
1.KingstVIS开启单次采样,等待串口触发
2.STM32串口发送
USART_SendString(USART1, "AT+01");
delay_ms(20);
USART_SendString(USART1, "CSDN");
3、采样结果
五、结果检验
1.首先检验两次接收信号时间间隔是否为20ms
通过时间标尺我们可以看到两次时间间隔为20.01203ms,符合我们程序设定的延时20ms。
2.检查传输的两次信号是否失真
首先要先搞清楚”AT+01“和“CSDN”对应的16进制ASCII码(其实直接对ASCII码也行)
然后打开KingstVIS的解析器,选择UART/RS232/485。
解析结果如下
可以看到,抓取的结果和stm32发送的信息是一致的。
六、扩展
我们把采集到的信号放大并变为二进制,从波形可以得出以下结论:
1.串口传输数据时先传送字符的低位,后传送字符的高位。
2.串口通讯中是一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。停止位和空闲位都规定为高电平。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。