цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Линии GPIO на Raspberry Pi 2 работают быстрее, чем на первой модели



Линии GPIO на Raspberry Pi 2 работают быстрее, чем на первой модели

Автор: Mike(admin) от 29-03-2015, 05:15

Относительно недавно вышел миникомпьютер Raspberry Pi 2. Это устройство размером чуть больше кредитной карточки имеет на своем борту четырехъядерный процессор ARM Cortex-A7, работающий на тактовой частоте 900 МГц, 1 ГБ оперативной памяти, а также много разъемов для различных интерфейсов. С помощью Raspberry Pi 2 теперь можно будет выполнять более смелые в плане возможностей проекты, начиная с области домашней автоматизации и заканчивая робототехникой. Raspberry Pi 2 сохранил все положительные особенности первой модели (на нем также можно запускать те же операционные системы, что и на первом Raspberry Pi), а также внес свои.

Миникомпьютер Raspberry Pi 2, безусловно, превосходит по вычислительной мощности своих предшественников (Raspberry Pi Model A, Model B, Model B+ и т.д.). Многочисленные бенчмарки лишь подтверждают это. Но насколько быстра периферия у этого миниПК, в частности линии GPIO?

Линии GPIO на Raspberry Pi 2 работают быстрее чем на первой модели

Чтобы узнать это, были проведены тесты с использованием различных языков программирования и различных библиотек. Измерения проводились с помощью PicoScope 5444B. В итоге получили следующие результаты.


Язык Библиотека Raspberry Pi 1 Raspberry Pi 2 Разница
Shell /proc/mem access 2.8 КГц 7.0 КГц 2,5x
Shell / wiringPi WiringPi gpio utility 40 КГц 95 КГц 2,4x
Python RPi.GPIO 70 КГц 243 КГц 2,5x
Python Сборка wiringpi2 28 КГц 103 КГц 3,7x
Ruby Сборка wiringpi 21 КГц N/A N/A
C Native library 22 МГц 41.7 МГц 1,9x
C BCM2835 5.4 МГц 7.2 МГц 1,3x
C WiringPi normal GPIO wiringPiSetup() 4.1 МГц 9.3 МГц 2,3x
C WiringPi GPIO wiringPiSetupGpio() 4.6 МГц 9.4 МГц 2x
C WiringPi sys wiringPiSetupSys() 120 КГц 185 КГц 1.5x
Perl BCM2835 48 КГц 154 КГц 3.2x

Не все примеры кода работали без проблем на Raspberry Pi 2. Например, в strobe.c базовый адрес нужно было сменить с 0x20000000 на 0x3F000000:

#define BCM2708_PERI_BASE 0x3F000000

А сборка на Ruby для wiringpi совершенно отказывалась работать.

В итоге, основываясь на вышеприведенных результатах, порты GPIO на Raspberry Pi 2 работают в 2-3 раза быстрее, то есть у пользователей второй версии есть возможность мигать светодиодом значительно чаще, хотя для человеческого глаза это уже не будет иметь никакого значения. Также стоит отметить, что большинство библиотек, подходящих для первой модели, пригодны и для использования на Raspberry Pi 2.

Впрочем, следует отметить, что не только миганием светодиода должен заниматься новый Raspberry Pi. Такое преимущество в скорости работы линий GPIO, безусловно может пригодиться в каких-нибудь частотных приложениях.


<Via>


Теги: Raspberry Pi




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий