任康磊,张梦微
(南京邮电大学 自动化学院,江苏 南京 210023)
基于C/S结构的直流电机网络化调速实验平台设计
任康磊,张梦微
(南京邮电大学 自动化学院,江苏 南京210023)
设计了一种基于C/S结构的直流电机网络化调速系统平台。采用RTL8019AS网络控制器实现客户端与网络控制节点的高速通信,网络控制节点基于PWM方式控制电机转速,并采用E6B2编码器实时测量电机转速。详细介绍了网络控制节点的软硬件设计。该实验平台具有结构简单、控制精度高、开放程度高的优点。
C/S结构;网络化调速;RTL8019AS;TCP/IP;旋转编码器
随着网络通信技术和计算机技术的飞速发展,网络化控制已成为近二十年来控制领域的研究热点[1]。然而,目前的研究大都基于理论推导和软件仿真,实验验证则相对较少[2]。运动控制系统在工业、农业、军工等领域起着核心作用。直流电机因启动转矩大、调速性能好,在运动控制系统中得到了广泛应用。因此,开发直流电机网络化控制实验平台具有重要意义。近来,一些学者设计了网络化电机控制系统[3-6]。但研究的系统大都基于DSP或者ARM处理器,价格昂贵且系统软件实现复杂。另外,这些系统对电机转速测量研究的较少。
本文采用远程PC、STC89C516RD+单片机、以太网控制芯片RTL8019AS以及欧姆龙E6B2编码器等,设计实现了一种基于C/S结构的直流电机网络控制实验平台。该平台具有结构简单、成本低、开放程度高的特点。文中详细介绍RTL8019AS协议栈以及转速测量的软件实现。
本文设计的直流电机以太网控制实验平台采用C/S结构模式,其总体结构如图1所示。系统采用本地单片机作为服务器端,通过连接嵌入TCP/IP 协议的以太网控制器RTL8019AS实现以太网络通信接口,采用L298N作为电机功率驱动模块,利用旋转编码器实现电机转速的检测,实现网络化电机控制节点设计。采用内含各种复杂控制算法的计算机为客户端,作为网络控制器和网络化监视系统。
图1 直流电机网络控制系统结构图
2.1以太网接口模块设计
电机控制板上以太网接口模块选用Realtek公司高度集成的以太网控制器RTL8019AS,该芯片硬件上实现了以太网底层数据链路层(MAC)和物理层(PHY)协议。采用单片机STC89C516RD+作为控制核心实现对RTL8019AS的访问控制,RTL8019AS将数据包装为帧,经20F001N隔离再与RJ45接口相连。以太网接口模块硬件结构如图2所示。
图2 以太网接口模块硬件结构图
本设计中通过设置JP引脚使RTL8019AS工作于跳线模式,由IOS3、IOS2、IOS1以及IOS0决定I/O地址为0240H。单片机通过锁存器对P0口进行复用使其既可作低8位地址线(A7~A0),又可以作数据线(D7~D0)。RTL8019AS低16位地址端口SA15~SA0与单片机地址线A15~A0相连,高4位SA19~SA16直接接地。由于收发数据还需要一定的缓存空间,本设计中使用了62256作为外部存储器。为了区分片外的62256和RTL8019AS,将地址线最高位A15连接到62256的片选管脚,而对于RTL8019AS则将A15与A9交换。当A15为1时选通RTL8019AS,为0时选通62256。
2.2电机驱动模块设计
电机驱动模块总体结构如图3所示,选用ST公司电机驱动芯片L298N。L298N集成了两个H桥高电压、大电流驱动电路,可方便地驱动直流电机。L298N使能端ENA接STC89C516RD+的P1.5口,当ENA为高电平时,通过PWM信号输入端IN1(P1.3)和IN2(P1.4)控制电动机正反转[7]。为便于调试,系统里设置了按键sw1和sw2,通过连接P1.6和P1.7口实现电机加、减速。
图3 电机驱动模块结构图
2.3编码器信号采集电路
本文采用增量式旋转编码器(欧姆龙E6B2)测量电机转速,电路如图4所示。
图4 编码器信号采集电路
旋转编码器B、A两相输出经施密特触发器脉冲整形后,分别接到STC89C516RD+的P1.0和P1.1口,B、A相异或信号接P3.7口, P1.0和P3.7信号用于判别电机旋转方向,P1.1口采集旋转编码器的脉冲数以计算出电机转速;P3.3(INT1)口接旋转编码器Z相信号线实现零位检测。
单片机STC89C516RD+的P1.1通过设置中断计算出脉冲数,再通过M方法求电机转速;P1.0则是通过先比较B、A两路的高低电平,再将A⊕B的信号送入P3.7口,通过异或处理得到的电平值,判断出电机的正反转。在周期T内,A、B两信号存在4次高低电平变化,更容易判断旋转方向,如图5、图6所示。
图5 电机正转
图6电机反转
当A超前B时,电机正转,A⊕B周期内电平变化为:11、01、00、10;反之,周期内电平变化为:11、10、00、01[8-9]。
3.1以太网接口模块软件设计
以太网接口软件设计包括芯片的驱动以及精简TCP/IP协议栈的嵌入。芯片驱动主要是对RTL8019AS芯片进行初始化,使其能够进行正常的数据收发。软件流程如图7所示。
图7 以太网通信收发数据流程图
RTL8019AS的内存分成两个部分,分别用来保存以太网物理地址和缓冲区。缓冲区的地址为0x4000至0x7fff,接收和发送的数据都可以保存在这64页中。发送缓冲区分为两个大小相等的部分以交替使用,提高发送效率。该芯片偏移地址00H至1FH是I/O地址。00H至0FH是寄存器地址,CR寄存器可以控制需要访问寄存器所在的页数。芯片收发数据主要通过远程DMA和本地DMA端口实现,其过程是对相关寄存器进行读写来完成的。
除了RTL8019AS芯片的驱动程序外,还必须实现复杂的TCP/IP协议栈将数据包装成网络上规定的格式。TCP/IP协议栈为分层的结构,可以根据系统的实际应用,将不需要的协议进行删减。精简后结构如图8所示。
图8 协议栈分层及其数据封装结构
协议栈在处理数据时主要就是完成数据的拆包与封装。在接收数据时,按照协议解读其首部信息后把数据传递给上层协议。发送的数据则是通过协议的封装传递给下层。
在传输层中,本系统选择了可靠的TCP协议。网络层中实现IP协议,将上层的协议和硬件隔离开。每个网络适配器都有唯一的IP地址。IP和TCP协议中规定的端口号唯一确定了一个连接,因此可以确定数据传输的路径。除此之外还实现了ARP协议,用于将IP地址与MAC地址对应。由于资源限制,差错控制只实现ICMP协议中简单的回答报文,该协议用来测试网络是否连通。
3.2PWM信号软件实现
本设计中电机的转速由加在其两端的平均电压(改变电压的占空比ZKB)决定。要实现转速调节则必须改变电压值。通过单片机编写的PWM程序来分别控制L298N输入端IN1,IN2。PWM由中断进行控制,代码如下,其中的ZKB表示占空比,通过以太网通信获得。
void timer0(void) interrupt 1
{static uchar time=0;
TH0=0x9B; TL0=0x9B; ++time;
if(timegt;=100) time=0;
if(timelt;=ZKB) P1.2=1;
else P1.2=0;
}
3.3速度检测软件设计
速度检测主要利用STC89C516RD+内部定时器/计数器T2的计数功能实现,计数通过中断完成。置模式寄存器T2MOD的DCEN位为“0”以实现T2向上计数。置控制寄存器T2CON的外部使能标志位EXEN2 为“1”。 P1.1(T2EX)引脚信号的负跳变将触发T2的捕获或重装,捕获或重装标志位EXF2置“1”,系统响应中断,将标志位C/T2位和TR2位分别置“1”,T2启动计数。当T2计数达到预定值时,产生溢出,标志位TR2位置“0”,停止计数,中断返回。中断响应程序如下:
void timer2int(void)
{uchar i;
TF2=0;
P17=0;
if(TF2==1)
{TF2=0; TH2=RCAP2H; TL2=RCAP2L; n++;}
if(EXF2==1)
{EXF2=0;
if(i==0)
{ TR2=1;
i++;
}
//外部中断启动计数
else {reg1=RCAP2L;
//高位计数寄存器
reg2=RCAP2H;
//低位计数寄存器
i=0; TR2=0;
//停止T2计数
}
}
}
图9 编码器速度测量流程图
中断计数产生溢出之前,采用测速算法M法,即在时间TC内测取编码器输出脉冲个数M1,以计算这段时间内的平均转速。测速流程如图9所示。
3.4客户端软件设计
基于可视化VC++软件,采用C/S结构模式在远程PC端设计客户端程序。通过Socket技术[10]与STC89C516RD+进行以太网通信,该软件主要功能模块包括连接建立、转速设定及转速反馈显示。
该软件使用C++的Socket编程实现。用户可通过该软件连接到对应IP和端口的电机,并对其进行转速和转向的控制。其中还能够显示经编码器反馈的电机实时速度。
本文开发了一种基于C/S结构的直流电机网络化调速系统平台,着重介绍了平台软硬件设计。该实验平台具有结构简单、控制精度高、开放程度高的优点,具有广阔的应用前景。
[1] Shi Yang, Huang Ji, Yu Bo. Robust tracking control of networked control systems: application to a networked DC motor[J]. IEEE Transactions on Industrial Electronics, 2013, 60(12): 5864-5874.
[2] 庞中华, 刘国平, 郑耿, 等. 基于 NetCon 的网络化控制系统快速实现[J]. 化工自动化及仪表, 2009, 36(5): 79-83.
[3] 谢志远, 贡振岗, 杨星, 等. 基于 ARM 的中压 FTU 检测平台的设计[J]. 微型机与应用, 2012, 31(16): 16-19.
[4] 王新彪, 俞建定, 王青. 基于 ARM 的无刷直流电机控制系统的设计[J]. 微型机与应用, 2015, 34(16): 1-3.
[5] 冀石磊,夏继强,陶震宇,等.基于GPRS及CAN总线的远程电机群控制[J].单片机与嵌入式系统应用,2015,15(1):27-30.
[6] 张兴, 吴爱国, 刘玉明,等. 基于以太网的无位置无刷直流电机系统设计[J]. 仪表技术与传感器, 2015 (4): 69-72.
[7] 孙绪才. L298N在直流电机 PWM 调速系统中的应用[J]. 潍坊学院学报, 2009, 9(4): 19-21.
[8] 陈立兵,樊瑜瑾,代杰,等.基于AVR单片机的光电编码器定长系统设计[J].机床与液压,2012,40(13): 110-113.
[9] 靖朋, 王和明, 张景伟. 导弹角速度编码器组合测试系统信号源设计[J]. 电子技术应用, 2013, 39(2): 36-38.
[10] 刘业颜, 郑文. 基于WINSOCK 的远程信号采集与分析系统[J]. 机电工程技术, 2010,39(1): 28-29.
2017-04-18)
任康磊(1993-),通信作者,男,硕士研究生,主要研究方向:网络化控制、物联网、嵌入式。E-mail:15651632713@163.com。
张梦薇(1993-),女,本科生,主要研究方向:电气自动化。
Design of networked DC motor speed control experiment platform based on C/S framework
Ren Kanglei, Zhang Mengwei
(College of Automation, Nanjing University of Posts and Telecommunications, Nanjing 210023, China)
A networked DC motor speed control experiment platform is designed in this paper based on C/S framework. The RTL8019AS network controller is utilized to realize high speed communication between the client and the networked control nodes. Networked control nodes control the speed of the DC motors by PWM, and the speed of the DC motors is measured by E6B2 rotary encoder. The design of software and hardware in networked control nodes is stated detailedly. The experiment platform designed in this paper is characterized by simple structure, high control precision and high open degree.
C/S framework; networked speed regulation; RTL8019AS; TCP/IP; rotary encoder
TP39;TP274
A
10.19358/j.issn.1674- 7720.2017.22.031
任康磊,张梦微.基于C/S结构的直流电机网络化调速实验平台设计J.微型机与应用,2017,36(22):115-117,120.