×
嵌入式 > 嵌入式开发 > 详情

井下仪器总线转换功能模块设计

发布时间:2020-06-16 发布时间:
|

引言

中国石油集团测井有限公司在近几年相继开发了基于DTB和CAN这2套通讯协议方式的测井系统,使7芯电缆传输速率分别达到了100 kbit/s和430 kbit/sc。由于目前这2套系统及相关仪器并存,必然增加仪器生产、使用环节的复杂度。因此.有必要开发一套综合测试设备,能同时配接2套系统的井下仪器,用于测井仪器的自检、维修和新产品的开发,提高工作效率。

本文使用DSP和FPGA高集成度数字芯片构成核心电路,通过DSP软件开发和FPGA逻辑设计,设计并实现了1个可用于DTB和CAN这2套通讯协议方式测井系统的井下仪器综合测试设备。

1 系统设计

综合测试设备系统架构见图1。该测试设备共提供了3个总线接口,分别为CAN总线接口、DTB总线接口和USB总线接口,CAN总线用于挂接430 kbit/s传输速率的仪器,DTB总线挂接100kbit/s传输速率的仪器,USB则是测试设备与计算机之间的接口。这些总线接口之间数据格式转换分别由USB/CAN转换模块和CAN/DTB转换模块完成。

CAN/DTB转换模块用于实现CAN总线和DTB总线转换。CAN总线上为该模块分配1个m,使该模块作为一个虚拟的430 kbit/s传输速率的井下仪器,挂接在CAN总线上。USB/CAN转换模块则是对CAN总线上挂接的430 kbit/s传输速率仪器的数据进行转换后,由USB总线送往计算机,计算机中运行仪器的测试软件,可存储、显示、打印接收的数据。因此,DTB总线上挂接100 kbit/s传输速率的井下仪器数据,需要先转换到CAN总线,再转换为USB总线后送人计算机。2个总线转换模块中,USB/CAN转换模块应用很广,而CAN/DTB转换模块则成为该测试设备开发的主要工作。

为能够满足上述CAN/DTB转换功能需求,该接口转换模块的硬件采用DSP+FPGA的电路架构.由FPGA提供逻辑资源,实现DTB接口信号之间的时序关系。DSP则具有高速的软件处理能力,可用于实现程序流程控制、数据缓存和CAN总线接口。两者均为高集成度器件,都具备完善的开发手段,内部程序可方便地进行修改,设计上具有较大灵活性。在此核心电路的基础上,配合其他外部电路,如RAM、DTB电平转换模块、CAN驱动器等芯片,构成完整的接口转换模块,其结构见图2。

图1 综合测试设备应用架构

图2 CAN/DTB转换模块框图

转换模块的数字电路部分均可由FPGA和DSP实现,DTB电平变换部分主要通过模拟开关、三极管等模拟元件,将FPGA输出的+3.3 V的数字信号转换为符合DTB总线标准的信号形式,并提供一定的电流驱动能力,其电路原理相对比较简单。DSP内嵌的CAN控制器接口与CAN驱动器MAX3050配合,可方便实现CAN总线数据的发送、接收。

2 FPGA的内部逻辑功能设计

FPGA内部逻辑主要用于实现DTB接口信号的产生和串行数据的接收工作,由DSIG信号发送单元、UCLK及GO信号发送单元、IJlDATA信号接收单元和存储器接口单元等4个相对独立的单元构成(见图3)。

图3 FPGA内部逻辑设计

DTB总线由3根56Ω同轴电缆线组成,用于井下遥测单元与井下仪器之间进行双向数据传输。这3根信号线分别是DSIG(向下信号线)、UCLK(上行时钟线)和UDATA/GO(上行数据/启动线)。DSIG用于遥测单元给井下仪器发送命令,采用双极性归零码,有3个电平:+1.2 V表示“1”,一1.2 V表示“0”,无信号时为0 V。UCLK为上传时钟线.信号幅度为十1.2 V,周期为10μs.井下仪器的数据是在UCLK的作用下,串行地将数据发送至上行数据线上。UDATA/GO是双向信号线,每帧开始时,井下遥测单元通过发送1个幅度为+3.6V的GO脉冲.通知井下仪器准备开始传送数据。320μS后,井下仪器在UCLK的上升沿,将采集的数据通过该信号线发送至遥测单元。

DSIG信号发送单元中.命令寄存器用于存放要送往井下仪器的命令和接收该命令的仪器的ID。然后将命令和仪器lD按照一定的帧格式进行组织,加上帧头帧尾以及校验等数据后,通过并/串转换电路。将DSIG信号串行发送出去。

UCLK和GO信号发送单元按照DTB数据传输的信号时序要求产生UCLK和GO信号。DTB总线上挂接的井下仪器的数据传输均是按帧进行,帧周期为80 ms。因此可以设计1个模为8 000、输入时钟频率为100 kHz的计数器实现。在每帧的开始,即计数器为0时产生GO信号,作为1帧数据传输的开始,启动井下仪器的数据传输。时钟寄存器由DSP写入,存放每帧发往井下仪器的UCLK时钟脉冲的数目,计数器依据该寄存器的值,产生UCLK的使能信号。

井下仪器在UCLK的上升沿时将采集的数据串行送人UDATA,UDATA信号接收单元则在UCLK的下降沿对UDATA信号进行采样,并每8bit进行1次串/并转换,将数据并行输入FIFO。具体设计时,FIFO无需占用FPGA的内部逻辑资源,而是由器件内部提供的可配置存储器实现。引出FIFO的半满指示信号送往DSP的硬件中断管脚,并通过地址译码电路,将FIFO映射到DSP的外部I/0读地址。当FIFO中的数据达到容量的一半时,对DSP产生硬件中断,使DSP进入硬件中断程序,DSP可循环读取FIFO的I/o映射地址,即可将FIFO中的数据全部读出。

需要注意的是,所有的FPGA产生或输入的信号均需经过电平变换后,才能送往DTB总线。存储器接口单元利用DSP提供的总线信号,实现FPGA与DSP之间并行的双向数据传输。其基本方法是利用地址译码电路,将FPGA中实现的命令寄存器、状态寄存器和FIFO等具有数据存储功能的部件映射到DSP的外部I/O地址上,DSP通过读写I/O地址,可以对FPGA中存储的数据进行访问。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
瑞萨I3C总线扩展和SPD集线器产品通过基板管理控制器认证