私たちはsia1110を使用していますが、TCPクライアントとサーバーが同時に実行されている場合、しばらくするとどちらか一方がランダムに切断されることに気づきました。クライアントはホストマシンの再接続ボタンをクリックすることで正常に再接続できますが、サーバーはできません。
同じ手順でも、異なるプラットフォームではこの問題はありません。その理由を教えていただけますか?
今のところ、MDIOを使ってMCUとスイッチ間の状況を監視しようと考えていますが、いくつか問題に直面しています。
status_t Dwmac_LLD_Mii_Read_Reg(volatile DwmacReg *dwmac_reg, uint32_t phy_addr, uint32_t reg_addr, uint32_t *reg_data)
{
while (dwmac_reg->MAC_MDIO_ADDRESS.B.GB != 0U) {; }
dwmac_reg->MAC_MDIO_DATA.B.RA = reg_addr;
dwmac_reg->MAC_MDIO_DATA.B.GD = 0;
dwmac_reg->MAC_MDIO_ADDRESS.B.PA = phy_addr;
dwmac_reg->MAC_MDIO_ADDRESS.B.RDA = reg_addr;
dwmac_reg->MAC_MDIO_ADDRESS.B.GOC = 2U;
dwmac_reg->MAC_MDIO_ADDRESS.B.CR = 0xB;
dwmac_reg->MAC_MDIO_ADDRESS.B.GB = 1U;
while (dwmac_reg->MAC_MDIO_ADDRESS.B.GB != 0U) {; }
*reg_data = (uint16_t) (dwmac_reg->MAC_MDIO_DATA.R & 0x0000FFFFU);
return STATUS_SUCCESS;
}
Dwmac_LLD_Mii_Read_Reg(ÐERNET_0, 0x1B, 0x2U, ®_val);
ここで使用されている基となる関数では、reg_val は常に 0 のままです。
SJA110 2.0とRMIIの使用
MDIOを使ってレジスタを監視し、ポートが切断されたときにスイッチやMCUの状態を確認したいです。これは検出方法の一つに過ぎません。TCPサーバーとクライアントが同時に共存できない原因がわかりません。どのバージョンかは分かりません。
xingyun_0-1788248086523.pngxingyun_0-1788248086523.pngxingyun_0-1788248086523.png
こんにちは@xingyunさん
TCP切断とMDIO読み取り機能を分析する前に、あなたのセットアップについて追加情報を教えていただけますか?
- 使用しているSJA1110デバイスの正確なバリアントとシリコンリビジョンは何ですか?
- どのMCUやプロセッサがSJA1110に接続されており、それらの間でどのインターフェースが使われますか?例えばRGMII、RMII、SGMII、または他のインターフェースなどです。
- MCU、SJA1110ポート、TCPクライアントとサーバーを動かすデバイスを示す簡略な接続図を教えてもらえますか?
- 使用しているTCP/IPスタックとそのバージョンは何ですか?
- プロジェクトで使われているSJA1110 SDK/RTDのバージョンは何ですか?
- TCPクライアントとサーバーは同じMCUとイーサネットインターフェース上で動作しているのか、それとも別々のデバイスやインターフェースで動作しているのか?
-
また、MDIOの読み取り機能で具体的に何を監視するつもりなのかも教えていただけますか?特に、あなたの設定では、PHYアドレス0x1Bとレジスタアドレス0x02はどのデバイスとレジスタを指しているのでしょうか?また、SMIインターフェース(MDCおよびMDIO信号を含む)がMCUとSJA1110間でどのように接続されているかを示す回路図のセクションや接続詳細も共有してください。
上記の質問に対して、より詳細な情報をご提供いただけますようお願いいたします。これにより、お客様のシステム構成を明確に理解し、分析の初期段階で潜在的な誤解を回避することができます。
よろしくお願いいたします。
パベル
こんにちは@xingyunさん
さらに詳しくお手伝いするには、もっと情報が必要です。以下の質問すべてにお答えください。
1.使用しているSJA1110デバイスの正確なバリアントはどれですか?SJA1110A、B、C、またはDですか?
2. SJA1110上のどのポートがTCPSおよびTCPCに接続されているか?
3. TCPSとTCPCの両方でRMIIが使用されましたか?
4. TCPSとTCPCはRMIIに直接接続されていますか、それともPHYが存在しますか?
5. SJA1110はどのように設定されますか?SJA1110上で動いているSWはあるのでしょうか、それともスイッチとしてのみSJA1110動くのでしょうか?
6. SJA1110設定に使われたソフトウェアは?S32 Design Studio?
よろしくお願いいたします。
パベル