基于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.com2.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服务实现
《基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现》相关文章
- › 基于8051的微控制器在系统编程
- › 基于802.16d的定时同步算法改进及FPGA实现
- › 基于8051单片机的频率测量技术
- › 基于80C552单片机的多芯片同步复位电路
- › 基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现
- › 基于80C196MC的步进电机恒转矩
- 在百度中搜索相关文章:基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现
- 在谷歌中搜索相关文章:基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现
- 在soso中搜索相关文章:基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现
- 在搜狗中搜索相关文章:基于80C166单片机PEC服务的PROFIBUS-FDL从站协议实现