解码曼彻斯特编码信号
逻辑分析仪的波形可以用来很容易地解码曼彻斯特编码信号。下面的指南介绍了什么是曼彻斯特编码,它比未编码的数字信号有什么优势,以及如何使用波形逻辑分析仪和一个简单的环回配置测试和测量设备来解码这样的信号。
先决条件
曼彻斯特编码
曼彻斯特编码的优势
这种编码最重要的优点之一是缺少一个单独的时钟信号。通过对数据信号中的时钟进行编码,通信所需的信道数量减少到一个,这使得该代码在需要在发射端和接收端之间进行电隔离的应用中,或在无线通信中,如IR、RFID和NFC应用中达到最佳。
另一个优点是,这种编码方案确保产生的信号不会保持在一个逻辑上高或低电平较长一段时间,因此信号可以进行交流耦合,这意味着信号的直流分量可以消除。这种类型的滤波在未编码的数字信号的情况下是不可用的,因为一个长,不间断的1或0序列将导致在解耦电容后相同的电压水平。交流耦合对电路中的故障电流提供了某种保护,并在某些情况下解决了共模范围的不兼容性。
下面给出了交流耦合非编码数字信号的仿真。模糊电压等级(0V)可以观察到每一次,当一个较长的系列高或低位出现。
曼彻斯特编码的缺点
该编码方案最大的缺点是数据速率仅为带宽的一半。换句话说,要发送一个信息位,就必须发送两个逻辑状态,因此输出信号的频率必须是每秒输入信息位数的两倍。如果我们考虑信号频率常数(受设备时钟频率的限制),则数据速率仅为未编码数据信号的一半。
生成待解码的信号
为了演示在逻辑分析仪中曼彻斯特解码器的用法,我们需要一个信号来解码。为此,我们将使用波形的模式发生器仪器和所选测试和测量设备的简单环回配置的数字I/O线(输入和输出都使用相同的数字线-不需要外部连接)。由于Pattern Generator工具在默认情况下不能生成曼彻斯特代码,因此将使用Python脚本创建二进制数据并将其保存到csv文件中,该文件可以在以后的WaveForms中导入。你可以从这里下载脚本:code_generator.zip,或者您也可以按照下面的步骤编写您自己的脚本。
首先,定义信号的参数:使用哪个标准(高=下降边缘,或高=上升边)、字节数和数据位数。然后导入必要的包:在这个脚本中,我们将使用NumPy生成数组,并使用Pandas将结果导出到csv文件。
获取输入字符串。
#定义参数falling_one=真正的LSB_first=真正的nr_bits=8#导入必要的模块进口numpy进口熊猫#获取输入数据input_data=输入("输入消息:")
将输入字符串转换为二进制,然后,如果需要,反转字节的顺序。
将每位加倍(这种方式使数据信号“慢”了两倍),然后生成一个时钟信号:一个包含交替的“1”-s和“0”-s的数组,其长度与数据信号相同。
#将字符串转换为二进制binary_format=“0 b{}”.格式(nr_bits)raw_binary="".加入(格式(奥德(指数),binary_format)为指数在input_data)#如果需要,反转字符串如果LSB_first:时间=raw_binary raw_binary=""为指数在范围(0,len(input_data)):字节=时间[指数*8:(指数+1)*8]raw_binary=raw_binary +字节[::-1]#加倍每位binary_data="".加入(指数+指数为指数在raw_binary)#创建时钟数组binary_clock="".加入(“1”+“0”为指数在raw_binary)
将字符串转换为整数数组,然后通过对两个数组(逐个元素)应用逐位XOR (exclusive or)操作符,从两个数组中获得曼彻斯特代码。如果要更改标准,将“1”-s改为“0”,并将“0”-s改为1。
#从字符中获取数字数据=[]为指数在binary_data:数据=numpy。连接((数据,奥德(指数)-48),轴=没有一个)数据=数据。astype(“int”)时钟=[]为指数在binary_clock:时钟=numpy。连接((时钟,奥德(指数)-48),轴=没有一个)时钟=时钟。astype(“int”)#生成代码曼彻斯特=数据^时钟如果falling_one:曼彻斯特=1- - - - - -曼彻斯特
最后,从生成的代码创建一个数据帧,并将其导出为csv文件。
#出口代码曼彻斯特={“数据”:曼彻斯特}code_data=熊猫。DataFrame(曼彻斯特)code_data。to_csv(“manchester_code.csv”,指数=假)
打开波形,连接到您的设备,然后打开图形发生器仪器。添加一个新的Signal并选择DIO 0。设置输出来页(推拉)类型来自定义,然后导入CSV文件,其他设置保持默认。
设置等待时间到10ms和运行通过选中相应的框将模式设置为自动。启动模式生成器。
注意:欲了解更多信息,请查阅:使用模式生成器
用逻辑分析仪进行解码
解码曼彻斯特编码的信号,打开逻辑分析仪仪器的波形,并添加曼彻斯特在添加频道。将频率设置为生成信号频率的一半(500赫兹在这种情况下)。在各自的下拉列表的帮助下,将编码的参数设置为与Python代码中的相同。设置格式为美国信息交换标准代码,使消息可读。