设计的双机热备冗余结构设备,那切换时间该如何确定呢?
如果主机 ESM信号产生,在200ms定时器中断中检测到,并切换到备机。
那如何确定呢,指令周期都是us 级的,
比如执行sci()函数、can中断接收函数()等的时间大概是多少?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
设计的双机热备冗余结构设备,那切换时间该如何确定呢?
如果主机 ESM信号产生,在200ms定时器中断中检测到,并切换到备机。
那如何确定呢,指令周期都是us 级的,
比如执行sci()函数、can中断接收函数()等的时间大概是多少?
Hi ml0943,
由于不知道你设计的这个双机热备冗余系统是适用于什么样的安全标准。按照功能性安全系统的设计标准,是要求安全系统要在检测到故障发生后,在能接受的相应时间内,触发你的后备安全机制。这个可接受的时间范围一般都是安全标准定义,或是你们的终端客户要求的。
如果你要求的是,如何确定芯片内部运行的时间,这个一般有几种办法,第一种也是最常用的一种就是去设置定时器或是看门狗,这样比较容易实现定时响应机制。如果你对时间要求的更为严格,需要知道中断响应所需的时间或是指令周期的话,你可以通过我们的PMU模块去测试在中断函数里面从发出中断信号到响应中断并完成终端操作这整个过程运行了多少时钟周期,这是可以测得到的。
你可以在sci()或是can接收函数的调用开始前使能PMU模块,然后在函数接收停止该模块,然后相减得到函数运行的周期。当然如果你要求严格的话,还需要加上启动和停止PMU的补偿时间。这样会更为准确一些。
希望这些对你有所帮助。
谢谢
ken
Hi ml0943,
至于你说道的watchdog,你要使用这个功能模块是测试代码运行时间的话,相当于也是用一个定时器去计时,然后得到它的在这段时间内跑了多少cycyle。
其实这两种方法都是可以用的,本身方面来说差别也不大。但是有一个问题就是,如果你需要连续测试程序运行时间的话,如果用定时器的话,它需要使能,然后停止,然后再复位。操作起来会比PMU琐碎一点。
如果最简单的话,你还是可以采用翻转I/O口电平的方法,然后通过示波器去读取具体的数值。
谢谢
ken