欢迎来到天天文库
浏览记录
ID:52913185
大小:138.23 KB
页数:10页
时间:2020-03-31
《利用spc开发智能从站源码讲解.pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、利用SPC3开发智能DP从站源码讲解(连载一)1、SPC3介绍SPC3是用于西门子公司提供的用于智能DP从站开发的通信芯片.SPC3支持全部PROFIBUS-DP协议。SPC3内部集成了1.5KB的双口RAM(简称RAM)。内部锁存嚣/寄存器位于前21个地址单元。主要包括方式寄存器、中断控制寄存器、状态寄存器以及输入、输出缓冲区和诊断缓冲区等。1.1SPC3的主要技术指标:◇支持PROFIBUS—DP协议;◇最大数据传输速率12Mbps,可自动检测并调整数据传输速率;◇与80c32、80X86、80C165、80
2、C166、80C167和HCII、HCl6、HC916系列芯片兼容;◇44引脚的PQFP封装;◇可独立处理PROFIBUS—DP通信协议.◇集成的看门狗(WDT).◇外部时钟接口24MHz或48MHz;◇5V直流供电。1.2SPC3RAM管理1.2.1RAM空间定义SPC31.5KbyteRAM分为三个区,分别是系统参数/寄存器区、组织参数区和缓冲区,如表1所示。表1SPC3双口RAM分配图表地址功能000H~015H与SPC3相关的系统参数、寄存器016H~03FH组织SPC3DP缓冲区所需的参数,如DataI
3、n缓冲的指针等。040H~5FFHDP缓冲区如:DataIn(3),DataOut(3),Diagnostics(2),Parametersettingdata(1),Configurationdata(2),Auxilliarybuffer(2),SSA-buffer(1)说明:括号里的数据表示相应缓冲区的数量。如DataIn(3)表示有3个DataIn缓冲区,主要实现SPC3和用户CPU对输入数据的并行处理。首先,SPC3RAM管理是以段为单位,每个段为8个字节,共分为192个段。当用户需要诸如9个字节的区间
4、时,须占用2个段。在后继程序中计算出来的内存空间大小就是以段为单位的。当用户对RAM的使用超出1.5Kbyte的范围时,SPC3会通过中断通知用户这一事件发生。1.2.2RAM空间读/写管理SPC3RAM中一些区域对于读操作和写操作的定义是不同的,如当对02H和03H进行读操作时,它的含义就是中断寄存器;当对02H和03H进行写操作时,它的含义就是中断确认寄存器。针对读/写操作的不同定义参见图1和图2。图1SPC3内部双口RAM读操作定义图2SPC3内部双口RAM写操作定义附录A:说明。以上所讲内容可参见SPC3
5、用户手册。SPC3英文版手册及源码讲解可从www.fieldbuses.com网站下载。利用SPC3开发智能DP从站源码讲解(连载二)2、SPC3管理功能介绍2.1SPC3中断管理SPC3提供了几个与中断相关的寄存器,它们分别是:中断请求寄存器(IRR)、中断寄存器(IR)、中断屏蔽寄存器(IMR)和中断确认寄存器(IAR)。每个寄存器占2个字节,除了5个保留位之外,SPC3共支持包括波特率检测、新参数数据、诊断缓冲区改变在内的11个中断。SPC3只占用一个中断向量号,中断服务程序在响应中断后,需要根据IRR中的
6、内容来判断是哪一个事件引发的中断。用户可以在初始化时设置IMR来对中断事件进行开/关设置。用户处理完事件后,需要操作IAR或相应的Cmd寄存器来来确认相应中断事件。2.2SPC3状态机管理SPC3可工作于四种状态:Power_On、WAIT-PRM、WAIT-CFG和DATA_EXCH。图2给出的状态机描述了SPC3工作状态间的关系。状态机主要用来保证从设备在不同条件下行为的一致性。在Power_On状态,从站可认接收来自二类主站的Set_Slave_Add报文,以改变从站地址,从站应具有非易失性的存储器来存从站
7、地址。在内部起动后,从站进入WAIT-PRM状态,等待Set_Prm报文。在此状态从站还可以接收Get_Cfg或Slave_Diag报文,但拒绝处理其他报文,不能进行通讯。如果Set_Prm正确,从站进入WAIT-CFG,等待Check_Cfg报文。Check_Cfg报文规定输入和输出字节数。另外也可以接收Slave_Diag,Get_Cfg报文。如果Check_Cfg正确,从站进入DATA_EXCH状态,进行数据通讯,在此状态,从站可以接收来自一类主站的WritingOutputs、ReadingInputs、
8、Global_Control、Slave_Diag、Chk_Diag和Get_Cfg报文。图示PROFIBUSDP从站状态机当从设备发生异常时,如WD超时,则SPC3的状态就会改变,以保证系统的安全。开发人员在软件调试过程中可通过检查SPC3的状态寄存器来确认其工作状态。3、PROFIBUSDP协议介绍3.1PROFIBUSDP协议PROFIBUSDP协议中规定了8种主站
此文档下载收益归作者所有