基于 can 总线的嵌入式监控设备的设计 ·...

3
基于 CAN 总线的嵌入式监控设备的设计 孔祥通王春平孙书鹰刘江义 (军械工程学院,河北石家庄 050003 根据嵌入式技术和 CAN 总线通信技术,设计一套分布式结构多节点某高炮火控装备信号监控采集设备。首 先对以 STM32F407 单片机为核心的设备硬件设计进行分析,介绍基本原理及模块实现方案;其次根据系统的通信任 务要求,介绍 CAN 通信在系统中的应用实现过程,数据帧的组成及通信软件的设计;最后设计人机交互界面。通过数 据采集试验表明:整个系统能完成实时采集监控功能且工作稳定可靠,具有成本低、实时性好、工作稳定及便于扩展 等优点。 关键词CAN 总线;分布式系统; STM32F407 单片机;模块设计;采集测试 中图分类号TP368.1TP277.2TP336TP274 + .2 文献标志码A 文章编号1674-5124201304-0085-03 Design of embedded monitor system based on CAN bus KONG Xiang-tongWANG Chun-pingSUN Shu-yingLIU Jiang-yi Ordnance Engineering CollegeShijiazhuang 050003China Abstract: A multi-nodes monitor system which based on embedded and CAN bus technology was proposed in this paper. Firstlythe basic hardware structure was analyzedthe basic theory and the realize method of the modules are emphasized. The tested signals were illuminated and the ADC method was also discussed in this paper. According to the requirements of communication taskthe CAN bus communication method was also discussedincluding the software design and the constitutions of the data frames. Finallyexperimental results show that this system is stablelower cost and easy to expand. Key words: CAN busdistributed systemSTM32F407module designacquisition and test 收稿日期2012-08-22收到修改稿日期2012-11-05 作者简介:孔祥通( 1987- ),男,硕士研究生,专业方向为导 航制导与控制。 0 CAN 总线作为国际上应用最为广泛的现场总 线之一,具有可靠性高、通信实时性好以及可扩展性 强等诸多特点,在工业现场控制、信号采集系统等众 多领域中得到了广泛应用 [1] 。火控系统是控制火炮瞄 准和发射的系统,火控计算机是火控系统的核心,在 完成火控解算进而引导高炮射击时具有重要作用。 由于火控系统信号众多,状态复杂,对其关键信号采 集测试就显得尤为重要 [2] 基于以上原因,设计了一种基于 CAN 总线的某 型高炮火控装备信号采集监控设备,该设备具有模 拟、数字信号 的实 时、定 时采 集功 能,通 过 CAN 络,可完成多节点信号采集。 1 硬件设计 系统采用以 ARM Cortex -M4 为内核的新型 STM32F4 微控制器作为控制核心,配以信号调理电 路、通信接口电路等外设电路实现。系统工作原理 为: STM32F407 为控制核心,主要完成外设扩展和数 据处理、通信功能。对于模拟量的采集,需要将信号 首先经调理电路处理后由专用 A/D 转换芯片处理后 送入 MCU 内;数字信号则经电平转换后直接输入 MCU GPIO,采集节点和方式由软件统一管理。 CAN 模块用于组建 CAN 网络,便于实现整网数据节点的 采集处理。系统结构如图 1 所示。 中国测试 CHINA MEASUREMENT & TEST Vol.39 No.4 July2013 39 卷第 4 2013 7

Upload: others

Post on 21-Jun-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 基于 CAN 总线的嵌入式监控设备的设计 · 基于can总线的嵌入式监控设备的设计 孔祥通袁王春平袁孙书鹰袁刘江义 (军械工程学院,河北石家庄050003)

基于 CAN总线的嵌入式监控设备的设计

孔祥通袁 王春平袁 孙书鹰袁 刘江义(军械工程学院,河北 石家庄 050003)

摘 要院根据嵌入式技术和 CAN 总线通信技术,设计一套分布式结构多节点某高炮火控装备信号监控采集设备。首

先对以 STM32F407 单片机为核心的设备硬件设计进行分析,介绍基本原理及模块实现方案;其次根据系统的通信任

务要求,介绍 CAN 通信在系统中的应用实现过程,数据帧的组成及通信软件的设计;最后设计人机交互界面。通过数

据采集试验表明:整个系统能完成实时采集监控功能且工作稳定可靠,具有成本低、实时性好、工作稳定及便于扩展

等优点。

关键词院CAN 总线;分布式系统;STM32F407 单片机;模块设计;采集测试

中图分类号院TP368.1曰TP277.2曰TP336曰TP274+.2 文献标志码院A 文章编号院1674-5124渊2013冤04-0085-03

Design of embedded monitor system based on CAN bus

KONG Xiang-tong,WANG Chun-ping,SUN Shu-ying,LIU Jiang-yi(Ordnance Engineering College,Shijiazhuang 050003,China)

Abstract: A multi-nodes monitor system which based on embedded and CAN bus technology wasproposed in this paper. Firstly,the basic hardware structure was analyzed,the basic theory andthe realize method of the modules are emphasized. The tested signals were illuminated and theADC method was also discussed in this paper. According to the requirements of communicationtask,the CAN bus communication method was also discussed,including the software design andthe constitutions of the data frames. Finally,experimental results show that this system is stable,lower cost and easy to expand.Key words: CAN bus;distributed system;STM32F407;module design;acquisition and test

收稿日期院2012-08-22曰收到修改稿日期院2012-11-05作者简介:孔祥通(1987-),男,硕士研究生,专业方向为导

航制导与控制。

0 引 言CAN 总线作为国际上应用最为广泛的现场总

线之一,具有可靠性高、通信实时性好以及可扩展性

强等诸多特点,在工业现场控制、信号采集系统等众

多领域中得到了广泛应用[1]。火控系统是控制火炮瞄

准和发射的系统,火控计算机是火控系统的核心,在

完成火控解算进而引导高炮射击时具有重要作用。

由于火控系统信号众多,状态复杂,对其关键信号采

集测试就显得尤为重要[2]。基于以上原因,设计了一种基于 CAN 总线的某

型高炮火控装备信号采集监控设备,该设备具有模

拟、数字信号的实时、定时采集功能,通过 CAN 网

络,可完成多节点信号采集。

1 硬件设计系统采用以 ARM Cortex-M4 为内核的新型

STM32F4 微控制器作为控制核心,配以信号调理电

路、通信接口电路等外设电路实现。系统工作原理

为:STM32F407 为控制核心,主要完成外设扩展和数

据处理、通信功能。对于模拟量的采集,需要将信号

首先经调理电路处理后由专用 A/D 转换芯片处理后

送入 MCU 内;数字信号则经电平转换后直接输入

MCU 的 GPIO,采集节点和方式由软件统一管理。CAN模块用于组建 CAN 网络,便于实现整网数据节点的

采集处理。系统结构如图 1 所示。

中国测试CHINA MEASUREMENT & TEST Vol.39 No.4July,2013第 39 卷第 4 期2013 年 7 月

Page 2: 基于 CAN 总线的嵌入式监控设备的设计 · 基于can总线的嵌入式监控设备的设计 孔祥通袁王春平袁孙书鹰袁刘江义 (军械工程学院,河北石家庄050003)

中国测试 2013 年 7 月中国测试

1.1 STM32F4 微控制器

STM32F4 微控制器是由意法半导体生产的基于

ARM Cortex-M4 内核的新型低成本微控制器,性能

优越[3]。下面主要说明选用此型号 MCU 的原因:

(1)内核架构先进,性能优越。此型号 MCU 特有

的 ART 技术使得程序零等待执行,提高了执行效率,

主频为 168 MHz 且可适当超频,具有较高的运算能

力及数据处理功能。

(2)片内多达 1MB Flash,可以实现在不加外部

存储器的情况下实现大量数据的存储,降低了开发

成本。

(3)具有日历功能的 32 位实时时钟(RTC),计时精度达到 1 s,在系统工作时可实时得到数据采集

时间,通过调用实时时钟中断,可实现定时采集功能。

(4)通信接口丰富,可方便完成功能扩展。STM32F4内部集成 CAN 控制器,通过外接相关的 CAN 收发芯

片可方便实现 CAN 网络通信。此外,其具有高速串

口、SPI等通信接口,支持多种通信方式及外设扩展。

1.2 模拟信号采集电路

模拟信号采集电路主要由信号调理电路和 A/D转换电路两部分组成。信号调理电路完成模拟信号

的预处理,将输入信号调理按比例放大(缩小)为符

合 A/D 转换处理范围的信号;A/D 转换电路将调理

后的待采集模拟信号经 A/D 转换芯片转换为数字信

号后经 SPI 总线送入 MCU 内,供 MCU 处理。

1.2.1 信号调理电路

由于待采集模拟信号不一定符合 A/D 转换芯片

所能够处理的电压范围,因此需要对其调理转变为

可处理的信号。图 2 为模拟信号调理电路,它将设备

输出的模拟信号进行滤波及放大处理。图中电容

C50 用来滤除一些来自地端的高频串扰;R37 为电

位器,可用于灵活调整信号输出大小;2 V 稳压二极

管可用于保护运放 LF412 不被损坏。另外,LF412 使

用双电压模式,具有较高的转换速率,较为适合完成

某些变化速率较快的信号处理工作。

1.2.2 A/D 转换电路

MAX1270 是 MAXIM 公司生成的 8 通道、12 位

串行高速 A/D 转换芯片,与 MCU 通过 SPI(三线制)

方式通信,高达 110 kS/s 采样率 [4],通道选择可通过

软件编程实现,适合完成设计需要任务。使用时,首

先对芯片及通信端口进行初始化,然后通过 unsignedshort SPI1_SendByte(u8 channel_number)函数发送

其通道代码,返回值即此通道 A/D 转换数值,chan原nel_number 为:0x88、0x98、0xa8、0xb8、0xc8、0xd8、0xe8、0xf8,依次表示 0~7 号通道。

1.3 CAN网络电路

控制器局域网 CAN 能够以最小的 CPU 负荷来

高效处理大量收到的报文,可用软件配置报文发送

的优先级特性。由于此 MCU 自带有 CAN 总线控制

器,外围只需要接一块总线接口芯片即可实现 CAN总线功能。图 2 为 CAN 总线收发器 65HVD290 接口

电路,CAN 总线的物理连接分为 CANH 和 CANL 两

根线,以差分形式输出。该器件具有较强的抗宽范围

共模干扰、电磁干扰的能力,可用于高干扰环境下[5]。综合通信距离和性能,CAN 网络通信波特率设为

500 kB。2 软件设计2.1 通信协议设计

CAN 协议只是定义了物理层和数据链路层,这

样就为根据实际需要制定与系统适应的 CAN协议提供

方便[6-7]。现在较为成功的定制协议主要有 CAN-open协议和 DeviceNet 协议,但其主要应用于大型系统,

对本系统不适合[8]。系统传递的信息主要有模拟信号

采集值、数字信号采集值以及时间信息,因此采用自

定义的 CAN 扩展协议格式,一个数据帧共 31 字节。

具体含义及规定如表 1 所示。

系统采用的是 CAN 标准帧格式,ID 为 11 位。

表 2 为 ID 功能分配表。

图1 信号采集监控系统硬件结构图

串口收

发芯片

AD转换

芯片

信号调

理电路

模拟

信号

FLASH

存储

器控

制器

串口

控制

SPI通信

控制器

CAN通信控制

CAN收发

芯片

电源 晶振 数字信号

STM32F4 MCU

图 2 信号调理电路原理图

-12V

A+- 1 ADC_IN0

LF412

U11A+12V

GND

3R31

2

R37

100k赘D52VC50104

R35

100k赘R30

AIn0GND

86

Page 3: 基于 CAN 总线的嵌入式监控设备的设计 · 基于can总线的嵌入式监控设备的设计 孔祥通袁王春平袁孙书鹰袁刘江义 (军械工程学院,河北石家庄050003)

第 39 卷第 4 期

2.2 模块软件设计

使用 Keil 开发平台,利用 C 语言进行源程序开

发,通过 J-Link 进行下载调试,ST 公司提供大量库

函数,开发简单方便[9]。程序采用模块化结构开发,各

模块相对独立,包括系统初始化、模拟数据采集模

块、数字信号采集模块、CAN 节点初始化模块、报文

发送模块、报文接收模块等,具有易于维护、简化代

码的优点。

系统上电后,首先完成系统初始化,如:时钟初

始化、A/D 转换初始化、通信接口(包括 SPI、串口、

CAN 等)初始化,然后根据上位机指示完成实时时

间设置,从而可以实现实时采集和定时采集功能。

2.2.1 数据采集软件设计

数据采集分为模拟量和数字量两部分,模拟量

采集主要由 MCU 通过 SPI 接口控制 A/D 转换芯片

MAX1270 完成;数字量的采集通过 STM32 的输入

引脚进行实时状态捕获实现。

模拟量采集时,首先对 ADC 进行初始化,确定

采样时间设定、转换时钟设定等;然后启动 ADC,对经过调理信号进行采集,采样结果为 8 次连续采样

的平均值;A/D 转换结束后,转入相应服务程序。其

信号采集流程如图 4 所示。

对于数字信号采集电路设计时,要注意将被测信

号先进行同步及电平转换,即接入一片 74HCT245,然后将此管脚对应的输出信号接至 MCU 数据手册中

标注 FT(容忍 5V)的管脚上。

在完成采集后,需要调用 CanMessage_Assemble()函数将数据组合为符合通信协议的数据帧。

2.2.2 CAN 软件设计

CAN 总线部分的程序主要包括初始化部分、接

收子程序、发送子程序 3 个部分。初始化程序主要包

括装载标识符和屏蔽码及设置波特率等工作[10]。数

据发送时,首先将待发送数据写入发送缓冲器,待发

送请求得到回应后即可完成数据发送。数据接收时

首先检查是否有接收中断;若有,则调用中断,进而

读出接收缓冲器中数据并存储,等待下一步处理。数

据发送和接收流程如图 5 所示。

3 实验测试采用 4 个节点对系统进行实验,主控节点设为

节点 1,每个节点对应一台装备。通过主控节点发送

被检测的设备节点号及命令,预设被采集的设备模

拟通道采用 30V 测试源,数字信号状态均为高电平,

时间为当前系统时间,测试程序如图 5 所示。

表 1 CAN扩展协议格式

格式 长度长度 含义

起始位 2B 0xffff命令 4B 主机发送给采集模块袁 主要为定时

采集/实时采集尧采集节点号等

模拟信号采集值 16B 8 通道模拟信号值袁 依次为通道 1~8袁每通道采集值存放 2B数字信号采集值 1B 四路数字信号

时间 6B 包括年月日时分秒

校验位 1B 存放奇偶校验码

结束符 1B 0xaa袁数据包结束

目的地址 源地址 类型码

ID10~ID7 ID6~ID3 ID2~ID0

表 2 ID功能分配表

图 5 CAN 发送和接收流程图

开始

发送缓冲器空钥 NY

接收中断钥 NY

缓冲器写入数据

设置发送请求位

发送数据

结束

等待清空

退出中断

接收处理数据

释放接收缓冲器

读缓冲器数据

开始

图 3 CAN 接口电路

R23200

CANH

CANL

3.3V R26

4.7K赘8765

CANRX

3.3V

1 U9

234GNDCANTX CANTX

65HVD230Vref

V_3.3 CANLCANHGND

CANRX RS

图 4 模拟数据采集流程

结束

数据处理

依次读取其余通道

转换结束钥

转换结果处理存储

YN

开始

ADC初始化

启动ADC采样

读取通道0

孔祥通等:基于 CAN 总线的嵌入式监控设备的设计

渊下转第 96 页冤

87