RX65NでのEthernet通信について

初めまして、Ethernet通信初心者の者です

 

現在「Resesas Starter Kit+ for RX65N-2MB」を使用し、M3S-T4-Tinyのサンプルコード「tcp-nonblocking」をデバッグしておりますが以下の問題が発生しております。

 

・マイコンのIPアドレスを「192.168.0.3」に設定しているはずが、system_callback内のguc_event[channel]->ipaddr[]には違う値が入っている(10.30.XX.XX)

・設定と違っていたIPアドレスにpingを送信すると最初は「要求がタイムアウトしました」だが、少し時間がたつと「10.30.XX.XX からの応答: 宛先ホストに到達できません。」に変わる

 

pingを設定したIPアドレスに通すにはどのようにしたらよいか、わかる方がいらっしゃればご教授お願いします。

 

・開発環境:CS+ for CC(ver.8.03.00)

・エミュレータ:E2 Lite

・スマートコンフィグレータ(V1.02.07.01)

r_bps(5.52)、r_cmt_rx(4.40)、r_ether_rx(1.20)、r_sys_time_rx(1.01)、r_t4_driver_rx(1.08)、r_t4_rx(2.09)

  • kazbad332さん

    シェルティです。こんにちは。

    このソフトの設計者です。ルネサス社員です。

    >>・マイコンのIPアドレスを「192.168.0.3」に設定しているはずが、system_callback内のguc_event[channel]->ipaddr[]には違う値が入っている(10.30.XX.XX)

    DHCPが有効になっていると思われます。r_t4_rx_config.h (あるいはスマートコンフィグレータのコンポーネントタブのr_t4_rxモジュールの設定)のT4_CFG_SYSTEM_DHCPをゼロにした上で、T4_CFG_FIXED_IP_ADDRESS_CH0に固定IPアドレスをセットしていただけますか。

    >>・設定と違っていたIPアドレスにpingを送信すると最初は「要求がタイムアウトしました」だが、少し時間がたつ>>と「10.30.XX.XX からの応答: 宛先ホストに到達できません。」に変わる

    10から始まるIPアドレスはクラスAのプライベートなIPアドレスですね。
    www.cman.jp/.../

    恐らくkazbad332さんは、企業内の机の下から生えているLANケーブルを使って実験されており、
    企業内のDHCPサーバから「10.30.XX.XX」のIPアドレスがRX65N RSK(Renesas Starter Kit)に配布されているものと推測します。
    さらに、その企業内、机の下にあると思われるスイッチなりルータなりがpingパケットを遮断しているのでは、と推測します。

    ということで、RX65N RSK側のDHCPをOFFにして、RX65N RSKとPingを送信したいPCをLANケーブルで直結してあげて、PCのIPアドレスを192.168.0.10等のRX65N RSKと被らないものにしてあげれば、pingが通ると思います。

    以上です
  • kazbad332さん

    シェルティです。こんにちは。

    あとPC内のウイルス対策ソフトなりファイアウォールソフトがping通信を遮断している可能性もあるかもしれませんね。
    それからEthernetの通信実験される際はWiresharkというパケットモニタ導入を強く強くお勧めします。
    勉強にも製品開発にも大変役に立つソフトです。
    www.wireshark.org/download.html

    Wiresharkで実際のTCP/IP通信を眺めながらTCP/IPの教科書やRFCを読むと、ネットワークの仕組みがとても理解しやすいです。

    以上です

  • シェルティさん、初めまして。

    回答ありがとうございました、シェルティさんにご指摘いただいた内容を基に再度デバッグを行ってみたいと思います。

    因みに「設定と違っていたIPアドレスにpingを送信すると最初は「要求がタイムアウトしました」だが、少し時間がたつと「10.30.XX.XX からの応答: 宛先ホストに到達できません。」に変わる」についてですが、lowsrc.c内のwrite関数内のcharput(c)をコメントアウトすることでPC-RX65N間でPingを通すことに成功いたしました。(また、PC側で適当に作成した電文をエコーバックできることも確認できました)

    また別の質問なのですが、PCから受信した電文をエコーバックする際、tcp_nonblocking_callback関数をコールする必要があると思うのですが、この関数をコールさせるためコンポーネントの設定で「TCP CEPID1(2) callback function use」を"1"に設定してコールする関数の名前を設定しましたが、T4導入ガイドではこの部分の設定は"0"でした(RX64Nのサンプルと記載があるため違うのかもしれませんが)

    上記設定は必要なく何かほかの方法でエコーバックの処理を実現させることができるのでしょうか?

    文章が稚拙で内容が分かりにくいと思いますが回答の程よろしくお願いいたします。