基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现

[09-12 17:48:34]   来源:http://www.88dzw.com  单片机学习   阅读:8517

文章摘要:2.3 PEC服务应用优势以串口接收一帧16字节的数据为例。若采用传统的串口接收方式,每接收到一字节,产生一个中断;在中断服务程序中,要将它从串口接收缓冲器中取出,顺序放到帧接收缓冲区相应单元中;当接收满16字节后,进行帧处理。如果采用PEC服务的方式,只要事先定义好PEC通道就可以了。首先,定义串口接收中断优先级为14或15以及与之相关联的PEC通道。即定义相应PEC通道控制寄存器为:COUNT为16字节传输,源指针为串口接收缓冲器,目的指针为帧接收缓冲区首址且每次传输完成后,目的指针加1。这样,串口每接收到一字节,将触发一次PEC服务,由硬件将数据从串口接收缓冲器中取出,顺序放到帧接收缓冲

基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

2.3 PEC服务应用优势

以串口接收一帧16字节的数据为例。若采用传统的串口接收方式,每接收到一字节,产生一个中断;在中断服务程序中,要将它从串口接收缓冲器中取出,顺序放到帧接收缓冲区相应单元中;当接收满16字节后,进行帧处理。

如果采用PEC服务的方式,只要事先定义好PEC通道就可以了。首先,定义串口接收中断优先级为14或15以及与之相关联的PEC通道。即定义相应PEC通道控制寄存器为:COUNT为16字节传输,源指针为串口接收缓冲器,目的指针为帧接收缓冲区首址且每次传输完成后,目的指针加1。这样,串口每接收到一字节,将触发一次PEC服务,由硬件将数据从串口接收缓冲器中取出,顺序放到帧接收缓冲区相应单元中,但当前执行的程序并不被中断;当16字节完全接收完成后,触发串口接收中断服务程序,进行帧的处理。

与传统的串口接收方式相比较,PEC服务方式在进行数据传输时不中断当前程序的执行,因此节省了大量的上下文切换时间,处理机效率得到大大提高。

下面讨论采用80C166的PEC服务实现PROFIBUS-FDL从站协议的方法。

3 PROFIBUS-FDL帧结构分析

3.1 PROFIBUS-FDL帧结构

PROFIBUS帧的格式有多种形式,但对于从站来说,只要处理三种帧即可。

.无数据且长度固定的帧:

.带数据域且长度固定的帧:

. 带数据域且长度可变的帧:



其中,各字段说明如下:

SD1:无数据帧的开始定界符,#10H;

SD2:可变长度帧的开始定界符,#68H;

SD3:固定长度帧的开始定界符,#A2H;

ED:结束定界符,#16H;

LE与LEr:LE与LEr相同,都表示长度占一个字节,它是DA+SA+FC+DATA-UNIT的字节数总和;

DA与SA:DA目的站地址与SA源站地址各占一个字节;

FCS:校验段,占一个字节,它采用不计进位的求和运算得到校验码。校验域为DA+SA+FC+DATA-UNIT;

FC:帧控制字字段,占一个字节;

SYN:同步字段,至少33空闲位(逻辑电平1),但仅在请求帧及令牌帧前出现,不允许在字符之间出现。

3.2 PROFIBUS帧结构的特点

从上面的帧格式可以看出帧的长度不固定。发送时,帧的长度是已知的;但接收时,帧的长度是未知的。因此,要提高接收效率,只能采用分段方式接收,随时解析和保存关键信息,并确定随后接收的字节数。

4 PROFIBUS-FDL从站协议的PEC服务实现

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行