APP下载

具有附加容错机制的井下仪器互联总线设计与实现

2015-05-10刘涛双凯

测井技术 2015年6期
关键词:短节寄存器总线

刘涛, 双凯

(中国石油大学(北京), 北京 102249)

0 引 言

连续油管钻井技术(Coiled Tubing Drilling,CTD)[1],具有无接头、无变径、曲率大、强度大、承压高、体积小等特点,为进行短半径、大位移、多侧向的水平钻井以及欠平衡、小井眼钻井,提供了安全、先进、有效的技术手段。该技术是解决老井挖潜增效、难动用储量开采的有效手段。和常规钻井比较,连续油管钻井能给水平钻井和小井眼钻井提供安全有效的技术手段,成本节省40%~50%。随钻测量主要使用泥浆脉冲、电磁波、声波等无线传输媒介,具有传输速率低、衰减快等不足[2]。而连续油管的应用,使采用电缆作为随钻测量的传输媒介成为可能。建立稳定、高效、快速的传输通道是随钻测量的关键技术之一[3]。随钻测量传输系统由2部分组成:地面传输系统和井下仪器互连系统,2部分由7芯测井电缆作为连接传输媒介。井下传输系统由井下调制解调器(遥传短节)、各种传感器、仪器互联总线等组成。传感器测量的地质参数通过仪器互联总线传输给遥传短节,经过调制后经由电缆上传给地面系统[4]。

CAN(Controller Area Network)总线是ISO定义的新一代串行传输总线,属于高度安全分布式实时现场总线[5],具有传输速率高、可靠性更高、实时响应更快等特点[6]。基于连续油管的随钻测量系统较之传统的测井工程,连续工作时间更长,系统更靠性。CAN总线上的任何节点都可以主动发送数据,不需要预先的分配地址。本文基于CAN总线的特点,提出了具有冗余结构的井下传输总线,能够较大地提高系统的稳定性和有效性[7]。

FPGA具有提高系统集成、降低功耗、增加开发灵活度、节省开发成本等特点[8]。本文采用FPGA开发总线控制器,对CAN协议进行简化和改进,以更加符合该系统要求。提出了一种具有冗余结构的井下传输总线协议,使用FPGA开发该总线控制器,以适合基于连续油管技术的随钻测量传输系统要求。

1 传输系统的设计与实现

1.1 具有容错机制的井下传输系统

随钻测量传输系统主要分为2部分:地面系统和井下仪器互联系统,由7芯测井电缆连接。地面系统负责上传信号的解调、数据显示和控制命令的调制等功能。井下仪器互联系统主要包括遥传短节和数据采集系统,主要负责各种地质参数的调制与控制命令的解调,各个仪器之间由双绞线负责传输,使用基于CAN2.0的改进协议为仪器互联总线。本文数据采集模块分别由3个传感器组成:方位传感器、自然伽马传感器和压力传感器。各个传感器与遥传短节模块等权重地连接在双绞线上,其中传感器通过远程终端单元(Remote Terminal Unit,RTU)与双绞线连接,其结构如图1所示。

图1 井下仪器互联传输系统结构

比较OSI的7层模型,CAN总线具有3层模式结构:物理层、数据链路层和应用层。本文利用FPGA实现了其中的数据链路层,而物理层则选择集成芯片实现。遥传通信短节的RTU由1个发送接收器、1个主总线控制器和1个从总线控制器组成,各个传感器的RTU则有1个总线控制器和1个发送接收器组成。

1.2 工作模式

遥传通信短节的总线控制器支持3种工作模式:运行模式、监控模式和关闭模式。传感器短节总线控制器则支持运行模式和关闭模式。在每个控制器中各有一个错误寄存器(Error Count,EC)用于错误计算。

遥传通信短节的主总线控制器与从总线控制器的部分连接逻辑电路如图2所示。m_i_0&1为输入引脚,m_o_0&1为输出引脚,当输出值为11时表示Initial状态,00代表Bus Off,01代表Master状态,10代表Slave状态。初始状态时主总线控制器工作在运行模式,从总线控制器则工作在监控模式,只负责接收数据。当主总线控制器工作异常时,即其EC计算大于255,主控器将通知从控制器准备接管总线的控制权,而主控制器将工作模式由运行模式变为关闭模式,成为新的从控制器,从控制器将由监控模式转为运行模式从而成为新的主控器。当新的从控制连续接收128个数据包,其中每个数据包为11个连续的隐性电平,或是成功接收超过255个数据包时,其工作模式将由关闭模式转为监控模式,工作在监控模式的从控制器,当其EC大于255时,工作模式将转为关闭模式。传感器短节总线控制器只有2种工作模式:运行模式和关闭模式。

1.3 容错机制

CAN协议有良好的容错机制,本文仪器互联总线协议在CAN2.0协议的基础上,根据实际应用要求,对容错机制进行了改进。其中,错误寄存器EC用于错误计数,当传输总线上发现错误时,EC将遵从如下规则。

(1) 当总线上连接的节点中1个节点发送数据包时,所有的节点都将监测是否有错误发生。

(2) 一旦侦测到错误发生,即刻通知其他节点。

(3) 当侦测到的错误为主动错误时,接收端将连续发送6个显性电平;当侦测的错误为被动错误时,将发送6个隐性电平。

(4) 当接收端侦测到错误发生,EC将自动加1,并且发送错误标志。

(5) 在接收端侦测到错误发生并发送错误标志后,如果接收端接收到的第1位为显性电平,则EC自动加8。

(6) 当仲裁段成功发送完毕后,如果发送端侦测的总线电平与接收端不同,则EC将自动加8。

(7) 如果发送在规定时间内没有接收到ACK帧,EC将自动加8。

(8) 当成功发送1个数据包后,EC将自动减1。

(9) 当成功接收到1个数据包后,EC将自动减1。

(10) 当节点的工作模式改变后,EC将自动设置为0。

上述容错机制可以保证传输系统有较好的容错和自动纠正的能力,对于经常受到例如振动噪声、电缆噪声、码间干扰等噪声影响的井下仪器,具有重要的作用。

1.4 仲裁机制

当总线空闲时,总线上的任何节点都可以主动发送数据;当由于多个节点同时发送数据而造成冲突时,需要根据仲裁机制裁定哪一个节点可以拥有总线的控制权,现有的测井仪器互联机制中,大部分都采用主从控制结构,即遥传短节处于主控制的角色,任何对话都由主控制器发起,其他各节点只能被动应答,这种机制虽然避开了总线的控制权的仲裁问题,但是也极大降低了总线的灵活度,降低了数据的传输速度,在现有的传输速率下,可以满足数据传输的需求;但是当电缆的传输速率提高后,如到达M级传输,那么井下总线就会成为阻碍数据传输速率提升的瓶颈;而且,相较测井工程,随钻测量系统需要的连续工作时间大大提高,而传统的井下仪器的主从结构,当主控制器发生故障时,将导致整个传输系统的瘫痪。

本文中,当多个节点同时发送数据时,较小Identifier Value的节点将拥有较高的优先级(本文中0设置为显性电平),其他的节点将停止发送,改为接收数据。再次侦测到总线为空闲时,将再次发送数据。本文采用仲裁机制,在发送过程中就可判断各自的优先级,不需要再次发送数据,提高总线的效率。

在数据帧中,仲裁段位于起始位之后,包括Identifier和远程传输请求位(Remote Transmission Request,RTR),其中Identifier包括11 bit(见表1),其中ID0为最低位。RTR在数据帧中为显性位,在远程帧中为隐性位。仲裁机制遵循如下规则。

(1) 当总线处于空闲状态时,第1个开始发送数据的节点获得总线的控制权。

(2) 当多个节点同时发送数据时,每个节点都需要接受仲裁。每个节点发送数据时,都要侦测总线的状态,当侦测的状态与自己发送的不符时,表示自己仲裁失败,即拥有较低的优先权;此时该节点将停止发送,转而接收数据。

(3) 在仲裁段拥有显性电平的节点拥有较高的优先权。

(4) 为了避免一个节点长时间占用总线,当该节点成功发送1个数据包后,将会停止发送,直到6个数据周期后再恢复发送。其中数据周期指的是发送1个数据包所占用的时间。

ID10被分配给遥传短节单元,表示该节点拥有最高的优先权,该设置是为了保证由地面下传的控制命令能够及时地传输(见表1)。ID9定义为广播位(Broadcast Bit),用于遥传短节单元向其他节点同时发送命令。ID8为可选位。ID7至ID4分配给各个传感器单元,共包括3个传感器单元:方位传感器单元、自然伽马传感器单元和压力传感器单元。例如,0设置为代表显性电平,0011代表方位传感器单元,0111代表自然伽马传感器单元,1011代表压力传感器单元。可以看出方位传感器单元拥有最高的优先级,而压力传感器单元拥有最低的优先级。ID8可以避免出现较高优先级单元长期占据总线的情况。当1个单元仲裁失败后,将变为接收端,当总线一旦空闲后,该节点将再次发送,并接受仲裁,这个过程将一直持续到该数据包成功发送。如果1个节点尝试发送10次都仲裁失败,那么该节点的ID8将被启用并设置为显性电平,从而保证该节点拥有较高优先级。例如,当压力传感器单元连续10次仲裁失败后,ID8将被启用,从而变为01011,此时较之其他单元,如方位传感器单元(10111)将拥有较高的优先级。当数据成功发送后,ID8将重新被设置为隐性电平。

表1 标识符结构

2 FPGA设计

受到井下高温高压的工作环境以及连续油管的小尺寸的限制,采用FPGA实现总线控制器。总线控制器主要分为3个模块:接口模块(Interface_Module)、数据流模块(Dataflow_Module)、寄存器模块(Register_Module)。

Interface_Module负责实现逻辑功能接口,解释来自微处理器的命令、控制地址,并向微处理器提供状态、中断等状态。引脚AD_io_0到AD_io_7为地址/数据(address/data)引脚;irq_o为中断引脚,负责向核心控制处理器发送中断请求;clk_o为时钟输出引脚,负责向核心控制处理器提供时钟信号;select_i是芯片选择输入信号引脚,当其置为0时,bus controller允许被访问,置为1时,赋值寄存器允许访问;rd_i和wr_i引脚是核心控制处理器读使能信号和写使能信号;rst_i为reset信号,初始化接口逻辑;bus_off_on是总线控制引脚,负责控制该节点对总线的开合状态;tx_o和rx_i负责向总线发送和接收数据;m_i_0和m_i_1为工作模式输入引脚,操作控制器的工作模式,而m_o_0和m_o_1则是对应的输出引脚。

Dataflow_module是控制器的核心模块,功能包括:LLC子层接收滤波、过负载通知、恢复管理、MAC层数据的封装/拆装、成帧编码、媒体访问管理、错误检测、错误标定、应答和串行化/解串行化、物理层的位编码/解码、位定时和同步,其结构如图3所示[9]。位流处理器(Bit Stream Processor,BSP)是总线控制器用于控制数据流,由4个模块组成:接收模块、发送模块、CRC检测模块和FIFO模块。错误管理逻辑模块(Error Management Logic)用于侦测传输过程中的错误。处理器的速率较高,造成数据传输与数据处理的不同步,必须引入FIFO以存储相应数据,采用3个156×8的异步FIFO,分别位于位时序逻辑(Bit Timing Logic)、BSP和接收缓冲/控制寄存器,用于存储时钟信号、读数据、写数据、满/空标志等。在上述的模块中,都设置有至少一个寄存器用于存储状态,外部的处理控制器可以通过地址寄存器直接访问各个模块。

图3 数据流模块

Registers_module是一系列寄存器集合,包括模式寄存器、命令寄存器、状态寄存器、中断寄存器、中断使能寄存器、总线时序寄存器0&1、终端丢失捕获寄存器、错误编码捕获寄存器、错误警告限制寄存器、接收错误计数器、传输错误计数器、接收编码寄存器0~3、接收屏蔽寄存器0~3、接收信息计数器和接收/发送缓冲。外部控制器可以通过地址总线直接访问上述寄存器[10]。

3 仿真验证

总线控制器被划分为若干个模块进行仿真调试,每个FPGA模块使用软件Quartus II 8.1进行仿真验证。

图4(a)所示为遥传短节的总线控制器的主从模式切换模块仿真,逻辑连接图如图2所示,EC为错误计数,当计数大于阈值255时,遥传短节的控制器的工作模式就会发生转变。为了便于仿真,设置阈值为32。图4(a)显示主总线控制器起始状态工作在主模式状态(m_o_0和m_o_1的输出分别为0和1),从总线控制器工作在从模式状态(s_o_0和s_o_1分别为1和0)。从总线控制器将实时监控EC状态,当其达到阈值时,会主动的转换主从模式。当EC大于32时,从总线控制器将转换为主模式(01),在下一个周期主总线控制器将转换为从模式(10),而EC将重新设置为0。当EC再次达到阈值时,各个总线控制器的模式将会再次发生转换。该仿真结果显示在冗余机构下主从控制器能够实现工作模式的连续切换,从而增强传输系统的可靠性。

图4 FPGA仿真

错误控制器的仿真结果见图4(b)。rx为输入引脚,tx_d为输出引脚。当rx接收到正确数据时,输出即为输入;当输入非法数据,如为6个连续相同电平,错误标志位tx_c就会输出持续3个周期(clk_equ)的高电平,且tx_d会被设置为高电平。

4 响应时间比较和分析

响应时间Tr定义为遥传短节的主控制器对节点数据帧的响应时间,包括传输时间和等待时间(仲裁时间)[6]。系统中,每个节点(RTU)有着相同的权重,假设节点到主控制的传输时间Tf都相同,根据排队论,系统可以认为符合M/M/1系统,因此在某一时刻等待的队列可以视为

L=λμc-λ=ρ1-ρ

(1)

响应时间则为

Tr=Tf+sρ1-ρTf

(2)

式中,ρ定义为通信强调,ρ=λ/μc;λ为数据包的平均到达率;c为信道容量;μ为随机信息的长度;s为系统的通信强度,s=mρ,m为系统的节点数。使用MATLAB仿真比较CAN总线和井下总线的响应时间(见图5)。

图5 总线响应时间

图5显示CAN总线和井下总线的响应时间相比较,当总线连接有较少的节点(小于8)的时候,井下仪器总线有着更好的响应表现。这主要是由于井下仪器总线采用的仲裁机制使得每个节点都可改变自己的优先级,当拥有较少的节点时,每个节点的请求都可得到及时响应,而随着节点总数的增加,优先级调整的操作将变得越来越频繁,以保证每个节点都可以成功发送,这必然导致等待时间的增加,因此该方案的总线协议的响应时间大于CAN总线。

5 结 论

提出了一种具有冗余结构的井下仪器互联传输系统,其总线协议是在基于CAN 2.0基础上对操作模式、容错机制和仲裁机制进行了改进,使其能够更加针对随钻测井的工作要求,引入具有主从控制器的容错机制,能够增强系统的容错性能,保证长时间的稳定运行,并使用FPGA实现总线控制器并进行了仿真验证,结果表明在井下连接仪器较少,即少于8个节点的情况下,该结构较之标准总线有着更好的响应时间,能够符合测井数据高速传输的要求以及仪器的高温高压的环境和长时间稳定运行性能要求。

参考文献:

[1] Sun Xinliang, Li Gensheng, Shen Zhonghou. Research Coiled Tubing Drilling Technology and Its Application [J]. NATUR GAS IND, 2008, 28(8): 55-57.

[2] Stephen Prensky. Recent Advances in LWD/MWD and Formation Evaluation [J]. World Oil, 2006(3): 69-75.

[3] Yik-kiong hue, Fernando. Analysis of Tilted-coil Eccentric Borehole Antennas in Cylindrical Multilayered Formations for Well-logging Applications [J]. IEEE Transactions on Antennas and Propagation, 2006(4): 1058-1064.

[4] Xiujun Hao, Jianjun Yang. Analysis EXCELL-2000 Imaging Logging System Communication Link [J]. Petroleum Instruments, 2002, 116(6): 23-27.

[5] International Standard ISO 11898. Road Vehicles-Interchange of Digital Information-Controller Area Network(CAN)for High Speed Communication[S]. ISO Reference number ISO 11898, 1993.

[6] Baowang Kang, Yong Li. The Performance Analysis and Comparison on CAN Bus and 1553B Bus [J]. Measurement & Control Technology, 2000, 119(2): 47-49.

[7] 孙立辉, 原亮. 基于CAN总线的多机冗余系统的设计 [J]. 计算机测量与控制, 2002, 10(12): 824-827.

[8] 黄熙, 王成林. 基于FPGA实现HD-15530编译码器 [J]. 电子测量技术, 2002, 29(1): 54-55

[9] 刘韬, 楼兴华. FPGA数字电子系统设计与实习实例导航 [M]. 北京: 人民邮电出版社, 2006: 101-103.

[10] 段帅君. 基于Verilog HDL语言的CAN总线控制器设计及测试 [D]. 长春: 吉林大学, 2009.

猜你喜欢

短节寄存器总线
侧钻开窗钻具组合挠性短节非线性力学模型及失效分析
STM32和51单片机寄存器映射原理异同分析
制氢装置新氢压缩机缓冲罐出口短节开裂失效分析
螺纹锁紧环换热器接管过渡短节的应用分析
Lite寄存器模型的设计与实现
139.7mm减摩减扭短节断裂原因分析
一种基于CAN总线的误码测试方法
移位寄存器及算术运算应用
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计