Ethernetのリンク状態を参照したい

弊社TCP/IPプロトコルスタック「μNet3」に関するご質問

Ethernetのリンク状態を参照したい

投稿記事by eForce技術担当 » 2017年4月14日(金) 16:27

対象:
μNet3/Compact、μNet3/Standard

質問:
Ethernetのリンク状態(リンクダウン、リンクアップ・通信速度)をアプリから参照したい

回答:
Ethernetドライバが認識しているリンク状態は net_dev_sts() にパラメータ「REF_ETH_LINK_STS」を渡すことで取得が可能です。(※)
取得した値をマスク値「PHY_STS_MSK」でANDします。その値が「PHY_STS_LINK_DOWN 」でなければリンクアップ状態です。

※Ethernetドライバの参照関数(eth_ref)がパラメータ「REF_ETH_LINK_STS」に対応している必要があります。

/*【サンプルコード】*/
ER ercd;
UH val;

ercd = net_dev_sts(1, REF_ETH_LINK_STS, (VP)&val); /* 1 はデバイス番号 */
if (E_OK == ercd) {
if (PHY_STS_LINK_DOWN != (val & PHY_STS_MSK)) {
/* リンクアップ状態 */
}
else {
/* リンクダウン状態 */
}
}
else {
/* エラー(ドライバ初期化前など、ステータス取得可能状態ではない。) */
}

--
/*【REF_ETH_LINK_STSパラメータで取得可能な値】*/
#define PHY_STS_LINK_DOWN 0x0000U /* PHY media link down */
#define PHY_STS_10HD 0x0100U /* PHY 10M/Half-Duplex */
#define PHY_STS_10FD 0x0200U /* PHY 10M/Full-Duplex */
#define PHY_STS_100HD 0x0400U /* PHY 100M/Half-Duplex */
#define PHY_STS_100FD 0x0800U /* PHY 100M/Full-Duplex */
#define PHY_STS_1000FD 0x1000U /* PHY 1000M/Full-Duplex */
#define PHY_STS_MSK 0xff00U /* PHY mask */
アバター
eForce技術担当
 
記事: 163
登録日時: 2014年4月24日(木) 14:18

Return to μNet3

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]

cron