Как стать автором
Обновить

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

Да сколько можно говорить-то уже. Никогда не заблюривайте информацию, которую хотите скрыть. Никогда, блин, вообще никогда! Дизайнеры, елки-палки.
Скрытый текст

Я не дизайнер. Но принял к сведению. Спасибо.
Чем деблюрить то?
Я просто посмотрел на картинку и безо всякого софта разобрал.
Не думал, что обычное размытие привлечёт дополнительное внимание. Под размытием никакой сверхсекретной информации нет. Получив её вы не сможете скопировать SIM-карту. Номера телефонов отживших своё SIM карт. Которые могли уже давно быть перевыпущенны оператором и попасть к другим пользователям. Они скрыты исключительно из этих соображений.
Данный «показометр» был удачно разработан моим сотрудником для служебного пользования. Для личного служебного пользования. Так удобно отслеживать изменения в процессе разработки драйверов и программного обеспечения. Выход в мир для данного приложения даётся потенциальному клиенту для ознакомления.
На одной из выставок некоторые посетители пересчитывали руками действительно ли в устройстве 200 сим карт.

P.S. я очень люблю книжки с цветными картинками и в статью постарался вставить картинки для оживления интереса.
На фото с отладкой не видно, но у нас есть планки держателей SIM карт с зелёными и жёлтыми светодиодами. (так получилось). Если их чередовать, то легче ориентироваться при поиске нужной SIM карты.
P.P.S. Используя цветовую дифференциацию логотипов операторов сотовой связи можно на экране «показометра» написать короткое слово. Например «ХАБР».
Статья прекрасна, но вы бы таки пояснили в двух словах, что все-таки делает само устройство и зачем там так вот принципиально понадобилась именно PCI?
По поводу того что делает само устройство добавил. Выбор PCI обусловлен доступностью под него плат. И простотой реализации.
То есть, как я понял, есть некий особый класс устройств, которые нуждаются в SIM-картах для работы _и_ при этом умеют работать не с локальной SIM-картой, а обращаясь за ней куда-то удаленно по TCP/IP. Этот самый TCP/IP-протокол, видимо, как-то где-то более-менее стандартизирован и задокументирован.

Какая стоимость конечного устройства у вас получилась на 200 карт?
Сам SimBank предлагается в наборе с другими устройствами GSM-шлюзами и программным обеспечением позволяющим собирать всё в единую систему. Есть пользователи которые желают получить протокол обмена c картами и использовать совместно со своими устройствами.
Типичные пользователи: Call-центры, диспетчеры такси, диспетчеры служб доставки интернет магазинов, корпорации.
У вас есть SimBank с картами разных операторов. Большинство операторов предлагает вам за определённую абонентскую плату пакет услуг 10х минут в день и 50х SMS за 25 копеек. Всё что сверх пакета оплачивается по цене 1х минут за 25 копеек, и 1х SMS — 25 копеек. Если у нас в день необходимо совершать большое количество звонков не внутри корпорации (обратный звонок у такси) и отправлять большое количество SMS (оповещение о подъехавшем экипаже такси или о доставленном товаре на склад в городе). Можно воспользоваться шлюзом и SimBankом. Настроить систему и она сама будет следить о расходе средств с каждой карты и переводить звонок на карту с наилучшим тарифным планом. При этом внутри офисного здания может использоваться как IP-телефония так обычная. в зависимости от установленного оборудования.
Следующий пример гостиницы. Есть гостиницы на морских побережьях, в горах и прочих красивых местах куда мы ездим преимущественно для отдыха, а есть расположенные в местах проведения бизнес-конференций, шоу, выставок и презентаций.
В обоих случаях у нас могут быть многонациональные посетители.
Допустим у нас двести номеров в гостинице. В каждой установлен телевизор со спутниковым телевидением. Какой пакет наиболее предпочтительнее? С какими каналами? Как защитить карту доступа к каналам? Можно все карты собрать в одном месте. И программно коммутировать нужный пакет по запросу для каждого отдельного номера в случае необходимости. При этом отпадает необходимость в легком доступе к картоприёмнику для частой смены карты. Нужно только вставить спецкарту для передачи запросов от аппарата и приёма ответов от Smart карты.
Часто гостиницы предоставляют услуги выхода на местную связь из гостиничного номера (городскую и мобильную). Счёт потом вам добавят к цене за проживание. Если у гостиницы есть шлюз для выхода на сотового оператора, то расходы на связь можно сократить. В случае сети гостиниц можно настроить IP-связь с другими регионами и выводить звонки там в сотовую сеть.
Очень развёрнутый ответ ни о чём (по крайней мере не отвечает на поставленый вопрос).
Какова же стоимость-то?
Нету отдельной стоимости у этого продукта — 99% гарантия. Продадут только в комплекте с решением под ключ, цена которого будет индивидуальная на 99%. Себестоимость — другое дело.
Господа, я не знаю конечной сотимости коробки. Ценообразованием занимается отдел продаж.
Можем ли мы продать отдельно коробку, да можем. Но куда вы дома будете подключать 200 SIM карт?
Если вам нужно комплексное решение по уменьшению затрат на связь, то вы можете договррится с оператором об особом тарифе, корпроативных пакетах и прочем. Но есть нишевые решения, которые нельзя купить уже готовыми. Мы готовы и мы можем их реализовывать. SimBank — это всего лиш часть большого решения. Если он нецелеобразен в каком-то маленьком конкретном случае там где хватит четырех (2, 8 или 16) посадочных мест под SIM карты в самом шлюзе, то где-то он выгодно дополнит ситему.
При разработке новой схемы или модернизации старой я могу вопсользоваться калькулятором от Digikey. И получу примерную цену BOM на опытный экземпляр. Сильно примерную.
Ok, про «зачем это нужно» — примерно понял, верю, определенный смысл есть. Я, собственно, хочу понять по поводу реализации — зачем и насколько оправданно было делать именно так.

Раз уж вы про стоимость ничего не сказали — попробую прикинуть сам на коленке хотя бы стоимость железа:

  • 2× Cyclone II = 2 * 115$ = 230$
  • плата со всей обвязкой + PCI riser — скорее всего в районе ~110..120$
  • 20× платок с SIM-держателями = 20 × 15$ (из которых 10$ = 10 держателей примерно по 1$ штука) ~ 300$
  • Intel-часть (Mini-ITX с каким-нибудь маленьким запаянным процессором) ~ 100$
  • планка памяти DDR3 ~15$
  • блок питания ~40$
  • корпус ~30$


Итого у меня получается в районе 835$ только BOM, и это по близко к самым оптовым ценам — в реальности скорее всего будет процентов на 20-30-50 больше — т.е. 1000-1200$.

Возникает вопрос: не проще / быстрее в разработке / экономически эффективнее было сделать, скажем, SIM-to-USB (или даже SIM-to-Ethernet) на каких-нибудь супердешевых Atmega'х с большим количеством ног, затем воткнуть все это в ширпотребные USB- или Ethernet-хабы, и, если это так принципиально, сверху поставить еще один ARM с обвесом чуть побольше всем этим управлять?
Не могу утверждать, но супердешевая Atmega c большим количеством ног не будет иметь двести аппаратных реализаций протокола. А последовательный опрос может не успеть за всеми данными. Пропуск информации от SIM — недопустим.
У нас есть реализация банка на основе ARM-платы (SIMbox). Там может быть или 100 или 200 карт. В основе плат все равно ПЛИС. Связь идёт все равно через плату СPU. Выкидывая плату Mini-ITX мы не уменьшаем цену на 100$, а только на разницу между ценой на плату ITX и нашей СPU c ARM Atmel G20.
К цене нужно добавить HDD/SSD или флешку. На которй установлена ОС из запущенно управляющее приложение.
На плате SIMbox есть возможность реализации связи исключительно через Ethernet. Но все равно в комплексе нам нужно где-то крутить сервер обработки данных, слежения за используемыми сейчас картами, чтоб одна карта не была зарегистрирована в двух местах.
Поэтому отдельная реализация на данный момент не востребована.
Я просто в жизни уже раза 3-4 встречался с такими суперинтегрированными решениями с такой, по сути, самопальной параллельной коммутацией на FPGA — «воткните в нашу коробку n устройств и мы всех их обслужим» (n, как правило, в районе сотен). Это всевозможные «потестировать DIMMы», «потестировать HDD», «затиражировать CD» и т.д.

Так вот, от всех этих устройств осталось одно мерзкое ощущение — они все толком не работают, как заявлено. Ваша статья, к сожалению, скорее косвенно это подтверждает, чем опровергает. Ситуация, когда в коммутаторе на ~1000 честных параллельных контактов по каким-то фантомным причинам что-нибудь там пропало на паре из них — чисто статистически будет встречаться очень часто, и как это отлаживать или хотя бы изолировать — совершенно непонятно.

Я, собственно, раньше не понимал, зачем во всяких там автомобилях-самолетах городят сложные шины типа CANа или чего-то подобного — с адресами, протоколами взаимодействий и т.д. — а сейчас понимаю, что скорее всего просто потому, что такая монолитная модель «коммутатор на X устройств», где X > нескольких десятков — по сути — неработоспособна. Даже если смотреть не FPGA-решения, а что-то более железное и компактное — даже те же Ethernet свичи в целом не делают на больше, чем ~50 портов — тоже скорее всего не просто так.

Поэтому и здесь у меня очень ненулевое подозрение, что использование какой-нибудь готовой модульной сети (USB, Ethernet, что-нибудь еще?) вместо толком неотлаживаемых 100500 ног — было бы и стабильнее, и, скорее всего, в полтора-два раза дешевле за счет использования стандартных компонентов.
Могу очень грубо попробовать прикинуть такую схему: берем какую-нибудь ATmega на 100 ног, у нее будет 69 I/O pins. По 4 пина на одну карту => условно на одну такую ATmega можно повесить ~16 карт.

ATmega ~1$, сама платка и USB-хедер или USB-коннектор ~ 2-3$, 16 держателей ~ 16×1$ => все вместе порядка 20$ BOM за готовый, самоценный модуль, который уже может обслуживать эти карты в совершенно автономном режиме, держа у себя все буферы и т.д.

Дальше, если нужно какое-то централизованное управление этим — втыкаем в готовый железный USB-хаб на 16 портов за 30-40$ (и это с корпусом и всеми разъемами у китайцев на FOB), а его — в «готовый» большой ARM или даже x86 компьютер. Почему-то мне кажется, что с маршрутизацией на уровне больших единичных пакетов справится даже какой-нибудь Raspberry PI за еще 25$ или что-то подобное же. Все это в какой-нибудь корпус за еще 30-40$.

Итого в варианте, скажем, 16× модулей на ATmega по 16 карт в каждом, это будет 16*20 + 40 + 25 + 40 ~ 425$ BOM. И это на 256 карт, а не на 200, и, самое главное, оно абсолютно модульное. Если отказал какой-то модуль на ATmega — то его легко выкинуть и поставить на его место другой. Такого, что внезапно из-за проблем в одном модуле происходит отказ в другом — по идее не будет в принципе. И сложность разработки, субъективно, на порядок проще, чем полноценное погружение в FPGA, PCI и все эти многокилометровые диаграммы сигналов.
Если вы не в курсе что такое PCI, ПЛИС и прочее, то да, вам проще на ATMege. И этот вариант вполне работоспособен. И имеет право на жизнь.
В наших краях есть две крайности. я делаю на микроконтроллерах/DSP/ПЛИС (нужное подчеркнуть) — потому что я это умею. А всё остальное в корне не верно так как я это могу сделать на своём.
Или вторая. ПЛИС сейчас модно, или модно использовать 16(32) разрядный контроллер вместо 8. Делаем на нём. Закзачики заплатят на ххх больше.
Если на фирме используется PCI ядро и вдругих разработках, то новое рано или поздно придётся поднимать и для них. Просто это была первоочережная задача. Её реализация предполагалась на уже существуещем железе. Когда уже поздно было делать USB hub и 16 мег.
Мне лично, боюсь, никак не проще, для меня все будет примерно одинаково сложно — я ни тем, ни другим, ни третьим уже лет 7-8 толком не занимаюсь.

Ок, я понял, что в данном случае PCI и циклоны — данность свыше. Если абстрагироваться от всего этого, то вы как лично считаете — какой наиболее правильный вариант решения этого блока задач (с экономической точки зрения, с точки зрения перспектив, с точки зрения легкости поддержки и дальнейшей разработки и т.д.) — и почему?
Для большого числа повторяющих независимых блоков — ПЛИС оптимальный выбор. Сложность для меня была в том, что это новая задача, которую нужно освоить. Сложность для коллектива — отрезать какую-то родную часть, которая раньше работала, а сейчас вроде как можно её починить (с негарантированным результатом) или сделать всё с нуля. И переделать смежные части, но в итоге получить улучшение.
Выбор шины LoacalBus, PCI или PCIe, Ethernet — не столь важно. Нужно понимать, что в скорость COM-порта 200 карт мы не успеем впихнуть.
Altera Cyclone по цене очень хорош. Новые версии четвертого и пятого поколения более выгодны по цене. Но всё упирается в разработку новой платы.
По поддержке и дальнейшей разработке — всё довольно просто если вы умеете разрабатывать на ПЛИС, то проекты потом нормально переносятся на следующие разработки. В последних версиях Quartus Cyclone-2 (и 3) уже не поддердивается. Но так мы уже откомпилировали проект под эту версию. В этом плане Altera не лучше и не хуже других. У всех есть продукты с пометкой «устарело» и «не поддерживается».
Раньше было только одно устройство — SimBank на PCI шине. Потом сделали SimBox — на ARM плате собственной разработки. Оно было дешевле варианта с PCI. Его конструкция позволяет делать два устройства — на 100 и на 200 SIM карт. Всего лишь заменяя корпус и добавляя вторую плату.
Сейчас с появлением плат на Atom для SimBank преимущество в цене SimBox не так очевидно. С учётом производительности и прериферии мат. плат.
Сейчас в производстве новая версия платы CPU. Там будет больше возможностей для разворачивания сопутстсвующего ПО.
О перспективах. Платы с PCI еще на рынке есть, есть спрос на них. Не такой большой как на на новый яТелефон, но он есть.
Сложнее ли поддерживать ПЛИС, чем проект на процессорах, микроконтроллерах? Он другой и одновременно такой же. Есть задача — ищем решение. Отладили на одной карте, размножили, проверили.
Ошибки на этапе отладки возникают не от кривости инструмента. А от его не знания или непонимания. От недостатка времени или количества данных на этапе отладки. Большинство из нас не застрахованно от ошибок в работе. Но это не значит, что работу не нужно делать.
Я на микроконтроллерах не разрабатывал программно эдак лет 8. Причем суть работы была разовая. Нужно было автоматизировать стенд для работы. Там не ставилась задача сделать по себестоимости 1$ и выходной ценой изделия 100$. Должно работать на том, что есть под рукой (в магазине, стране).
там поддержка ограничивалась тем, что нужно увеличить диапазон возможных пауз между нагрузками, или добавить регулировку амплитуды.
Сейчас поддержкой процессоров занимаются коллеги. И они разбираются с отличиями в новых ядрах и дистрибутивах Linux. Встанут ли они наш процессор и т.п.
присоединяюсь, зачем банк SIM карт? Какой профит с этого?
Предложу свой вариант: у вас есть головная станция кабельного ТВ из 100 вещающих устройств и вам нужно зашифровать эти каналы. Втыкать в каждую SIM'ку при том, что их периодически придется менять — унылое дело. А тут собираются все карты в одном месте и скорее всего позволяют на ходу их переключать.
возможно для IP телефонии, терминация международного трафика (так называемые gray route)
да, как один из вариантов. Как раз из-за простоты замены карт
А как вы представляете себе спамеров, которые рассылают СМС спам?
Или вы думали, что сидят 200 человек в каком-нибудь офисе и на своих мобилках набирают СМСки?))))
Этим занимается не Simbank. Это задача GSM-шлюза. Он такое умеет.
Операторы как-нибудь реагируют на всплеск активности в одном радиусе?
Ведь по факту 90% подобных устройств используют для всяческого фрода. Например для рассылки смс, регистрации аккаунтов, где нужно подтверждение по смс, предоставление виртуальных анонимных номеров и т.д.

Пару раз встречал объявления, где люди чуть ли не на развес ими торгуют, по 10 руб./штука партиями по 500-1000 номеров.
еще как реагируют и блокируют, продвинутые GSM-шлюзы кроме перебора карт еще практикуют поочередное подключение к разным базовым станциям, та что для оператора это выглядит как перемещающийся объект.
Борьба операторов не в моей компетенции. Так и к автопроизводителям можно придраться, что их автомобили используются для противоправных действий. И к производителям телефонов, что по телефону обсуждают не только хорошую погоду. Смысл статьи не в этом.
Чтение данных с PCI и передача в полудуплексном режиме к конкретно заданному устройству из двухсот это ко мне.
Просто в комментариях к моей первой статье ishevchuk задал вопрос «чем в устройстве занимается ПЛИС, просто коммутацией». Там выбор ПЛИС был взят на вырост и вопрос вполне правомерен. Не из пушек ли по воробьям мы хотим палить.
В этой статье показана одно из наиболее, как мне кажется, правильных применений ПЛИС. Распараллеливание большого количества маленьких блоков обмена со Smart-картой в одно устройство. Мы не занимаемся анализом переданных запросов и полученных ответов от SIM карты в плане взлома ключей и прочего. Но и без этого хватает сложности. Несмотря на небольшую скорость тактирования SIM-карт (от 1 до 5 МГц) не так, то и просто влезть по количеству доступных логических элементов в уже готовом устройстве. И принимать одновременно от 200 карт ATR. Для этого понадобилось пересмотреть взгляд на построение блоков внутри ПЛИС и сделать всё максимально просто, но не проще чем можно.
При этом сами карты хранятся в доступном для вас месте и соединяются с оконечными устройствами по TCP/IP протоколу.

Тут суть в том что это только карты, а не GSM модули, сами оконечные устройства могут быть разнесены по всему миру, поэтому всплеска как таковой вполне может и не быть.
У Китайцев с их 4-мя SIMкартами в одном устройстве — шок!

Извиняюсь, если оффтоп, это подходит для терминации voip?
Это нужно спросить менеджеров по продаже, они все сегменты рынка использования даннаого оборудования знают.
Скажите, пожалуйста, а можно купить какую-то девелоперскую плату, которая будет PCI-E платой и залить туда свою плисину, что бы она делала что-то полезное?

Ну или например, PCI-E плата с напаянным ARM-ом?
Можно и то и другое. Сейчас есть направление FPGA SoC. У Altera это Cyclone V или Arria, у Xilinx — Zynq.
В обоих случаях в одном корпусе есть и FPGA и ARM Cortex-A9 на один или два ядра.
Пока что мы отказались от такой реализации, так как нам во многих решениях нужно много дополнительных входов выходов. А они предназначены под разный функционал в ARM части микросхемы. И такое решение на момент разработки дороже отдельно ПЛИС и отдельно процессора.
Хотя вариант очень интресен.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории