FPGA实现曼彻斯特通信在测井中的应用

2023-02-20

1 曼彻斯特码技术概述

曼彻斯特编码中, 每一位的中间有一跳变, 位中间的跳变既作时钟信号, 又作数据信号;从高到低跳变表示“1”, 从低到高跳变表示“0”。曼彻斯特编码是将时钟和数据包含在数据流中, 在传输代码信息的同时, 也将时钟同步信号一起传输到对方, 每位编码中有一跳变, 不存在直流分量, 并且采用了差分的传送方式, 因此具有自同步能力和良好的抗干扰性能。

曼彻斯特编码其应用于测井电缆的理论由贝克休斯公司研究完成, 实现了在电缆上同时传送M2, M5, M7等数据通道的方式, 由于实现简单被广泛采用在测井设备中。在石油测井设备中有两种典型的应用一种是使用曼彻斯特编码作为仪器串接的内部总线, 它可以通过特殊的信号变压器可以允许多只仪器的信号并接在一条总线上, 另外一种是用于点对点的井下通信短节和地面系统之间的通信。

2 曼彻斯特码实现方式

常用的曼彻斯特编码实现方式有以下三种。

(1) 使用成熟的编解码芯片用的比较多的是HD6408和HD6409两种, HD6408主要用于M2和指令通道, HD6409主要用于M5, M7通信方式。两种芯片的主要不同在于编码的同步方式不同, HD6408传送的单个WORD带奇偶交验位, HD6409传送数据块不带奇偶交验。

(2) 使用单片机的通用I/O管脚使用软件控制完成曼彻斯特数据的编解码。这种方式硬件最简单, 适合用于只有M2数据方式的部分仪器, 由于是采用软件实现, 所以收发对单片机的资源占用的很大, 而且绝对不允许在收发数据的过程中触发中断程序, 另外由于时钟的精度低于硬件定时, 接收采样的时序调整需要花费一些精力。

(3) 采用可编程的CPLD或FPGA实现, 使用这种方式主控的CPU可以只用很少的资源控制CPLD就可以完成收发, 另外由于测井的很多成像等设备的数据较多, 采用M5和M7通道传送, 要求可以和M2同时完成, 这类情况使用FPGA完成数据采集, 当需要发送数据时单片机只需要发送一条指令, FPGA就可以把存储在内部的采集数据通过接口自动完成发送, 在前几种电路方式中, 这需要多片单片机甚至多块电路板同时工作才能完成。

3 曼彻斯特码编码格式和编解码逻辑

M2接口上发送单个16位数据, 同步头为1位半高电平然后1位半低电平, 接着是16位数据和一个奇偶交验位。注意同步头在某些系统里的特殊指令会出现1位半低电平然后1位半高电平的反相同步头, 要求曼码接收电路可以正确接收。

M5, M7接口上发送多个16位数据的数据块, 同步头为8个“0”, 然后1位半高电平然后1位半低电平, 接着是16位数据块, 其长度由高层通信协议规定。

我们考虑到实现的系统里, 命令接收为20.833Kbps, M2发送为41.6666Kbps, M5, 7的发送为93.75Kbps。需要的公用时钟频率为6M。计算结果如下。

对6MHz的全局输入时钟分别进行计数分频得到数据率16倍频的时钟, 用来作为相应模块的编解码时钟。

4 曼彻斯特码FPGA实现

图3可见数据量比较大的采集接口数据直接加载到FPGA双口RAM中, 当单片机接收到系统指令需要上传这部分数据的时候, 单片机之需要在FPGA内部的控制寄存器中写入一个发送指令, FPGA就自动完成了说有数据的发送, 这个过程不会对单片机处理其他的指令和数据造成任何影响。设计中双口RAM有两块切换使用, 当一块数据开始确认发送, 另一块开始采集数据交替工作。

关于M2, M5的语言实现, Xilinx公司和Altera公司都提供了相应的模块, 直接使用就可以, 本文就不再赘述了。

5 结语

作者使用FPGA实现了放射性仪器的通信, 主要支持了M2和M5两种格式的数据, 把能谱数据通过M5发送, 长时间测试通信稳定可靠。

摘要:曼彻斯特码是一种数据通讯线性码, 它的每一个数据比特都是由一次电压转换的形式所表示的。曼彻斯特编码是一种超越传统数字传输的信道编码技术, 由于其具有隐含时钟、去除了零频率信号的特性使得它在石油勘探测井中得到广泛的应用。曼彻斯特编码也已经被电信标准采用为10M以太网接口编码。本文讨论了使用FPGA实现M2, M5两种模式同时工作的方法和优点。

关键词:曼彻斯特码,FPGA

上一篇:长期施用不同肥料的土壤有机氮组分变化特征试验研究下一篇:54例老年心律失常患者临床治疗研究