Русский
Русский
English
Статистика
Реклама

Emmc

Создание терминала для СКУД и УРВ

21.06.2021 12:17:59 | Автор: admin

Вступление

Ранее, в предыдущих статьях, я рассказывал о бизнес-процессах, которые можно закрыть различными решениями нашего программного обеспечения, однако настало время рассказать о разработке железа, а именно терминале, который способен служить 2 целям - контролю доступа и учету рабочего времени в связке с нашей системой учета рабочего времени.

Историю можно начать с того, что наша компания очень долгое время сотрудничает со всемирно известной сетью фастфудов - KFC (на территории Беларуси и Украины). Головной болью такой сферы, как HoReCa, был и будет учет рабочего времени сотрудников. Учитывая огромную текучку кадров, в том числе и обычных студентов, которые пришли подработать на непродолжительное время, становится сложно проконтролировать, сколько часов отработано тем или иным сотрудником. Плюс немаловажным моментом стало то, что сотрудники часто перемещаются с ресторана на ресторан, а это требует дополнительного контроля. Как же быть?

Нашей компанией было принято решение разработать терминал учета рабочего времени, который бы регистрировал рабочие (или не рабочие) интервалы рабочего времени сотрудников с привязкой к конкретному месту работы. При этом нужна была поддержка нескольких видов идентификаторов - биометрия по отпечатку пальцев, RFID и PIN с возможностью фотофиксации событий доступа.

Поэтому был придумал предельно простой и быстрый сценарий действий на терминале:

  1. Прийти на рабочее место, подойти к терминалу и пройти идентификацию (приложить палец, карту к считывателю или ввести PIN)

  2. Выбрать на тачскрине Работа, после чего отправиться на свое рабочее место и приступить к работе

  3. При необходимости перерыва подойти к терминалу, пройти идентификацию, выбрать Перерыв

  4. При возвращении на рабочее место - подойти к терминалу, пройти идентификацию, выбрать Работа

  5. По окончанию рабочей смены подойти к терминалу, пройти идентификацию и выбрать Завершить работу.

То есть все события должны были фиксироваться на терминале, после чего все данные залетали бы на облако системы рабочего времени TARGControl. И там, административным персоналом, формировались табели и отчеты по объектам (ресторанам), что позволило бы корректно начислять заработную плату сотрудникам.

Разработка

Имея на руках техническое задание, была разработана структурная и функциональная схема. Далее пошло самое интересное: мы начали рассматривать различные варианты одноплатных компьютеров, которые бы смогли обеспечить нужный функционал терминала. Среди вариантов были следующие компьютеры: Banana Pi M4, Orange Pi PC+, ODROID-C4, NanoPi M4 и Raspberry PI Computer Module 3+. Произведем небольшое сравнение данных моделей.

Banana Pi M4

Orange Pi PC+

ODROID-C4

NanoPi M4

Raspberry PI CM3+

Память

Слот MicroSD с поддержкой расширения до 256 ГБ и флэш-память eMMC 8 ГБ с поддержкой до 64 ГБ

TF-карта (макс. 32ГБ) / слот для карты eMMC

8 ГБ флэш-память EMMC

1x разъем EMMC (доступно 8/16/32/64 ГБ)

1 слот Micro SD

нет встроенной eMMC, но есть разъем eMMC,
1 слот для MicroSD до 128 GB

8 GB eMMc + поддержка 1 слота microSD

RAM

1 GB DDR4 (опционально 2 GB)

1GB DDR3

4GB DDR4

Двухканальный 2GB DDR3-1866

1GB LPDDR2 SDRAM

CPU

Realtek RTD1395 ARM Cortex-A53 Quad-Core 64 Bit 1.8 GHz

H3 Quad-coreCortex-A71.2 GHz

Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz

RK3399- Cortex-A72 + Quad Core Cortex-A531.8 GHz

Broadcom BCM2837B0 с четырьмя ядрами Cortex A53 1.2 GHz

GPU

Mali 470 MP4 GPU OpenGL ES 1.1/2.0

Mali400MP2 GPU 600MHz
с поддержкой OpenGL ES 2.0

Mali-G31, поддержка OpenGL ES 3.2 и API Vulkan последнего поколения

Mali-T864поддержка OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11 и AFBC

Broadcom VideoCore IV

Сеть

Ethernet 10/100/1000 Мбит / с
Опциональный USB-ключ Wi-Fi. Поддержка PoE

10/100 Ethernet RJ45

RJ45 Ethernet порт (10/100/1000)

Порт Gbps Ethernet

10/100 для подключения маршрутизатора или коммутатора с функцией PoE

После детального изучения и анализа цены (все модели находились в примерно одном ценовом диапазоне на момент их анализа - 2019 год), мы все же пришли к выводу, что лучше всего подойдет Raspberry PI Computer Module 3+. Почему Raspberry ? Да, некоторые характеристики уступают конкурентам, однако главным преимуществом стало то, что по Raspberry банально больше поддерживаемых библиотек и лучше техническая поддержка, т.к Raspberry на рынке с 2012 года и вокруг него сформировалось активное комьюнити.

Решение со встроенной памятью eMMC, предусмотренное в CM3, позволяет не использовать флеш-карту в качестве носителя ОС. Большое количество циклов перезаписи eMMC повышает надежность и срок службы памяти по сравнению с флеш-картами. При этом мы зарезервировали разъем для SD карт. Сразу можно сказать, что заявленной памяти для терминала хватает с лихвой, ибо сохраняемые события весят от силы пару килобайт. Что касается хранения фотографий, то здесь все сложнее: программно мы поставили ограничение в 5000 фото, но так как у нас зарезервирована флеш-карта, то данный лимит можно расширить до приемлемого значения.

Разработку управляющей платы мы начали с организации необходимых питающих напряжений. На нашей плате нам необходимо было обеспечить 3 значения напряжений: 5.0В, 3.3В и 1.8В. Внешний источник питания у нас 12В 3А. Для получения 5В и 3.3В мы использовали схему на основе широтной импульсной модуляции. Для источника питания 1.8В мы задействовали линейный понижающий преобразователь. Это выглядит, примерно, следующим образом.

Схема питания терминалаСхема питания терминала

Исходя из схемы видно, что для электрической части терминала была организована схема защиты питания от короткого замыкания и переполюсовки.

Отметим также и схему защиты питания внешних считывателей, представленную ниже.

Схема защиты питания считывателя от диверсийСхема защиты питания считывателя от диверсий

То есть если закоротить питание, считыватель уйдет в защиту (питание считывателя отключится), а терминал продолжит работу. Номиналы резисторов R51 и R52 задают выходной ток. Изменяя номинал резистора R51 можно менять ток ограничения в значительных пределах (у нас стоят заданные на схеме номиналы исходя из рассчитанной нами нагрузки).

Питание мы организовали, самое время перейти к периферии.

К слову, Raspberry поддерживает UART-интерфейс и 2 USB версии 2.0. Через один из доступных USB мы решили организовать доступ к Ethernet с помощью микросхемы LAN9514 . Второй USB используется для подключения периферии, например индикатор алкоголя. Также задействовав GPIO для подключения кнопок, электромагнитных замков, защёлок, алкостестера в дискретном режиме работы и картаприемников.

Схема реализации Ethernet и USBСхема реализации Ethernet и USB

У CM3 на борту всего 2 UART. Один нам пригодится для организации интерфейса RS-485, а второй - debug. Поэтому мы использовали микросхему FT4232HL, для увеличения количества интерфейсов. У нее есть входной интерфейс USB, который поддерживает связь с LAN9514, он же в свою очередь коннектится с CM3.

Схема расширения количества UART-овСхема расширения количества UART-ов

Вот теперь у нас стало больше на целых 4 UARTa (задействуем всего 2). Один используется для подключения биометрического модуля отпечатков пальцев от южнокорейского производителя Suprema-SFM6020-OP6-8M/16M (8M - 5К отпечатков, 16М- 25К отпечатков).

Второй для подключения карточного модуля 7941D (поддерживает 2 частоты Emarine (125 кГц) и Mifare (13,56 МГц).

Suprema-SFM6020-OP6-8MSuprema-SFM6020-OP6-8M

Один из выделенных UART, как и планировали, мы задействовали под RS-485, позволяющий подключать внешние карточные или биометрические считыватели, а также передавать информацию во внешние системы при необходимости интеграции. Схема 485-го представлена ниже.

RS-485RS-485

В этой схеме мы прибегли к некоторым хитрым схемотехническим решениям, объединив и подключив линии RE и DE через транзистор, что позволило нам автоматизировать на аппаратном уровне переключение режимов приема/передачи.

Что касается интеграции с другими системами традиционным для СКУД способом, для передачи минимальной информации у нас организован выходной Wiegand. Есть и два входных Wiegand'а для подключения внешних считывателей. Ниже представлены их электрические принципиальные схемы.

Входной WiegandВходной WiegandВыходной WiegandВыходной Wiegand

Немаловажным моментом будет, что терминал имеет 2 реле для управления замком, турникетом или шлагбаумом. Рассмотрим данный момент на примере подключения турникета (стандартная ситуация для СКУД). Есть два режима управления турникетом, потенциальный режим и импульсный. При потенциальном режиме управления для разблокировки турникета в направлении А срабатывает выход L1 OUT (в направлении В выход L2 OUT). При окончании данного времени или при совершении прохода выходной сигнал возвращается в исходное состояние.

В импульсном режиме для разблокировки выхода L1 OUT и L2 OUT срабатывают кратковременно, посылая управляющий импульс на турникет (обычно 0,2-0,3 секунды). При получении импульса турникет разблокируется в соответствующем направлении на время 5 секунд либо пока не будет совершен проход в данном направлении.

Для контроля прохода в направлении А или направлении В используются две линии, на которые контроллер турникета выдает импульсные сигналы при совершении прохода в том либо другом направлении. Данные импульсные сигналы подключаются к входам SENS1 для прохода в направлении А и SENS2 для прохода в направлении В.

Например, для работы с турникетами PERCo в контроллере должен быть установлен импульсный режим управления. Для этого время срабатывания сигналов L1 OUT и L2 OUT должно быть установлено в пределах от 0,2 до 1 секунды.

Подключение турникета PERCoПодключение турникета PERCo

Как описано в самом начале статьи, по нашему техническому заданию, на терминале должна была быть организована фотофиксация, поэтому решили выбрать камеру от Raspberry, которая в терминалах имеет 2 исполнения:

  1. RPi D - 72.4 градуса обзор, 5 mpx, размер камеры 25x24 мм (старое исполнение).

  2. RPi G - 160 градусов обзор, 5 mpx, размер камеры 25x24 мм (теперь используем только этот вариант).

Схема организации интерфейсов DSI и CSIСхема организации интерфейсов DSI и CSI

Выбирая дисплей, выбор снова пал на знакомый бренд - 7-ми дюймовый touch-screen от Raspberry с разрешением 800x480 и DSI интерфейсом.

Исходя из размеров дисплея, считывателя и общей компоновки плат, были определены габариты корпуса для терминала - 210 x 173 x 44. Корпус решено было сделать цельнометаллическим алюминиевыми с гальваническим покрытием, что обеспечивало хотя бы минимальную вандалоустойчивость. Дисплей, конечно же, так не защищен.

Корпус терминалаКорпус терминала

Собрав все воедино мы получили терминал данного вида.

Знакомьтесь, терминал D1!Знакомьтесь, терминал D1!

Немного отклоняясь от темы, можно сказать, что мы были обмануты Raspberry, когда они в 4-ом поколении Compute Module поменяли форм-фактор и мы уже не смогли его просто заменить в нашей текущей плате и были вынуждены переходить на новое поколение путем разработки новой платы, но об этом в следующих статьях.

На данный момент с 2019 года нашей компаний было продано более 500 терминалов данной модели, а это показывает, что решение оказалось весьма успешным и надежным. В данной статье я коснулся лишь одной части - железа, однако большая работа была проделана и над прошивкой терминала. В следующей статье я расскажу, как реализована программная часть терминала. В случае возникновения вопросов или критических замечаний, прошу последовать в комментарии для бурного обсуждения!

Подробнее..

NVMe против UFS 3.1 Битва типов памяти в смартфонах. Разбор

27.07.2020 16:04:10 | Автор: admin
iPhone быстрые? Да! Но почему?

Apple мало что рассказывает нам про внутренности своих девайсов. Как будто скрывает от нас страшную тайну!

Например, знали ли вы что в iPhone и в Android используется совершенно разный тип флеш-памяти? NVMe в iPhone и UFS в Android.



Может в этом секрет скорости девайсов Apple?Сегодня разберемся в том, как устроена флеш-память. Узнаем, чем отличаются стандарты памяти? И главное сравним, кто всё-таки быстрее Android или iPhone! Такой информации больше нигде не найдете. Так что, читайте и смотрите до конца!



Флеш-память


Начнём с того что на флешках, картах памяти, в смартфонах и SSD-дисках везде используют один тот же тип памяти флеш-память. Это современная технология, пришедшая на смену магнитным носителям информации, то есть жестким дискам.

У флеш-памяти куча преимуществ. Она энергоэффективная, дешевая, прочная и безумно компактная. На чипе размером с монетку помещается до терабайта данных!



[caption id=attachment_144997 align=aligncenter width=601] Размер чипа Toshiba на фото 16x20 мм[/caption]

Но как удаётся хранить такие огромные объемы информации при таких крошечных размерах?

Как работает флеш-память?


Давайте разберемся как устроена флеш-память.

Базовая единица современной флэш-памяти это CTF-ячейка. Расшифровывается как Charge Trap Flash memory cell, то есть Память с Ловушкой Заряда. И это не какая-то образная ловушка а самая настоящая.



Эта ячейка способна запирать электроны внутри себя и хранить их годами! Примерно как ловушка из фильма Охотники за привидениями. Так что даже если ваш SSD-диск ни к чему не подключен и просто так лежит в тумбочке, знайте он полон энергии.

Наличие или отсутствие заряда в ячейке компьютер интерпретирует как нули и единицы. В общем-то как и всё в мире технологий.



Таких ячеек много и они стоят друг над другом. Поэтому такая компоновка ячеек называется Vertical NAND или VNAND. Она крайне эффективна и очень интересно организована.


Многоэтажная память


Небольшая аналогия. Представьте, что память это огромный многоэтажный жилой комплекс, в котором каждая квартира это ячейка памяти.

Так вот, в одном доме этого ЖК всегда 6 подъездов, на каждом этаже одного подъезда размещается 32 квартиры, т.е. ячейки памяти. А этажей в таком доме может быть аж 136 штук, но только если это самый современный дом.Такой дом с шестью подъездами называется блоком памяти.



К чему я это всё?NAND память организована так, что она не может просто считать и записывать данные в какую-то конкретную ячейку, ну или квартиру. Она сразу считывает или перезаписывает весь подъезд!

А если нужно что-то удалить, то стирается сразу целый дом, то есть блок памяти. Даже если вы просто решили выкинуть ковер в одной квартире не важно. Весь дом под снос!

Поэтому прежде чем удалить что-либо приходится сначала скопировать всю информацию в соседний блок.

А если памяти на диске осталось мало, меньше 30% от общего объема, то скорость работы такого диска сильно замедляется. Просто потому, что приходится искать свободный блок- место для копирования.

Так что следите за тем, чтобы память на телефоне или SSD-диске были заполнены не более чем на 70%! Иначе всё будет тупить.

Кстати, по этой же причине стирание информации потребляет намного больше энергии, чем чтение и запись. Поэтому хотите сэкономить заряд, поменьше удаляйте файлы!

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

Что такое спецификация?


Но вернёмся к флеш-памяти.Естественно сам по себе чип с памятью бесполезен потому как всей этой сложной структурой нужно как-то управлять. Поэтому существуют целые технологические стеки, которые всё разруливают. Их называют стандартами или спецификациями.

Еще разок!

Есть чип с флеш-памятью, как правило это NAND память. Там хранятся данные.

А есть спецификация это целый набор технологий вокруг чипа, программных и аппаратных, которые обеспечивают взаимодействия с памятью. Чем умнее спецификация, тем быстрее работает память.

Так какие же спецификации используются в наших смартфонах и какая из них самая умная? Давайте разберёмся.

eMMC


Выход первого iPhone в 2007 году спровоцировал постепенный отказ от карт памяти. Появилась потребность в новом стандарте недорогой флеш-памяти для мобильных устройств. Так появился eMMC, что значит встроенная Мультимедиа карта или Embedded Multimedia Card. То есть прям как eSIM (Embedded SIM).

Стандарт eMMС постепенно обновлялся и его скорости росли. И eMMC до сих пор используется в большинстве смартфонов, но данный стандарт явно не рекордсмен по скорости и сильно проигрывает тем же SSD дискам.






UFS


Тогда в 2014 году появился новый стандарт с нескромным названием Universal Flash Storage или UFS! Новый стандарт был всём лучше eMMC.



Во-первых, в UFS последовательный интерфейс. А это значит, что можно одновременно и записывать и считывать. eMMC мог делать только что-то одно. Поэтому UFS работает быстрее!



Во-вторых, он в два раза более энергоэффективный в простое.

Эффективнее работает с файлом подкачки когда ОЗУ забита.И еще, существуют UFS карты памяти, которые могут быть бесшовно интегрированы в внутреннем хранилищем! Это же полноценная модульная память!

Кстати, по этой причине, внутреннюю память телефона правильнее называть eUFS. Embedded, ну вы помните.



UFS вышел сразу же в версии 2.0 в 2015 году, а первым телефоном с этим стандартом стал Samsung Galaxy S6. Samsung так гордились скоростью памяти, что даже выкинули слот microSD изGalaxy S6.Казалось бы, судьба стандартов флеш-памяти предрешена вот он новый король. Новый USB мира флеш-памяти.

Но внезапно выходит iPhone 6s и мы видим это!





Что? Как такое возможно? Что за чудо память в этих iPhone? Похоже, Apple пошли какой-то своей дорожкой.Если стандарты eMMC и UFS наследники каких-то там детских карт памяти, то память в iPhone прямой наследник взрослых SSD-дисков. Потому как в iPhone используется спецификация памяти NVMe. Такая же память используется в компах и ноутбуках.

NVMe


Название NVMe довольно сложно расшифровывается -NVM Express (NVMe, NVMHCI от англ. Non-Volatile Memory Host Controller Interface Specification).

Но ключевое слово в названии Express! Почему?

Спецификация NVMe специально разрабатывалась для SSD-дисков с памятью NAND, подключенных по шине PCI Express.

NVMe создавался с нуля как новый способ эффективной работы с SSD-дисками. Из него убрали всё лишнее и сосредоточились на скорости.

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



Что это значит?

Это свойство особенно полезно для работы операционной системы, которая постоянно считывает и генерит кучу маленьких файлов размером по 4 КБ. Случайное чтение и запись NVMe это то, что делает iPhone таким быстрым.

Но, естественно, Apple не могли просто запихнуть целый SSD в смартфон. Они модифицировали протокол NVMe и разработали свой кастомный PCI-E контроллер.

Поэтому, то что стоит в iPhone решение абсолютно уникальное и в своё время было революционным. А они об этом даже ничего не сказали! Как всегда делает Apple.

Такая же история с MacBook. Apple первыми оказались от HDD. И они всегда ставят самую быструю память в ноуты. Во многом поэтому, даже на более слабом железе Mac ощущаются быстрее Windows-ноутбуков.

Тесты


Но вернёмся к смартфонам. Мы выяснили, что Android используют UFS-память, а Айфоны NVMe. Но проблема в том, что сложно сказать какая память действительно быстрее.

Скажем так есть, крутое сравнение от компании Micron. На базе кастомного Android девайса они сравнили NVMe и UFS 2.1 и получили преимущество NVMe по всем показателям! Вот такие:
  • Последовательная запись > 28%
  • Последовательное чтение > 15% быстрее при последовательном чтении.
  • IOPS (случайная запись и чтение) > 30%






CPDT Бенчмарк


Но кому это интересно? Сейчас много где есть UFS 3.0, а в Redmi K30 Pro вообще UFS 3.1.

Только посмотрите UFS 3.1 быстрее UFS 2.0 по разным показателям вплоть до 8 раз. Вот с чем надо сравнивать!

UFS 2.0 vs UFS 3.1


  • Последовательное чтение 6X
  • Последовательная запись 8X
  • Случайное чтение 5.3X
  • Случайная запись 5X



Значит надо просто скачать одинаковый тест под iPhone и Android, и готово! Мы узнаем кто чемпион. Только знаете что? Нет такого теста! Поверьте мы искали. Есть спорные тесты с непонятной методологией (PerfonaceTest), но приличного ничего нет.

Кроме Вот этого чудесного теста: Cross Platform Disk Test.Работает на всех платформах, подробно описана методология тестирования.И даже есть результаты тестов некоторых iPhone:



Но вот незадача, версия приложения для iOS так и не была выпущена.

Но мы не отчаялись! Как выяснилось, разработчика зовут Максим, он из Минска. Поэтому мы с ним связались и Макс любезно предоставил нам девелопер версию приложения под iOS.

Поэтому сегодня мы наверняка узнаем где всё-таки быстрее память: На самых последних iPhone или на самых крутых Android-смартфонах:
  • iPhone 11 Pro NVMe
  • Oneplus 8 Pro UFS 3.0
  • Redmi K 30 Pro UFS 3.1
  • и Macbook Pro 16 NVMe



В итоге побеждает дружба, в последовательной записи вроде бы все очень неплохо у Apple, но по произвольной они подчистую сливают Android-смартфонам. В копировании буквальное равенство результатов. При этом заметьте, что Poco F2 Pro с UFS 3.1 показал себя в тестах никак и проиграл и Sony Xperia 1 II, и OnePlus 8 Pro. Возможно решает не только это! А вот в сравнении с взрослым NVMe в ноутбуках мобильный NVMe в 3-4 раза медленнее и это конечно не радует. С другой стороны это значит, что смартфонам есть куда расти!



Еще раз хотим поблагодарить Максима за помощь и инструкции! Помните, тест не из лёгких, поэтому если у вас будет вылетать не ругайтесь!
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru