如何使用硬件和固件生成曼彻斯特编码数据

本文为改进数字通信的简单、有效的技术提供了实现细节。

笔者曾在此前(大约一年多以前)的一篇文章中论述了曼彻斯特编码的“定义和应用原因”,即,什么是曼彻斯顿编码以及为什么您可能需要将该编码并入有线及无线数据链路。本文将在简单回顾曼彻斯顿编码的定义及原因后论述一个非常重要的主题,即当您确定曼彻斯特编码对您的系统有益后,应如何实际生成曼彻斯特编码数据。

曼彻斯特编码是一种调制形式,先别紧张,相较于经常与“调制”这一术语相关联的电磁射频技术(RF)(如,F频移键控(FSK)相移键控(PSK)等),曼彻斯特编码要简单得多。这种调制方式只需要数字数据、相对应的时钟信号及一些硬件和固件。已调制数据和原始数据间存在如下区别:

Ÿ   使用逻辑电平转换而非逻辑电平来表示数据。

Ÿ   时钟信号不必发送到接收器,因为该时钟已嵌入调制数据流中。

下图显示了一个数据+时钟对与曼彻斯特编码信号的相互对应。

如何使用硬件和固件生成曼彻斯特编码数据

除了可避免时钟信号传输外,曼彻斯特编码还可实现交流耦合的应用,因为被调信号不会在逻辑高或逻辑低长时间停留。曼彻斯特编码的一个主要缺点是它降低了数据率:因为所有“1”和“0”通过转换而非逻辑电平表示,原始信号中的一个逻辑电平可转换成曼彻斯特信号中的两个逻辑状态。

通过硬件实现曼彻斯特编码

从理论上讲,通过硬件生成曼彻斯特编码数据流非常简单。与精心设计的模拟电路或用于先进RF调制技术的强大数字信号处理器相比,曼彻斯特编码只需一个异或门。

如何使用硬件和固件生成曼彻斯特编码数据

当二者的逻辑电平不同时,曼彻斯特信号高。

这一实现过程更倾向于一种“纯理论”,原因在于异或门的输出值会受到假性转换——即小故障的影响。这是一个严重的问题,因为曼彻斯特编码的全部意义都在于转换。发生这些假性转换的原因是异或门是一种非常简单的设备。它的唯一功能就是对比两个输入值并依据异或真值表生成一个输出值。如果时钟和数据信号不完全同步(不要期待完美),两个信号的转换将不同步,异或门将快速依据两个输入信号的瞬态(错误的)组合更新其输出值。

笔者认为完全依靠异或法并非毫无意义。如果可以确保数据信号和时钟信号保持良好的同步状态——比如,当两个信号在FPGA中生成并完成异或时——则异或门可能表现良好。并且,如果数据周期相对于故障时间而言非常长时,非完全同步的后果并不严重,因为(更高频)假性转换可在接收器解读曼彻斯特数据前被滤除。

据我所知,简单地添加一个门或触发器无法解决这一故障。互联网搜索无法提供太多信息,原因可能是通过固件生成曼彻斯特数据在当前较为普遍(参见下节)。但是,Harris A. Quesnell Jr.似乎坚持在无固件辅助的情况下生成无障碍曼彻斯特数据,欢迎您通过专利文件中查阅他的电路图。

如何使用硬件和固件生成曼彻斯特编码数据

上图摘自专利文件

如上所述,添加一对门或一个触发器并不能解决问题。笔者支持硬件解决方案,但在此案例中,我建议您要么处理故障,要么将曼彻斯特操作转移到固件中进行。

通过固件生成曼彻斯特编码

固件实现可消除假性转换,因为原始数据在变为正常的电信号前被转换为由1和0组成的曼彻斯特序列。您只需将这个1和0组成的序列驱动至GPIO引脚即可。在此案例中,固件实现表现出了显著优于硬件实现的优势。现今的大多数系统均已配备可处理此任务的处理器。

对于完成基于固件的编码所需的细节要求,在此无需赘言。您可选取原始数据并用一个1-0对(如,下降沿转换)或一个0-1对(如,上升沿转换)的组合对替换每个1或0。然后,根据所需的数据速率,可以使用与溢出计时器相关联的中断服务例程将这些曼彻斯特数据位驱动到输出引脚。另一个方案是使用处理器的某一串行通信设备。

微处理器+硬件法

芯科实验室(Silicon Labs)制造配备可配置逻辑单元(CLU)的微处理器。CLU包括一些可由用户自定义的典型数字软件。换言之,它就像一个FPGA,允许微处理器在无任何CPU干预的情况下执行某些任务。无论如何,这份来自芯科实验室的应用记录提供了若干CLU实现示例,其中一个示例(第10页)是曼彻斯特编码器/解码器。该芯科实验室方案将SPI外部设备和两个CLU相连用以生成(假定无故障的)曼彻斯特数据。

如何使用硬件和固件生成曼彻斯特编码数据

 

如何使用硬件和固件生成曼彻斯特编码数据

上图摘自芯科实验室(Silicon Labs)应用记录

如果您想在系统中安装微处理器,但又不想将重要的处理器资源用于曼彻斯特转换,建议您详细了解这一实现过程。

结论

在本文中,我们简单回顾了曼彻斯特编码的显著特性,探讨了用于将原始逻辑电平数据转换成曼彻斯特信号的基于硬件和固件的技术。在以后的文章中,我们还将探讨本主题的另一个重要方面,即,如何将曼彻斯特数据转换回标准串行数据流。

 

 

广告也精彩
  • 如何使用硬件和固件生成曼彻斯特编码数据已关闭评论
    A+
发布日期:2019年03月03日  所属分类:参考设计