Знакомство с отладочной платой Realtek RTL8954C

в 12:12, , рубрики: linux, open source, realtek, rootfs, RTL8954C, SDK, Ubuntu, мультимедиа-устройства, Настройка Linux, отладочная плата, программирование микроконтроллеров, разработка, Электроника для начинающих

Знакомство с отладочной платой Realtek RTL8954C - 1
Многочисленным пользователям PС тайваньская компания Realtek известна по своим контроллерам сетевых (Ethernet) и беспроводных (WiFi) карт, а также по микросхемам AC97-аудиокодеков. Однако у Realtek есть процессоры не только для применения в PC, но также для сетевого оборудования.

В рамках данной статьи мы познакомимся с отладочной платой и сетевым процессором Realtek RTL8954C, соберём и запустим базовое ядро Linux, а также выполним тест пропускной способности Ethernet-портов.

На заглавном рисунке представлена отладочная плата Realtek для процессора RTL8954C, мы использовали её в нескольких проектах по разработке абонентских роутеров LAN/WAN/WiFi c поддержкой VoIP-телефонии.

Технические параметры CPU Realtek RTL8954C:
    •  SOC
       — Встраиваемый центральный процессор, архитектура MIPS, частота до 620 МГц с встроенной технологией Radiax

    •  Функции L2
       — 6 Gigabit Ethernet MAC свитч с пятью передатчиками IEEE 802.3 10/100/1000Mbps
       — 1 выделенный порт GMII/RGMII/MII для соединения с внешней сетью
       — Поддержка VLAN (таблица VLAN на 4096 значение)

    •  Функции L3
       — 8 одновременных PPPoE-сессий
       — Автоматическая настройка PPPoE
       — Автоматическая проверка и генерация контрольных сумм IPv4

    •  Функции L4
       — Поддержка NAPT для TCP/UDP-протоколов
       — Автоматическая проверка и генерация контрольных сумм TCP/UDP
       — Автоматическая работа L4 TCP/UDP, проверка генерация контрольных сумм

    •  Функции Firewall
       — Создание фильтров Ethernet, PPPoE, TCP, UDP, ICMP, и IGMP-протоколов

    •  QoS (качество обслуживания)
       — Каждый порт поддерживает 6-уровневую систему приоритета трафика. Приоритет трафика может быть обеспечен следующими технологиями: based on Port, 802.1p tag, DSCP, ACL-based priority и NAT-based priority
       — Последовательные периферийные интерфейсы
       — Поддержка одного PCI Express Host и одного PCI Express Slave
       — Встроено 2 PCI Express PHYs
       — 1 USB 2.0 host controller для доступа к USB-периферии
       — Встроен 1 USB PHY
       — 2 16550 UART
       — До 44 GPIO-пинов

    •  Memory-интерфейс
       — Serial Flash (тип SPI)
       — SDR DRAM
       — DDR1 DRAM
       — DDR2 DRAM
       — I2S-интерфейс

Комплект платы Realtek RTL8954C

Приступая к разработке, мы подписали NDA с Realtek и получили доступ к Realtek SDK для RTL8954C. C помощью этого SDK получилось без проблем собрать ядро linux-2.6.30 и базовую rootfs. Кит изображен на фотографии ниже:

Знакомство с отладочной платой Realtek RTL8954C - 2

Перечислим основные компоненты платы (построчно, слева направо):

  1. Разъем для DECT-модуля
  2. Панель LED-индикации Ethernet
  3. Панель LED-индикации VOIP (V400/401)
  4. Разъем PCI Express (IOH)
  5. Штыревая вилка для подключения JTAG
  6. Модуль WIFI
  7. Штыревая вилка (UART)
  8. Процессор RTL8954C
  9. Кнопка DECT
  10. Кнопка WPS
  11. Кнопка сброса настроек к по умолчанию
  12. Модуль LE88221 — SLIC с двумя FXS-портами
  13. Разъем FXS1
  14. Разъем FXS0
  15. Разъем подключения внешнего источника питания DC 12V (Power)
  16. Разъем подключения USB-накопителя
  17. Разъемы подключения 4-х LAN-портов
  18. Разъемы подключения WAN-порта

Вот какие функции были заложены в SDK Realtek:

  • OS Linux-2.6.30
  • Toolchain rsdk-1.3.6-5281-EB-2.6.30-0.9.30
  • SDK для реализации VOIP-функциональности
  • Небольшой набор популярного OpenSource ПО, включая Samba

Итак, приступаем к сборке полной прошивки для платы Realtek RTL8954C. Для успешного выполнения этой задачи нам понадобится:

1. Выполнить установку на ПК системы Debian7.

2. Скопировать архив с SDK от Realtek в пользовательский каталог:

sudo cp rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz ~/

3. Выполнить разархивирование SDK:

tar -zxf rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz

4. Выполнить настройку конфигурационного файла для сборки прошивки:

сd SDK
сd rtl89xxc-jungle-VoIP-1.6.1
make menuconfig

Выполнить настройку собираемой прошивки, как описано ниже (см. скриншоты):

Please select blow items:
Selected Target (rtl89xxC) --->
Selected Kernel (linux-2.6.30) --->
Selected Busybox (busybox-1.13) --->
Selected toolchain (rsdk-1.3.6-5281-EB-2.6.30-0.9.30) --->
Selected Board Configuration (V400_Ramfs + VE890HV_2S1O + 92C + SAMBA) --->
[*] Config kernel
[*] Load default settings
<Exit><Save>
Do you wish to save your new configuration? <ESC><ESC>
to continue.  Please select <Yes>.

Знакомство с отладочной платой Realtek RTL8954C - 3

RTK VoIP Suite --->
EV_Board version (RTL8954C_V400) --->
<Exit><Save>

Знакомство с отладочной платой Realtek RTL8954C - 4

Выполнить сборку прошивки:

make all

5. В папке image, если процесс прошел успешно, будут лежать файлы fw.bin, webpages.bin

6. Выполнить копирование файлов прошивки в директорию tftp server на ПК:

cp ~/SDK/ rtl89xxc-jungle-VoIP-1.6.1/image/fw.bin /srv/tftp 
cp ~/SDK/ rtl89xxc-jungle-VoIP-1.6.1/image/webpages.bin /srv/tftp

На ПК должны быть установлены следующие программы:
А) tftp-hpa — программа Linux TFTP-клиент, установка в Linux с помощью команды:

apt-get install tftp-hpa

Б) tftpd-hpa — программа Linux TFTP-сервер, установка в Linux с помощью команды:

apt-get install tftpd-hpa

Прошивка платы Realtek RTL8954C

1. Выполнить подключение по UART к плате как показано на скриншоте ниже.
Программа для подключения — minicom (команда запуска: minicom –s)

Знакомство с отладочной платой Realtek RTL8954C - 5

2. На плате по умолчанию работает программа-загрузчик bootloder, а не u-boot. Для работы с сетью по умолчанию настроен адрес 192.168.1.6/24. Для обновления прошивки нужно настроить на ПК адрес из подсети 192.168.1.1/24 и подключить ПК и нашу плату в свитч.

3. Включить питание платы и нажать сразу «ESC» из терминала.

4. Выполнить запись прошивки на плату с ПК с помощью команд:

сd /srv/tftp
tftp 192.168.1.6 -m binary -c p fw.bin

После записи прошивки плата перегрузится, далее нужно нажать кнопку «ESC» из терминала и прошить веб-интерфейс для платы

tftp 192.168.1.6 -m binary -c p webpages-gw.bin

5. Выполнить перезапуск платы, отключив и включив питание.

Результат работы прошивки платы:
А) Доступ по minicom к загруженной системе для работы с файлами:

Знакомство с отладочной платой Realtek RTL8954C - 6

Б) Доступ к веб-интерфейсу платы:

Знакомство с отладочной платой Realtek RTL8954C - 7

Тестирование скорости передачи данных на плате Realtek RTL8954C на интерфейсе LAN и WAN

Теперь посмотрим, что умеет эта плата в плане сетевой производительности. Некоторые сетевые роутеры выполняют часть операций по пересылке данных LAN/LAN и LAN/WAN программно, поэтому возникают проблемы с производительностью. Ниже по тексту приводим один тест производительности сети с помощью портативного сетевого анализатора Ethernet-трафика и два теста скорости пересылки данных с ПК на ПК.

Тест производительности сети (LAN Bridge, NAT) на базе портативного сетевого анализатора Ethernet-трафика

Цель: протестировать пропускную способность RTL8954C пакетами различного размера, используя генератор трафика.

Задачи:

  1. Подключить к плате RTL8954C устройство генерации и измерения трафика.
  2. Провести серию нагрузочных тестов.
  3. Заполнить таблицу.

Вот такие у нас получились результаты:

Замер производительности (Throughput: LAN Bridge)

Размер пакета (bit)
Тип пакета:TCP
Получено пакетов
 
Принято Мбит/с
 
1500 5317251
 
TX Framed Rate 986.829 Мбит/с
TX Data Rate      948.671 Мбит/с
TX Utilization      99.999% (1000.000 Мбит/с)
1024 5375917
 
TX Framed Rate 980.830 Мбит/с
TX Data Rate      925.275 Мбит/с
TX Utilization      99.999% (1000.000 Мбит/с)
512 12601894
 
TX Framed Rate 962.393 Мбит/с
TX Data Rate      853.372 Мбит/с
TX Utilization      99.999% (1000.000 Мбит/с)
88 43111510
 
TX Framed Rate 814.804 Мбит/с
TX Data Rate      277.774 Мбит/с
TX Utilization      99.999% (1000.000 Мбит/с)

Вывод: испытание выявило максимальную производительность в 948,67 Мбит/с при размере фрейма в 1500 байт.

Замер производительности (Throughput: LAN to WAN (NAT))

Размер пакета (bit)
Тип пакета:UDP
Получено пакетов
 
Принято Мбит/с
 
1500 4957253
 
TX Framed Rate 986.829 Мбит/с
TX Data Rate      956.57 Мбит/с
TX Utilization      100.00% (1000.000 Мбит/с)
1024 8078375
 
TX Framed Rate 980.83 Мбит/с
TX Data Rate      936.77 Мбит/с
TX Utilization      100.00% (1000.000 Мбит/с)
512 5869635
 
TX Framed Rate 962.39 Мбит/с
TX Data Rate      875.93 Мбит/с
TX Utilization      100.00% (1000.000 Мбит/с)
88 8505488
 
TX Framed Rate 814.80 Мбит/с
TX Data Rate      277.77 Мбит/с
TX Utilization      100.00% (1000.000 Мбит/с)

Вывод: испытание выявило максимальную производительность в 956,57 Мбит/с при размере фрейма в 1500 байт.

Тест LAN – LAN

Задачи:

  1. Выполнить подключение 2-х ПК с сетевыми картами 1 Gbit Ethernet в порт платы LAN0 (IP_ADDR ПК1 192.168.1.1) и LAN1(IP_ADDR ПК2 192.168.1.2).
  2. На ПК1 запустить сервер Iperf:
    iperf –s
    
  3. На ПК2 запустить клиент Iperf: iperf –с 192.168.1.1 –i 1

Результатом работы программы будет скорость передачи данных между портами.

Результаты теста:

Знакомство с отладочной платой Realtek RTL8954C - 8

Тест LAN – WAN

Задачи:

  1. Выполнить подключение 2-х ПК с сетевыми картами 1 Gbit Ethernet в порт платы LAN0 (IP_ADDR ПК1 192.168.1.1) и WAN(IP_ADDR ПК2 192.168.2.2).
  2. Выполнить настройку путей маршрутизации на ПК1 и ПК2 соответственно: default route (Lan IP платы 192.168.1.254) и default route (Wan IP платы 192.168.2.1)
  3. На ПК1 запустить клиент Iperf:
    iperf – с 192.168.2.2 –i 1
    
  4. На ПК2 запустить сервер Iperf:
    iperf –s
    

Результатом работы программы будет скорость передачи данных между портами.

Результаты теста:

Знакомство с отладочной платой Realtek RTL8954C - 9

Самое интересное, что загрузка процессора при всех тестах почти нулевая. Т.е. все делается аппаратно, см скриншот:

Знакомство с отладочной платой Realtek RTL8954C - 10

Таким образом, мы получили плату для разработки и отладки программного обеспечения для сетевых и мультимедийных задач.

Спасибо за внимание!

Если вам интересно прочитать про «опингвинивание» другого процессора от тайваньской команды Realtek — читайте нашу статью «Запуск Linux на медиапроцессоре Realtek RTL-1185».

Автор: Promwad

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js