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

时间:2020-10-11 11:14:17 理工毕业论文 我要投稿

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

摘要:在详细分析西门子80C166单片机PEC服务工作机制和PROFIBUS-FDL帧格式的基础上,提出了基于该种单片机PEC服务机制的PROFIBUS-FDL从站协议的实现方法,并在实际工作中得到成功应用。

当前工业设备制造技术正向高性能、专用化、分布式、网络化方向发展。以前,大量使用PLC实现的控制系统,实践证明虽然安全可靠,但由于PLC本身的技术原因,很难达到更快速的实时控制要求?它们正被高性能的嵌入式专用控制器替代。这种专用控制器的设计,可以进一步提高设备的控制性能;引入现场总线技术,保证专用控制器的系统可集成性,以适应当前分布式、网络化的应用趋势。

本文是在研制棒材生产线飞剪的专用控制器时涉及的一个子课题。为保证该控制器能与现有PLC网连接以及与远程操作站通信,在几乎不增加硬件的基础上,利用核心CPU——西门子80C166所具有的一个类似DMA的功能高效率地实现PROFIBUS-FDL从站协议。

1 西门子80C166单片机

80C166单片机是西门子C166系列16位嵌入式微控制器的第一代产品。其体系结构如图1所示。它结合RISC处理器的优点,克服了CISC处理器在嵌入式应用中的瓶颈;在25MHz时钟频率下,可达到12.5MIPS,几乎所有的指令执行时间小于80ns;在指令处理上,采用四级指令流水线管道结构;在存储管理上,统一线性地址空间可达256KB,具有段?代码?、页?数据?式管理机制;采用寄存器池,上下文切换时间只要80ns;16位乘法400ns,32位除法800ns,中断响应时间最慢400ns;外部事件控制器PEC服务具有类似DMA的功能,可实现存储器与外设之间的高速数据传输;丰富的在片外设:1KB RAM、10路A/D、76路I/O、7个定时器/计数器、16个比较/捕获单元、2个串行通信接口、在片的WATCHDOG等。

图1 西门子80C166体系结构

2 80C166的PEC服务

2.1 80C166的PEC服务机制

PEC是外部事件控制器的英文缩写。PEC服务是80C166提供的一种特殊数据传输机制。其目的是在原有的中断控制器基础上,用较小的硬件代价、尽可能少占用处理机周期实现内存与外部设备的快速数据交换?类似DMA,但无需专用的DMA控制器?。80C166有8路PEC服务通道。用PEC服务进行一次数据传输,仅占用处理机一个机器周期?20MHz时100ns,且不影响当前程序的执行。

2.2 PEC服务的工作过程

通常,当普通中断事件发生时,系统将保存当前CPU状态PSW和程序的地址;然后,根据不同的中断源,进行上下文切换,装载相应的中断矢量,执行相应的中断服务程序;执行完后,恢复被中断程序的上下文,继续执行被中断程序。

对于某一PEC服务,它总是与一具体中断源、中断矢量或中断服务相联系。在80C166中,当一个中断的中断优先级为最高级14或15且定义了与之相关联的PEC服务通道时,该中断就具有PEC服务功能。这时,当该中断请求发生时,将不触发中断服务程序的执行,而是触发PEC服务。当PEC服务经过设定的若干次的外部事件触发后,再触发执行相应的中断服务程序(一个普通中断过程)。

如图2所示。一次PEC服务的工作过程是由PEC控制寄存器定义的,其中计数位域(8位传送计数器)COUNT定义了PEC服务的数据传输次数;源指针、目的指针指明具体的数据传输来源和目的;PEC服务的数据传输过程完全由硬件执行:当中断请求发生时,由硬件将源指针所指单元的内容传给目的指针所指的单元,然后由PEC控制寄存器相应定义位控制是源指针还是目的指针增加1或2,同时COUNT值减1;当多次中断请求使COUNT减为0时,PEC服务完成,触发与之关联的.中断服务程序。