基于CAN通讯的井下仪器设计

2021-10-24 11:41王宏伟李彬宝吴靓代鑫彭祥
地质装备 2021年5期
关键词:收发器级联电平

王宏伟,李彬宝,吴靓,代鑫,彭祥

(中地装(重庆)地质仪器有限公司,重庆 400033)

0 引言

CAN是控制器局域网络(controller area network)的简称,由于CAN总线的通讯方式具有高可靠性、实时性和不限节点的灵活性,成为当前通讯领域中应用最广泛的现场总线之一,特别是在汽车领域,汽车控制系统中包含多种传感器节点和控制终端,主要通过CAN总线的通讯方式实现。除此之外,CAN的应用领域正在向各行各业拓展,如机械工业、物探工程、石油钻探、航空航天、船舶管理、海港控制、农业机械、智能家居、机器人、医疗仪器等等。CAN通讯的优势使得它已被公认为最有前途的现场总线之一。

1 关键技术介绍

1.1 CAN总线简介

CAN总线是两线制,CAN_H和CAN_L,通讯介质通常有几种,最常见的是双绞线,此外,由于应用领域的不同,通讯介质还有光导纤维和同轴单芯电缆等。在总线上可以挂载多个节点,节点不分主从,通讯时各个节点根据CAN总线协议,由系统设置相应参数自动进行仲裁和优先级判别。通讯距离与节点个数和传输速率有关,传输速率越低且节点数越少,传输距离越远。但大多数CAN总线应用在系统仪器内部,通常传输距离都足以保障通讯质量的要求。

本设计是在井下探测仪器(以下简称探管)中应用CAN通讯技术,探管级联总长度不超过10 m,在CAN传输终端采集的数据实时性强,双线差分信号抗电磁干扰能力强,且根据CAN总线协议,每帧数据都有CRC校验和其他错误检测机制,能够保证数据传输的准确性和可靠性。此外,CAN_H和CAN_L两线应用于级联探管中线束较少,结构设计简便。

1.2 STM32单片机简介

STM32是意法半导体出品的ARM单片机,性能高、价格便宜、使用简便、程序开源、封装体积小,具有不同容量大小和产品性能。开发人员可根据设计需求选择适合的产品,STM32系列单片机现已成为时下最主流微控制器之一。

本设计中采用STM32F103CBT6作为主控芯片,该芯片基于ARM Cortex-M3内核,含有丰富的外设TIM、CAN、SPI、I2C、UART、USB等,工作频率最高达到72 MHz。STM32单片机内部集成的CAN控制器是基本扩展CAN,支持CAN协议2.0A(标准型)和2.0B(扩展型)。作为测井仪器的主控芯片,完全能够满足通讯和传输速率等要求,性价比很高。

2 硬件电路设计

2.1 选用高速CAN通讯网络

本设计的通讯网络遵循ISO 11898标准的高速、短距、闭环网络,传输速率为500 kb/s。每个节点都含有一个CAN控制器和一个CAN收发器,CAN控制器已集成在单片机内部,CAN收发器与单片机直接相连,每个节点的CAN收发器都输出两条线,即差分信号线CAN_H和CAN_L,为保证线束阻抗匹配,在两条线的终端均配有一个120 Ω的电阻,该电阻能有效减少回波反射和噪声干扰。

2.2 CAN收发器选型

STM32单片机内部集成CAN控制器,而引脚输出TTL电平,必须将其转换为差分信号才能挂载到总线上,因此需要选用一款合适的CAN收发器作为电平转换芯片。

本设计选用飞思卡尔的高速CAN收发器MC33901。MC33901收发器支持最低5 kb/s传输速率,标准8 pin输出,如图1所示。不需要外部过滤器组件就能实现电磁兼容和防静电性能,在各种波特率下均无出现严重的过冲现象。

图1 MC33901外围电路Fig.1 Peripheral circuit of MC33901

图2 探管级联示意图Fig.2 Schematic diagram of cascading probe tube

2.3 井下探管级联设计

探管级联方式如图2所示,公共短节探管单片机内部集成CAN控制器,通过CAN收发器进行通讯,其他测量参数探管以同样的方式挂载到CAN总线。如前文所述,CAN总线节点在总线上均可广播和监听数据,在电气方面具有同等地位,也就是说可以不区分是否为公共短节还是其他参数测量探管。实际应用中为了进一步控制不同节点的功能,通常会假定一个主机,比如假定公共短节探管为主机,其他参数测量探管为从机,通过软件设置数据段加密的方式可实现主从机功能,主机发送命令,从机根据CAN监听的数据段内容做出相应动作。

无论主机还是从机,在发送报文时集成在单片机内部的CAN控制器将报文由单片机引脚CAN_TX发出,信号为普通逻辑电平。然后经过CAN收发器把这个电平转换成差分信号,通过两线电压差区分显性电平还是隐性电平,即CAN收发器与单片机相连的输入部分有区分“发送”和“接收”,此时信号被广播到总线网络上。在接收报文时,总线上的差分信号经由CAN收发器转换成能被单片机识别的逻辑电平,即CAN收发器在与总线相连的部分是差分信号,不区分发送端还是接收端,只有CAN_H和CAN_L,此时信号被单片机的引脚CAN_RX接收。

3 软件程序设计

在井下探管设计中,多个探管级联需要有多个CAN节点,不同节点具有同等地位。为区分公共短节与其他测量参数探管,本设计中将公共短节所在CAN节点称为主机,其他级联的测量探管称为从机。

3.1 协议及程序流程

本设计采用CAN 2.0B协议,设置29位ID标识符,数据段长度为8字节。不同开发人员可自定义内部协议对数据段进行加密设计,以此进行节点间的命令传输。本设计中数据段包含控制命令、返回ID及返回数据等。按照协议完成探管间的通讯任务,不同探管对数据段进行筛选和判别,并执行相应程序命令,程序设计流程如图3所示。

图3 程序设计流程图Fig.3 Flowchart of program design

3.2 参数设置

CAN设置内容比较多,每一项参数的设置都必须仔细斟酌。CAN初始化大致分为4部分:①配置IO接口;②对CAN通讯的中断方式配置;③CAN工作模式配置,其中包含了CAN总线协议的具体模式配置;④CAN过滤器配置。

(1)IO接口配置。配置CAN的GPIO设置,注意引脚是否为重映射。

(2)中断方式配置。配置CAN中断向量及优先级,发送中断、接收FIFO中断和错误中断,本设计主要是接收FIFO中断。

(3)工作模式设置。①时间触发通讯模式;②硬件自动离线管理;③自动唤醒模式;④自动重传功能;⑤接收FIFO锁定,即接收非锁定,FIFO溢出时覆盖;⑥发送FIFO优先级,即按照标识符判断优先级;⑦设置为正常工作模式;⑧通讯位时序配置,本设计设置比特率为500 kb/s,其中CAN_SJW设为1 tq、CAN_BS1设为3 tq、CAN_BS2设为2 tq、CAN_Prescaler设为12。CAN通讯位时序相关的配置,在各个节点必须设置成相同(或相似)以确保正常通信;⑨CAN单元初始化。

(4)CAN接收过滤器设置。①设置过滤器组;②设置过滤器工作模式为标识符屏蔽模式;③设置要过滤的ID高位低位,设置每位都要过滤;④设置过滤器长度;⑤设置过滤器被关联到FIFO。

4 结语

通过STM32单片机和CAN通讯处理电路,能够实现一次采集多参数的测井方法。探管级联组合方式灵活,方便现场安装,且能配合上位机完成自动识别参数类型的功能,可同时测量自然γ、井温、三分量、磁化率、磁测斜、四电极系、流体电阻率、三侧向电阻率、声波等参数。经实验证明该设计能够保证高传输速率和可靠通讯,即使在深井高压高温环境下依然能够保障通讯质量。CAN通讯在测井仪器中的可靠应用已得到实验验证,级联组合方式能够改善传统测井方式的人力、物力消耗,可广泛应用于工程测井领域。

猜你喜欢
收发器级联电平
Virtex5 FPGA GTP_DUAL硬核两个收发器独立使用的实现
级联LDPC码的STBC-OFDM系统
基于级联MUSIC的面阵中的二维DOA估计算法
NPC五电平Z源逆变器的设计研究
基于三电平光伏并网逆变器控制系统的研究与实践
基于NPC三电平变换器的STATCOM研究
一种多电平逆变器及其并网策略
LCL滤波器在6kV级联STATCOM中的应用
H桥级联型STATCOM的控制策略研究
富士通半导体推出收发器家族全新LTE优化多频单芯片MB86L13A