Переключатель сим-карт

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Родился
Сообщения: 14
Зарегистрирован: Ср май 22, 2013 14:28:35

Сообщение lufton »

Доброго времени суток. Передо мной стоит задача: упростить чтение СМС-сообщений с более чем 100 сим-карт. При это имеется только один GSM модем. Нужно разработать такое устройство, которое в конкретный момент времени, при помощи ПК переключало бы модем с одной сим-карты на другую. Кол-во сим-карт порядка 150-200шт. Думал запараллелить 5 из 6 контактов а 6-й коммутировать. Но как? Ну другом форуме сказали что все сигнальные контакты коммутировать нельзя ибо возникнет большая ёмкость. Подскажите как собрать такое чудовище? Хотя бы какой принцип реализовать. Я в этом профан, но почитав понял что для этого могут понядобиться МК, мультиплекор, дешифратор и др.
Заранее говорю спасибо, потому что в других ветках видел отзывчивость форумчан.
Реклама
Родился
Сообщения: 14
Зарегистрирован: Ср май 22, 2013 14:28:35

Сообщение lufton »

АП.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Сим-карты выступают в роли слейва, а частоту тактирования задает мастер, так что ИМХО емкость не страшна, надо просто частоту пониже взять, другое дело что мультиплексор на 150-200 выходов это действительно чудовище :))) Кстати, зачем коммутировать 6-ю ногу, она двунаправленная, это осложняет схему мультиплексора. Не проще коммутировать RESET? Я правда не знаю как ресет в сим-карте влияет на состояние других выходов. Если он переводит их Hi-Z состояние, то это самое то!
Родился
Сообщения: 14
Зарегистрирован: Ср май 22, 2013 14:28:35

Сообщение lufton »

Engineer_Keen писал(а):Сим-карты выступают в роли слейва, а частоту тактирования задает мастер, так что ИМХО емкость не страшна, надо просто частоту пониже взять, другое дело что мультиплексор на 150-200 выходов это действительно чудовище :))) Кстати, зачем коммутировать 6-ю ногу, она двунаправленная, это осложняет схему мультиплексора. Не проще коммутировать RESET? Я правда не знаю как ресет в сим-карте влияет на состояние других выходов. Если он переводит их Hi-Z состояние, то это самое то!
Здесь случайно не об этом говорится? Если делать мультиплексор или что-то вроде этого то как? Что если взять 17 16-канальных мультиплексоров: первый будет определять какой из 16 остальных мультиплексоров активировать, а на все остальные 16 мультиплексоров подать 16 бит, среди которых есть отвечающий за необходимую сим-карту? Это будет работать? Есть другие варианты?
Реклама
Эиком - электронные компоненты и радиодетали
Грызет канифоль
Аватара пользователя
Сообщения: 251
Зарегистрирован: Ср окт 07, 2009 18:37:22
Откуда: BMSTU

Сообщение Chiper »

По моему всё-же проще взять многовыводный МК, например STM32F429BG и передёргивать портами GPIO питание (VCC) сим-карт, а все оставшиеся выводы сим-карт запараллелить в одну шину...
Ещё можно разобраться с назначением вывода I/O на симке, возможно при опускании его в LOW симка не даёт никакой активности на остальные выводы и тупо "спит". В таком случае можно дёргать этот вывод каждой симки через порты GPIO микроконтроллера.
По моему, если грамотно развести плату, то никакой чудовищной ёмкости, которая помешает обмену данными, не возникнет. Разумеется плата будет многослойная :)
По хорошему, я бы даже обвесил её разъёмами для сим-карт с обоих сторон для уменьшения общей площади платы.
Вот пример компоновки платы под 116 сим-карт.
Изображение


Работать это всё будет примерно так:
Инициализируете UART на микроконтроллере, пишете функцию которая будет подымать в "1" (High) определённый вывод микроконтроллера при получении ID-номера сим-карты по UART.
Например отправляете вы с ПК число "32", а микроконтроллер получает его и понимает что нужно перевести, допустим ногу RB4, в High состояние. Ну и соответсвенно нога RB4 отвечает за питание симкарты №32. Далее приходит с компа другое число, например "5", контроллер при этом опускает все порты GPIO в Low, и только после этого переводит указаную ногу в High и.т.д.

На уровне ПК это будет выглядеть следующим образом:
Должна быть самопальная программа для приёма СМС, которая будет заниматься отправкой ID-кодов (номеров сим-карт, от 1 до 100-150) по UART (RS232/USB-UART) и при этом параллельно общаться с GSM-модемом. Тут уже алгоритм на ваше усмотрение :)

Такое решение по моему намного проще в реализации, чем 17 16-канальных мультиплексоров :D
Реклама
Родился
Сообщения: 14
Зарегистрирован: Ср май 22, 2013 14:28:35

Сообщение lufton »

Chiper писал(а):По моему всё-же проще взять многовыводный МК, например STM32F429BG и передёргивать портами GPIO питание (VCC) сим-карт, а все оставшиеся выводы сим-карт запараллелить в одну шину...
Ещё можно разобраться с назначением вывода I/O на симке, возможно при опускании его в LOW симка не даёт никакой активности на остальные выводы и тупо "спит". В таком случае можно дёргать этот вывод каждой симки через порты GPIO микроконтроллера.
По моему, если грамотно развести плату, то никакой чудовищной ёмкости, которая помешает обмену данными, не возникнет. Разумеется плата будет многослойная :)
По хорошему, я бы даже обвесил её разъёмами для сим-карт с обоих сторон для уменьшения общей площади платы.
Вот пример компоновки платы под 116 сим-карт.
Изображение


Работать это всё будет примерно так:
Инициализируете UART на микроконтроллере, пишете функцию которая будет подымать в "1" (High) определённый вывод микроконтроллера при получении ID-номера сим-карты по UART.
Например отправляете вы с ПК число "32", а микроконтроллер получает его и понимает что нужно перевести, допустим ногу RB4, в High состояние. Ну и соответсвенно нога RB4 отвечает за питание симкарты №32. Далее приходит с компа другое число, например "5", контроллер при этом опускает все порты GPIO в Low, и только после этого переводит указаную ногу в High и.т.д.

На уровне ПК это будет выглядеть следующим образом:
Должна быть самопальная программа для приёма СМС, которая будет заниматься отправкой ID-кодов (номеров сим-карт, от 1 до 100-150) по UART (RS232/USB-UART) и при этом параллельно общаться с GSM-модемом. Тут уже алгоритм на ваше усмотрение :)

Такое решение по моему намного проще в реализации, чем 17 16-канальных мультиплексоров :D
Получается на каждую СИМку по ноге? Это что ж за монстр такой должен быть STM32F429BG?
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Cortex-M4 в такой задаче - из катюши по муравьям)))
Если стоит вопрос выставления лог.0 и лог.1 на множестве выводов, то самое эффективное - использовать расширители портов, в простейшем случае использовать всеми любимые 74HC595. управление ими сводится к двум функциям, которые уже написаны миллион раз.
Ставим плюсы: )
Родился
Сообщения: 14
Зарегистрирован: Ср май 22, 2013 14:28:35

Сообщение lufton »

ibiza11 писал(а):Cortex-M4 в такой задаче - из катюши по муравьям)))
Если стоит вопрос выставления лог.0 и лог.1 на множестве выводов, то самое эффективное - использовать расширители портов, в простейшем случае использовать всеми любимые 74HC595. управление ими сводится к двум функциям, которые уже написаны миллион раз.
Спасибо, будет на вооружении. А как объденять несколько таких штуковин?
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Входы тактовый (11) и защелка (12) параллелятся и идут в контроллер, 10-е ноги на +, 13 на землю, вход данных первой микросхемы (14) идет на выход контроллера (DO), выход (9) соединяется с входом данных (14) следующей и так по цепочке до последней.
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Ср сен 26, 2012 14:12:47
Откуда: Київ

Сообщение Cheba »

Engineer_Keen писал(а):Входы тактовый (11) и защелка (12) параллелятся и идут в контроллер
Что-то меня грызут сомнения, что хватит нагрузочной способности порта МК, тащить на себе сотню входов.
И ёмкость, ёмкость вы куда собираетесь подевать? Даже в лучшем случае это уже сотни пикофарад будут. :facepalm:
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Cheba писал(а):Что-то меня грызут сомнения, что хватит нагрузочной способности порта МК, тащить на себе сотню входов.
Входной ток HC595 - 1мкА, если нагрузочной способности вывода контроллера не хватит (какого кстати? у AVR предельная - 40мА, это несколько порядков, понятное дело что в статике, но не в этом суть) - всегда можно использовать буферы.
Cheba писал(а):И ёмкость, ёмкость вы куда собираетесь подевать? Даже в лучшем случае это уже сотни пикофарад будут. :facepalm:
Взять частоту поменьше :dont_know:
Родился
Сообщения: 14
Зарегистрирован: Ср май 22, 2013 14:28:35

Сообщение lufton »

Engineer_Keen писал(а):
Cheba писал(а):Что-то меня грызут сомнения, что хватит нагрузочной способности порта МК, тащить на себе сотню входов.
Входной ток HC595 - 1мкА, если нагрузочной способности вывода контроллера не хватит (какого кстати? у AVR предельная - 40мА, это несколько порядков, понятное дело что в статике, но не в этом суть) - всегда можно использовать буферы.
Cheba писал(а):И ёмкость, ёмкость вы куда собираетесь подевать? Даже в лучшем случае это уже сотни пикофарад будут. :facepalm:
Взять частоту поменьше :dont_know:
Планирую использовать Atmega16. 1Мгц, я думаю, мне хватит для таких целей. Получается на 256 выходов необходимо 256/8=32 сдвиговых регистра. Это создаст большую ёмкость? Если да, то как это победить?
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

да ничего там не создаст. делайте)
Ставим плюсы: )
Родился
Сообщения: 1
Зарегистрирован: Пн июн 24, 2013 14:09:34

Сообщение kyky »

Приветствую.

Хлопцы с http://www.elgato.com.uaделают на следующем:

Микроконтроллер AT91RM9200 на базе ARM9 от Atmel
Процессор FPGA Cyclone-2 от Altera

Изображение

Изображение

Но там и задачи несколько иные.
Открыл глаза
Сообщения: 54
Зарегистрирован: Пн авг 05, 2013 12:18:46

Сообщение electronik_tver »

Автор, а можете уточнить задачу? Симки каких операторов , и как физически вы их используете? Есть предложение использовать вместо сотни симкарт одну мультисимкарту, для того чтобы она отвечала и регистрировалась в сети оригиналы нужно отсканировать и получить при этом спец коды. Эта единственная симка спокойно торчит в модеме, для смены номера достаточно сделать программный ресет и ввести пин нового абонента. Программно одна мультисимка может держать в себе 16 номеров, но при изменении прошивки думаю не составит труда организовать большую емкость. Мультисимка это мк 16F877 в корпусе от симкарты, таким образом паять вообще ничего ненадо. Подробнее можно посмотреть про технологию клонирования сим multi-sim.ru если конечно это актуально еще
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

electronik_tver писал(а):если конечно это актуально еще
давно не актуально
современная сим карта представляет собой сложную эвм с осью и внутренними приложениями
http://habrahabr.ru/company/beeline/blog/133388/
тематические ответы только в форуме, в приват не пишите
Открыл глаза
Сообщения: 54
Зарегистрирован: Пн авг 05, 2013 12:18:46

Сообщение electronik_tver »

я имел ввиду вопрос для автора топика еще актуален, может в наличии пара сотен старинных копируемых симок мтс илми билайн, кстате билайн до сих пор клонируется. Естественно на данный момент появились современные карты с другими алгоритмами шифрования. А если автор уже спаял крокодила с сотней картоприемников мож кому другому пригодится ))
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2052
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Откуда: Москва

Сообщение Microtech »

electronik_tver писал(а):кстате билайн до сих пор клонируется

Фигу. (Москва) Недавно купленная SIM, не отдала KI. Накрылась. Пришлось спалить её окончательно переменным током и заменить в салоне связи...
Можно поставить кучу ключей или мульмиплексоров (ну типа К561КП2, CD4052A или CD4066). Линии питания, сброса и тактовой частоты сделать общими. Данные коммутировать через ключ. Из ключей построить древовидную структуру... Поставить мелкую AVRку, и ввести дополнительную AT комманду, скажем "ATSELECTSIM xxx"
Контактная информация:
Родился
Сообщения: 3
Зарегистрирован: Вс янв 26, 2014 01:12:46

Сообщение maxistent »

Всем привет! Если кому еще интересна эта тема - я нашел решение. Запараллелил все контакты сим-карт, а коммутацию выполняю по контакту RESET с помощью платы Arduino Uno (ATMega328). Т.е. все контакты RESET от сим-карт подвожу к цифровым пинам платы, а контакт RESET с телефона завожу в аналоговый вход платы. Земля, есессно, у всех общая. Затем с компа подаю команду контроллеру, который отключает все выходы (делает их землей), а затем включает один (+5В). Т.о. нужная мне сим-карта становится активной. В данный момент проверено пока только на десяти сим-картах, т.к. больше нет разъемов ))) через пару недель приедут штук 100 разъемов и платы Arduino Mega - там уже буду проверять на 80-100 симках...
Родился
Сообщения: 3
Зарегистрирован: Вс янв 26, 2014 01:12:46

Сообщение maxistent »

Хмм... Как показал метод "тыка" - не все симки могут управляться напряжением +5 В =( те симки, которые работают от 3..5 В - удалось запараллелить и управлять ими (более 40 штук одновременно). Но те, которые работают при 1.8 В (замерил при включении телефона) - не удается "активировать" питанием +5 В, получаемым с выводов описанного выше контроллера. Пробовал понижать напряжение с помощью резисторов (пока только приблизительным подбором) - безрезультатно =( Может у кого-то есть мысли по этому поводу?
Ответить

Вернуться в «Интеграция с ПК»