摘要:提出一个使用FPGA和ARM微控制器实现Profibus-DP主站(1类)通信平台的解决方案;解析了Profibus-DP通信协议,重点是令牌轮转协议;给出了该主站通信平台的系统构建。该通信平台可以独立实现Profibus-DP主站(1类)与其他主站(1类和2类)的令牌传递的主主通信功能,以及其与从站的主从通信功能。
关键词:Profibus-DP;主站;令牌传递;FPGA;ARM
引言
Profibus-DP是由西门子公司推出的一种开放式现场总线标准,用于现场级分布式自动化外设之间的高速数据传输。Profibus在2007年4月突破2000万节点大关。据PI(世界性的现场总线Profibus用户组织)称现在已经超过2 500万个节点,并希望在2012年突破5 000万个节点,年销售芯片450万个。
目前国内业界对于Profibus-DP的研究和相关产品的开发都是基于国外提供的专用协议芯片(主站多数采用西门子推出的ASPC2,从站多采用SPC3等智能通信芯片),而没有协议芯片样机开发的相关报道。对于主站的开发,国内一些科研院所(北航706教研室、中科院、浙大等)也曾利用可编程逻辑器件配合MCU设计出简单主站的试验产品,但是这些产品仅能实现单主站的功能,对于组成强大的Profibu-DP网络还望尘莫及。为了打破国外芯片的垄断,推动国内相关芯片及产品的开发,本文提出了一种FPGA与ARM相结合的方式解决Profibu-DP 1类主站的主主通信及主从通信问题,实现了比较完整的主站研制方案。
1 Profibus-DP主站通信机理及技术特性
1.1 Profibus-DP主站通信协议
Profibus协议的结构以OSI为参考模型,DP使用第1层、第2层和用户接口,第3层到第7层未加以描述。一个DP系统既可以是一个单主站结构,也可以是一个多主站结构,本文涉及的是多主站结构。多主站结构使用混合的总线访问控制机制,主站之间采取令牌控制方式;令牌在主站之间传递,拥有令牌的主站拥有总线访问控制权;主站与从站之间采取主从的控制方式。
令牌是一种特殊的报文,如下所示:
SD为开始分界符,DA为目的地址,SA为源地址。令牌环是所有主站的组织链,按照主站的地址构成逻辑环。在这个环中,令牌在规定的时间内按照地址的升序在各主站间依次传递,用户通过编写令牌传递程序保证每个主站在一个确切规定的时问内得到令牌,之后该主站就可以在规定的时间内与所属从站通信,也可与所有主站通信。其中主站与所属从站间的数据通信由主站按已确定的循环顺序自动地进行处理。
1.2 令牌循环时间分析
最坏情况下令牌循环时间为:
其中,TTH为站点令牌保持时间,TTS为令牌的整体传输延迟,TMA为令牌维护时间。在不考虑出错重发的前提下,N个主站令牌的整体传输延迟TTS=N·TTK,TTk是发送令牌PDU(协议数据单元)需要的时间。高优先级报文的传送时间为THMS,报文数量为M;低优先级报文的传送时间为TLMS,报文数量为L。假设所有站点的报文服务均含有应答,则代入上述公式可得:
2.2 ARM控制器部分程序设计
ARM控制器程序对应于Profibus通信协议数据链路层之上的DDLM直接数据链路映射程序、主站通信状态机、应用层数据接口及应用层。
本设计对Profibus-DP协议按层次封装为函数,层层调用。
2.2.1 Slave_Handler状态机
Slave_Handler状态机功能块负责实现主从通信功能,根据从站状态做出相应处理,有固定的处理次序,每次调用Slave_Handler状态机产生一个DDLM请求,从而控制从站进入相应的通信状态。Slave_Handler状态转换图如图2所示。