新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Ethernet现场总线的多协议网络通信系统设计与实现

基于Ethernet现场总线的多协议网络通信系统设计与实现

作者: 时间:2016-12-20 来源:网络 收藏

点击放大图片

图7系统驱动程序框图

SERCOSIII协议初始化过程包括CP0~CP4五个阶段,CP0~CP3为接口初始化的阶段。CP4是正常通信阶段。其初始化流程图如图8所示。CP0的作用是检测环路是否闭合和确定环路的延时。在CPO阶段,主机通过发送同步信息来检测环路,当检测环路为闭合时,系统进入下一通讯阶段CPI,在CP0阶段的主要函数为void SendCP0(),它的作用是发送CP0阶段的信息,在CP0阶段MDT数据区40字节。AT数据区512字节。CPI是识别所有连接在环路上的伺服装置,主站向环路发送包含待识别的伺服装置地址的MDT与AT电报,其中MDT与AT发送时间小于650/us(下同),当环路上所有装置都作出正确的应答,则可以进入下一个通信阶段CP2。CPI阶段的函数主要为void SendCPl(),功能为发送CPl阶段的参数,在该阶段MDT、AT数据区均1280字节。CP2是通过非周期数据的传输,完成主站向各个伺服装置发送周期通信所需要的配置参数,实现过程与CPl阶段相同,MDT中包含每个从机的地址及配置数据,配置成功从站回复主站AT包作为应答。在CP2阶段的主要函数为发送函数void SendCP2()和参数配置函数void InitCP2Idn()。CP3是通过非周期数据传输设置各伺服装置的运行参数,在CP3阶段,主站向各从站发送MDT与AT报文,各伺服装置都能接收本机报文后回复AT作为应答,在CP3阶段主要的函数为发送函数voidSendCP3()和参数配置函数InitCP3Idn()。CP4是正常的通讯阶段,初始化CP4阶段实时数据队列函数InitCP4RTData()。在CP1~CP4的任何阶段中,从站只要超过65ms没有收到新的MDT0报文,则自动切换到CP0阶段。且在CPI~CP4的任何阶段中,从站收到主站发送的切换到CP0阶段的MDT报文,则强制切换到CP0阶段。

点击放大图片

图8 SERCOSIII初始化流程图

点击放大图片

图9 任务调度

2.4 kernel对象设计

为实现实时性的要求,处理器面对多任务时能及时有效地处理各个任务,因此软件系统采取任务的优化处理与调度也即核心对象所要做的工作,其任务调度机制如图9所示。



评论


技术专区

关闭