EoE Processing To execute the EoE state machine of every active EoE handler,
there must be a cyclic process. The easiest solution would be to execute the EoE
state machines synchronously with the master state machine (see sec. 5.3). This
approach has the following disadvantage:
Only one EoE fragment could be sent or received every few cycles. This causes the
data rate to be very low, because the EoE state machines are not executed in the
time between the application cycles. Moreover, the data rate would be dependent on
the period of the application task.
To overcome this problem, an own cyclic process is needed to asynchronously execute
the EoE state machines. For that, the master owns a kernel timer, that is executed
each timer interrupt. This guarantees a constant bandwidth, but poses the new
problem of concurrent access to the master. The locking mechanisms needed for this
are introduced in sec. 3.4.
这里究竟是什么意思呢?是不是说,EOE的状态机,是和主站的状态机是同步的,这就造成了,
EOE的包可以被发送或者接受在每个周期里面,这就造成了数据的利用率很低,因为EoE状态机在应用程序的周期里面没有执行。更者,数据的利用率将会独立于应用任务的周期。
为了解决这个问题,一个单独的周期处理对于非周期执行EoE的状态机是需要的,为此,一个主站必须要有内核定时器,这是通过一个定时器中断来实现的。这个保证了固定的带宽,然而却引出了一个新的问题就是同时请求主站的情况。所以,一种互锁的机制需要被引进。