JAJSOK6B September 2025 – January 2026 TCAN5102-Q1
ADVANCE INFORMATION
これは、SPI を介してバイト ストリームを送受信する基本的な例です。デバイスが SPI フレームのすべてのバイト (SPI ヘッダで指定されたバイト数によって決定) を受信すると、SPI フレームの送信を開始します。この例では、受信した POCI データを格納し、後で読み戻すことができます。
| パラメータ | 値 |
|---|---|
| CAN フレーム フォーマット | 標準フレーム フォーマット |
| 転送するバイト数 | 10B |
| SPI チャネル | チャネル 2 |
| 受信データを RX FIFO に保存 | あり |
| SPI バイト ストリーム | 0x11、0x22、0x33、0x44、0x55、0x66、0x77、0x88、0x99、0xAA |
次の表は、手順と CAN バス上で送信されるデータを示しています。バスの中央ゲートウェイ / コントローラは ECU と呼ばれ、TCAN デバイスは「レスポンダ」と呼ばれます。
| ステップ | トランスミッタ | データ | 説明 |
|---|---|---|---|
| 1 | ECU (DLC = 16B) | 0x0C、0x10、0x10、0x82、 0x0A、0x11、0x22、0x33、 0x44、0x55、 0x66、0x77、 0x88、0x99、 0xAA、0x00 |
ECU は、レジスタ 0x1010 (SPI TX FIFO) に 10 バイトの書き込みを要求します。SPI ヘッダには、store = 1、SPI チャネル = 2、および 10 バイトの SPI フレームが含まれます。その後、10 バイトのデータはデバイスにシフト インされます。これら 15 バイトのデータを収めるため、CAN DLC は 16 バイトでなければならないため、末尾に 0x00 がパディングされます。 |
| 2 | レスポンダ | 0x0C、0x01 | レスポンダは OK を返信し、要求を受信したことをアクノリッジします。 |
| 3 | SPI | PICO: 0x11、0x22、0x33、0x44、0x55、0x66、0x77、0x88、0x99、0xAA POCI:0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08、0x09、0x0A |
この時点で、レスポンダは SPI チャネル 2 で 10 バイトの SPI 転送を実行します。POCI データは RX FIFO に保存されます |
| 4 | ECU | 0x43、0x10、0x0F | ECU は、レジスタ 0x100F〜0x1011 (SPI_STATUS および SPI_RXFS) から 3 バイトの読み取りを要求します。バースト読み取りが 0x1010 (SPI RX FIFO) からではなく開始されたため、そのレジスタに対応するバイトはパディングとして 0 になります。FIFO から開始されないバースト読み取りでは、FIFO に対応するバイトは「0」として返されます。 |
| 5 | レスポンダ | 0x43、0x01、0xCA、0x00、0x01 | レスポンダは、レジスタ 0x100F のデータ、0x1010 に対しては 0、0x1011 のデータを返します。結果のデータは、TX FIFO が空であり、RX FIFO に 1 つの SPI フレームが含まれ、次の RX FIFO エレメントに 10 バイトのデータがあることを示しています。この情報により、ECU はデバイスから 10 + 2 (SPI ヘッダ) バイトの読み取りを要求すべきことを認識します。 |
| 6 | ECU | 0x4C、0x10、0x10 | ECU は、RX FIFO から 12 バイト (データ 10 バイト + ヘッダ 2 バイト) の読み取りを要求します |
| 7 | レスポンダ (DLC = 16B) | 0x4C、0x01、0x02、0x0A、 0x01、0x02、0x03、 0x04、 0x05、0x06、 0x07、0x08、 0x09、0x0A、 0x00、0x00 |
レスポンダは要求された 12 バイトのデータを返します。SPI ヘッダ バイトは、これがフレーム読み出しの開始であること、SPI チャネル 2 が使用されたこと、そして 10 バイトの SPI データを読み出す必要があることを示しています (これは CAN フレーム全体に収まります)。このデータを格納できる最も近い CAN DLC サイズは 16 バイトであったため、末尾に 2 バイトのパディングが追加されました。 |
| ステップ | トランスミッタ | データ | 説明 |
|---|---|---|---|
| 1 | ECU (DLC = 8B) | 0x05、0x10、0x10、0x02、 0x0A、0x11、 0x22、0x33 |
ECU は、レジスタ 0x1010 (SPI TX FIFO) に 5 バイトの書き込みを要求します。SPI ヘッダには、store = 1、SPI チャネル = 2、および 10 バイトの SPI フレームが含まれます。SPI フレームの最初の 3 バイトのデータだけが転送されました。 |
| 2 | レスポンダ (DLC = 2B) | 0x05、0x01 | レスポンダは OK を返信し、要求を受信したことをアクノリッジします。 |
| 3 | ECU (DLC = 12B) | 0x07、0x10、0x10、 0x44、 0x55、0x66、0x77、 0x88、 0x99、0xAA、0x00、0x00 |
ECU は、同じアドレスへの 7 バイトの書き込み要求を継続します。このフレームを格納できる CAN DLC は 12 バイトであるため、末尾に 2 バイトのパディングが追加されます。これらのパディング バイトの値は問題にならず、無視されます。 |
| 4 | レスポンダ (DLC = 2B) | 0x07、0x01 | レスポンダは OK を返信し、要求を受信したことをアクノリッジします。 |
| 3 | SPI | PICO: 0x11、0x22、0x33、0x44、0x55、0x66、0x77、0x88、0x99、0xAA POCI:0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08、0x09、0x0A |
この時点で、レスポンダは SPI チャネル 2 で 10 バイトの SPI 転送を実行します。POCI データは RX FIFO に保存されます |
| 4 | ECU (DLC = 3B) | 0x43、0x10、0x0F | ECU は、レジスタ 0x100F〜0x1011 (SPI_STATUS および SPI_RXFS) から 3 バイトの読み取りを要求します。バースト読み取りが 0x1010 (SPI RX FIFO) からではなく開始されたため、そのレジスタに対応するバイトはパディングとして 0 になります。FIFO から開始されないバースト読み取りでは、FIFO に対応するバイトは「0」として返されます。 |
| 5 | レスポンダ (DLC = 5B) | 0x43、0x01、0xCA、0x00、0x01 | レスポンダは、レジスタ 0x100F のデータ、0x1010 に対しては 0、0x1011 のデータを返します。結果のデータは、TX FIFO が空であり、RX FIFO に 1 つの SPI フレームが含まれ、次の RX FIFO エレメントに 10 バイトのデータがあることを示しています。この情報により、ECU はデバイスから 10 + 2 (SPI ヘッダ) バイトの読み取りを要求すべきことを認識します。 |
| 6 | ECU (DLC = 3B) | 0x48、0x10、0x10 | ECU は、RX FIFO から 8 バイトの読み取りを要求します (ヘッダ 2 バイト + データ 6 バイトを含みます) |
| 7 | レスポンダ (DLC = 12B) | 0x48、0x01、0x02、0x0A、 0x01、0x02、0x03、 0x04、 0x05、0x06、 0x00、0x00 |
レスポンダは要求された 8 バイトのデータを返します (DLC は 12 ですが、CAN レスポンス ヘッダの後の 8 バイトのデータのみが有効であり、0 はパディングであることが分かります)。SPI ヘッダ バイトは、これがフレーム読み出しの開始であること、SPI チャネル 2 が使用されたこと、そして残り 10 バイトの SPI データを読み出す必要があることを示しています。このデータを格納できる最も近い CAN DLC サイズは 12 バイトであったため、末尾に 2 バイトのパディングが追加されました。ECU には 10 バイトの SPI データを読み出す必要があると伝えられましたが、要求したのは 6 バイトだけでした。これは、読み取るべき SPI データが 4 バイト残っていることを意味します。 |
| 8 | ECU (DLC = 3B) | 0x46、0x10、0x10 | ECU は、読み取りを完了するために RX FIFO から 6 バイト (データ 4 バイト + ヘッダ 2 バイト) の読み取りを要求します。 |
| 9 | レスポンダ (DLC = 8B) | 0x46、0x01、0x82、 0x04、 0x07、0x08、0x09、 0x0A |
レスポンダは要求された 6 バイトのデータを返します。SPI ヘッダ バイトは、これがフレーム読み出しの継続であること、SPI チャネル 2 が使用されたこと、そして残り 4 バイトの SPI データを読み出す必要があることを示しています (これはこのフレームに収まります)。送信データが CAN フレーム サイズに一致したため、パディング バイトは不要でした。 |