首先进行系统时钟的初始化,STM32控制器的时钟配置为可运行的最高时
钟72MHz;在此基础上对串口进行初始化,串口1,2,3的波特率都配置为9600bpso
除此之外,还对外部中断触发的引脚进行了初始化,其中取消报警按钮
Key_nobell链接的是PC3引脚,如前所述,该引脚按下时是低电平,所以设置
为下降沿触发中断;还有一个外部中断是在故障诊断及处理的程序中,当一个控
制器启用故障诊断程序时,将该标志位置位,通知另一个控制器开始进行故障诊
断,该外部中断是上升沿触发。
除此之外,在初始化程序中还设置了控制字和状态字,以此来控制控制器双
冗余系统的运行,或者标志控制器双冗余系统的运行状态。
状态字的定义及含义如表4-1所示。所有的标志位均是1有效。若主控标志
位MASTER若有效,说明当前控制器是主控制器;若备控制器标志位RESERVE
若有效,说明当前控制器是备控制器;若单机工作标志ALONE有效,说明当前
是单机工作模式,另一个控制器出现故障停止工作;若停止工作标志位STOP有
效,说明两控制器之间的链接可能出现问题,导致控制器双冗余系统无法正常运
行,而当前控制器在之前是以备用控制器的身份运行,所以现在只能停止工作,
等到冗余链接正常时在投入工作;若冗余打开标志REDUN有效,说明当前控制
器双冗余系统的冗余有效,也即所有的冗余链接均正常;若冗余链接1存在标志
REDUN_ LINE1有效,说明串口1之间的链接正常;若冗余链接2存在标志
REDUN_ LINE2有效,说明串口2之间的链接正常;若冗余链接3存在标志
REDUN_ LINE3有效,说明控制器与接口模块之间的串口3通讯正常;若接口模
块存在标志PORT有效,说明接口模块工作正常。
控制字的定义及含义如表4-2所示,若禁止主备切换控制字NO_ CHANGE
有效,则即使主控制器出现故障也不允许切换;若启用主备切换控制字
USE_ CHANGE有效,则允许主备控制器切换;若激活主备切换控制字
ACTIVE_ CHANGE有效,则在USE_ CHANGE有效的情况下将进行主备控制器
的切换。 |