首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
Linux2.6下自主设计的PROFIBUS-DP单主站的实时性研究
来源:本站整理  作者:佚名  2011-09-10 07:33:39



    在目前的工业现场总线中,对实时性的要求越来越高,实时性指标也成为工厂选择总线时的一个重要因素。PROFIBUS-DP现场总线作为目前国际上的一种通用现场总线标准,随着生产工艺对控制要求的提高,控制系统的实时性能要求也越来越高。
   为了提高PROFIBUS-DP总线的实时性,本文在严格按照协议完成自主设计的PROFIBUS-DP单主站情况下,探讨使用Linux操作系统提高PROFIBUS-DP总线实时性的方案,以及在单主站情况下提高PROFIBUS-DP总线实时性的可行性。
1 PROFIBUS-DP实时性分析
   实时性能主要体现在MAC层协议上,不同的总线采用不同的MAC子层协议,PROFIBUS-DP采用的是简化令牌总线协议。同时,测控周期是衡量PROFIBUS-DP系统实时性能的主要指标。
1.1 PROFIBUS-DP的MAC层协议
   PROFIBUS-DP采用简化总线令牌总线协议作为MAC层标准,其总线设备包括主站(1类主站和2类主站)和从站,系统组成如图1所示。

    对总线上的每一个站点分配一个地址,主站地址组成一个逻辑环,持有令牌的主站可以在持有令牌期间轮询访问从站。
   PROFIBUS-DP的介质访问控制协议(MAC)包括主站之间通过占有令牌取得总线的占有权的主主通信和主站与从站之间的主从通信两部分。本文考虑的是一个单主站系统,所以只探讨主从通信部分的实时性。
1.2 测控周期
   测控周期是指控制系统周期性访问网络上同一节点的时间间隔,记为Dcycle,它是衡量PROFIBUS-DP系统实时性的一个重要指标。它主要由周期性数据交换时间Tcycle、主站维护时间TGAP和非周期性数据交换时间Tacycle(包括参数配置、从站数据诊断、通信接口配置等)三部分组成。
   所以,当主站第一次上电,第一次与从站进行通信时,单主站的测控周期可表示为:
   
其中N表示系统中的从站个数。
1.2.1 周期性数据交换时间Tcycle
   一次典型的数据交换过程如图2所示。

 其中,Tbit表示在总线上传输1位所耗用的时间,是其他时间参数的计量单位。由于PROFIBUS-DP采用UART编码方式,每个字符由11位组成,所以传输一个字符需要11Tbit。
   从图2可知,一个报文循环由主动帧(请求或发送/请求帧)和回答帧组成。循环时间由帧传输时间、传输延迟时间和站延迟时间组成。所以:

1.2.2 主站维护时间TGAP
   当总线上同时存在多个从站时,主站需要与总线上的每个从站进行数据交换。对于单主站系统,该主站将一直持有令牌。所以,当主站处理完与一个从站的周期信息后,就会发出Request_FDL_Status去查询GAP中的一个地址,更新NS值,查找是否有其他从站已经在总线上等待与主站通信。
   由于PROFIBUS-DP主站是按地址递增顺序查找从站,并且Request_FDL_Status采用的是以SD1为起始符的报文帧,实际上,从站随时都监听着总线上的数据,所以当报文帧中从站地址与自身地址相同后,从站就会传递应答帧给主站。
   在实际应用中,总线上的从站地址一般都按顺序排列(如从站5、从站6、从站7),很少出现跳跃,通常为:
 
2 Linux2.6下PROFIBUS-DP的实时性分析
   由于是自主设计的PROFIBUS-DP主站(未采用协议芯片),所以Tsdr和TID1这两个参数完全由程序决定。如果能缩短这两个时间参数,则对PROFIBUS-DP的实时性能的提高有很大的意义。
2.1 Linux2.6的实时性分析
   Linux2.6内核相对以前的Linux内核在实时性方面有了很大的增强,包括O(1)调度器、可抢占式内核、改进的线程模型以及对新的NPTL(Native Posix Threading Library)的支持。
2.1.1 可抢占式内核
   在2.6版的内核中,引入了内核的可抢占性,只要调度是安全的,内核就可以在任何时间抢占正在执行的任务。也就是说,只要没有持有锁,内核就可以进行抢占。锁是非抢占区域的标志,由于内核支持SMP,所以,如果没有持有锁,则正在执行的代码就是可重入的,也就可以抢占。
2.1.2 定时器
   时钟粒度是否粗糙是制约实时性的一个重要方面。Linux2.6已将终端频率改为1 000 Hz,即时钟粒度为1 ms。
2.1.3 虚拟内存
   Linux2.6内核虽然支持虚拟内存,但是虚拟内存的使用将会带来系统响应时间的不确定性,所以在移植Linux内核时,应尽可能去掉虚拟内存虚拟内存机制,尽量保证应用程序直接访问物理内存。
2.1.4 调度策略
   Linux2.6中不但支持基于优先级的调度策略,还支持基于比例共享的调度策略。同时,Linux2.6内核进程调度算法的复杂度为O(1),这对于进程的切换效率有了很大的提高。

[1] [2]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:19,796.88000 毫秒