摘要:以集成CAN控制器的PIC18F4580单片机为测量系统中的控制单元,介绍了基于CAN总线的控制智能节点的设计方法,给出了系统主要硬件和软件设计流程。该电路能够与主节点测量单元正常通信,能够实现启动测量、新转子加入等功能,具有可靠性高、实时性强等特点,为基于PIC18F4580微处理器的CAN总线通信电子控制单元的开发提供了一定的科学依据。
关键词:PIC18F4580;CAN总线;动平衡机
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)04-0934-04
Application of CAN Bus in Measuring System for Dynamic Balancing Machines with PIC18F4580 Microcontroller
ZHANG Kai
(College of Software, Tongji University, Shanghai 201804, China)
Abstract: The PIC18F4580 microcontroller with integrated CAN controller is used as the control unit for measuring system of dynamic balancing machine. The paper introduced the design method of intelligent nodes based on CAN bus, giving the main design process of the hardware and software. The node with high reliability can communicate with the master node normally and be provided with the function of starting the measurement, adding new rotor and so on.
Key words: PIC18F4580; CAN bus; ECU; dynamic balancing machine
1 概述
控制器局域网(Controller Area Network, CAN)是一种有效支持分布式控制或实时控制的串行通信网络,由于其高性能、高可靠性及独特的设计,CAN总线越来越受到工业界的重视,并被公认为几种最有前途的现场总线之一,成为一种国际标准(ISO 11898)[1]。CAN总线硬件连接简单,有良好的可靠性、实时性和性价比,简单实用,网络成本低,特别适合于电磁辐射强、震动大、干扰强的场合。众所周知,其已经广泛的应用在解决汽车中众多的控制和数据交换问题[2],在动平衡机的测量系统中,控制单元与测量单元的数据交换也同样存在着高实时性与高可靠性的要求。
本文以Microchip公司的内部集成CAN控制器的PIC18F4580单片机为核心,分析了动平衡机测量系统的整体架构以及测量单元与控制单元的通信原理,并着重介绍了基于CAN总线的动平衡机测量系统中控制单元的硬件电路设计以及软件程序设计流程。
2 动平衡机测量系统的总体设计方案
该测量系统以一个主节点与一个分节点通信为例,其原理结构如图1所示。
控制柜通过控制按钮发出控制指令,通过继电器来控制调速电机,转子在电机的带动下,一点的速度转动,旋转产生的振动通过测振传感器检测出来,振动信号通过滤波电路放大,进入测量单元,在测量单元中进行A/D转换并进行数值计算,将得到的结果显示到液晶显示器,并同时发出反馈信号给控制单元。
3 测量单元软硬件设计
3.1 硬件设计
测量单元采用双CUP协同工作、共享SRAM的方式进行设计:SIMENSE公司的具有高性能数据处理能力的C167SR处理器对采集到的振动信号进行运算处理,并将其显示到人机界面;采用Lattice公司的注重数据流传与总线控制功能的im4A3-64/64微控制器对其外部接口电路进行处理。其主要功能结构如图2。
im4A3-64/64微控制器通过CAN控制器与CAN总线连接,同CAN总线上的其他节点进行通信。
3.2 软件设计
测量单元的软件设计主要包括振动信号测量的算法设计、CPU间的通信原理设计等。关于动平衡的算法研究,国内外已经有很多成熟的算法[3]。这里主要介绍CPU间的通信过程与原理,以开始测量转子的不平衡量这一功能为例,其软件流程框图如图3。
4 控制单元软件设计
4.1 硬件设计
在该单元的设计中,利用Microchip公司的PIC18F4580作为微处理器,由于其内部集成了CAN控制器功能,因此,结合CAN总线收发器即可完成CAN总线的接收和发送任务。这里考虑到工业现场可能存在较大的干扰,所以选用带有信号隔离功能的CTM1050T作为收发器[4]。共模扼流圈起着EMI增强的功能,用于提高设备的EMI能力。电源芯片采用LM2595来进行24V转5V,该芯片最大可以提供1A的电流,经过计算,满足电路设计要求。控制按钮所发出的是24V的电平或触发信号,由于PIC18F4580在5V时判断为高电位,因此,电路采用二极管反接5V电源将电压钳为于5V,并进行了防热插拔等保护措施。单片机输出接ULN2003来驱动继电器,ULN2003工作电压高,灌电流可达500MA,并且能够在关态时承受50V的电压。总体硬件设计结构如图4。
4.2 软件设计
软件设计是系统设计的关键。使用开发软件MAPLAB IDE,仿真器KIT3,以及灵活简便的C语言。为了提高可理解性与可维护性,内部软件设计采用了模块结构,主要包括中断优先级设置,CAN初始化子函数void InitCAN(void),PIC18F4580端口初始化子函数void InitiaIIO(void),定时/计数器初始化子函数void InitTMR0(void)以及实现功能子函数等。程序流程图如图5所示。
其中,较为重要的是内置CAN控制器的初始化设置,主要包括发送寄存器、发送缓冲器、接收寄存器、接收缓冲器、波特率参数、标识符的设置等。每个节点都有自己独一无二的标示符,在CAN2.0A协议中,PIC18F4580使用寄存器TXBSIDH和TXBSIDL来存放标识符。为了保证节点间能够正常通信,各节点的波特率必须设置一致[5]。
5 实验
采用本文设计的动平衡机测量系统的控制单元ECU与其测量单元通过CAN总线进行通信,并进行电机控制,可以实现开始测量、新转子加入等功能。采用CAN分析仪(USB to CAN)对CAN总线进行监控,利用计算机与CAN分析仪连接,并通过CAN总线采集控制单元与测量单元通信交互的数据,CAN总线的通信波特率设置为100KBPS。实验中采集到部分数据如图6,这里以能够正常通信的初始化的部分数据为例。
根据实际测量结果可以看出,总线没有接收到错误帧,控制单元与测量单元可以正常通信,工作状态正常。从接收到的数据表明,节点发送的标识符和数据与预定义的标识符与数据一致,节点接收到的数据的标识符也与预接收的数据标识符一致。
6 结论
CAN总线以其高可靠性、高性能以及独特的设计,已经在工业总线领域得到了广泛应用。该文设计了基于PIC18F4580单片机的动平衡机测量系统的控制单元,该控制单元具有集成度高、性能稳定、抗电磁干扰能力强的特点。实验表明,该控制单元运行稳定,并能与测量单元进行可靠通信。
参考文献:
[1] 于海生.CAN总线工业测控网络系统的设计与实现[J].仪器仪表学报,2001(1).
[2] 曾锐利,肖云魁.CAN总线技术的汽车ECU设计[J].仪器仪表学报,2008(4).
[3] 李顶根.新式立式动平衡机的研制与工件不平衡量的测量[D].武汉:华中科技大学博士论文,2004.
[4] 周立功.iCAN现场总线原理与应用[M].北京:北京航空航天大学出版社,2007.
[5] 王义.CAN总线单片机PIC18F258在汽车电子控制单元中的应用[J].贵州师范大学学报:自然科学版,2012,28(1).