基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现
传输完成后,目的指针加1。这样,串口每接收到一字节,将触发一次PEC服务,由硬件将数据从串口接收缓冲器中取出,顺序放到帧接收缓冲区相应单元中,但当前执行的程序并不被中断;当16字节完全接收完成后,触发串口接收中断服务程序,进行帧的处理。
本文链接地址:http://www.oyaya.net/fanwen/view/149100.html
与传统的串口接收方式相比较,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服务实现
PROFIBUS-FDL从站的数据接收及应答过程分三个阶段完成:第一阶段,帧的完整接收;第二阶段,根据接收到的F
《基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现(第2页)》