新闻中心

EEPW首页>嵌入式系统>设计应用> EPA通信协议在μC/OS-II的设计

EPA通信协议在μC/OS-II的设计

作者: 时间:2016-10-08 来源:网络 收藏

1. 引言

本文引用地址://m.amcfsurvey.com/article/201610/305668.htm

《用于工业测量与控制系统的EPA系统结构与通信规范》(以下简称EPA)是基于工业以太网的实时通信规范,它有效地解决了以太网通信的确定性通信问题,进而可以应用于多种工业领域,构成各种工业测量与控制系统。该规范将收录在制定中的实时以太网国际标准IEC61784-2中,成为我国首例具有自主知识产权的现场总线标准;开发和实现EPA通信协议是应用EPA系统的基础和前提。

μC/OS-II是一种占先机制的实时多任务嵌入式操作系统,具有源码公开、可移植、可固化、可裁剪等特点,已经得到广泛的应用。相对于同为源码公开的μClinux,它具有内核小、实时性高等特点,更适合于控制应用。μC/OS-II作为EPA通信协议的实现平台,能够较大的提高系统资源利用率,利用优先级划分获得较好的实时响应性能,其任务间多种通信方法有助于实现各实体协议状态机。

2. EPA通信协议与模型

EPA系统采用ISO/OSI开放系统互连模型(ISO 7498)的第一、二、三、四和七层,并增加用户层。系统中除了采用普通以太网协议组件外,有些层增加了部分实体,以适应EPA通信的需求:

增加的用户层包含EPA功能块应用进程与非实时应用进程。应用层增加了由EPA系统管理实体、EPA应用访问实体和EPA套接字映射实体组成的EPA协议,三个实体分别实现EPA设备管理、应用通信服务、应用层与UDP/IP软件实体之间的映射接口和报文优先发送管理、报文封装、响应信息返回、链路状况监视等功能。在MAC层和IP层之间增加EPA通信调度管理实体,对EPA设备向网络上发送的报文进行调度管理。调度策略采用分时发送机制,将报文分为周期报文和非周期报文,按预先组态的调度方案,在相应的时间段内发送,以避免碰撞。各设备网络时间由时间同步组件维护其一致性。EPA管理信息库为各层协议实体提供操作所需信息,包括设备描述对象,链接对象等。

按照EPA通信协议,每个EPA设备由至少一个功能块实例、EPA应用访问实体、EPA系统管理实体、EPA套接字映射实体、EPA链接对象、通信调度管理实体以及UDP/IP协议等几个部分组成。各个实体和对象通过互相调用,协同完成设备间通信过程如图1示:

3. 实现平台

本文实现EPA通信协议的硬件结构如图2所示,通信卡CPU为RABBIT2000微处理器,它是Rabbit半导体公司所生产的8位微处理器,工作主频22.1MHZ,工作电压5V,具有40个通用I/O引脚。内建日历、时钟、看门狗、定时器、多级中断、双DMA通道,数据存储为128K静态存储器和 256K 动态存储器,可外扩4~8MB FLASH,对于通信协议栈和小型控制应用,其存储空间是足够的。

由zworld公司提供的基于Dynamic C的软件开发平台集编程、编译、链接、调试、下载于一体,提供完善的TCP/IP协议栈,支持全功能RS232/485通信,配备了各种I/O驱动函数库;文件管理系统可在FLASH或SRAM上建立数据文件,便于存储系统或用户数据;开源的协议库不但缩短了软件开发周期,而且便于修改以更好的实现EPA通信协议。

通信卡通过以太网模块接口与EPA网络相连,通过串口RS-232与电动执行器连接形成一个底层IO设备,挂接在EPA网络上进行测试。

RABBIT2000支持协作式(使用costate)和占先式(移植μC/OS-II)多任务模式,选择占先式模式基于以下两点考虑:

(1)对于EPA设备来说,系统实时性是一个很重要的指标,表现在经过组态后功能块模块的执行时间精度、通信调度发送周期性报文的时间精度,以及时钟同步的精度,而且这几个参数在很大程度上影响了网络带宽利用率。μC/OS-II具有任务执行时间的可确定性,可以很好的满足系统的实时性要求。

(2)EPA设备可以直接在通信卡的接口上进一步开发实现,同时需要增加用户层任务进程,而RABBIT2000是8位微处理器,资源比较有限,因此基于任务可扩展性考虑,也应该采用占先式任务调度方式。

4. 软件设计与实现

4.1 通信协议的模块化设计

从数据处理角度上看,EPA设备通信是对控制过程所需要数据进行处理和通过EPA网络传输的过程,发送方从上到下各层依次对应用进程或者管理服务数据进行处理和封装,接收方则进行解包和处理,将服务数据交给应用进程。因此,协议软件设计主要是系统各模块对服务数据的处理程序的设计。EPA通信卡的功能主要包含系统管理、应用服务、时钟同步、实时调度等。需要编写的功能模块有EPA服务栈模块、套接字映射模块、时间同步模块、通信调度模块。

(1)EPA服务栈模块:系统管理服务包括设备查询、设备声明等服务,应用访问服务包括域操作服务、事件操作服务、变量操作服务,各种服务对相应的服务报文进行处理。 以域下载服务为例说明服务栈的实现流程如图3示。

(2)EPA套接字映射模块:对服务栈数据进行封装,并作为与UDP层之间的数据接口,其接口函数包括创建与关闭EPA套接字函数、发送应用服务报文与响应报文函数,发送系统管理报文与响应报文函数,从UDP层接收应用服务与系统管理报文函数等。EPA套接字开UDP套接字的实现语句如下:

if(!udp_open(gEPA_AP_Sock, EPA_AP_PORT, -1, EPA_AP_PORT, NULL))

SockErr=1;

else SockErr=0;

(3)时钟同步服务的实现采用IEEE 1588精确时钟同步协议,该协议用于分布式系统中的设备通过以太网的亚微秒级时钟同步。设备与主时钟通过交换同步报文而实现同步,同步报文分为同步信息(Sync)、附加信息(Follow_Up)、延时请求(Delay_Req)、延时响应(Delay_Rsp)四种报文。同步过程分两个阶段,第一阶段通过Sync和Follow_Up报文测量时间偏差,第二个阶段通过Delay_Req和Delay_Rsp测量延迟(网络延迟和协议栈延迟),进一步校正偏差。为了进一步减少协议栈带来的延迟,可以让时间同步服务尽量接近物理层,这里通过修改TCP/IP库文件实现。


上一页 1 2 下一页

关键词:

评论


相关推荐

技术专区

关闭