Не думал, что обычное размытие привлечёт дополнительное внимание. Под размытием никакой сверхсекретной информации нет. Получив её вы не сможете скопировать SIM-карту. Номера телефонов отживших своё SIM карт. Которые могли уже давно быть перевыпущенны оператором и попасть к другим пользователям. Они скрыты исключительно из этих соображений.
Данный «показометр» был удачно разработан моим сотрудником для служебного пользования. Для личного служебного пользования. Так удобно отслеживать изменения в процессе разработки драйверов и программного обеспечения. Выход в мир для данного приложения даётся потенциальному клиенту для ознакомления.
На одной из выставок некоторые посетители пересчитывали руками действительно ли в устройстве 200 сим карт.
P.S. я очень люблю книжки с цветными картинками и в статью постарался вставить картинки для оживления интереса.
На фото с отладкой не видно, но у нас есть планки держателей SIM карт с зелёными и жёлтыми светодиодами. (так получилось). Если их чередовать, то легче ориентироваться при поиске нужной SIM карты.
P.P.S. Используя цветовую дифференциацию логотипов операторов сотовой связи можно на экране «показометра» написать короткое слово. Например «ХАБР».
Борьба операторов не в моей компетенции. Так и к автопроизводителям можно придраться, что их автомобили используются для противоправных действий. И к производителям телефонов, что по телефону обсуждают не только хорошую погоду. Смысл статьи не в этом.
Чтение данных с PCI и передача в полудуплексном режиме к конкретно заданному устройству из двухсот это ко мне.
Просто в комментариях к моей первой статье ishevchuk задал вопрос «чем в устройстве занимается ПЛИС, просто коммутацией». Там выбор ПЛИС был взят на вырост и вопрос вполне правомерен. Не из пушек ли по воробьям мы хотим палить.
В этой статье показана одно из наиболее, как мне кажется, правильных применений ПЛИС. Распараллеливание большого количества маленьких блоков обмена со Smart-картой в одно устройство. Мы не занимаемся анализом переданных запросов и полученных ответов от SIM карты в плане взлома ключей и прочего. Но и без этого хватает сложности. Несмотря на небольшую скорость тактирования SIM-карт (от 1 до 5 МГц) не так, то и просто влезть по количеству доступных логических элементов в уже готовом устройстве. И принимать одновременно от 200 карт ATR. Для этого понадобилось пересмотреть взгляд на построение блоков внутри ПЛИС и сделать всё максимально просто, но не проще чем можно.
Сам SimBank предлагается в наборе с другими устройствами GSM-шлюзами и программным обеспечением позволяющим собирать всё в единую систему. Есть пользователи которые желают получить протокол обмена c картами и использовать совместно со своими устройствами.
Типичные пользователи: Call-центры, диспетчеры такси, диспетчеры служб доставки интернет магазинов, корпорации.
У вас есть SimBank с картами разных операторов. Большинство операторов предлагает вам за определённую абонентскую плату пакет услуг 10х минут в день и 50х SMS за 25 копеек. Всё что сверх пакета оплачивается по цене 1х минут за 25 копеек, и 1х SMS — 25 копеек. Если у нас в день необходимо совершать большое количество звонков не внутри корпорации (обратный звонок у такси) и отправлять большое количество SMS (оповещение о подъехавшем экипаже такси или о доставленном товаре на склад в городе). Можно воспользоваться шлюзом и SimBankом. Настроить систему и она сама будет следить о расходе средств с каждой карты и переводить звонок на карту с наилучшим тарифным планом. При этом внутри офисного здания может использоваться как IP-телефония так обычная. в зависимости от установленного оборудования.
Следующий пример гостиницы. Есть гостиницы на морских побережьях, в горах и прочих красивых местах куда мы ездим преимущественно для отдыха, а есть расположенные в местах проведения бизнес-конференций, шоу, выставок и презентаций.
В обоих случаях у нас могут быть многонациональные посетители.
Допустим у нас двести номеров в гостинице. В каждой установлен телевизор со спутниковым телевидением. Какой пакет наиболее предпочтительнее? С какими каналами? Как защитить карту доступа к каналам? Можно все карты собрать в одном месте. И программно коммутировать нужный пакет по запросу для каждого отдельного номера в случае необходимости. При этом отпадает необходимость в легком доступе к картоприёмнику для частой смены карты. Нужно только вставить спецкарту для передачи запросов от аппарата и приёма ответов от Smart карты.
Часто гостиницы предоставляют услуги выхода на местную связь из гостиничного номера (городскую и мобильную). Счёт потом вам добавят к цене за проживание. Если у гостиницы есть шлюз для выхода на сотового оператора, то расходы на связь можно сократить. В случае сети гостиниц можно настроить IP-связь с другими регионами и выводить звонки там в сотовую сеть.
Насколько реально сейчас затащить разработчика на С# в область ПЛИС? Люди не виноваты что под их задачи есть более удобные инструменты.
И наверное не корректно с моей стороны было говорить о всех электронщиках и всех программистах, что они смогут, а что нет.
Я не имел ввиду экономию ресурсов -10 или -20 LE.
Я имел ввиду, что в основном в итоге мы получаем прирост в скорости. И иногда в LE, за счёт регистров.
У меня был пробный проект с LVDS, на плате не предназначенной для передачи дифференциальных сигналов. При максимальных 622 МБит/с я смог получить 590 МБит/с. По витой паре из МГТФ, между двумя платами, с кривой синхронизацией. Нужно было проверить идею отказа от параллельной шины и замены её на последовательные, без использования гигабитных интерфейсов.
Еще было задание выжать максимум из старой платы, на которой не получалось сделать положенные 100 блоков работающие на 5 МГц. В итоге влезли все 100 и проект занимает менее 95% ресурсов.
Если электронщик думает о том как он бы сделал проект на рассыпухе, то он получит кучу неприятностей в виде неуспевающей логики. Если пытаться завернуть всё в примитивы триггеров и ячеек, то это будет долго и не всегда эффективно. Что-то оптимизирует компилятор, что-то не сможет. Электронщик будет рассказывать компилятору КАК делать, а программист (FPGA-designer) — ЧТО делать. И если у меня проект где-то не влазит, то значит я сильно затягиваю в сторону КАК.
Я слушал курсы по Xilinx и VHDL. Работаю с Altera и на Verilog.
Я начинал с «Introduction to VHDL». Потом был курс «Design for perfomance». Оба от Xilinx. Были еще курсы по моделированию и SystemVerilog. Но в последнем я тогда ни чего не понял, так как работал с схемами и платами.
По-крайней мере, истинный плисовод должен очень хорошо разбираться в электронике, как показывает моя многолетняя практика вменяемого плисовода можно сделать только из грамотного электронщика.
Соглашусь лишь отчасти. Для разработок всё сам нужно ковать плисовода из электронщика. Для командной работы в больших проектах иногда полезнее грамотно составить ТЗ программисту с учетом схемных ограничений. И получить от него более быстрый результат и удобный на Verilog проект. Который гораздо лучше ложится потом в ПЛИС. В комментариях есть мнение, что программа на ПЛИС это перписывание схемы на Verilog. Если отойти от этой практики, то схемы получаются гораздо лучше. Иногда пытаясь описать «как в схеме» получается каша, хотя этот кусок можно было описать в двух блоках. Я сам себя иногда на этом ловлю. И в проектах коллег вижу, перписывание некоторых таких частей дает иногда заметный прирост в скорости.
У нас есть оборудование для клиентов это, к примеру, GSM-шлюзы или SMS-шлюз. И нужно понимать, что в составе наших используются сертифицированные модули для работы в GSM сетях. Но есть задачи которые мы предлагаем операторам. Например проверка нагрузочной способности сети в какой-то её части. Есть желание (и движение в данном направлении) изготавливать и поставлять и другое оборудование операторам.
Если говорить о системных заказах, о это оптимизация затрат на связь в крупных фирмах, call-центрах, диспетчерских служб. Там в связке работает шлюз(ы) + симбанк + программное обеспечение. Шлюз обеспечивает связь между сотовыми сетями, городской телефонной сетью и операторами. Оператор делает обзвон клиентов (или перезванивает клиенту в случае услуги «обратный звонок») со своего рабочего места не задумываясь какую трубку взять (того или иного оператора), а программное обеспечение в зависимости от набранного номера коммутирует не только между сотовой и городской сетью, но и выбирает свободную SIM-карту с достаточным количеством минут на ней. Сейчас очень много тарифов с пакетными предложениями, где за относительно небольшую сумму вы получите XX SMS и YY минут разговоров в день, но всё что выше извольте платить по бизнес-тарифу. Настроив лимит можно здорово сэкономить.
Сигнализации? Системы сбора данных?
Есть у нас решения и для сигнализаций (как на проникновение так и по параметрам напряжения, температуры и прочего) с оповещением по GSM/телефонной линии и извещением координат из GPS. Этим направлением занимается другой отдел, но основные компоненты (ПЛИС, GSM-модули, DSP и тп) используются одни и те же. Кто-то лучше (раньше) освоил одну часть — иди помоги освоить другому. Делаешь плату под свою задачу, а сможем ли мы с ней использовать устройство ZZZ в качестве модуля? Требование к универсальности усложняет задачу, но когда клиент хочет скрестить «ежа с удавом» — то мы это делаем.
… всё захватили крупные производители, которые поставляют оборудование через интеграторов…
с крупными производителями не всегда можно договорится на какую-то уникальную функцию в устройстве, не всегда можно пробить какой-нибудь функционал в программном обеспечении. Иногда им просто не понятно зачем это нужно. (Пример: у нас в ГОСТ схемы электрические принципиальные требуется нумерация слева-направо, сверху-вниз (с оговоркой). У них нумерация производится в основном относительно платы или устройства. И объяснить производителю ПО для трассировки печатных плат, что нужно — очень сложно. Там не понимают зачем это нужно, и не будут это делать по прихоти «всего 1/6 части суши»).
У нас же есть директор, которого убедить проще и он поставит перед нами задачу. Мы её выполним, заедим пряником и все довольны.
мелкосерийное оборудование, со своим настроечным интерфейсом, уникальной архитектурой?
Настроечный интерфейс настраивается не так часто как кажется и он связывается в распространённые системы типа Asterisk или чего пожелает заказчик, оператор не видит железного ящика с нашими платами и Linux-консоли у него веб-интерфейс с которого он может позвонить/отправить SMS. Ему даже не нужно следить за балансом на картах, за него это сделает администратор или скрипт, который пришлёт отчет об использовании средств и прочего.
Уникальность архитектуры позволяет отдать заказчику то, чего он хочет. При этом к оборудованию подключаются обычные телефонные аппараты в случае PBX-решений или VoIP аппаратура, или и то и другое в особых случаях.
Для систем реального времени не скажу, так как таким не занимались.
На счет десятка CPU на одной плате: у нас стоит именно задача собирать данные с ПЛИС (в которых удобно параллелить мелкие задачи). И отдавать в один процессор. Самый недавний пример SimBank на 200 SIM карт, которые передаются в один центральный процессор. Но там данных с гулькин нос, и хватает PCI шины.
На новой плате у нас соит многоядеерный процессор (до четырёх) с поддержкой протокла RGMII. Если задача позволяет можно использовать меньше многоядерных микросхем.
Есть процессоры с поддержкой нескольких портов GMII/RGMII/SGMII. Через них можно соединятся напрямую без дополнительной упаковки в Ethernet. Причём можно использовать как соединение между процессорами по цепочке (кольцу), так и через внешний коммутатор типа многопортового GigabitSwitch но без PHY, так как на плате они не нужны.
То что не для GSM это точно, так как это клиентское оборудование, а не операторское. На стороне абонента такого потока данных нет.
Скорее всего это не бует PCIe, так как под него есть ядро у Altera и у нас могут возникнуть ограничения на создание восьми параллельных PCIe в циклоне. Тут больше из серии «заложились на будущее».
В существуещем приборе стоит Cyclone III. В основном он занимается просто коммутацией + небольшие конечные автоматы для работы с устройствами. Но и этой работы ПЛИС хватает. В одной версии нужно данные забирать из GSM модуля и отправлять в VoIP, в другом варианте нужно отправить на аналоговые окончания FXO/FXS. Переброска сигналов из одного GSM/обычного канала в другой минуя процессор.
Обработкой голоса занимается ЦСП на дополнительных платах. Так оказалось проще и быстрее. Желание поднять обработку голоса внутри ПЛИС есть, но руки не доходят.
Cyclone IV GX заложили в новую весрию платы так как иногда ставятся задачи, кторые на существуещем железе сделать невозможно. В нем изначально будет только коммутация, но уже с быстрыми каналами.
Возможно, но мне так когда-то рбъяснили поведение микросхем, с моим первым заказом платы для QFN корпуса. Они все ышли из печи боком.
Благо микросхем на плате было всего 10, а плат всего 5. их потом вручную феном напаяли.
Данный «показометр» был удачно разработан моим сотрудником для служебного пользования. Для личного служебного пользования. Так удобно отслеживать изменения в процессе разработки драйверов и программного обеспечения. Выход в мир для данного приложения даётся потенциальному клиенту для ознакомления.
На одной из выставок некоторые посетители пересчитывали руками действительно ли в устройстве 200 сим карт.
P.S. я очень люблю книжки с цветными картинками и в статью постарался вставить картинки для оживления интереса.
На фото с отладкой не видно, но у нас есть планки держателей SIM карт с зелёными и жёлтыми светодиодами. (так получилось). Если их чередовать, то легче ориентироваться при поиске нужной SIM карты.
P.P.S. Используя цветовую дифференциацию логотипов операторов сотовой связи можно на экране «показометра» написать короткое слово. Например «ХАБР».
Чтение данных с PCI и передача в полудуплексном режиме к конкретно заданному устройству из двухсот это ко мне.
Просто в комментариях к моей первой статье ishevchuk задал вопрос «чем в устройстве занимается ПЛИС, просто коммутацией». Там выбор ПЛИС был взят на вырост и вопрос вполне правомерен. Не из пушек ли по воробьям мы хотим палить.
В этой статье показана одно из наиболее, как мне кажется, правильных применений ПЛИС. Распараллеливание большого количества маленьких блоков обмена со Smart-картой в одно устройство. Мы не занимаемся анализом переданных запросов и полученных ответов от SIM карты в плане взлома ключей и прочего. Но и без этого хватает сложности. Несмотря на небольшую скорость тактирования SIM-карт (от 1 до 5 МГц) не так, то и просто влезть по количеству доступных логических элементов в уже готовом устройстве. И принимать одновременно от 200 карт ATR. Для этого понадобилось пересмотреть взгляд на построение блоков внутри ПЛИС и сделать всё максимально просто, но не проще чем можно.
Типичные пользователи: Call-центры, диспетчеры такси, диспетчеры служб доставки интернет магазинов, корпорации.
У вас есть SimBank с картами разных операторов. Большинство операторов предлагает вам за определённую абонентскую плату пакет услуг 10х минут в день и 50х SMS за 25 копеек. Всё что сверх пакета оплачивается по цене 1х минут за 25 копеек, и 1х SMS — 25 копеек. Если у нас в день необходимо совершать большое количество звонков не внутри корпорации (обратный звонок у такси) и отправлять большое количество SMS (оповещение о подъехавшем экипаже такси или о доставленном товаре на склад в городе). Можно воспользоваться шлюзом и SimBankом. Настроить систему и она сама будет следить о расходе средств с каждой карты и переводить звонок на карту с наилучшим тарифным планом. При этом внутри офисного здания может использоваться как IP-телефония так обычная. в зависимости от установленного оборудования.
Следующий пример гостиницы. Есть гостиницы на морских побережьях, в горах и прочих красивых местах куда мы ездим преимущественно для отдыха, а есть расположенные в местах проведения бизнес-конференций, шоу, выставок и презентаций.
В обоих случаях у нас могут быть многонациональные посетители.
Допустим у нас двести номеров в гостинице. В каждой установлен телевизор со спутниковым телевидением. Какой пакет наиболее предпочтительнее? С какими каналами? Как защитить карту доступа к каналам? Можно все карты собрать в одном месте. И программно коммутировать нужный пакет по запросу для каждого отдельного номера в случае необходимости. При этом отпадает необходимость в легком доступе к картоприёмнику для частой смены карты. Нужно только вставить спецкарту для передачи запросов от аппарата и приёма ответов от Smart карты.
Часто гостиницы предоставляют услуги выхода на местную связь из гостиничного номера (городскую и мобильную). Счёт потом вам добавят к цене за проживание. Если у гостиницы есть шлюз для выхода на сотового оператора, то расходы на связь можно сократить. В случае сети гостиниц можно настроить IP-связь с другими регионами и выводить звонки там в сотовую сеть.
И наверное не корректно с моей стороны было говорить о всех электронщиках и всех программистах, что они смогут, а что нет.
Я имел ввиду, что в основном в итоге мы получаем прирост в скорости. И иногда в LE, за счёт регистров.
У меня был пробный проект с LVDS, на плате не предназначенной для передачи дифференциальных сигналов. При максимальных 622 МБит/с я смог получить 590 МБит/с. По витой паре из МГТФ, между двумя платами, с кривой синхронизацией. Нужно было проверить идею отказа от параллельной шины и замены её на последовательные, без использования гигабитных интерфейсов.
Еще было задание выжать максимум из старой платы, на которой не получалось сделать положенные 100 блоков работающие на 5 МГц. В итоге влезли все 100 и проект занимает менее 95% ресурсов.
Если электронщик думает о том как он бы сделал проект на рассыпухе, то он получит кучу неприятностей в виде неуспевающей логики. Если пытаться завернуть всё в примитивы триггеров и ячеек, то это будет долго и не всегда эффективно. Что-то оптимизирует компилятор, что-то не сможет. Электронщик будет рассказывать компилятору КАК делать, а программист (FPGA-designer) — ЧТО делать. И если у меня проект где-то не влазит, то значит я сильно затягиваю в сторону КАК.
Я слушал курсы по Xilinx и VHDL. Работаю с Altera и на Verilog.
Я начинал с «Introduction to VHDL». Потом был курс «Design for perfomance». Оба от Xilinx. Были еще курсы по моделированию и SystemVerilog. Но в последнем я тогда ни чего не понял, так как работал с схемами и платами.
Соглашусь лишь отчасти. Для разработок всё сам нужно ковать плисовода из электронщика. Для командной работы в больших проектах иногда полезнее грамотно составить ТЗ программисту с учетом схемных ограничений. И получить от него более быстрый результат и удобный на Verilog проект. Который гораздо лучше ложится потом в ПЛИС. В комментариях есть мнение, что программа на ПЛИС это перписывание схемы на Verilog. Если отойти от этой практики, то схемы получаются гораздо лучше. Иногда пытаясь описать «как в схеме» получается каша, хотя этот кусок можно было описать в двух блоках. Я сам себя иногда на этом ловлю. И в проектах коллег вижу, перписывание некоторых таких частей дает иногда заметный прирост в скорости.
У нас есть оборудование для клиентов это, к примеру, GSM-шлюзы или SMS-шлюз. И нужно понимать, что в составе наших используются сертифицированные модули для работы в GSM сетях. Но есть задачи которые мы предлагаем операторам. Например проверка нагрузочной способности сети в какой-то её части. Есть желание (и движение в данном направлении) изготавливать и поставлять и другое оборудование операторам.
Если говорить о системных заказах, о это оптимизация затрат на связь в крупных фирмах, call-центрах, диспетчерских служб. Там в связке работает шлюз(ы) + симбанк + программное обеспечение. Шлюз обеспечивает связь между сотовыми сетями, городской телефонной сетью и операторами. Оператор делает обзвон клиентов (или перезванивает клиенту в случае услуги «обратный звонок») со своего рабочего места не задумываясь какую трубку взять (того или иного оператора), а программное обеспечение в зависимости от набранного номера коммутирует не только между сотовой и городской сетью, но и выбирает свободную SIM-карту с достаточным количеством минут на ней. Сейчас очень много тарифов с пакетными предложениями, где за относительно небольшую сумму вы получите XX SMS и YY минут разговоров в день, но всё что выше извольте платить по бизнес-тарифу. Настроив лимит можно здорово сэкономить.
Есть у нас решения и для сигнализаций (как на проникновение так и по параметрам напряжения, температуры и прочего) с оповещением по GSM/телефонной линии и извещением координат из GPS. Этим направлением занимается другой отдел, но основные компоненты (ПЛИС, GSM-модули, DSP и тп) используются одни и те же. Кто-то лучше (раньше) освоил одну часть — иди помоги освоить другому. Делаешь плату под свою задачу, а сможем ли мы с ней использовать устройство ZZZ в качестве модуля? Требование к универсальности усложняет задачу, но когда клиент хочет скрестить «ежа с удавом» — то мы это делаем.
с крупными производителями не всегда можно договорится на какую-то уникальную функцию в устройстве, не всегда можно пробить какой-нибудь функционал в программном обеспечении. Иногда им просто не понятно зачем это нужно. (Пример: у нас в ГОСТ схемы электрические принципиальные требуется нумерация слева-направо, сверху-вниз (с оговоркой). У них нумерация производится в основном относительно платы или устройства. И объяснить производителю ПО для трассировки печатных плат, что нужно — очень сложно. Там не понимают зачем это нужно, и не будут это делать по прихоти «всего 1/6 части суши»).
У нас же есть директор, которого убедить проще и он поставит перед нами задачу. Мы её выполним, заедим пряником и все довольны.
Настроечный интерфейс настраивается не так часто как кажется и он связывается в распространённые системы типа Asterisk или чего пожелает заказчик, оператор не видит железного ящика с нашими платами и Linux-консоли у него веб-интерфейс с которого он может позвонить/отправить SMS. Ему даже не нужно следить за балансом на картах, за него это сделает администратор или скрипт, который пришлёт отчет об использовании средств и прочего.
Уникальность архитектуры позволяет отдать заказчику то, чего он хочет. При этом к оборудованию подключаются обычные телефонные аппараты в случае PBX-решений или VoIP аппаратура, или и то и другое в особых случаях.
На счет десятка CPU на одной плате: у нас стоит именно задача собирать данные с ПЛИС (в которых удобно параллелить мелкие задачи). И отдавать в один процессор. Самый недавний пример SimBank на 200 SIM карт, которые передаются в один центральный процессор. Но там данных с гулькин нос, и хватает PCI шины.
На новой плате у нас соит многоядеерный процессор (до четырёх) с поддержкой протокла RGMII. Если задача позволяет можно использовать меньше многоядерных микросхем.
Есть процессоры с поддержкой нескольких портов GMII/RGMII/SGMII. Через них можно соединятся напрямую без дополнительной упаковки в Ethernet. Причём можно использовать как соединение между процессорами по цепочке (кольцу), так и через внешний коммутатор типа многопортового GigabitSwitch но без PHY, так как на плате они не нужны.
Скорее всего это не бует PCIe, так как под него есть ядро у Altera и у нас могут возникнуть ограничения на создание восьми параллельных PCIe в циклоне. Тут больше из серии «заложились на будущее».
Обработкой голоса занимается ЦСП на дополнительных платах. Так оказалось проще и быстрее. Желание поднять обработку голоса внутри ПЛИС есть, но руки не доходят.
Cyclone IV GX заложили в новую весрию платы так как иногда ставятся задачи, кторые на существуещем железе сделать невозможно. В нем изначально будет только коммутация, но уже с быстрыми каналами.
Благо микросхем на плате было всего 10, а плат всего 5. их потом вручную феном напаяли.