RXduino  1.20a
RXduinoマニュアル 最終更新日 平成26年6月29日
型定義 | 関数
tkdn_ether.h

内蔵データフラッシュを使用するためのルーチン [詳細]

#include "tkdn_hal.h"

ソースコードを見る。

型定義

typedef void(* ETHER_USER_INTERRUPT_FUNCTION )(void)
 イーサネット割り込みが発生したときに呼び出される関数の型
 

関数

void ether_phy_softreset ()
 PHYをソフトリセットする [詳細]
 
int ether_open (unsigned char mac_addr[])
 MACアドレスをセットして、内蔵イーサネットPHYをセットアップする [詳細]
 
void ether_close (void)
 内蔵イーサネットPHYを終了する。 [詳細]
 
int ether_write (unsigned char *buf, int len)
 イーサネットフレームを送信する [詳細]
 
int ether_read (unsigned char *buf)
 受信したイーサネットフレームを取得する [詳細]
 
int ether_is_linkup (void)
 リンクアップしているかどうかを調べる [詳細]
 
int ether_is_100M (void)
 リンクが100Mかどうかを調べる [詳細]
 
int ether_is_fullduplex (void)
 リンクが全二重かどうかを調べる [詳細]
 
void ether_autonegotiate (void)
 オートネゴーシエーションを実行する [詳細]
 
int ether_link_changed (void)
 リンクの状態が変化したかどうかを調べる [詳細]
 
void ether_regist_user_rx_procedure (ETHER_USER_INTERRUPT_FUNCTION func)
 フレームを受信したときに呼び出される関数を登録する [詳細]
 
int ether_check_recv (void)
 受信バッファをチェックするとともに、受信エラーを解除する [詳細]
 
void ether_change_macaddr (const unsigned char macaddr[6])
 MACアドレスを変更する [詳細]
 
void ether_enable_promis (int enable)
 プロミスキャスモードへの移行と解除 [詳細]
 

説明

内蔵データフラッシュを使用するためのルーチン

このライブラリは低レベルなイーサネットフレームの送受信を行う。 TCP/IPレベルでの送受信は、 tkdnip.h を参照すること。

tkdn_ether.h で定義されています。

関数

void ether_phy_softreset ( )

PHYをソフトリセットする

引数
なし
戻り値
なし
int ether_open ( unsigned char  mac_addr[])

MACアドレスをセットして、内蔵イーサネットPHYをセットアップする

引数
mac_addr[]MACアドレスが格納された6バイトの配列
戻り値
成功すると1を返す。失敗すると0を返す。PHYエラーの場合は失敗する。
void ether_close ( void  )

内蔵イーサネットPHYを終了する。

引数
なし
戻り値
なし
int ether_write ( unsigned char *  buf,
int  len 
)

イーサネットフレームを送信する

引数
[in]buf送信したいデータが格納されたバッファへのポインタ
len送信したいイーサネットフレームの長さ。プリアンプル、FCS、CRC等は含まない。
戻り値
送信した長さ(バイト数)を返す
覚え書き
送信データは、宛先MACアドレスから、最終データまでを格納しておいてください。プリアンプル、FCS、CRC等の制御コードは不要です。
60バイト未満だと、末尾に00をパディングしてしまう?
int ether_read ( unsigned char *  buf)

受信したイーサネットフレームを取得する

受信したイーサネットフレームは、DMAによってRAM上の専用領域に格納されています。
この関数を呼び出すと、専用領域からユーザバッファへデータを転送します。
また、受信エラーをチェックし、エラーが発生していれば解除します。

引数
[in]bufデータを格納するユーザが用意したバッファへのポインタ
戻り値
受信した長さ(バイト数)を返す。0の場合はデータがないことを示す
覚え書き
RAM上の受信バッファはデフォルトでは2KBしかないので、受信したら早く取り出すこと。
内蔵MACは受信エラー(バッファオーバーラン等)が発生すると以後の受信が不可能になる。
この関数を呼び出すことでクリアされるので、必要がなくても繰り返し呼び出すこと。
int ether_is_linkup ( void  )

リンクアップしているかどうかを調べる

PHYのレジスタを参照し、リンクアップを調べる。LINK_STAの端子は使っていない。

引数
なし
戻り値
リンクアップしていれば1を返す。リンクダウンしていれば0を返す。
int ether_is_100M ( void  )

リンクが100Mかどうかを調べる

引数
なし
戻り値
100Mモードならば1を返す。10Mモードならば0を返す。
int ether_is_fullduplex ( void  )

リンクが全二重かどうかを調べる

引数
なし
戻り値
全二重ならば1を返す。半二重ならば0を返す。
void ether_autonegotiate ( void  )

オートネゴーシエーションを実行する

引数
なし
戻り値
なし
覚え書き
結果は ether_is_100M(), ether_is_fullduplex() 関数で調べること。
int ether_link_changed ( void  )

リンクの状態が変化したかどうかを調べる

前回呼び出したときからリンクの状態が変化したかどうかを調べる

引数
なし
戻り値
変化していれば1を返す。変化していなければ0を返す
覚え書き
結果は ether_is_100M(), ether_is_fullduplex() 関数で調べること。
void ether_regist_user_rx_procedure ( ETHER_USER_INTERRUPT_FUNCTION  func)

フレームを受信したときに呼び出される関数を登録する

引数
[in]func呼び出される関数へのポインタ
戻り値
なし
覚え書き
登録された関数は割り込みのコンテキストで呼び出される
int ether_check_recv ( void  )

受信バッファをチェックするとともに、受信エラーを解除する

引数
なし
戻り値
受信エラーがあれば-1、データがなければ0、データがあれば正の数を返す。
覚え書き
実際の受信は行わない。返す値はデータ長とは必ずしも一致しない。
void ether_change_macaddr ( const unsigned char  macaddr[6])

MACアドレスを変更する

引数
[in]macaddrMACアドレス
戻り値
なし
void ether_enable_promis ( int  enable)

プロミスキャスモードへの移行と解除

引数
enable0:プロミスキャスモード解除 1:プロミスキャスモード設定
戻り値
なし