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.

[参考译文] TSB12LV32-EP:确定 GRF 中何时有完整消息可用

Guru**** 2551110 points
Other Parts Discussed in Thread: TSB12LV32-EP

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/904282/tsb12lv32-ep-determining-when-complete-message-is-available-in-grf

器件型号:TSB12LV32-EP

我们将 TSB12LV32-EP 用于1394通信。 我们的总线使用具有异步流消息(即具有等时报头的消息、异步周期中的发送/接收)的 ATF 和 GRF。 我们不使用 RXGRFPKT (接收到的 GRF 数据包)中断。

我正在尝试确定如何知道 GRF 中何时有完整的消息可用。 如果我读取 FIFO 状态寄存器、 并且 GRFEMPTY 指示 GRF 不为空、而 CD 指示下一个四通道是数据包令牌、 那么、我能否读取数据包令牌并假设数据包令牌指示的四通道数已经在 GRF 中、可以读取吗? 例如、如果我读取一个指示 QUADLET_COUNT 为50的数据包令牌包、那么我是否可以假定50个数据四通道已经在 GRF 中?

还是数据包令牌包在 GRF 中、但数据四边形还不存在? 如果是、我如何知道数据四边形何时可用? 请注意、由于某些四边形可能位于 GRF 读取缓冲器中、因此 GRFUSED 可能无法准确指示可用的四边形数、因此不会反映在 GRFUSED 中。 例如、在上述情况下、一旦整个数据包可用、GRFUSED 似乎只指示46或45、因为4或5个四分频器可能位于读取缓冲区中。 因此、我看不到一种简单的方法来了解50个四分位数何时可用、除非我在上面进行了思考、在我读取数据包令牌后、它们已经可以读取。

谢谢

Joel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Joel

    是的。 接收器在最后一个数据包的四通道被确认进入 GRF 后将一个状态四通道置于 GRF 中。 状态四边形包含数据包的错误代码。 需要读取错误代码以确定接收到的数据包是完整的(无错误)还是具有 DataErr 或 CRCErr。 在任何情况下、numofQuadlets 字段都指示当前数据包中的四通道总数(仅限有效载荷和标头四通道)。

    谢谢

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很好。 谢谢。

    这有点反直觉、因为数据包状态是 FIFO 中的第一个字。 似乎可以想象数据包的状态可以被放入 FIFO 中、这样会将 FIFO 的使用率增加1、并且表明 FIFO 不再为空、但实际的数据字还不会出现在 FIFO 中(我认为这需要一些时间)。 我想器件必须将整个消息内容写入 FIFO、然后才能指示 FIFO 不再为空、并设置相应的中断标志。

    Joel