PROFIBUS-DP 从站主程序流程图如图5-3 所示。
图5-3 PROFIBUS-DP 从站主程序流程图
主程序首先为89C51 和SPC3 初始化,89C51 首先要完成各种变量的初始化,如定义缓冲区DATA_OUT 和DATA_IN来分别保存SPC3 接收的输出数据和发送的输入数据,接着完成各种寄存器的初始化,包括中断允许控制寄存器、中断优先级控制寄存器、定时器控制寄存器和串口控制寄存器等。
在SPC3 正常工作之前先要配置需要的寄存器,包括设置协议芯片的中断允许、写入从站识别号和地址、设置SPC3 方式寄存器、设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区、初始化长度,并根据以上初始值得出各个缓冲区的指针和辅助缓冲区的指针。
SPC3 内部1.5K RAM 存储空间分配表如表5-1 所示,为双端口设计,整个RAM 分为192 段,每段8 字节,所有分配的地址空间由软件部分编程定义的BUF 指针访问,初始化时BUF 指针必须指向每段的首地址,SPC3 通过10 个SAP 服务存取点来选择不同的DP 功能。
表5-1 SPC3 内部1.5K RAM 存储空间分配表
000H-015H:共22 个字节存放参数锁存器/寄存器,其中000H-003H 存放中断控制寄存器;004H-005H 存放状态寄存器;006H-007H 存放方式寄存器0;008H-009H 存放方式寄存器1。方式寄存器在SPC3 启动后,加载诸如从站地址、缓冲器地址,控制位置信息等过程指定参数,并存放在MCU的FLASH 中,状态寄存器存放从站的状态信息,以便在任何时间能扫描现场总线的MAC 层。(www.xing528.com)
016H-039H:共42 个字节存放组织参数,进而存放缓冲器的长度和地址结构信息。以上64 字节大多需要用户自己定义。
图5-4 SPC3 初始化流程
040H-5FFH:共1472 个字节存放DP 缓冲器(BUF),包括3 字节数据输入BUF、3 字节数据输出BUF、2 字节诊断BUF、1 字节设置参数BUF、2 字节配置数据BUF、2 字节辅助缓冲器BUF 和1 字节设置从站地址缓冲器BUF。
根据传输的数据长度确定输出缓冲区、输入缓冲区及指针,SPC3 初始化流程如图5-4 所示。
部分程序如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。