首页 理论教育SPC3软件开发:配置和寄存器设置的注意事项

SPC3软件开发:配置和寄存器设置的注意事项

【摘要】:SPC3的软件开发难点是在系统初始化时对其64B的寄存器进行配置,这个工作必须与设备的GSD文件相符,否则将会导致主站对从站的误操作。当SPC3加电或复位时,它将自己的波特率设置最高。SPC3支持10种服务,这些服务大部分都由SPC3自动完成,用户只能通过设置寄存器来影响它。从站的代码共有4个文件,分别是Userspc3.c、Dps2spc3.c、Intspc3.c、Spc3dps2.h。如果认为6KB的通信代码太大的话,也可以根据SPC3的器件手册写自己的程序,当然这样是比较花时间的。

SPC3的软件开发难点是在系统初始化时对其64B的寄存器进行配置,这个工作必须与设备的GSD文件相符,否则将会导致主站对从站的误操作。这些寄存器包括输入、输出、诊断、参数等缓冲区的基地址以及大小等,用户可在器件手册中找到具体的定义。当设备初始化完成后,芯片开始进行波特率扫描。为了解决现场环境电缆延时对通信的影响,Sie-mens所有的PROFIBUS ASIC系列芯片都支持波特率自适应性。当SPC3加电或复位时,它将自己的波特率设置最高。如果设定的时间内没有接收到3个连续完整的包,则将它的波特率调低一个档次并开始新的扫描,直到找到正确的波特率为止。当SPC3正常工作时,它会进行波特率跟踪。如果接收到一个发给自己的错误包,它会自动复位并延时一个指定的时间再重新开始波特率扫描,同时它还支持对主站回应超时的监测。当主站完成所有轮询后,如果还有多余的时间,它将开始通道维护和新站扫描。这时它将对新加入的从站进行参数化,并对其进行预定的控制。

SPC3完成了物理层和数据链路层的功能,与数据链路层的接口是通过服务存取点来完成的。SPC3支持10种服务,这些服务大部分都由SPC3自动完成,用户只能通过设置寄存器来影响它。SPC3是通过中断与单片微控制器进行通信的,但是单片微控制器的中断显然不够用,所以SPC3内部有一个中断寄存器,当接收到中断后再去中断寄存器中查中断号来确定具体操作。

在开发包4中有SPC3接口单片微控制器的C源代码(Keil C51编译器),用户只要对其做少量修改就可在项目中运用。从站的代码共有4个文件,分别是Userspc3.c、Dps2spc3.c、Intspc3.c、Spc3dps2.h。其中,Userspc3.c是用户接口代码,所有的工作就是找到标有Example的地方将用户自己的代码放进去,其他接口函数源文件和中断源文件都不必修改。如果认为6KB的通信代码太大的话,也可以根据SPC3的器件手册写自己的程序,当然这样是比较花时间的。(www.chuimin.cn)

在开发完从站后一定要记住,GSD文件要与从站类型相符。例如,从站是不许在线修改从站地址的,但GSD文件是:

那么在系统初始化时,主站将参数化信息送给从站,从站的诊断包则会返回一个错误代码“Diag.Not_Supported Slave doesn’t support re quested function”。