Перейти к содержанию
    

Hatory

Участник
  • Постов

    17
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Hatory

  • Звание
    Участник
    Участник
  • День рождения 10.07.1987

Информация

  • Город
    Array
  1. Огромное спасибо - заработало. И спасибо всем кто принял участие в обсуждении. P.S. Спасибо за конструктивную критику и примеры, приложение обязательно переделаю.
  2. Сделала согласно инструкции, на всякий случай перепроверила. Ничего не изменилось: пакеты не принимаются.
  3. В Wireshark'e виден как входящий, так и исходящий пакеты.
  4. Основной код: SOCKET Socket; char ServerAddress [100] = "192.168.1.1"; sockaddr_in service; service.sin_family = AF_INET; service.sin_addr.s_addr = inet_addr(ServerAddress); if (service.sin_addr.s_addr == INADDR_NONE) { MessageBox (hwndMain, _T("Bad server address"), _T("Socket error!"), 0); ExitProcess (-1); } service.sin_port = htons(0x1010); //---------------------- // Connect to server. while (1) { Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if (Socket == INVALID_SOCKET) { MessageBox (hwndMain, _T("Error at socket(): %ld\n"), _T("Socket error"), 0); return -1; } if ( connect( Socket, (sockaddr *) &service, sizeof(service) ) == SOCKET_ERROR) { Sleep (100); } else { while (1) { int ReadCount = 0; char writebuf[10]; for (int i = 0; i < 128; i++) { writebuf[0] = 0x31; writebuf[1] = 0x66; writebuf[2] = i + 1; if (sendto (Socket, writebuf, 3, 0, NULL, NULL) == SOCKET_ERROR) { return; } int ReadWait = ((i + 1) << 10) - ReadCount; ReadCount += recvfrom (Socket, &((char *)Buffer)[ReadCount], ReadWait, 0, NULL, NULL); if (ReadWait > 16000) { Sleep (5); } } } } }
  5. Нет, в тестовом файле приведен результат двух запусков приложения.
  6. Перед запуском приложения на ПК ввожу команду netstat -s -p UDP 5 выводится следующее: Статистика UDP для IPv4 Получено датаграм = 321 Отсутствие портов = 42 Ошибки при получении = 2 Отправлено датаграмм = 359 Запускаю приложение, которое в цикле отправляет несколько байт данных и ожидает пакет с 1024 байтами. Приложение зависает на приеме. Тем временем в командной строке выводится обновленная информация: Статистика UDP для IPv4 Получено датаграм = 321 Отсутствие портов = 42 Ошибки при получении = 3 Отправлено датаграмм = 360 В тестовом файле приведена полная информация об обмене данными между ПЛИС и ПК в результате ping и двух запусков приложения.
  7. Спасибо за участие. "Ошибки при передаче" отображаются не в Wireshark'е, а при использовании команды netstat. Брандмауэр отключен. Пробовала запускать на разных ОС (windows xp sp3 и windows 7) - ситуация та же. Test.pcapng.7z
  8. Всем добрый вечер. Помогите разобраться со странной проблемой: На отладочной плате Stratix II GX PCIe собрали систему с модулем triple speed ethernet, для программной части для Nios был взят драйвер vadimuzzz'а + дописана реализация протокола UDP. Ping успешно проходит. Пакеты UDP от ПК в ПЛИС приходят, ответные пакеты видны в Wireshark, но приложение на ПК их не получает. При просмотре статистики сетевых протоколов видно, что все принимаемые пакеты с "ошибками при получении" всем откликнувшимся заранее большое спасибо!
  9. Снова здравствуйте. Возникли проблемы в доработке проекта под оптику. Прошу совета или указаний... Требуемый результат: FPGA ->(optic cable)-> Media Converter 1000Base-FX to 1000Base-TX->(copper cable)->PC Система: nios II processor+ddr2 sdram controller with altmemphy+2x sgdma+descriptor memory+interval timer+triple speed ethernet (mac+pcs+pma, sgmii bridge disable) Распиновка: ref_clk - 156.25MHz (1.5 PCML), txp и rxp - присоединены к sfpa_tx и sfpa_rx соответственно (1.5 PCML), gxb_cal_blk_clk_to_the_tse_mac и ref_clk_to_the_tse_mac присоединены к ref_clk ПО: simple socket server Конвертор: TP Flow Control: NWay auto-negotiation; Fiber Flow Control: NWay at full-duplex mode При настройках по умолчанию: 1) при использовании петли: линк устанавливается, auto-negotiation enable, сигналы char_err и disp_err установлены в 0 2) при использовании конвертора (с помощью megawizard plug-in manager редактирую altera_tse_alt2gxb_gige, убирая serial loopback): линк не устанавливается, auto-negotiation disable, сигналы char_err и disp_err установлены в 1 InterNiche Portable TCP/IP, v3.1 Copyright 1996-2008 by InterNiche Technologies. All rights reserved. prep_tse_mac 0 Your Ethernet MAC address is 00:07:ed:ff:00:01 prepped 1 interface, initializing... [tse_mac_init] INFO : TSE MAC 0 found at address 0x08004000 INFO : PHY Marvell 88E1111 found at PHY address 0x12 of MAC Group[0] INFO : PHY[0.0] - Automatically mapped to tse_mac_device[0] INFO : PHY[0.0] - Restart Auto-Negotiation, checking PHY link... WARNING : PHY[0.0] - Auto-Negotiation FAILED MARVELL : Enabling auto crossover MARVELL : PHY reset INFO : PCS[0.0] - Configuring PCS operating mode INFO : PCS[0.0] - PCS SGMII mode disabled INFO : PHY[0.0] - Checking link... INFO : PHY[0.0] - Link not yet established, restart auto-negotiation... INFO : PHY[0.0] - Restart Auto-Negotiation, checking PHY link... WARNING : PHY[0.0] - Auto-Negotiation FAILED WARNING : PHY[0.0] - Link could not established WARNING : PHY[0.0] - Auto-Negotiation not completed! Speed = 1000, Duplex = Full OK, x=0, CMD_CONFIG=0x00000000 MAC post-initialization: CMD_CONFIG=0x0000022b Регистры PCS: control register = 0x 140 (gigabit, full duplex) status register = 0x 9 (link status 0, auto_negotiation_ability 1, auto-negotiation_complete 0) dev_ability register = 0x 1a0 (full duplex, pause is supported on transmit and receive, ACK 0) partner_ability register = 0x 0 an_expansion register = 0x 0 link_timer registers: 0x12d0, 0x 13 if_mode register = 0x 0 (SGMII_ENA 0, USE_SGMII_AN 0) PHY register 0 = 0x1140 PHY register 1 = 0x7949 PHY register 4 = 0x de1 PHY register 5 = 0x 0 PHY register 6 = 0x 4 PHY register 7 = 0x2801 PHY register 8 = 0x 0 PHY register 9 = 0x f00 PHY register 10 = 0x4000 PHY register 15 = 0x3000 PHY register 16 = 0x 18 PHY register 17 = 0x8100 PHY register 18 = 0x 0 PHY register 19 = 0x 0 PHY register 20 = 0x c60 PHY register 21 = 0x 0 PHY register 22 = 0x 0 PHY register 23 = 0x 0 PHY register 24 = 0x4100 PHY register 25 = 0x 0 PHY register 26 = 0x a PHY register 27 = 0x808f PHY register 28 = 0x 0 PHY register 29 = 0x 0 PHY register 30 = 0x 40 [tse_sgdma_read_init] RX descriptor chain desc (1 depth) created mctest init called IP address of et1 : 192.168.1.1 Created "Inet main" task (Prio: 2) Created "clock tick" task (Prio: 3) DHCP timed out, going back to default IP address(es) Simple Socket Server starting up [sss_task] Simple Socket Server listening on port 30 Created "simple socket server" task (Prio: 4)
  10. Спасибо, vadimuzzz, за попытку помочь. Сегодня довела проект до рабочего состояния.
×
×
  • Создать...