基于TTP可靠通信的电机监控系统
2019-06-20华国琳赵怀林祝波
华国琳 赵怀林 祝波
摘 要: 针对一般单通道通信系统存在信道堵塞和通信失败后仍继续工作造成的系统可靠性低的问题,设计一种基于TTP通信的三节点控制通信模型,采用双通道冗余传输,主要目的是防止数据堆积冲突、因通道损坏导致的数据丢失问题。将LabVIEW作为系统的上位机开发平台,对电机进行监测和控制。STM32作为系统的控制器,各节点之间的信息交换通过基于时间触发的通信系统完成,排除了事件触发的资源共享冲突问题,为系统提供了良好的安全性保证机制,使系统的可靠性和实时性得到保障。
关键词: 电机监控系统; TTP通信; 双通道冗余传输; 信息交换; 通信系统; 时间触发
中图分类号: TN918?34 文献标识码: A 文章编号: 1004?373X(2019)10?0040?04
Motor monitoring system based on TTP reliable communication
HUA Guolin1, ZHAO Huailin1, ZHU Bo2
(1. School of Electronics and Electrical Engineering, Shanghai Institute of Technology, Shanghai 201418, China;
2. Department of Computer Science and Technology, Tsinghua University, Beijing 100018, China)
Abstract: Since the general signal?channel communication system has the problems of channel blockage and low system reliability caused by continued operation after communication failure, a three?node control and communication model based on TTP communication is designed. The main purpose of adopting the dual?channel redundant transmission is to prevent data stack collisions and the data loss caused by channel damage. The motor can be monitored and controlled by using the LabVIEW as the upper computer development platform of the system. The STM32 is taken as the controller of the system. The information exchange between nodes is completed by the time?triggered communication system, which can eliminate the event?triggered resource sharing conflicts, provide a good security guarantee mechanism for the system, and ensure the reliability and real?time performance of the system.
Keywords: motor monitoring system; TTP communication; dual?channel redundant transmission; information exchange; communication system; time trigger
目前,針对电机的监控系统研究有很多[1?3],但是对于实时性监控系统来说,需要其具有较高的可靠性。文献[1?2]使用CAN总线,但在节点受到干扰时可能产生Babbling Idiot错误,造成信道出错堵塞,且成本较高。文献[3]使用RS 232总线,其抗干扰能力差,传输距离近,并且在传统单通道系统中,通道损坏就会导致系统的崩溃。TTP采用双通道冗余发送结构,基于时间触发的思想,采用时分多址复用技术(Time?Division Multiple Access,TDMA),数据通过两条相同的通道进行传输[4],避免了传输过程中单通道故障问题。它将一个集群周期分成n个可不等长的时隙,总线上各节点占用每个周期规定的时隙用于发送、接收信息,最后形成一个统一的消息时刻表,在同一时间段内只允许一个节点发送消息。在这种触发模式下,数据以全局统一的时刻表进行传输,各节点之间的通信不会有所冲突[5]。这样既减小了对数据缓冲区的需求,同时总线的利用率也有极大的提高。
1 监控系统总体方案设计
本文的方案设计基于TTP协议和RS 485物理总线,由上位机软件、控制器、驱动器、电机构成。以一片STM32控制器作为TTP架构的主节点,与两片STM32从节点之间进行TTP通信的方案,并通过RS 422总线将PC机与主节点相连以达到监控目的。
整个系统结构框图包括上位机系统和TTP系统两部分,定义了合理的数据帧格式和和校验方式,建立了电机监控模型,如图1所示。上位机系统生成连续的控制指令,通过RS 422总线将指令发送到STM32主节点控制器完成指令的拆分和装配,后经主节点将信息广播到TTP总线(两路RS 485)上。从节点接收到总线上的数据后按照要求控制驱动电路产生控制电机的电压,使电机运行起来达到对电机控制的目的。同时将实际电机位置等反馈信息通过各自节点进行数据采集整理成帧后发送到TTP总线上,经主节点对数据进行整合后,发送到电脑由上位机软件进行实时显示。
图1 系统结构框图
2 TTP时间触发总线架构的设计与实现
2.1 基本架构和运行机制
TTP架构为一个包含3个节点的集群系统,这3个节点构成了一个TTP集群,这里将其配置为总线型拓扑结构,如图2所示。其中每个节点都由主机、通信网络接口(CNI)和TTP控制器构成,多个节点之间通过两个相同的RS 485物理层通道(通道0、通道1)连接。主机负责信息的接收以及相应的处理,通过CNI完成与TTP控制器之间的数据交换;TTP控制器包括TTP协议处理器、TTP信息描述表(MEDL)、负责节点与总线通信的时间同步和消息的收发,规定了消息的收发时间以及数据在CNI中所存放的位置。
节点的协议控制器用STM32来实现,通过两路RS 485总线进行时间触发通信。STM32作为TTP协议的控制器,向上通过主机接口与主机之间进行交互,包括控制指令、实际测量数据的传输以及MEDL表的配置部署[6];运行时通过STM32控制器完成对TTP协议框架的调度运行,包括与TTP集群完成时钟同步、本地时间的精准定时以及数据的发送接收等。TTP的基础是时钟同步,以此为思想实现了一种时分多址访问(TDMA)方案。TTP定义了MEDL列表,为每个节点分配了一个特定的时间段,保证各个节点在一个TDMA周期内无冲突地在各自时间槽内完成任务[7]。
图2 TTP基础架构
这里设置TDMA周期为10 ms,根据TTP要求,将一个TDMA周期划分为3个时隙,每个节点的时隙长度可以不等长,各节点的时间槽分配如图3所示。在每一个TDMA周期内,3个节点互相协调完成数据的接收、处理、发送等任务。第1时隙从0 ms开始,节点1(主节点)上电复位初始化后接收上位机信号发送控制信息广播到TTP通道上,从节点正常启动后根据MEDL表中预置的时序逻辑执行任务,第2时隙和第3时隙由节点2和节点3应答节点1的数据信息,其余时间用于处理节点的其他非通信类任务。从节点接收到通道上广播数据的同时启动定时器,使从节点在各自的时间槽内工作。接收模块接收到数据经校验无误后,解析有效数据段以供各节点完成任务。各节点完成接收、发送任务后均回到时序判断状态,等待下一个数据。
图3 TTP通信时序
2.2 群启动过程
TTP的关键在于建立一个全局统一的时钟。系统在上电或者重新启动时,系统中所有的节点都试图与群同步,以达到时间同步和状态一致的目的[8]。在启动过程中,各节点控制器完成上电初始化后,主节点进入工作状态周期性的连续发送控制指令;从节点进入监听状态等待接收主节点的控制帧,并通过接收到的数据帧调整本地时间信息,与群同步后進入工作状态开始发送信息。
2.3 数据帧格式
TTP协议中每一个数据帧最少携带1 B的用户数据,最多可以携带240 B的用户数据[9]。根据TTP协议以及实际应用需求,制订了如图4所示数据帧格式。
图4 数据帧格式
数据帧的总长度为64 B,由帧头段、有效数据段和校验位组成。帧头用于指示一帧数据的开始,这里将帧头设置为“EB90”。接收方通过对这个特殊字符的判断从数据流中识别出一帧数据的起始,如果接收到数据帧的起始2 B不是“EB90”,则视为无效。之后通过数据帧的信息长度确定出数据帧的终止位置,建立和区分出帧的边界;帧ID用于确定当前数据帧在整个集群周期中的位置,在通信总线上每一个节点都有一个惟一的ID号,用于进行主从设备之间的确定以及对数据帧的识别。有效数据段长度可变,用于传输实际的应用数据。和校验用于校验帧头和有效数据段的正确性,长度设置为1 B。校验和是指传输位数的累加,传输完毕后,接收者通过校验和来判断是否完整地接收到了所有数据。如果帧头和有效数据段的累加数值与和校验位的数值相匹配,那么说明已经成功准确地完成了数据帧的接收。
2.4 双冗余度判断
TTP控制器采用双冗余设计,每个控制器中都包含有两个相互独立的收发模块,这使得系统具有很高的可靠性,即使一路通道损坏,也可以切换到另一通道继续完成通信任务。主节点发出的数据同时发送到从节点两个总线收发器中,从节点接收到数据后按照如表1所示的算法对双通道进行选择。其中通道0(通道1)接收到数据并且经数据和校验无错误后,将其标志位Flag_0(Flag_1)置1,管理模块优先选择通道0作为有效通道。当系统中任一通道接收到有效数据并经和校验无错误后,冗余管理模块判定数据接收成功,使用此通道作为后续发送通道,并将标志位信号清零。
表1 冗余接收管理
2.5 测试与实验
根据对系统框图以及数据帧协议的定义,设计的TTP系统网络包含有3个节点。其中:1号节点作为主节点,负责控制数据帧的发送;2,3号节点作为从节点,完成对采集整理后的数据进行发送。每个TDMA周期开始时由主节点发送同步帧,之后2,3号节点依次发送数据帧。以10 ms为周期,1,2号节点的时间槽为3 ms,3号节点的时间槽为4 ms,波特率设置为921 600 b/s。
图5为用示波器测得的三个节点数据发送端波形,各节点相邻两帧数据间隔的时长为10 ms,即TDMA周期为10 ms,与设计周期一致。3个节点均处于工作状态,在每个TDMA周期内均发送一次数据,并在各自的时间槽内按顺序发送信息避免了多个数据重叠而产生的冲突,无传输失败数据。
图5 测试波形
设置示波器解码为总线格式,将示波器的1通道设置为输入,调整合理阈值以及对通信的波特率、奇偶校验、数据位等参数进行通信配置后,节点1(主节点)发送空指令的传输数据的示波器截图如图6所示。以“EB90”作为帧头, “01”为帧的ID码,“8B”为当前数据帧的帧计数, 符合TTP通信协议的要求。
图6 节点1总线解码值
3 LabVIEW显示
LabVIEW利用PC机强大的软件功能来完成信号数据的运算、分析、处理操作,并由I/O接口设备完成信号的采集、测量与调理,从而完成各种测试功能[10]。LabVIEW软件使用VISA配置串口节点,通过对通信的串口号、波特率、奇偶校验、数据位、停止位、流控制等参数的配置,达到与主节点STM32板串口通信的目的。这里选择对应的串口,设置波特率为460 800 b/s,数据位为8,无奇偶校验,停止位为1,以此完成物理层的配置,通过RS 422总线完成PC接口与TTP主节点的连接。
通过软件编写,使上位机具有对来自主节点的数据进行接收、存储、处理显示的功能,各功能在总线上并行运行互不冲突。通过“2路时序指令”子vi对控制信号的类型、幅值、频率等参数进行配置,生成连续的控制指令,使电机按照操作人员的要求运转。
端口配置好之后,对来自节点1的数据进行读取解析。上位机接收到数据后,通过对帧头“EB90”的寻找确定出一帧数据的帧头,帧头后的14 B分别为数据的功能码、数据位、和校验位。通过计算校验和来验证数据帧的准确性,确认数据帧无误后,将数据帧存入队列,以供显示循环读取,再对数据帧进行解析从而得到各种有效信息,并在上位机界面上显示出来。与TTP架构的同步周期一致,上位机每10 ms接收、发送一次数据。图7为上位机接收到的来自TTP系统的数据,数据波形为由多个连续的数据点组成的正弦波。相鄰两个数据点的间隔为10 ms,数据连续且没有数据帧丢失。
图7 上位机显示图
4 结 论
本文设计并实现了基于TTP系统的电机监控系统,STM32控制芯片基于时间触发完成系统工作。由于其双通道设计的特点,在数据传输过程中即使一路通道损坏也能够无缝切换到另一路通道以实现数据的成功传输,能够有效地实现各个单元之间的控制和通信功能。本文还设计了对应的上位机软件以达到对电机系统实时监控的目的,可以对TTP系统接收的数据进行数据处理、显示、存储。所提系统工作可靠高效,能够快速监测到电机运行情况,以防事故的发生。
参考文献
[1] 张慧,李智明.基于DSP和CAN总线的电机监控系统设计[J].南通纺织职业技术学院学报,2010,10(3):12?15.
ZHANG Hui, LI Zhiming. The monitor system of motor based on DSP and CAN?bus [J]. Journal of Nantong Textile Vocational Technology College, 2010, 10(3): 12?15.
[2] 徐少波,王洪辉,庹先国,等.无刷直流电机无线网络监控系统[J].仪表技术与传感器,2016(10):54?57.
XU Shaobo, WANG Honghui, TUO Xianguo, et al. Design of wireless network monitoring system for brushless direct current motor [J]. Instrument technique and sensor, 2016(10): 54?57.
[3] 苏昌伟,肖潇,谢红骏,等.基于RS 232电机驱动控制器调试、监控辅助系统的开发[J].轻工科技,2013,29(5):103?104.
SU Changwei, XIAO Xiao, XIE Hongjun, et al. Development of motor drive controller debugging and monitoring auxiliary system based on RS 232 [J]. Light industry science and technology, 2013, 29(5): 103?104.
[4] RODRIGUES E M G, GODINA R, POURESMAEIL E, et al. Hybrid time triggered protocol for home wireless communications [C]// Proceedings of IEEE International Conference on Environment and Electrical Engineering and IEEE Industrial and Commercial Power Systems Europe. Milan: IEEE, 2017: 1?6.
[5] HANZALEK Z, TUNYS T. Mixed?criticality scheduling of messages in time?triggered protocols [C]// Proceedings of 10th IEEE Workshop on Factory communication systems. Toulouse: IEEE, 2014: 1?4.
[6] 毛亚鹏.基于DSP的时间触发总线设计与实现[J].计算机测量与控制,2016,24(8):209?211.
MAO Yapeng. Design and implementation of time?triggered protocol on DSP [J]. Computer measurement & control, 2016, 24(8): 209?211.
[7] 陈思,葛红娟,杨宗翰,等.基于TTP协议的飞机配电系统通信仿真研究[J].航空计算技术,2014,44(6):95?99.
CHEN Si, GE Hongjuan, YANG Zonghan, et al. Research on simulation of communication in aircraft power distribution system based on TTP protocol [J]. Aeronautical computing technique, 2014, 44(6): 95?99.
[8] 张兴隆,苏罗辉,杨敏.基于FPGA的时间触发协议控制器实现[J].系统仿真学报,2010,22(z1):114?118.
ZHANG Xinglong, SU Luohui, YANG Min. Implementation of a time?triggered protocol controller on FPGA [J]. Journal of system simulation, 2010, 22(S1): 114?118.
[9] 张文豪.基于Zynq的TTP/C总线控制器设计与验证[D].南京:南京航空航天大学,2016.
ZHANG Wenhao. Design and verification of TTP/C bus controller based on Zynq [D]. Nanjing: Nanjing University of Aeronautics and Astronautics, 2016.
[10] 于洋,于文波,徐立波,等.虚拟仪器的发展现状及其应用[J].洛阳师范学院学报,2015,34(2):48?51.
YU Yang, YU Wenbo, XU Libo, et al. Status quo and application of virtual instruments [J]. Journal of Luoyang Normal University, 2015, 34(2): 48?51.