在步进电机控制系统的设计中,单片机上电初始化时,并不明确自身为主机或从机,在上电初始化完成以后,各个单片机会在CAN总线上广播固定特征的询问帧,目的是判断当前是否有主机在运行,若应答超时,则认为当前无主机在运行,自行置为主机,打开74HC245取得对通道的控制权。若当前已有主机正在运行,则主机收到询问帧后发送应答帧进行应答,同时也获知CAN总线上有其他单片机在运行。
单片机上电初始化时后上电的单片机自行设置为从机,若2机同时上电,2机可能会同时发送询问帧,由CAN总线仲裁协议仲裁,使其中某个单片机获得CAN总线使用权,成功送成询问帧。为避免两个单片机同时竟争主机,没有取得CAN总线使用权的一方在收到对方的询问帧后不立即重发询问帧,而是采取指数退避方法,延时一段时间,使对方应答超时从而自行设置为主机后,再向已变为主机的对方重发询问帧,让主机获知从机存在,以及时登记备份数据。
初始化和主从设置完成之后,主机和从机之间就需要不断交换状态数据,使从机备份主机设置参数、同步存储被控对象的工作状态以及实时参数。
主机将自己的参数、被控对象当前参数以及其他需备份数据定时向从机发送。若从机在设定的时间间隔内未收到主机的数据或者收到主机报告出错的信息,则认为主机出现故障,立即自行置为主机,取得通道的控制和使用权,并根据最后备份主机的所有数据对被控对象继续实施控制,并启动故障指示灯闪烁信号对故障节点报警。从机也要在规定的时间间隔内向主机报告自身的状态,主机在规定的时间间隔内未收到从机发送的状态数据,则认为从机故障,启动故障指示灯闪烁信号对故障节点报警。