在SPC3正常工作之前,首先需要进行初始化,以配置需要的寄存器,包括设置协议芯片的中断允许,写入从站识别号和地址,设置SPC3方式寄存器,设置诊断缓冲区,参数缓冲区,配置缓冲区,地址缓冲区,初始化长度,并根据以上初始值得出各个缓冲区的指针和辅助缓冲区的指针.根据传输的数据长度,确定输出缓冲区,输入缓冲区及指针.
初始化程序用以实现以下各项功能:
1,SPC3硬件复位:应用程序用RESET复位SPC3,初始化内部RAM即复位处理器;
2,编译器设置:针对选用的微处理器选用合适的编译器,用#define DPS2_SPC3激活DPS2接口;
3,设置SPC3中断屏蔽寄存器:宏DPS2_SET_IND()激活SPC3中断触发,包括从站地址改变,组态数据检查,参数检查中断;
4,SPC3内部看门狗设置:用户看门狗用于确保在微处理器出现故障时,SPC3能在DPS2_SET_USER_WD_VALUE(X)设定的时间内进行数据通信后,时间完后则离开数据交换通信状态,只要微处理器没有问题,则需不断地用DPS2_RESET_USER_WD重新触发看门狗电路;
5, 设备标识码设置:在启动过程中,应用程序读取标识码,并将其传送到SPC3芯片中;
6, 设置响应时间:如果某些应用需要,用户可以通过DPS2_SET_MINTSDR(X)为SPC3设置最小的从站响应时间;
7,缓冲区初始化设置:用户必须确定DPS2_BUFINIT结构体中定义的各个用于信息交换的缓冲区的长度,这些缓冲区长度决定了SPC3中各个数据缓冲区的长度,这些缓冲区占用SPC3双口RAM的空间,因此不能超过缓冲区总长度。用宏SPC3_INIT( )或Dps2_buf_init( )函数将DPS2_BUFINIT初始化后的结构体指针作为参数,根据结构体中的数据在SPC3的RAM中分配各缓冲区,检查各个缓冲区的最大长度,并返回缓冲区初始化后的测试信息;
8, 波特率控制设置:用DPS2_SET_BAUD_CNTRL( )宏,可以设置波特率控制模式。在此监视定时值过后,如果没有有效的信息被接收,SPC3将启动波特率搜索BAUT RATE RESEARCH功能。如果定时监视器被启用,且DP从站检查到DP主站有故障,则本地输出数据被删除或进入规定的安全状态。监视定时器的时基为 10ms,其时间范围为10ms~650s。
阅读(2664) | 评论(0) | 转发(0) |