CAN总线在石油仪器组合导航系统中的应用

2016-10-31 08:44:51蒋幽君
计算机测量与控制 2016年4期
关键词:管脚缓冲器字节

刘 杰,蒋幽君

(1.贵州航天凯山石油仪器有限公司,贵阳 550000;2. 河北华油一机抽油机有限公司,河北 青县 062650)



CAN总线在石油仪器组合导航系统中的应用

刘杰1,蒋幽君2

(1.贵州航天凯山石油仪器有限公司,贵阳550000;2. 河北华油一机抽油机有限公司,河北 青县062650)

基于DSP + FPGA结构的石油仪器组合导航系统中CAN总线系统设计,为了使数据能够在整个CAN总线网络协调、有效、快速、稳定的传输,提出了一种使用FPGA作为CAN总线节点结构中的核心处理器的设计方法;CAN控制器采用具有SPI接口的MCP2515,利用FPGA实现MCP2515的初始化、数据的发送和接收,实现了DSP处理器的CAN总线扩展应用;该方法由于把CAN节点控制的大量的工作交给FPGA实现,DSP只需要对FPGA中CAN数据接收FIFO和CAN数据发送FIFO进行读写操作,即可完成CAN总线的数据读写操作,大大减轻了DSP的数据处理压力;试验测试及产品应用表明,该设计有效、稳定可靠、可扩展性好,易于修改和移植,具有较强的工程实用价值。

CAN总线;MCP2515;FPGA;DSP

0 引言

CAN(controller area network,控制器局域网)总线是一种有效支持分布式控制或实时控制的串行通讯网络。由于其高性能、高可靠性、及独特的设计和适宜的价格而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总线之一。由于CAN总线的诸多优点,它也广泛应用于导航、制导与控制等领域。本文就是基于DSP + FPGA结构的石油仪器组合导航系统中CAN总线系统设计,提出了一种使用FPGA作为CAN总线节点结构中的核心处理器的设计方法。其中DSP芯片采用TI公司的TMS320C6713B,FPGA芯片采用ACTEL公司的A3P1000,CAN控制器采用具有SPI接口的MCP2515,利用FPGA实现MCP2515的初始化、数据的发送和接收,实现了石油仪器组合导航系统中DSP处理器的CAN总线扩展应用。该方法由于把CAN节点控制的大量的工作交给FPGA实现,DSP只需要对FPGA中CAN数据接收FIFO和CAN数据发送FIFO进行读写操作,即可完成CAN总线的数据读写操作,大大减轻了DSP的数据处理压力。

1 CAN总线概述

CAN总线是目前国际上应用最广泛的现场总线之一。最早由德国BOSCH公司推出,用于汽车内部测量与执行部件的数据通信,其总线规范已被ISO定为国际标准,被广泛应用于离散控制领域。其模型接口只有物理层、数据链路层和应用层。其信号传输为双绞线,通讯距离40 m内,通讯速率最高为1 Mbit/s,最多可挂设备为110个。CAN信息帧传输可采用标准帧、扩展帧及远程帧结构,支持点对点、一点对多点和全局广播方式接收和发送数据。CAN的物理层及数据链路层采用独特的设计技术,每帧数据都包含有CRC校验及其它校验措施,数据出错率低,总线节点在严重错误的情况下,可自动切断与总线的通讯联系,以使总线上的其它操作不受影响,因此,CAN总线在抗干扰、错误检测能力等方面性能超过其它总线。总之,CAN总线具有结构简单、灵活性强、实时性好、可靠性高、成本低等优点。

2 CAN总线总体设计

石油仪器组合导航系统中CAN总线网络底层传输协议采用CAN2.0B标准,所有节点以500 Kbit/s总线位速率进行设置,信息帧采用CAN2.0B规范的29位标识符(仲裁域)扩展帧格式,数据域规定为8字节,帧结构见图1。其中,29位标识符(仲裁域)编码定义见图2。

图1 CAN的帧结构

图2 标识符编码定义

在CAN总线网络中,有多个节点与石油仪器组合导航系统进行通讯交互,每个节点分配一个地址。节点与石油仪器组合导航系统通讯的基本工作流程见图3。

在工作期间,部分节点向石油仪器组合导航系统周期性发送初始对准信息、二次对准信息、产品运行基本状态信息等。而且石油仪器组合导航系统按要求向多个节点周期性发送实时测量数据及信息,如航向角、俯仰角、横滚角、航向角速度、俯仰角速度、横滚角速度、经纬度、航程等导航信息数据。因此,石油仪器组合导航系统中CAN总线特点有:多个节点交互,数据量大;实时性要求强;工作时间长;系统可靠性要求高等多方面。

图3 CAN通讯基本工作流程

本文CAN总线系统设计选用Microchip公司的MCP2515、TJA1050作为CAN总线控制器和收发器,使用FPGA作为CAN总线节点结构中的核心处理器,利用FPGA实现MCP2515的初始化、数据的发送和接收。CAN总线系统实现原理如图4所示。

图4 CAN总线系统实现原理框图

3 CAN总线硬件接口设计

3.1MCP2515应用

MCP2515完全符合CAN总线的2.0B技术规范,并带有符合工业标准的SPI接口。该器件能发送和接收标准帧、扩展帧以及远程帧,带有2个验收屏蔽寄存器和6个验收滤波寄存器,可以过滤掉不要的报文,减少了主控开销。与传统的控制器比较,MCP2515具有灵活的中断能力、帧屏蔽和过滤、帧优先级设定、高数据吞吐率、价格便宜等优点,所以在石油仪器组合导航系统中采用它作为CAN总线控制器。

3.2FPGA与MCP2515接口设计

FPGA与MCP2515的接口设计如图4所示,FPGA的I/O管脚与MCP2515管脚相连。其中MCP2515的复位管脚RST、片选管脚CS直接由FPGA的I/O管脚控制。MCP2515的CLK信号为CAN总线数据发送和接收同步时钟信号,由FPGA内部分频提供8MHz时钟信号。MCP2515的SCK信号作为SPI接口同步时钟信号,由FPGA内部分频产生1MHz时钟信号,在SCK时钟上升沿时,命令和数据通过SI管脚送入MCP2515,在SCK时钟下降沿时通过SO管脚把数据从MCP2515中读出。FPGA通过SI信号线读取MCP2515接收缓冲器里的数据,通过SO信号线把待发送的数据写入MCP2515的发送缓冲器,然后再调用发送请求命令,MCP2515即可将数据发送到CAN总线上。FPGA通过标准SPI读写指令,对MCP2515寄存器进行读写操作,完成系统CAN总线的收发,最终实现系统CAN总线的通讯。MCP2515的SPI指令集有复位指令、读指令、读RX缓冲器指令、写指令、装载TX缓冲器指令、请求发送指令、读状态指令、RX状态指令和位修改指令等9条指令。

3.3MCP2515与TAJ1050接口设计

本系统选用MCP2515芯片作为CAN控制器,TJAl050芯片作为总线收发器。CAN总线接口硬件电路图见图5。

图5 CAN总线接口硬件电路图

TJAl050芯片作为CAN收发器,它是CAN控制器和物理总线之间的接口。它的功能如下:将CAN控制器的信号转换成差分信号送到总线上;将CAN总线上的差分信号转换成CAN控制器能够识别的电平;增强总线的驱动能力,从而增加CAN总线的通讯距离并使得在一条总线上可以挂载更多的节点。在MCP2515和TAJ1050之间增加ISO7221高速数字隔离器,使CAN节点之间在电气上完全隔离和独立,采用两个独立电源供电,进一步使其电源完全隔离。在CAN总线的两端各增加一个120 Ω的电阻,能有效提高数据通讯抗干扰性和可靠性。

4 软件设计

4.1FPGA软件设计

FPGA作为CAN总线节点的控制器,主要有两方面功能。一方面检测DSP的地址总线、数据总线、控制总线,对DSP发出的指令进行响应;另一方面通过SPI指令对MCP2515进行控制,从而控制CAN总线的工作方式和工作状态,进行数据的发送和接收。本文主要介绍FPGA对MCP2515的程序设计,包括对MCP2515寄存器的读写操作、数据发送和数据接收。在FPGA软件设计开发中,利用Verilog HDL语言编程[1],采用状态机完成时序逻辑设计,分别包括初始化状态、空闲状态、寄存器读写状态、数据接收状态、数据发送状态。

4.1.1寄存器的读写操作

MCP2515 寄存器读写指令分别如图6、图7[2]所示。FPGA程序中生成两个512×8位的FIFO[3],分别为CAN数据接收FIFO和CAN数据发送FIFO。图6、图7中CS、SCK、SI管脚信号由FPGA程序产生,SO管脚信号由MCP2515产生,由FPGA检测。

当FPGA检测到DSP的读MCP2515寄存器指令时,首先把读指令字节(03h)、寄存器地址字节(XXh),按BIT位从高位到低位的顺序在SI管脚上依次发出,然后检测SO管脚电平,读出SO管脚输出的8个BIT位,组成一个字节,存入FPGA的CAN数据接收FIFO。

当FPGA检测到DSP的写MCP2515寄存器指令时,首先把DSP发出的写寄存器指令字节(02h)、寄存器地址字节(XXh)、寄存器数据字节(XXh)存入FPGA的CAN数据发送FIFO,然后把CAN数据发送FIFO中的字节数据,按BIT位从高位到低位的顺序在SI管脚上依次发出。

图6 MCP2515 寄存器读指令

图7 MCP2515 寄存器写指令

4.1.2数据发送

当FPGA检测到DSP的CAN总线发送数据时,首先FPGA把DSP发出的写发送缓冲器指令字节(02h)、发送缓冲器地址字节(36h)、发送缓冲器数据字节(XXh),请求发送报文字节(81h)写入FPGA的CAN数据发送FIFO中,然后把CAN数据发送FIFO中的字节数据,按BIT位从高位到低位的顺序在SI管脚上依次发出。

4.1.3数据接收

FPGA接收MCP2515接收缓冲器中的数据可采用查询方式或中断方式。在某一段时间内,CAN总线并不是总在活动,为了提高效率,文中采用中断方式。在初始化程序中必须使能接收中断,设置CANINTE-中断使能寄存器(地址:2Bh)的值为03h,接收缓冲器0满中断使能以及接收缓冲器1满中断使能。当FPGA收到MCP2515的INT信号时,读取CANINTF-中断标志寄存器(地址:2Ch)。

判断中断标志寄存器的最后两位数据,如果为01h,则表示接收缓冲器0有待处理的中断,那么读取RXB0SIDL-接收缓冲器0标准标识符低位(地址:62h),读取RXB0EID8-接收缓冲器0扩展标识符高位(地址:63h),分别存入FPGA的CAN数据接收FIFO中;然后读取RxB0DM-接收缓冲器0的8个数据字段字节(地址:66h~6Dh),分别存入FPGA的CAN数据接收FIFO中。

判断中断标志寄存器的最后两位数据,如果为10h,则表示接收缓冲器1有待处理的中断,那么读取RXB1SIDL-接收缓冲器1标准标识符低位(地址:72h),读取RXB1EID8-接收缓冲器1扩展标识符高位(地址:73h),分别存入FPGA的CAN数据接收FIFO中;然后读取RxB1DM-接收缓冲器1的8个数据字段字节(地址:76h~7Dh),分别存入FPGA的CAN数据接收FIFO中。

最后清空中断标志寄存器,等待下一个INT中断并进行处理。FPGA的CAN数据接收FIFO等待DSP进行查询接收。其数据流程如图8所示。

图8 FPGA数据接收流程图

4.2DSP软件设计

DSP芯片采用TI公司的TMS320C6713B[4],DSP软件采用C语言进行开发[5]。DSP对MCP2515初始化配置以及CAN数据的发送,只需要通过DSP的EMIF接口、DSP和FPGA相连的数据总线、地址总线、FPGA片选线,按DPS和FPGA约定的协议,把数据发送给FPGA即可,由FPGA内部时序逻辑电路完成针对MCP2515的后续工作。DSP接收CAN数据时,需要查询FPGA的CAN数据接收FIFO深度,读取CAN数据接收FIFO中的数据并进行解析、应答。

4.2.1MCP2515初始化配置

石油仪器组合导航系统上电后,要对MCP2515进行复位操作,以便MCP2515的逻辑和寄存器能够恢复到默认状态;然后对MCP2515进行初始化配置,包括设置通信速率及总线信号采样的时间片,设置发送缓冲器、设置接收缓冲器、设置屏蔽滤波器和验收滤波器以及设置中断模式等。

4.2.2数据的接收、解析、应答或发送

DSP软件在中断处理函数中,首先查询FPGA的CAN数据接收FIFO深度,如果FIFO深度大于10个字节,然后读取10个字节进行解析,前2个字节为数据来源地址,后8个字节为CAN报文数据域字节,根据CAN通讯协议,对数据字节进行解析、应答或发送。

5 试验结果及分析

试验过程中,产品测试台硬件系统安装周立功CAN板块,软件系统安装ZLGCANTest-PCI9820I测试软件。利用测试台模拟CAN总线的节点,根据CAN通信协议,与产品进行CAN通信交互,功能测试正常。另外,在产品应用中,通过高低温测试、长时间测试,其CAN通信性能稳定、可靠。

6 结论

综上所述,基于DSP + FPGA结构的石油仪器组合导航系统中CAN总线系统设计,提出了一种使用FPGA作为CAN总线节点结构中的核心处理器的设计方法。CAN控制器采用具有SPI接口的MCP2515,利用FPGA实现MCP2515的初始化、数据的发送和接收,实现了石油仪器组合导航系统中DSP处理器的CAN总线扩展应用。该方法由于把CAN节点

控制的大量的工作交给FPGA实现,DSP只需要对FPGA中CAN数据接收FIFO和CAN数据发送FIFO进行读写操作,即可完成CAN总线的数据读写操作,大大减轻了DSP的数据处理压力。实际应用及测试表明,本设计有效、稳定可靠、可扩展性好,易于修改和移植,具有较强的工程实用价值。

[1] 夏宇闻. Verilog数字系统设计教程[M]. 北京:北京航空航天大学出版社,2013.

[2] MICROCHIP公司. MCP2515使用手册[Z]. 2014.

[3] ACTEL公司. ProASIC 3 Flash Family FPGAs 使用手册[Z]. 2014.

[4] 三恒星科技. TMS320C6713 DSP原理与应用实例[M]. 北京:电子工业出版社,2012.

[5] 国防科学技术大学. FT-C6713J/250军用DSP产品使用手册[M].长沙:FT-C6713J/250军用DSP产品使用手册出版社,2012.

Application of CAN bus in Petroleum Instrument Integrated Navigation System

Liu Jie1, Jiang Youjun2

(1. Guizhou Aerospace Kai Shan Petroleum Instrument Co., Ltd. Guiyang550000, China; 2. Hebei Huayouyiji pumping machine Co. Ltd. Qingxian062650, China )

In order to make the data to be coordinated, efficient, fast and stable in the whole CAN bus network, a design method of the core processor in the CAN bus node structure is proposed, which uses FPGA as the core processor in the design of CAN bus system in petroleum equipment integrated navigation system based on DSP + FPGA structure. Using the SPI interface with the MCP2515 as the CAN controller, and using FPGA to achieve the MCP2515 initialization, data transmission and reception, DSP processor CAN bus expansion is implemented. This method due to FPGA to control the amount of CAN node work, DSP only needs to read CAN data receive FIFO and write CAN data transmission FIFO, which can complete the CAN bus data read and write operations, greatly reducing the DSP data processing pressure. The test and product application show that the design is effective, stable, reliable, scalable, easy to modify and transplant, and has strong engineering and practical value.

CAN bus; MCP2515; FPGA; DSP

1671-4598(2016)04-0174-04DOI:10.16526/j.cnki.11-4762/tp.2016.04.051

TN713

A

2016-01-31;

2016-02-27。

刘杰(1984-),女,山东省单县人,硕士研究生,工程师,主要从事电路、软件方向的研究。

猜你喜欢
管脚缓冲器字节
更正
轻兵器(2022年3期)2022-03-21 08:37:28
No.8 字节跳动将推出独立出口电商APP
重载货车用缓冲器选型的研究及分析
铁道车辆(2021年4期)2021-08-30 02:07:14
No.10 “字节跳动手机”要来了?
简谈MC7字节码
基于图像处理的异型电子元器件管脚偏移误差检测方法研究
CMOS数字IC管脚电容的估算与测量
面向TIA和缓冲器应用的毫微微安偏置电流运放可实现500MHz增益带宽
HC08芯片JVT测试方法的探究
电子测试(2013年22期)2013-09-26 06:03:52
车辆缓冲器故障及选型
——以冶金企业为例
河南科技(2011年8期)2011-10-26 07:12:30