APP下载

嵌入式CANopen下位系统设计

2014-04-26王金达张勇王德宇赵振环闫晗

科技创新与应用 2014年13期
关键词:嵌入式

王金达 张勇 王德宇 赵振环 闫晗

摘 要:CANopen是开放的总线技术,广泛应用于自动化生产各个领域,目前国内CANopen研究滞后,与国内的工业现场网络化进程发展需求不符,本文的研究就是在这样的背景下,开发具有通用特性的CANopen从站模块。在对 CANopen 协议研究的基础上,提出了基于STM32的嵌入式从站设计方案,并描述了其硬件与软件的架构。

关键词:CANopen;CANopen从站;嵌入式

引言

CANopen是建立在CAN总线的应用层协议,CAN总线是一种架构开放、广播式的新一代网络通信协议,是针对汽车电子系统中的数据交换而开发的控制局域网协议。由于其低成本、高可靠性、高传输速度原因,在工业控制领域得到广泛应用。CAN接口芯片定义物理层和数据链路层,由于系统使用STM32作为系统主控制芯片,内部集成CAN接口芯片,在使用时接上CAN收发器即可。CAN网络通信协议仅可以数据发送、接收、错误处理等底层数据传输问题,本身并不完整,对于应用层没有规定相应的解析协议。为了提高CAN总线效率,实现更加复杂、快速、标准化的CAN通信协议,即CANopen协议。

CANopen是在CAL基础上开发的,使用了CAL通讯和服务协议子集,提供了分布式控制系统的一种实现方案。CAL提供了所有的网络管理服务和报文传送协议,但没有定义CMS对象的内容或正在通讯的对象的类型(只定义How,没有定义What)。CANopen在保证网络节点互用性的同时允许节点的功能随意扩展。CANopen的核心概念是设备的对象字典,实现网络管理报文NMT、数据对象SDO、过程数据对象PDO预定义报文或者特殊功能对象核心报文。

1 CANopen从站模块设计

本文中CANopen从站模块是采用ST公司的STM32运行在?COS II上来实现与主站CAN通讯,并具备对CANopen协议报文分析和打包的功能得以实现与主站之间的数据传输和处理。主站方面,应用高级应用程序开发软件编制具备CANopen接口的人机交互界面,使用测试工具CANalyst-II 来实现主站的传输和调试。

2 CANopen从站硬件系统

本文中CANopen从站采用以STM32F103RET6为核心的硬件系统,主要负责CAN通讯与CANopen协议转换功能,从站还具有输入、输出和通讯等功能。

由于微控制器芯片内嵌了完全兼容CAN2.0B的CAN总线控制器,因此硬件系统中的CAN接口电路得到了简化,只需设计CAN总线收发器电路即可。设计中使用了外接隔离型CAN总线收发器,防止总线对从站的干扰,避免核心电路损坏。从站系统除了核心最小系统外,还有模拟量的输入输出、数字量输入输出、外存储器、CAN接口、串口、JTAG接口和电源等子电路。硬件系统整体结构框图如图1所示。

图1 硬件电路整体结构框图

2.1 STM32最小系统

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。本系统采用STM32F103RET6做为系统主芯片,具有64K的片内RAM,512K的片内flash。系统时钟频率可工作在72MHz,若从flash执行代码,STM32功耗仅36mA。STM32内部集成高性能外设,如1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度,内部具有8MHz的RC震荡,可经过倍频后直接作为系统时钟。STM32提供了一个SysTick定时器,可以提供操作系统运行节拍。

2.2 CAN驱动器

CAN收发器(也就是协议控制器)的作用就是完成数据链路层组帧和生成物理层比特流,驱动器的作用是把控制器输出的高低逻辑电平变成CAN总线的差分式电平。STM32内部有CAN收发器,所以,不用考虑该部分硬件设计。协议相关的内容基本都由协议控制器完成,软件上只要配置需要的通信速率、帧ID以及发送的数据内容,然后通知收发器,让它发送就可以。不需要从软件上编写协议。

2.3 串口模块

MAX3232用于显示系统调试相关信息,包括错误提示信息,接收数据信息,系统运行状态。它是一款兼容RS232标准的芯片。由于电脑串口RS232电平是+10v~-10v,而一般的单片机应用系统的信号电压是TTL电平0~+5v,MAX3232就是用来进行电平转换的。

2.4 其他功能模块

从站可以实现模AD和DA功能、数字量的输入输出模块、存储器模块、串口功能,在STM32内部集成有多路AD和DA,可以很经济和快捷的实现以上功能,利用内置的SPI和I2C可以连接外存储器,实现数据的存储,利用内置的UART模块可以实现工业串口通讯。所以,在扩展必要的外部辅助电路接口以后,就可以实现以上几个外设功能。

3 CANopen从站软件系统

从站软件系统采用C语言开发嵌入式操作系统?COS-II下的应用,实现与主站的CANopen接口通讯,同时对模拟量数据的采集和输出、数字量信号的输入输出、串口通讯以及系统参数的存储等功能也都一并实现;主站采用高级应用程序开发软件开发具备CANopen接口的人机交互界面,实现对从站的控制。

根据系统结构,从站系统可以划分为五大模块:CANopen通信模块、模拟量采集和输出模块、数字量输入输出模块、存储器模块、串口模块,系统设计的重点是CAN及CANopen的收发函数,以及在?滋COS-II下实现CANopen协议的对象字典和相应功能。在实现核心功能后,设计几个外设功能模块,提供采集、控制、通信、存储功能,使系统更加完整和实用化备。软件系统的工作流程如图2所示。

图2 软件设计框图

4 结束语

通过整体设计及调试,利用CANopen高层协议完成了从站与主站之间的数据传输以及STM32与各模块之间的联系,并且采用C语言开发嵌入式操作系统?COS-II下的应用来实现数据的采集处理,与主站进行通讯等相关内容,具有较好的系统框架,系统稳定性较好。设计完成的从站系统具有较好的通用性和实用性,市场前景较好。

猜你喜欢

嵌入式
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
TS系列红外传感器在嵌入式控制系统中的应用
基于嵌入式Linux内核的自恢复设计
嵌入式系统通信技术的应用
嵌入式PLC的设计与研究
搭建基于Qt的嵌入式开发平台
基于嵌入式系统Windows CE的应用程序开发
嵌入式单片机在电机控制系统中的应用探讨
嵌入式软PLC在电镀生产流程控制系统中的应用
Altera加入嵌入式视觉联盟