1、引言
现场总线是从20世纪80年代中期发展起来的。随着工业自动化与微处理器计算机网络的不断发展,要求有一种能在工业现场环境运行的、性能可靠、造价低廉的通信系统以形成工厂底层网络,完成现场自动化设备之间的多点数字通信,实现底层现场设备之间以及生产现场与外界的信息交换。上世纪八、九十年代以来,逐步出现多种智能执行器,本文主要完成一种基于WorldFIP现场总线技术的智能电动执行器设计。
2、电动执行器硬件整体架构及框图
图1WorldFIP现场总线智能执行器控制器硬件框图
整体硬件框图如图1。两条现场总线1,2互为热备份,连到通信板卡,通信板卡将总线活动转换为MCU能够理解的信息,完成总线变量、消息、事件的传递,它是WorldFIP现场总线通信协议的具体实现,它的设计也是本设计中的重点和难点。MCU是本仪表的处理核心,所有的程序、数据、算法、功能块和通信库都存储其中,用户程序使用它内置的通信库来完成与总线的数据交换,并按照总线指令驱动执行器输出,把执行器角位置经过A/D转换后送入总线,对执行器角位置的命令值和当前反馈值通过LCD进行实时显示。电源转换、电机的驱动与隔离以及角位置反馈都集成在驱动板卡上。
3、硬件电路详细设计
3.1MCU板卡与LCD设计
MCU作为整个控制器的处理核心,任务包括:通过通信板卡与WorldFIP现场总线进行通信,程序运行、数据存储与运算,信号处理,LCD显示和执行器驱动信号输出等。基于以上,我们选用了Motorola的68HC12系列的16位单片机68HC912BC32作为本设计的MCU,它与68HC11向上兼容;内部具有32K的FLASH、768字节的EEPROM和1K的RAM,能够满足程序的存储、堆栈使用、数据存储和未来的扩容需求而无须另外扩充存储器;总线速度快,8M,4M,2M主频可选,一个时钟周期就可以完成对齐/非对齐字的读写,系统总线上干扰较少;I/O口数量充足;内置有8路10位A/D转换器;内置4路8位或2路16位PWM通道;内置SCI,SPI和看门狗;具有模糊逻辑指令;还有WAIT,STOP两种省电模式可选。LCD显示器选用了南京国显公司的HD44780点阵字符型液晶显示模块。该模块技术成熟,与MCU接口简单,减少了开发周期。68HC12与LCD的接口如图2所示。
图268HC12与LCD的接口图
3.2电源转换、驱动及反馈板卡的开发
本设计的电源输入DC24V,硬件采用LM2572-5.0来完成DC24V到DC5V的转换,LM2572-12来完成DC24V到DC12V的转换。LM2575系列开关稳压集成电路是美国国家半导体公司生产的集成稳压电路,它内部集成了一个固定的振荡器,只须极少外围器件便可构成一种高效的稳压电路,可大大减小散热片的体积,而在大多数情况下并不需要散热片;内部有完善的保护电路,包括电流限制及热关断电路等;芯片可提供外部控制引脚。是传统三端式稳压集成电路的理想替代产品。典型特性:振荡频率54kHz;最大稳压误差4%;转换效率75%~88%(不同电压输出的效率不同);工作温度范围-40℃~+125℃。
位置反馈模块。该模块作用是将电动机经减速器输出的角位置反馈到68HC12中,可以考虑光电编码器和霍尔传感元件,但考虑到价格因素,本设计中仍然沿用了传统的电位器反馈,阻值500欧姆,精度1%。接线比较简单。
本设计所使用的电机是天津生产制造的3100型角行程电动执行器,额定转矩250Nm,4~20mA电流驱动,采用电位器反馈。在电机驱动中采用了北京科通电子继电器总厂生产的国冠牌JGX-3F型交流固态继电器。图3所示为驱动电动机正转的应用电路图,68HC12将控制信号置为高电平,使三级管导通,固态继电器输入端加入正向压降,输出导通,电机正转。电动机反转的应用电路图与之类似。
图3固态继电器用于电机正转
3.3通信板卡的开发
通信板卡负责与WorldFIP现场总线的通信,是本设计的重点与难点。板卡关键元件包括通信控制器MICROFIP,线驱动器FIELDRIVE和隔离变压器FIELDTR,均由法国ALSTOM公司设计、提供。WorldFIP通信板卡的组成框图如图4。按照功能分为3大部分:通信控制器(MICROFIP),通信收发驱动器(FILEDRIVE)和隔离变压器(FILEDTR)。该板卡是总线冗余的,配备有两路完全相同的通信收发驱动器和隔离变压器。
图4通信板卡总体框图
4、电动执行器硬件
MCUez集成应用图形开发环境是68HC12的软件开发平台,它分为Motpad文本编辑程序,Assembler编译程序,DEBUG调试程序和Linker连接程序4部分。其中,最为重要的它的DEBUG调试程序,该程序的源代码窗口,汇编代码窗口,数据窗口,命令行窗口,寄存器窗口和内存窗口,可以对用户程序完成断点跟踪,单步调试,全速运行等多种调试功能。该工具结合串行调试接口(SDI)共同完成对MCU程序的调试工作。
整个软件的设计完全由汇编语言写成,贯彻了自顶向下和模块化的原则,主要包括主程序,中断服务程序,A/D转换子程序,LCD显示子程序,执行器驱动输出子程序和以上提到的通信库等几个部分以及辅助的写FLASH程序和写EEPROM程序。MICROFIP的变量与消息的管理都依靠中断来完成,机制简述如下:MICROFIP满足一定条件时会从它的IRQ0N管脚给出中断信号,这时MCU内部的程序跳转到中断服务程序,通过读MICROFIP内部的IRQSA寄存器,可以知道究竟是什么原因触发了中断,并给标志字节INT_FLAG置位,而主程序中在初始化后则进入死循环,在循环内反复读该标志字节,从而跳转到相应的处理程序,图5为中断处理程序流程图。
1、角反馈位置子程序。68HC12片上提供了一个8路10位的A/D转换器,由于其简单易用,可靠性高,因此本设计中,应用该A/D转换器来完成位置信号的反馈。在本设计中,ATDCTL2赋值80H,允许A/D功能。正常清除A/D转换标志,不允许中断。ATDCTL3赋值00H,选择连续转换模式,不许冻结。ATDCTL4赋值01H,分频因子为4,采样时间为2个A/D时钟。A/D转换完毕后,就可以得到当前角位置反馈,然后将该值存入数据缓冲区,供执行器驱动子程序、向总线仲裁器发送的变量写子程序和LCD显示子程序使用。
2、执行器输出驱动子程序。由于执行器的正反转输出由MCU上的两个I/O口进行控制,所以对其控制比较简单,在此不作详细叙述。值得一提的是本设计中将死区嵌入了对到达指定位置判断的子程序中,执行器正转时,反馈值不能大于指定值加1(指定值为0~100%开度),反转时,反馈值不能小于指定值减1。即死区被定为1%。
图5中断处理程序流程图
3、LCD显示子程序。本设计使用的LCD控制器HD44780必须进行初始化,否则模块可能无法正常显示,一般通过软件复位程序来完成其初始化。将LCD设置为8位数据接口,2行显示,5×7点阵,显示开,光标关,闪烁关,无移位。第一行地址80H,第二行地址C0H。在对LCD初始化结束后,可以对LCD进行读写操作。LCD的读写操作都是在E管脚的下降沿有效,所以读写前要确保数据准备好,先将E置高,再将其置低,完成读写操作。
4、软件的固化。软件调试完毕后需要把程序固化到MCU68HC12的FLASH中,68HC12的FLASH控制寄存器共有4个,它们是:FEELCK,FEEMCR,FEETST和FEECTL。FEELCK等于01H时将禁止FLASH,FEEMCR等于01H时将擦除和编程FLASH的启动块,FEETST主要用来进行测试,而FEECTL则具体控制FLASH的读写编程。