Profibus-DP从站开发总结(转)

来源:互联网 发布:澳门十月初五饼家淘宝 编辑:程序博客网 时间:2024/06/11 10:26

profibus-dp从站软件设计

    通信接口软件设计:从站程序包括三个部分

     (1)spc3的初始化程序,

     (2)spc3的中断处理程序和

     (3)具体的I/O应用程序

    spc3的初始化程序应放在具体的IO应用的前面,spc3的中断输出作为CPU的中断输入, 在spc3正常工作之前,必须进行初始化,以配置各种需要的寄存器;中断处理程序用于完成spc3发生的各种时间的处理,主要有:

(1)新的参数报文事件;
(2)全局控制命令报文事件;
(3)进入或退出数据交换状态事件;
(4)新的配置报文事件;
(5)新的地址设置报文事件;
(6)检测到波特率事件和看门狗溢出事件。

    数据输入输出处理,以及用户诊断数据输入可以放在应用程序循环中,在一个应用程序循环中,由应用来刷新输入BUF中的数据,保障所有输入数据是最新更新的数据。而spc3在接收到由profibus主站传送的不同输出数据时,会产生输出标志位(同样位于中断请求字单元),cpu通过在应用循环中轮询标志位来接收主站数据,相对于特定应用的诊断信息,需要实时传递到主站,主站用程序在应用循环中判断是否有可用

的诊断BUF存在,当有空闲BUF时,应用程序输入诊断信息并请求更新,对于实时性要求严格的系统,应采用中断方式进行输出数据和诊断数据处理。

 


    状态机:状态机用来描述profibus-dp站在每种情况下的行为,以保证它符合一致性。spc3芯片内部已经集成了状态机,用户对状态机的

控制是很有限的,

   (1)在power-on状态:从站接收2类主站set_slave_add报文,以改变从站地址,从站应有非易失性的存储器来存从站的地址,

   (2)在内部启动后,从站进入WAIT_prm状态:等待set_prm报文,set_prm报文包括识别号、同步、锁定等。另外,在此状态从站还可以接收Get_Cfg和slave_diag报文,但拒绝处理其它报文,不能进行通信。

   (3)如果set_prm正确,从站进入WAIT_Cfg,等待chk_cfg报文,chk_cfg报文规定输入和输出字节数。另外也可以接收slave_diag和get_cfg报文。

   (4)如果chk_cfg报文正确,从站进入data_exch状态,进行数据通信,在此状态下,从站可以接收writing outputs,reading inputs,global_control,slave_diag。chk_diag。get_cfg报文

 

    单片机主要的任务是通过spc3产生的中断,对spc3接收到的数据进行转存,组织要通过spc3发给主站的数据,并根据要求组织外部诊断等。

原创粉丝点击