引言
中国石油集团测井有限公司在近几年相继开发了基于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
- TE助力数据中心设计,缩短你与奥运的距离,猜猜它属于哪个“奥运场馆”赢大礼!
- 有奖答题|TE《新能源应用解决方案白皮书》
- 【芯币兑换】活动一:用社区芯币兑换51开发板PCB板!
- 点评有礼:看看国产芯榜的9款电源芯片,你知多少?欢迎来评论来推荐~
- TE Connectivity的智能建筑解决方案——传感和连接,智能楼宇设计的关键
- 【EEWORLD第二十四届】2011年03月社区明星人物揭晓!
- 可靠QTouch技术集成邻键抑制(AKS)功能,适用任何触摸应用领域
- 了解keysight汽车电子解决方案,答题赢好礼
- 参加RT-Thread软件包赛,赢取RoboMaster等丰厚奖品!
- 下载设计资源,赢取“会说话”的啤酒托!