APP下载

基于DSP 曼彻斯特编解码的过套管电缆通信系统设计

2021-05-12曹旭东王志博

电子设计工程 2021年8期
关键词:数据位曼彻斯特极性

赵 斌,曹旭东,黄 华,王志博

(1.中原油田分公司石油工程技术研究院,河南濮阳 457000;2.中国石油大学(北京)信息科学与工程学院,北京 102249)

过套管地层电阻率测井仪系统通过测量套管外地层的电阻率能够快速判断油层的动用程度,评价油层水淹程度,是分析确定剩余油分布的卓有成效的技术方法[1-2]。

测井过程中仪器的主要工作内容包括过套管电阻率测井工作、自然伽马数据的采集和回传、仪器状态反馈和仪器工作环境信息的采集回传等。

1 系统总体设计

研制的过套管电阻率测井仪器通信系统由DSP处理器、曼码信号滤波及调制电路单元、耦合变压器3 部分组成[3]。

通过7 芯电缆接收井下上传数据,通过变压器藕合方式将传输数据进行分离,通信线上的直流信号与曼码信号被分成两路,曼码信号通过硬件电路滤波调制,然后送到DSP 处理器进行编码解析,实现数据通信功能。

系统选用TI 公司最新推出的TMS320F28335芯片,其时钟频率能达到150 MHz,同时兼备数字信号处理能力、事件管理能力和嵌入式控制功能。

系统设计结构图如图1 所示。由DSP 芯片构成主控电路,用于执行通讯协议,接收总线上的曼码数据,按照其特定的格式发送曼彻斯特II 型编码数据,从而实现总线和终端的连接及控制测井仪器通讯系统的地面系统。其中,曼彻斯特码编解码器采用DSP 片上定时模块以及边沿捕捉模块实现,用于完成数据的发送和接收、曼码的调制与解调、数据的串并和并串转换、同步头的产生与检测、地址识别以及错误检测等功能。

图1 系统设计方案

调制解调模块由滤波整形电路以及发送调制电路构成。在曼码接收过程中,总线上传输的差分曼码通过电压耦合后送到滤波电路,去除掉干扰尖峰脉冲之后再输入到ADM485 芯片的总线引脚上完成信号电压的比较,电压比较器输出幅度为5 V 和0 V 的单极性的曼彻斯特编码信号,直接送到DSP 的边沿捕捉引脚上进行解码[4]。在曼码发送过程中,发送调制电路从DSP 同时接收两种编码信号,两信号构成差分的曼彻斯特串码,其差分信号引入到功率场效应管的栅极来控制通讯变压器的编码部分的中断与导通,通过电压器耦合,在总线上产生±12 V 差分曼彻斯特码,传输到井下仪器。

2 基于DSP 处理器的曼彻斯特编解码实现

2.1 基于MIL-STD-1553B编码格式的Manchester及实现方案

基于MIL-STD-1553B 编码格式的Manchester 码其信息帧格式,每位占用时间10 μs,由20 位组成。其0~2 位为同步字头,用于表示帧的类型,也标识每一帧的开始。如果前一个半位为高电平,后一个半位为低电平时表示此帧为命令/状态字,前一个半位为低电平,后一个半位为高电平时表示为数据字,解码器也可利用同步字头提取位同步信息[5-6]。3~18 位为待编码数据位,第19 位为数据校验位,其作用是对3~18 位进行数据校验。

在曼彻斯特编码与解码的过程中,有如下几个模块:编解码时钟CLK、数据移位寄存器Data、位计数寄存器Count、位分频计数器Feq、奇偶检验位P。CLK 为曼码的编解码时钟,时钟速率为其数据位传输速率的10 倍,由于DSP 系统时钟为150 MHz,而曼彻斯特码的编码速率为100 kbit/s,所以可用定时器对DSP 系统时钟进行150 倍分频得到。Data 为曼码编码及解码的缓存寄存器,所要编码的数据以及解码得到的数据都暂存在其中。Count 为数据位计数器,按照MIL-STD-1553B 编码格式,每个信息帧包含20 个数据位,在数据编码及解码过程中,利用它来指示有多少位数据尚未编码及解码。Feq 为位分频计数器,对编解码时钟计数,计数区间为0~9,计数值为10 时,则溢出清零重新开始计数,可用前5 个计数周期表示数据位的前0.5 bit,后5 个计数周期表示数据位的后0.5 bit。奇偶检验位:用于对输入的16 位数据进行奇校验,生成校验位。

2.1.1 基于DSP的曼码编码方案

曼彻斯特码编码的过程是指DSP 编码模块将DSP 程序模块接收到的数据以曼彻斯特II 型编码串行数据的格式,以100 kb/s 的速率发送到总线。编码模块有同步头控制、同步数据编码、奇偶位产生等功能[7]。

1)帧的同步头编码

根据总线协议,同步位的宽度为3 个数据位,如果信息帧为命令字,则前一个半位波形为正,后一个半位波形为负,如果信息帧为数据字,则与命令字波形相反,所以帧的同步头占用3 位数据位,共30 个CLK 周期[8]。前15 个时钟周期为1(或0),后15 个时钟周期为0(或1),位计数器相对应的值为0~2。

2)帧的数据位编码

同步头之后就是数据位编码,每个数据码元间隔的中点以数据‘1’和‘0’分别表示下降沿和上升沿。数据移位寄存器的最低位表示当前待编码数据位,在位计数寄存器递增时右移一位。当分频计数器Feq 值为零时,位计数寄存器递增,读入数据移位寄存器的最低位值,输出相应的波形,当分频计数器Feq 递增到5 时对输出波形进行跳变,以产生相对应的跳变沿,分频计数器Feq 递增到10 完成一个数据位的编码,进入下一位编码循环。位计数器相对应的值为:3~18。

3)奇偶校验位编码

信息帧的第19 位是奇偶校验位。在数据编码完成后,奇偶校验位已经根据移位寄存器的18 次移位数据计算出校验结果,根据校验结果输出相应的编码信息[9-10]。

2.1.2 曼码解码实现方案

曼彻斯特码解码的过程是DSP 解码模块接收数据时,将接收的曼码型串行数据,实现同步头检出等,同时将处理后的数据送入DSP 程序模块进行分析。接收数据通过采样判定完成,即首先检测到电平极性的变化,再用计数器进行计数,在同一极性的情况下,计数到一个设定的值时确定半位曼码的极性,不同极性的曼码组合形成完整的信息帧。

1)帧的同步头的监测

同步头包括3 位数据位,前1.5 位与后1.5 位极性相反。在实际的波形监测中得到以下6 种信息帧的同步头,如图2 所示。

图2 曼切斯特编码信息帧同步头波形图

图中的①~③表示命令帧的3 种同步头,④~⑥表示数据帧的3 种同步头。在波形监测中,如果对③和⑥同步头不处理好,就会丢失信息,也有可能造成对信息帧类型判断失误[11]。

根据曼彻斯特码的码型特征可知,侦测同步头的关键是如何识别曼彻斯特码的前1.5 位和后1.5 反极性位。现以图2 的③为例,介绍问题的解决方法。

第一步,当监测到图中的1、2、3 半位相同极性的曼码以及4、5、6 半位反极性码元时,初步判定它们为帧同步头的前1.5 位和后1.5 位,如果紧跟的两个半位曼码极性不同,则说明其后面紧随的是数据码,符合曼码编码协议,可以进行数据码的接收。但如果紧跟的两个半位曼码极性相同,那么就不符合曼码编码的规则了,如图3 中的第7、8 半位,一些编码芯片对其检测产生错误,造成数据丢失或数据错乱。在本设计中,遇到7、8 半位相同的情况时,丢弃初始判断的前1.5 位,把第4、5、6 半位重新设置为前1.5 位同步头[12]。

图3 信息帧同步头分解图

第二步,在7、8 半位相同的情况下,继续对第9半位进行检测。如果其极性位与7、8 极性不同,则停止此次判断,重新开始帧同步头的检测。如果7、8、9 半位极性相同,则4、5、6、7、8、9 又组成了一个帧同步头,回到了第一步开始情况。再次检测10、11两个半位的极性,如果极性相反的话进入数据码接收,如果相同的话继续以第二步方法检测。

第三步,在运行完以上两步之后,得到了信息帧的一个同步头,其后紧跟的是数据码。根据同步头中前1.5 位与后1.5 位的极性,可以确定信息帧的类型。

2)信息帧数据位的接收

在同步头检测到之后,紧接的就是数据码,任何两位数据的组合结果只有4 种:00、01、10、11;从波形上看,它会出现4 种情况,如图4 所示。

图4 总线数据译码波形图

由图4 可以看出,此时只可能有两种的波形宽度一个位和半个位宽度,由于编解码时钟CLK 是数据位编码时钟的10 倍,所以相应分频计数器Feq 的计数值的范围是4~5 和8~9 之间。所以,只要得到的数据位计数值满足以上两个宽度范围,则认为数据格式正确,接收的数据有效。根据前一时钟的码元信息以及现时刻分频计数器值,可得到即时所接收到的码元极性,完成了数据同步接收[13]。

3)数据校验

对每一帧数据,在接收完16 位数据之后,最后一位为奇偶校验值,如果数据接收过程没有出现差错,则数据的奇偶校验值与接收到的值相对应[14]。

在数据传输的过程中,可通过循环冗余校验算法,对串行数据进行差错检验,确保数据传输的可靠性。其主要有两种校验方法,按位计算法和查表法。按位计算CRC 虽然代码简单,但占用处理器资源。而使用查表法,可生成16 位CRC 校验码表,数据运算量小、速度快。

该设计在DSP 芯片具有足够的内存空间情况下,采用查表法来实现循环冗余码校验,以优化微处理芯片资源配置[15]。以下两组数据就是数据校验完的结果,前12 个字节是数据,后面紧跟的2 个字节为校验码:0xAA 0xFE 0x03 0x55 0x40 0x00 0xE9 0x01 0x00 0x33 0x5A 0xA0 0x15 0x25;0xAA 0xFE 0x03 0x56 0x80 0x00 0x0F 0x02 0x00 0x39 0x0A 0x50 0x6A 0xCD。

2.2 曼彻斯特编解码调理电路

曼码编码实现采用软硬件结合方式,DSP 通过对AD847两个输入端逻辑电平的控制,实现对信号的编码。曼码信号经AD847 幅度放大[16],TD823 功率放大后发送到电缆上。其具体实现电路如图5所示。

图5 曼码编码电路

曼码解码实现也同样采用软硬件方式,电缆上的曼码信号经一阶微分电路,再经放大电路幅度放大,最后经LM193 比较电路整形产生一系列脉宽不等的曼码脉冲信号。单片机捕捉脉冲信号后经处理算法解码出数据,实现对曼码信号的解码。具体实现电路如图6 所示。

3 现场测试结果及分析

3.1 通讯系统正常运作的条件

上位机控制软件通过总线发送指令到上遥测板,其长度为2 个字。上遥测板转发指令到电缆2、3芯上。

图6 曼码解码电路

下遥测板感应到指令信号,解码指令,正确解析指令之后上传数据帧到电缆2、3 芯上。上遥测板感应到数据信号,正确解码数据之后上传到计算机。

根据曼码波形分析,上遥测板通讯变压器2 脚与3 脚相连,下遥测板通讯变压器2 脚与3 脚断开的情况下,上通讯变压器的1 脚和4 脚的差分信号如图7 所示。

图7 井上遥测板通讯变压器1与4脚指令感应差分波形

通过上面的波形不难看出,利用曼码编码绕组来获取到导线上的曼码信号尽管波形衰减严重,可是畸变的情况基本能够接纳,通过下遥测板上通信变压器接受绕组获取的信号能够顺利解码。这就说明:只要上下遥测板通讯变压器2、3 脚相连接,则整个通讯握手协议实现,能够完成整个采集周期数据传输。

3.2 通讯进行中的编码解码测试

从DSP 的编码信号开始,到发送端信号,再到电缆的两端,最后接收端信号和输入DSP 的解码信号。数字编码信号如图8 所示,电缆一端2、3 芯接收曼码差分信号测试如图9 所示,经过滤波调整后数字解码输入信号如图10 所示。

图8 数字编码信号

由此看出,通讯系统的效果得以展现,Manchester 码编码解码顺利进行,可以当场顺利地使用。

图9 电缆一端23芯接收曼码差分信号

图10 数字解码输入信号

4 结论

基于DSP 的过套管曼彻斯特编码通信系统曼彻斯特编码以及解码是通过软件来完成的。编码是通过GPIO 复用口输出编码控制信号,配合IRF7341 驱动芯片和耦合变压器实现的;而解码是通过CAP 输入信号,进行边沿捕捉和定时器中断触发的方式实现的。由于井下和地面间的长距离输送,设计中通过变压器耦合的方式,实现信号的差分传输功能,减轻了噪声干扰及误差,同时接收一方使用收发芯片ADM485,把该差分信号转换为单路NRZ 信号,最后输入GPIO 复用口。

通过实验检验表明,该方案建立的通讯系统工作拥有良好的平稳性,值得我们进行更加深入的研究及应用。

猜你喜欢

数据位曼彻斯特极性
A320飞机大气数据的采集和计算在排故中的应用
观电影《海边的曼彻斯特》
观电影《海边的曼彻斯特》
跟踪导练(四)
微弱GPS信号避开比特跳变的捕获算法
一种适用于FPGA系统中的变速箱电路设计
表用无极性RS485应用技术探讨
减少调度自动化设备通讯串口丢包率的措施
一种新型的双极性脉冲电流源
键的极性与分子极性判断的探究