基于CYGNAL单片机和FPGA的舞台吊杆控制器的设计
2008-09-23
作者:王金海, 张丽丽, 王华平, 孟
摘 要: 介绍了舞台吊杆控制系统" title="控制系统">控制系统的体系结构,并对组成该系统的舞台吊杆控制器进行了研究,论述了其工作原理" title="工作原理">工作原理,提出了用CYGNAL单片机和FPGA设计该控制器的方法。基于SOC的设计思想,完成了该控制器的硬件和软件两方面的设计,提出了控制系统中的位移测量方法,并对电机惯性引起的误差提出了补偿方法;同时针对该系统采取了相应的抗干扰措施,提高了系统的抗干扰能力。实际应用证明,此控制器抗干扰能力强,吊杆位置控制精确,且安全可靠。
关键词: 舞台吊杆控制器 FPGA 误差补偿" title="误差补偿">误差补偿 位置控制
在舞台机械设备中,吊杆起着重要的作用[1]。在大型的影剧院,一场演出往往需要调动大量的舞台背景,有时要控制多达64路的吊杆同时动作。操作人员要在现场不断变换舞台背景,控制室人员要不断地和现场人员进行协调,这给舞台控制带来了很大不便。对吊杆的集中控制、实时响应来自多路的请求及吊杆位置的精确定位是设计中要解决的三个关键问题。目前的舞台控制系统大都通过采用光电编码盘产生脉冲信号的方式来获取吊杆的移动距离,并直接用单片机进行计数和控制。这种方法在响应多路请求时,往往会因为单片机任务繁重而造成计数脉冲丢失,引起测量误差。综上所述,本文提出了用CYGNAL单片机和FPGA设计舞台吊杆控制器的方法。
1 舞台吊杆控制系统的组成及工作原理
舞台吊杆控制系统主要由远程控制端" title="控制端">控制端(PC机)、舞台吊杆控制器、现场设备、LCD显示器等组成,如图1所示。
系统采用分布式结构。远程控制端作为管理机,负责管理和协调现场设备,通过局域网使用UDP/IP协议发送控制指令并采集现场数据;舞台吊杆控制器作为终端,接收远程控制端送来的指令,并根据接收到的控制命令控制现场设备动作,采集到现场数据后把数据以UDP格式打包送给远程控制端,以便远程控制端实时进行现场监控。同时为使现场能够观察到单个设备的运行情况,还把这些数据通过串口" title="串口">串口送给现场LCD显示器。
2 舞台吊杆控制器的硬件设计
在整个控制系统中,舞台吊杆控制器是设计的关键,它的功能有两个:其一,接收与发送UDP数据包,解析数据包并转化成FPGA控制器能够识别的格式。其二,接收FPGA控制器送来的现场信息。
2.1 舞台吊杆控制器的硬件组成及工作原理
舞台吊杆控制器主要由C8051F020单片机、FPGA控制器、LCD显示器、E2PROM存储器、RTL8019网卡芯片和JTAG程序下载及调试接口等组成。其硬件组成框图如图2所示。
工作原理如下:C8051F020单片机通过RTL8019网卡芯片接收远程控制端送来的UDP格式的控制命令数据包,从该控制命令数据包解析出控制指令,传输给FPGA控制器。FPGA控制器根据控制指令控制现场设备动作,并且把相关的现场数据返回给单片机。单片机把这些现场数据存入E2PROM中作为备份数据,同时送给LCD显示器,并打成UDP数据包通过网卡芯片发送给远程控制端。下面主要介绍单片机控制系统和FPGA控制器的设计。
2.2 单片机控制系统
单片机控制系统主要由C8051F020单片机组成,主要完成数据的接收与处理。C8051F020的特点是运算速度快、集成度高、引脚可配置、工作稳定和可靠性高[5]。它完全能够满足舞台吊杆控制器对存储器容量、多种总线接口、处理速度和浮点运算等方面的要求。
C8051F020单片机有UART0和UART1两个串口,其中,串口UART0与LCD显示器连接,用于把舞台吊杆运行时的位置数据送给LCD显示器。单片机利用它的SMBUS接口连接带有I2C总线接口的E2PROM(FM24C64铁片存储器),把现场数据存入存储器,以备在掉电后重新上电时能够读出吊杆的当前位置,连续控制吊杆的运动;同时利用它的普通I/O口与网卡芯片RTL8019和FPGA控制器相连,实现数据的收发。
2.3 FPGA控制器的设计
FPGA控制器是利用EDA方法实现的,主要用于对从霍尔传感器过来的脉冲进行计数并控制电机。由于吊杆运动过程中产生的脉冲频率高,FPGA控制器计数量大,所以本设计选择了高容量、高性能的可编程逻辑器件,即ALTERA公司的FLEX 10K 系列FPGA。
2.3.1 FPGA控制器的模块划分
根据系统功能要求,FPGA控制器的顶层模块被划分为以下四个模块:两个5-32译码器、八路与门模块、八路16位可逆并行计数模块、电机控制模块,如图3所示。
两个5-32译码器模块的功能是提供与单片机的接口,实现可编程接口逻辑。八路计数模块(COUNTER8_FILE_LAST模块)包括八个单路计数模块、数据转换模块等,其功能是对霍尔传感器过来的八路脉冲信号进行可逆计数并完成16位数据与8位数据之间的转换。由于C8051F020单片机的数据长度是8位,而计数模块完成的是16位计数,所以必须进行数据位数的转换。
2.3.2 FPGA模块的功能仿真
FPGA控制器是用ALTERA公司的FLEX10K10芯片,在MAX+PLUSII软件中进行设计综合的。根据上述的模块划分,在MAX+PLUSII中的仿真波形图如图4所示。
3 舞台吊杆控制器的软件设计
舞台吊杆控制器的软件主要包括:主程序、UDP数据的传输与解析程序、串口数据的发送程序、数据存储程序等。
3.1 通信协议设计
在舞台吊杆控制系统中,远程控制端通过局域网采用UDP/IP协议给舞台吊杆控制器发送命令并接收来自控制器的数据包。UDP/IP数据包的格式如下:
在使用该协议时,命令信息和状态数据都在UDP DATA 数据区。为了完成控制目的,必须对这块数据区的数据制定协议,协议格式如表1所示。
3.2 主程序设计
主程序主要完成单片机和各个功能模块的初始化、对各个功能模块的调用以及对FPGA控制器的控制。由于篇幅关系,只给出主程序的流程图,如图5所示。
4 可靠性设计
4.1 电机惯性引起误差的补偿方法
在电机拖动系统中,要考虑电机的惯性问题以便及时进行误差补偿。目前系统中,大都利用一次或二次函数来近似电机的惯性量。而本系统则采用在远程控制端人工输入补偿系数Q的方法来实现误差补偿。这里的补偿系数Q的测量可在排演时进行。
系统工作时,远程控制端需设定吊杆要运行到的位置,即计数终值和误差补偿系数。当接收到补偿系数测量命令时,控制系统将开始测量补偿系数Q。这里假设输入终止位置值为S1,实际终止位置值为S2,那么Q=(S2-S1)/S1×100%(由于惯性的缘故,S2>S1)。接着控制系统把这个误差补偿系数Q送回给远程控制端,并且存入存储器中。在吊杆实际运动时,控制系统都会对输入值进行误差补偿,即:实际运动终止值S=输入值S1-输入值S1×Q。用此方法得到的电机惯性量非常精确。
4.2 系统的抗干扰设计
为了保证舞台吊杆控制器能够长期可靠地运行,系统在硬件和软件两方面采取了有效的抗干扰措施。其中硬件方面主要采取了3.3V电源和5V电源隔离(它们与电源隔离)、“看门狗”等方法。通过电源隔离能够有效地防止电源电平不稳和其它电器对控制器的干扰,保证了系统的稳定性;通过“看门狗”能保证程序的正常运行,保证了系统的可靠性。软件方面采取了软件陷阱等方法。
先前研制的大规模舞台控制系统使用8044单片机完成数据处理及计数功能,通过BitBus总线完成通信功能。由于单片机的任务非常繁重,在实际应用中经常出现脉冲丢失以及系统相应速度慢的问题。而本设计采用了EDA技术,将舞台吊杆控制器用CYGNAL单片机和FPGA实现,并用UDP/IP协议实现局域网内的通信,解决了上述问题。舞台控制系统现场应用表明,该吊杆控制器性能完全达到了要求。
参考文献
1 陈若珠, 龚建新, 汤子龙. 舞台吊杆微机群控系统的研制.甘肃工业大学学报[P],1996(22)
2 刘 岩,李凤荣,王金海.高速可逆位置计数器的研究与FPGA实现.天津工业大学学报[J],2003;22(2)
3 阎 石.数字电子技术基础[M]. 北京:高等教育出版社,1998:32~433
4 赵俊超.集成电路设计VHDL教程[M].北京:北京希望电子出版社,2002.8
5 李 刚,林 凌. 与8051兼容的高性能、高速单片机-C8051Fxxx.北京:北京航天航空出版社,2002(5)