STM32 ETH + LwIP (UDP Echo Server)


マザーボード:F 429 ZI
計画:CubeIDE

Background


[Youtube講座]
TCP/IP OSI Layer Model [OSI Layer Model説明ブログ]
STM32-> UDP Server
PC -> Client
データ転送(Data)<-Frame送信後
受信部でFrameを無効にして受信する

各レイヤにどのようなデータが添付されているかを見ることができます.
[各タイトル説明リンク]
DP 83848 PHY変換器:RJ 45インタフェース(Eth信号->3.3 Vデジタル信号)
物理層(第1層)の電気信号伝送を提供する
<ビデオのプロジェクトフロー>
ETH -> LwIP stack (third party open source) -> UDP echo server -> User Application
私が使っているボードF 429 ZIにはイーサネットポートがあります
UTP(シールドツイストペアケーブル)ケーブル:2本の非絶縁体のペアケーブル
タイプ:Directケーブル(T 568 B)、Crossケーブル(T 568 A)

1.GPIO設定


.iocファイルで

  • Connectivity -> ETH -> RMII

  • Middleware -> LWIP -> Enabled

  • ethernetif.内部

    2.初期化


    ethernetif.c->low level init:macアドレス初期化
    lwip.c->MX LWIP Init:ip初期化

    3.コード


    [Stm 32 CubeF 4リンク]

    卵の殻を出す.
    プロジェクト->STM 32 xG EVAL->アプリケーション->LwIP->LwIP UDP Echoサーバ例
    従来のプロジェクトでは
    Inc -> udp_echoserver.h
    src -> udp_echoserver.c
    次のファイルをコピーします.
    #include "udp_echoserver.h"
    始まりました.

    lwip.cがもたらすstructnetif磁石;乙->lwip.h externの使用

    mainの中
    Init行に文に2行のコードを同時に入力します.
  • udp_echoserver_init();
  • ethernetif_input(&gnetif);
  • sys_check_timeouts();

  • 4. Ping Test


    Windowsボタン+R->cmd
    ping 192.168.0.235<-設定したstm 32 ipアドレス

    5. UDP Program


    [プログラムサイトリンク]

    hercules setup utility
    udp_echoserver.hのデフォルトポートは7番です.

    運転後選択UDP
    <作成中>