Project

General

Profile

Работа с Ethernet (Си) » History » Version 5

krufter_multiclet, 04/19/2013 05:44 PM

1 1 krufter_multiclet
h1. Работа с Ethernet (Си) 
2 4 krufter_multiclet
3 4 krufter_multiclet
Рассмотрим простой пример по отправке одного пакета с заданным IP-адресом в виде широковещательной рассылки.
4 4 krufter_multiclet
Но сначала заметим, что настройка микросхемы, реализующей физический уровень Ethernet происходит программно.
5 4 krufter_multiclet
6 4 krufter_multiclet
На Си реализованы функции записи и чтения в регистры микросхемы, реализующей физический уровень Ethernet.
7 5 krufter_multiclet
8 5 krufter_multiclet
1) Функция записи в регистры PHY
9 5 krufter_multiclet
10 5 krufter_multiclet
<pre>
11 5 krufter_multiclet
void mdio_wr(int phy_addr, int reg, int data)
12 5 krufter_multiclet
</pre> 
13 5 krufter_multiclet
14 5 krufter_multiclet
phy_addr - адрес микросхемы PHY (по умолчанию 0x00)
15 5 krufter_multiclet
reg - номер регистра
16 5 krufter_multiclet
data - значение для установки в регистр
17 5 krufter_multiclet
18 5 krufter_multiclet
2) Функция чтения регистра PHY
19 5 krufter_multiclet
20 5 krufter_multiclet
<pre>
21 5 krufter_multiclet
int mdio_rd(int phy_addr, int reg)
22 5 krufter_multiclet
</pre>
23 5 krufter_multiclet
24 5 krufter_multiclet
phy_addr - адрес микросхемы PHY (по умолчанию 0x00)
25 5 krufter_multiclet
reg - номер регистра
26 5 krufter_multiclet
Функция возвращает 32 разрядное значение регистра