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

发布者:幸福如愿最新更新时间:2014-12-22 来源: e-works关键字:总线转换  数据传输总线  可编程门阵列 手机看文章 扫描二维码
随时随地手机看文章

引言

    中国石油集团测井有限公司在近几年相继开发了基于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中存储的数据进行访问。[page]

3 DSP程序设计

    系统为CAN/DTB转换模块分配了1个CAN总线ID,该模块中DSP程序所执行的功能类似于1个430 kbit/s传输速率的井下仪器。DSP程序包括系统的初始化、FPGA内部数据的读取、CAN接口数据收发等主要功能。与普通井下仪器的差别在于FPGA通过FIFO传送的数据不是该模块自身采集的,而是由DTB总线上挂接的100 kbit/s传输速率的仪器所采集的。

    3.1系统初始化

    初始化单元完成DSP初始化、CAN控制器初始化、以及清空FIFO中数据等工作。DSP初始化主要设置相关寄存器来配置系统时钟的频率、启动看门狗、打开相关中断等工作。CAN控制器初始化包括设置CAN通信的波特率以及同步跳转宽度、采样次数和重同步方式;设置邮箱工作方式,启动邮箱工作并设置邮箱的ID;此外,还要设置CAN控制器的中断。清空FIFO中的数据,以防止丢失FIFO的半满中断信号。

    3.2 FPGA中断服务程序

    当FPGA内部的FIFO存储的数据容量超过一半时,向DSP的硬件管脚产生硬件中断,DSP进入FPGA的中断服务程序。

    FPGA中断服务程序用于从FPGA的FIFO中读取数据,其流程见图4。设置1个变量N,等于FIFO存储容量的一半,DSP循环读取FIFO中的数据,每读一次将N减1,直到N等于0时,中断服务程序结束。读取的数据存放在数据存储区中,由CAN接口按照一定的帧格式和流程要求发送给USB/CAN转换模块。

图4 FPGA中断服务程序


    3.3 CAM控制器接收中断服务程序

    无论CAN接收到数据,还是发送数据成功,均进入CAN中断服务程序,程序流程见图5。在中断服务程序中,首先通过状态寄存器,判断是发送中断还是接收中断。如果是发送中断,表明上一次的发送成功,相应地设置发送成功标志。如果是接收中断,则需进一步判断接收到的是远程帧还是数据帧。如果是数据帧,表明接收的是仪器的控制命令,DSP需要将收到的命令发送到FPGA内的命令寄存器,再由FPGA将命令通过DSIG信号发往井下仪器。如果是远程帧,表示主控节点请求该节点发送1帧数据,则在程序中,将全局变量nSendNum赋值为要发送的1帧数据的长度,nSendNum的值取决于当前所挂接的仪器种类和仪器数量,由计算机软件进行配置。

图5 CAN中断服务程序

    3.4系统主程序

    主程序主要是依据全局变量nSendNum、缓冲区数据长度和发送成功标志等状态信息,决定数据发送的一个循环流程(见图6)。在初始化完成后

图6 CAN接收服务程序

    主程序处于等待状态,判断nSendNum是否为0。如果不为0,则表示已经接收到主控节点请求发送数据的远程帧,因此进人数据发送流程。接着判断发送缓冲区中的数据是否有一完整帧的长度(仪器不同,帧长也不同),如果不足则停止发送,否则就将缓冲区的数据填入CAN的发送邮箱,启动发送流程,并将要发送的数据nSendNum减去8(CAN每次能够发送8 Byte的数据)。循环进行CAN的发送程序,直到nSendNum等于0,表示一帧数据发送结束,主程序重新回到等待状态。

4 结束语

    经过实验和应用的验证,所设计的综合测试设备与相应的计算机测试程序配合,可同时用于DTB和CAN这2套通讯协议方式的测井系统的测试、维修和生产,已开始在各仪器使用单位推广。

关键字:总线转换  数据传输总线  可编程门阵列 引用地址:井下仪器总线转换功能模块设计

上一篇:一种基于以太网技术的涂料生产远程监控系统
下一篇:基于CANopen总线与PLC的液压试验平台控制系统设计

推荐阅读最新更新时间:2024-05-02 23:23

USB-CAN-RS232总线转换电路设计及实现
1 引言 随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。目前较流行的现场通信网络有RS-232,RS422/485、HART、Profield、Dupline、CAN和LonWorks等,本文阐述了一种USB-CAN-RS232三总线转换装置,电路设计简单新颖,并并且携带方便,实用性很强。 2 各种总线的特点 2.1 CAN(Controller Area Netwrok) CAN是控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据
[单片机]
智能卡数据传输协议I2C总线
  由于串行时钟同步数据传输是不复杂而通用的,它们就被用的比较频繁。使用I2C(Inte-Integrated  Circuit)总线的元件首先由Philips开发,从1990年就可以使用了。这个总线立足于一根串行的双向数据引 线和一根串行的时钟引线,Pc总线的规定包括了硬件(两条引线)和软件两方面,具有数据传输格式化的意 义。每个在总线上的器件可以取得对总线的控制并能对在总线上的其他器件发出请求。   由于存储卡也是被同步时钟控制的,Pc总线很快就得以立足于芯片卡行业之中,大量的存储器可以在卡中 使用。下面的例子是基于SGS-ThornsON ST 24C04存储器芯片的,它有512字节的可自由读出或写人的EPROM 。对EEP
[嵌入式]
基于高速A/D转换与快速存储操作总线接口的高速同步数据采集系统设计
随着大规模集成的电路的飞速发展,PC机性能不断提高。在PC机扩展槽中嵌入以高性能微处理器为核心的智能型功能卡,可以组成综合性能极佳的分布式控制系统。这种结构方式可充分利用微处理器的控制功能、PC机的快速数据处理能力,以及多任务工作方式等特点。对于这种分布式控制系统,主机要频敏接收到来自扩展卡从机所采集的数据、工作状态等信息;向从机发送控制命令或处理数据等。这种主、从机之间的通讯,根据应用条件的不同有多种方式。但在数据传输速度较高、数据量较大且需经常交换信息的场合,采用双口共享RAM缓冲区方式是最合适的。 为了用单片机实现对微秒级甚至纳秒级高速瞬变信号进行采样,研究了一种基于ISA总线、GPS同步时钟、用硬件电路实现高速数据采集
[单片机]
基于高速A/D<font color='red'>转换</font>与快速存储操作<font color='red'>总线</font>接口的高速同步数据采集系统设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved