TTCAN在风力发电控制系统中的应用
1 引言
近几年,风力发电产业开始进入一个高速增长期[1],而随着风电的火热,风力发电控制技术也得到了快速的发展。本文所设计的风力发电控制系统采用模块化设计,应用于1兆瓦风力发电控制。设计包括了主控制器模块、i/o模块、电网测量模块和变桨驱动模块,各模块间通过can总线连接进行通讯。
由于传统的can网络没有统一的全局时钟,本质上是以事件触发为基础的总线系统,会经常存在总线时序混乱、报文发送冲突导致发送延迟等弊端,影响系统的实时性[2]。尽管事件触发can在报文发送失败后提供自动重发功能,但是发送的延时会导致报文帧发送的确切时间难以预料,从而导致can网络报文发送周期的抖动。所以报文发送时倘若发生传输错误,报文的重传会加重can总线的负担,很可能造成某报文帧因重传的延时而错过其有效时间[3],实时性大打折扣。而采用时间触发的ttcan协议,保证任何时候总线上只有一条信息传输,能有效地避免冲突造成的总线仲裁,避免报文重传,在具有较多节点且通讯量较大的can总线通讯中,能更好地控制通讯周期,提高系统的实时性。本论文设计采用基于ttcan的can总线通信方式来实现分布式风力发电控制系统各模块间的数据通信。同时结合冗余措施,旨在提高控制系统的实时性和可靠性。
2 系统结构
图1为本控制系统总体结构图,系统包括cpu模块、变桨伺服卡模块、3个i/o模块和电网测量模块一共6个模块节点。系统选用infineon公司xc164cs单片机来完成总线架构。xc164cs所具有的twincan模块包括两个全功能can节点,与外扩can芯片相比在保证速度和稳定性的同时也为软件编程提供了方便。两个全can节点中的每一个都能接收和发送带11位标识符的标准帧和带29位标识符的扩展帧。两个can节点共享twincan模块的资源,目的是优化can总线通信处理以及使cpu负荷最小[4]。全can功能与fifo结构的灵活组合可满足复杂嵌入式系统的实时要求。同时它具备禁止重发功能,所以利用各个模块xc164cs单片机的twincan模块可以很方便地组建控制系统各模块间双冗余的ttcan通信网络。
图1 风力发电控制器系统总体框图
3 ttcan原理与实现
ttcan是在传统can的基础上融入时间触发机制,任何动作都是由一个时间(全局同步)系列决定的[5],它将通讯周期分割成若干时间片,同时分配给各个节点,形成一个调度时刻表,总线上各个节点严格遵照该时刻表在各自的时间片中进行can数据收发[6],如图2所示,当系统时钟到达3ms和6ms时,发送报文a;到达5ms和9ms时,分别接收报文b和发送报文c。网络内所有的报文活动都安排在一个这样的周期性的时刻表内,得到了系统信息阵,来控制所有节点正常有序的进行通讯。从而保证任何时刻总线上只有一条数据传输,避免总线仲裁,确保了系统实时性,所以ttcan的设计实际上是制定能满足系统控制周期的can节点调度时刻表[7]。
图2 ttcan时刻调度表
在ttcan网络中,节点的同步是靠所谓的参照报文维持的,如图3,它由一个特殊的节点定期发送,这就是时间主机(主节点)。参照报文也是一个can数据帧,其特征在于它的标识符。有效的参照报文同时被所有节点识别。两个参照报文之间的时间构成了can传输的基本周期,基本周期又由很多时间窗组成,在每个时间窗中可进行特定的报文操作[8]。每一个有效参照报文启动了一个新的基本循环,并且引起了每一个节点的循环时间复位,于是另一个基本循环重新开始,也就是说,ttcan的时间触发通信是基于参照报文的周期通信[9]。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码