当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:介绍了石油测井行业的三总线接口和双相码接口原理,给出了采用C8051F500处理器和FPGA来设计 CCB测试盒的实现方法,该CCB测试盒以MCU为核心,并通过FPGA来进行逻辑控制通信的编解码。因而人机界 面友好,成本低,升级更新方便,并具有很大的灵活性。

引言

在石油测井行业,csu系统中的地面系统先通过电缆遥测系统(CTS)与遥测仪通信,遥测仪再通过电缆传输系统(CCS)与井下仪进行通信。CTS—般采用经过调制的双相差分编码实现通信,而CCS则使用3根信号传输线来实现通信,俗称三总线。CCB测试盒则可以模拟地面系统,它工作于两种模式下,分别对遥测仪和井下仪进行检测。

CCB测试盒通过预置拨码开关的值来实现命令下发,然后从遥测仪或井下仪获取数据,最后显示在数码管上。由于设计的比较早,原先的CCB测试盒里面通过使用大量的分离元器件来实现时序控制功能,这直接造成了测试盒体积庞大、设备笨重的缺点。而现在使用高度集成的FPGA芯片来实现电路中的逻辑控制功能,可大大简化电路设计、降低设备成本。此外,釆用MCU+键盘+液晶显示屏来实现人机交互,显示的信息也更为丰富,输入的方式更加灵活。

1  MCU+FPGA构架

新的CCB测试盒方案采用的MCU+FPGA构架系统框图如图1所示。本系统中的FPGA专注于逻辑控制和通信的编解码,而MCU负责人机交互部分。MCU通过8位并口总线来访问FPGA,可向FPGA中的DDATA存储区写入下发命令字,并向FrmLen存储区写入“帧长”,然后从UDATA存储区读取上行解码数据。 

基于MCU+FPGA的CCB测试盒实现方法

为实现上述功能,MCU选择带有外部存储器扩展接口的51类型处理器C8O51F5OO,该处理器采用流水线结构,时钟频率最高可达50MHz。由于该器件的大部分指令仅需要1〜2个机器周期就可执行,故该处理器的运算速度相对于标准的MCS51处理器提高了几十倍。FPGA选择ACTEL公司的现场可编程器件A3P060,它内部包含约1500个通用逻辑单元,带有4块RAM(每块4kb),釆用FLASH结构,故可省去外接配置芯片,也简化了应用复杂性。

MCU与FPGA之间连接方式框图见图2所示。其中FPGA中各个存储区块的地址分配如下: 

基于MCU+FPGA的CCB测试盒实现方法 

2  三总线接口

三总线接口有3根总线,分别是下行命令传输线DSIGNAL、上行时钟传输线UCK、上行数据传输线UDATAGOo

DSIGNAL下行命令传输线是用于控制井下仪器工作状态的信号线。该线传输的是具有100KBPS控制信号与100kHz时钟信号的DCK混合信号。信号电平为0V,+1.2V,—1.2V三种。

UCK上行时钟传输线可作为数据上传的标准时钟,其频率为100kHz,电平为0V和十1.2V,在不进行数据传输时,此信号线为高电平。

UDADAGO为启动信号和数据信号传输线,这是双向传输的信号线。首先由地面下发启动信号GO脉冲,接下来由井下仪将数据准备好,在GO脉冲后400”,地面下发出的UCK时钟作用下,井下数据通过UDATAGO信号线上传。GO的电平为3.6V,脉宽为10”,周期为20ms;UDATA的电平是0V〜﹢1.2V。此波形图如图3所示。

基于MCU+FPGA的CCB测试盒实现方法


       由于DSIGNAL信号是双极性信号,需要由两路 数字信号分别控制正负电源导通来实现,这里使用DSigPDSigN来分别控制正、负电源的导通。下面是用Verilog语言编写的、可产生DSigPDSigN FPGA程序代码:


基于MCU+FPGA的CCB测试盒实现方法


       程序综合后的仿真结果如图4所示,该仿真结果在ModelSimSE6.2b平台下生成,可在Debussy5.3V9调试软件下査看。 

基于MCU+FPGA的CCB测试盒实现方法

UCK信号的产生比较简单,使用100kHz的时钟进行门控就可以产生,只是要注意门控信号应该在主时钟的下降沿产生,否则会产生毛刺。

考虑到篇幅限制,这里就不列出UCK生成和UDATA数据接收的代码和仿真波形了。

3  双相码接口

当CCB测试盒挂接井下遥测仪进行检测工作的时候,测试盒与遥测仪之间可通过电缆调制信号进行通信,这种调制信号进行解调就变成了双相编码信号。测试盒挂接遥测仪和测试盒挂接井下仪采用的是一样的工作方式,而仅仅是通信方式不一样。双相码的编码特征是:比特边界信号跳变,比特中间“1”变“0”不变,图5所示是其双相码的编码特征波形。

基于MCU+FPGA的CCB测试盒实现方法

双向码解码过程的具体代码如下:

基于MCU+FPGA的CCB测试盒实现方法

基于MCU+FPGA的CCB测试盒实现方法


双相码接口的仿真结果如图6所示。

基于MCU+FPGA的CCB测试盒实现方法

4  测试盒人机界面

原先的测试盒采用6段数码管来显示命令和接收的数据,并采用拨轮来预置命令。采用这种方式不光电路中的连接线十分繁琐,而且功能上也不够灵活。现在采用液晶显示模块,可以同时显示很多内容,而使用矩阵键盘不光可以输入命令字,而且可以用多余的码字组合实现特殊的功能,键盘和液晶显示屏的组合可以在实现原有功能的基础上使测试盒增添许多新的特色。

测试盒中的显示屏可选用金鹏电子有限公司的OCMJ5X10B液晶模块,该模块的点阵大小为160X80,模块内部含有GB231215X15中文字库,并支持光标功能,可通过并口与主机通信。

按键可采用4X4矩阵键盘直接将键盘的8个输出端连接到MCU的一个并行端口上(需要加上拉电阻),在有键按下时,相应的行与列端口会变成低电平,这样,通过查找键码表格,就可以判断出按键的值,按键的编码如表1所列。

由于按键过程中,不可避免地会产生抖动。为了避免由于按键抖动产生误判的现象,本设计使用了一种软件消抖的方法。

基于MCU+FPGA的CCB测试盒实现方法

一般情况下,键按下过程中都会产生几到十几毫秒的抖动,而键维持按下的状态时间至少大于20ms,所以,可以利用MCU的20ms定时中断去检测按键的状态。操作时可以设置4个变量,即上一个周期的按键状态Key_before、这个周期的按键状态Key_now、先前有效按键状态Key_N-l和当前判定的有效的按键状态Key_N,这4者之间的关系如下:

基于MCU+FPGA的CCB测试盒实现方法

在定时中断程序中实现上面3个公式,便可以通过程序检测出有效的按键状态,然后再进入按键处理程序中去进行相应的功能处理。以往人们消除按键抖动时,主要是通过RS触发电路的方法,但那样会增加很多额外的硬件成本,而本文所介绍的这种软件定时消抖,不仅消抖可靠,而且效率高,容易实现。

5  结语

本文给出了一种基于MCU+FPGA设计的CCB测试盒,详细地阐述了测试盒中的三总线接口、双相码接口的FPGA实现方法,然后介绍了测试盒的人机交互部分,其中重点分析了键盘按键软件定时消抖的原理。这种新型的测试盒不仅具有体积小巧、外形美观的特点,而且成本也得到很大的降低,同时它还具有可升级更新功能的特点,具有很大的灵活性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭