ООО ЭФО
Поиск по складу
Программа поставок 2016
Сегодня
www.powel.ru
источники питания
www.korpusa.ru
конструктивы и корпуса РЭА
www.wless.ru
беспроводные технологии
www.mymcu.ru
микроконтроллеры
altera-plis.ru
микросхемы Altera
www.infiber.ru
волоконно-оптические
компоненты в
промышленности
www.efo-power.ru
силовая электроника
www.efo-electro.ru
электротехническая
продукция
www.efometry.ru
контрольно-измерительные приборы
www.golledge.ru
кварцевые резонаторы и генераторы Golledge
www.sound-power.ru
профессиональные усилители класса D
Поиск по сайту
Подписка на новости

Система менеджмента
качества сертифицирована на соответствие требованиям:
ISO 9001, ГОСТ Р ИСО 9001 и СРПП ВТ - подтверждено сертификатами соответствия в системах сертификации Русского Регистра, ГОСТ Р, международной сети IQNet, "Оборонсертифика" и "Военный Регистр".

ООО "ЭФО" в 2011г. получило Лицензию Федеральной службы по экологическому, технологическому и атомному надзору на изготовление оборудования для ядерных установок.


Rambler s Top100



ChipFind - поисковая система по электронным компонентам
EEN
webmaster
Санкт-Петербург: (812) 327-86-54  zav@efo.ru Москва: (495) 933-07-43  moscow@efo.ru Екатеринбург: (343) 278-71-36  ural@efo.ru Пермь: (342) 220-19-44  perm@efo.ru
Казань: (843) 518-79-20  kazan@efo.ru Ростов-на-Дону: (863) 220-36-79  rostov@efo.ru Н. Новгород: (831) 434-17-84  nnov@efo.ru Новосибирск: (383) 286-84-96  nsib@efo.ru
о нас склад библиотека статьи
 



Описание функций для применения в системах с W3100A


Рассмотренные ниже функции являются базовыми при разработке систем с использованием микросхем W3100A производства компании WIZnet и условно делятся на API-функции и внутренние функции (вызываемые из API-функций). Функции написаны на языке Си и прилагаются к наборам разработчика и отладочным платам вместе с демонстрационными примерами.

  1. Функции инициализации и установки основных параметров сети

  2. Функции обработки прерываний и установки маски прерываний

  3. Функции перемещения данных между системным буфером и W3100A

  4. Функции установки параметров передачи, инициализации, закрытия и вычисления состояния канала

  5. Функции установки соединения, передачи и приема информации по протоколу TCP

  6. Функции приема и передачи по протоколу UDP

  7. Функции ожидания заданного интервала времени

Функции инициализации и установки основных параметров сети.

Имя функции void initW3100A(void)
Аргументы нет
Возвр. значение нет
Описание

Функция программного сброса W3100A. Устанавливает начальный номер последовательности для использования TCP соединений и бит S/W reset в регистре C0_CR

Тип API функция

Имя функции void sysinit(void)
Аргументы нет
Возвр. значение нет
Описание

Функция инициализации W3100A. Устанавливает значения MAC и IP-адресов источника, адрес шлюза, маску подсети

Тип API функция

Имя функции void setsubmask(u_char * addr)
Аргументы addr: указатель на значение устанавливаемой маски подсети
Возвр. значение нет
Описание

функция установки маски подсети

Тип API функция

Имя функции void setgateway(u_char * addr)
Аргументы addr: указатель на IP шлюза
Возвр. значение нет
Описание

Устанавливает IP шлюза

Тип API функция

Имя функции void setIP(u_char *addr)
Аргументы addr: указатель на IP источника
Возвр. значение нет
Описание

Установка IP-адреса W3100A

Тип API функция

Имя функции void setMACAddr(u_char * addr)
Аргументы addr: указатель на значение устанавливаемого MAC адреса
Возвр. значение нет
Описание

Установка MAC адреса

Тип API функция

Функции обработки прерываний и установки маски прерываний.

Имя функции void Int0()
Аргументы нет
Возвр. значение нет
Описание

Обработчик прерывания W3100A.
Сохраняет информацию о состоянии в глобальной переменной S_STATUS для передачи S_STATUS сохраняет значение состояния прерывания для каждого канала

Тип Внутренняя функция

Имя функции void ISR_ESTABLISHED(SOCKET s)
Аргументы s: номер канала
Возвр. значение нет
Описание

Обработчик прерывания установления соединения. Вызывается после установления соединения, при необходимости код добавляется разработчиком

Тип Внутренняя функция

Имя функции void ISR_CLOSED(SOCKET s)
Аргументы s: номер канала
Возвр. значение нет
Описание

Обработчик прерывания закрытия канала. Вызывается после закрытия канала, при необходимости код добавляется разработчиком.

Тип Внутренняя функция

Имя функции void ISR_RX(SOCKET s)
Аргументы s: номер канала
Возвр. значение нет
Описание

Обработчик прерывания принятия данных. Вызывается при принятии данных, при необходимости код добавляется разработчиком.

Тип Внутренняя функция

Имя функции void setINTMask(u_char mask)
Аргументы mask: значение устанавливаемой маски ('1' - прерывание разрешено)
Возвр. значение нет
Описание

Функция установки маски прерываний. Разрешает или запрещает необходимые прерывания.

Тип API функция

Функции перемещения данных между системным буфером и W3100A.

Имя функции u_int read_data(SOCKET s, u_char * src, u_char *dst, u_int len)
Аргументы s: номер канала
src: указатель на приемный буфер W3100A
dst: указатель на системный буфер
len: размер данных для копирования
Возвр. значение Размер скопированных данных
Описание

Копирует данные из приемного буфера W3100A в системный буфер. Вызывается из функций recv() или recvfrom().

Тип Внутренняя функция

Имя функции u_int write_data(SOCKET s, u_char * src, u_char * dst, u_int len)
Аргументы s: номер канала
src: указатель на системный буфер
dst: указатель на буфер передаваемых данных W3100A
len: размер данных для копирования
Возвр. значение размер скопированных данных
Описание

Копирует содержимое системного буфера данных в буфер данных для передачи. Вызывается из функций send_in() и sendto_in()

Тип Внутренняя функция

Функции установки параметров передачи, инициализации, закрытия и вычисления состояния канала.

Имя функции void settimeout(u_char * val)
Аргументы val: указатель на значение таймаута.
Первые 2 байта содержат значение таймаута, последний байт - число повторов.
Возвр. значение нет
Описание

Функция установки TCP таймаута. Используется для установки задержки повторной передачи. Прерывание по таймауту возникает при повторной попытке установления соединения или передаче данных.

Тип API функция

Имя функции void setbroadcast(SOCKET s)
Аргументы s: номер канала
Возвр. значение нет
Описание

Разрешает/запрещает широковещательную передачу данных в режимах UDP и IP RAW

Тип API функция

Имя функции void setTOS(SOCKET s, u_char tos)
Аргументы s: номер канала
tos: значение поля TOS(Type Of Service) IP-заголовка
Возвр. значение нет
Описание

Задание значения поля TOS

Тип API функция

Имя функции char socket(SOCKET s, u_char protocol, u_int port, u_char flag)
Аргументы s: номер канала
protocol: протокол, используемый в канале
SOCK_STREAM(0x01) - TCP
SOCK_DGRAM(0x02) - UDP
SOCK_IPL_RAW(0x03) - IP Layer RAW
SOCK_MAC_RAW(0x04) - MAC Layer RAW
port: номер порта в канале
flag: опции канала
 

SOCKOPT_BROADCAST(0x80) - '1' указывает на широковещательную передачу данных в UDP режиме

 

SOCKOPT_NDTIMEOUT(0x40) - '1' указывает на использование только регистра с назначенным значением таймаута

 

SOCKOPT_NDACK(0x20) - '1' не использовать задержку при отправке ACK при принятии пакета данных.

 

SOCKOPT_SWS(0x10) R '1' указывает на использование "скользящего" окна.

Возвр. значение номер канала в случае успеха, иначе -1
Описание

Инициализация канала указанного канала

Тип API функция

Имя функции char close(SOCKET s)
Аргументы s: номер канала
Возвр. значение нет
Описание

Функция закрытия соединения указанного канала

Тип API функция

Имя функции u_int select(SOCKET s, u_char func)
Аргументы s: номер канала
func:
 

SEL_CONTROL(0x00) - возвращает статус канала

 

SEL_SEND(0x01) - возвращает размер свободного передающего буфера

 

SEL_RECV(0x02) - возвращает размер данных в приемном буфере

Возвр. значение

Состояние канала или размер свободного пространства передающего буфера или размер данных в приемном буфере

Описание

Функция получения информации о канале

Тип API функция

Функции установки соединения, передачи и приема информации по протоколу TCP.

Имя функции char connect(SOCKET s, u_char * addr, u_int port)
Аргументы s: номер канала
addr: IP-адрес приемника
port: номер порта приемника
Возвр. значение 1, если соединение установлено, иначе '-1'
Описание

Устанавливает соединение с указанным узлом

Тип API функция

Имя функции char listen(SOCKET s, u_char * addr, u_int * port)
Аргументы s: номер канала
addr: IP-адрес ожидаемого узла
port: номер порта ожидаемого узла
Возвр. значение 1, если соединение установлено, -1, если соединение не удалось установить
Описание

Ожидает соединения с узлом (режим блокировки) Указанный канал ожидает соединения с узлом (режим TCP сервера)

Тип API функция

Имя функции char Nblisten(SOCKET s)
Аргументы s: номер канала
Возвр. значение 1
Описание

Ожидание соединения с узлом (без блокирования)

Тип API функция

Имя функции u_int send(SOCKET s, u_char * buf, u_int len)
Аргументы s: номер канала
buf: указатель на передаваемые данные
len: размер данных для передачи
Возвр. значение Размер переданных данных
Описание

Функция посылки данных по протоколу TCP.
Составлена из функций send() и send_in(). Функция send() Далее функция send_in() сравнивает размер переданных данных и исходных и, при необходимости, происходит повторный вызов send().

Тип API функция

Имя функции u_int send_in(SOCKET s, u_char * buf, u_int len)
Аргументы s: номер канала
buf: указатель на данные, которые надо был передать
len: размер данных, которые надо был передать
Возвр. значение Размер переданных данных
Описание

Внутренняя функция для передачи данных по протоколу TCP. Вызывается функцией send(). Сначала вычисляет размер свободного буфера для передачи и сравнивает с размером исходных данных для определения переданной информации. После вычисления размера данных, копирует их из TX_WR_PTR. Ждет, пока выполняется предыдущая команда send. Когда send() заканчивает выполнение, обновляет TX_WR_PTR до размера непреданных данных и запускает команду send().

Тип Внутренняя функция

Имя функции u_int recv(SOCKET s, u_char *bef, u_int len)
Аргументы s: номер канала
buf: указатель на область памяти под принятые данные
len: размер принятых данных
Возвр. значение размер принятых данных
Описание

Функция приема данных по TCP. Ожидает приема такого объема данных, какое хочет получить приложение

Тип API функция

Функции приема и передачи по протоколу UDP.

Имя функции u_int sendto(SOCKET s, const u_char * buf, u_int len, u_char *adr,u_int port)
Аргументы s: номер канала
buf: указатель на данные для передачи
len: размер данных для передачи.
addr: IP-адрес получателя
Возвр. значение размер переданных данных
Описание

Функция передачи данных по протоколу UDP. Состоит из функций sendto() и sendto_in(). После выполнения вызывает функцию sendto_in() для проверки размера переданных данных и размера данных, которые надо передать.

Тип API функция

Имя функции sendto_in(SOCKET s, u_char *buf, u_int len, u_char * addr, u_int * port)
Аргументы s: номер канала
buf: указатель на данные для передачи
len: размер данных для передачи.
Возвр. значение размер переданных данных
Описание

Функция передачи данных по протоколу UDP. Аналогична send_in() для TCP

Тип Внутренняя функция

Имя функции u_int recvfrom(SOCKET s, u_char * buf, u_int len, u_char * addr, u_int * port)
Аргументы s: номер канала
buf: указатель на память для копии принятых данных
len: размер принимаемых данных
addr: IP-адрес передающего узла
port: номер порта для передачи
Возвр. значение Размер принятых данных
Описание

Функция приема данных по протоколу UDP

Тип API функция

Функции ожидания заданного интервала времени.

Имя функции void wait_10ms(int cnt)
Аргументы cnt: счетчик
Возвр. значение нет
Описание

определяет задержку по 10 миллисекунд

Тип Внутренняя функция

Имя функции void wait_1ms(int cnt)
Аргументы cnt: счетчик
Возвр. значение нет
Описание

определяет задержку по 1 миллисекунде

Тип Внутренняя функция

Имя функции void wait_10us(int cnt)
Аргументы cnt: счетчик
Возвр. значение нет
Описание

Определяет задержку по 1 микросекунде

Тип Внутренняя функция

© 1999-2016 All Right Reserved. EFO Ltd. При использовании материалов ссылка на источник обязательна.
Контактная информация