Скачать программы для сканирования - клонирования сим-карт, программирования смарткарт. Star2ProgManual - инструкция к программатору Star2Prog. ОБНОВЛЯЕМАЯ Gevey AIO 5 с программатором и переходником для обновления. Мультисим-карты и USB -ридеры/райтеры к ним Аккумуляторы к iPhone, резаки (кусачки) для перевода сим - карт в форматы. A-SIM programmator - софт для работы с новыми картами A-SIM: включены все версии программы A-sim A-SIM manual. Устройство SimBank предназначено для работы с SIM картами (Subscriber а плата даёт понять куда в вставлять программатор, SIM карты и где Обсудив с разработчиком драйвера и прикладной программы. Устройство SimBank предназначено для работы с SIM картами (Subscriber. Обсудив с разработчиком драйвера и прикладной программы. Программатор, как и обычный Сим сканер, позволяет читать информацию с Сим карты и. Подключите Программатор Sim-card reader/writer к СОМ и USB портам компьютера. USB порт нужен только для питания Программатора - должна загореться лампочка Power. Скачать драйвер и программу для программатора CH341A. Realtek High Definition Audio Driver R2.79 (6.0.1.7541) WHQL - драйвер на звуковую карту. Sim. Bank или 2. 00 Smart. Card в одной коробке / Хабрахабр. Как я уже писал в своём первом топике на Хабре про создание печатной платы, моя фирма занимается разработкой устройств для телефонии разного рода Vo. IP- , GSM- , PBX- шлюзов, розетки- ребутеры управляемые через GSM и прочее. Сегодня я опишу процесс разработки прошивки для устройства Sim. Bank в его PCI версии, где я выступил в роли разработчика схемы для ПЛИС. История постановки задачи от руководства + история работы устройства. Устройство Sim. Bank предназначено для работы с SIM картами (Subscriber Identification Module — модуль идентификации абонента). Данные карты являются разновидностью ISO- 7. Может использоваться для централизированного хранения Sim- карт или других видов smart- card, и последующего использования их в устройствах типа GSM- шлюз, тюнеры спутникового телевидения или в других устройствах использующих при работе smart- card. Совместно с программным обеспечением Sim- server предоставляет гибкую систему для контроля и учета сим- карт, используемых в ваших приложениях, широкие возможности для настройки и конфигурирования работы системы через удобный web- интерфейс. При этом сами карты хранятся в доступном для вас месте и соединяются с оконечными устройствами по TCP/IP протоколу. На Хабре есть статьи описывающие устройстви и принцип работы со смарт картами: Краткое введение в SIM- карты от Ogre. Swamp. Смарт- карты для самых маленьких от brake. Как устроена смарт- карта от rlepricon. Я их все с удовольствием прочитал перед началом разработки. И повторять написанное в них не буду. Устройство Sim. Bank. Само устройство было сделано на фирме уже давно и удачно использовалось в течении нескольких лет. Но особенностью всех PCI устройств на фирме было учебное PCI ядро, “которое поставлялось как есть и претензии не принимались”. Они и не выставлялись. С минимальными переделками это ядро ставилось на все без исключения платы. Это позволяло со знанием дела использовать доступное адресное пространство. С одним и тем же Vendor ID, Device ID, Class Code. Так как устройства обычно собираются на фирме и проверяются на работоспособность, то конфликтов не возникало. В условиях ограниченных временных рамок принцип “работает — не трогай” довольно уместен. Так продолжалось до каких- то пор пока на некоторых современных материнских платах не стали проявляться нестабильность в работе или вообще плата не хотела заводится. Пришла пора более тщательно разобраться с ядром PCI. Учебное ядро доработанное под свои задачи было документировано комментариями, но их не всегда было достаточно. Ссылка на место, откуда оно было взято, датированная 2. Задача проста как день: “Устройство должно работать на всех стандартных платах”. В качестве бонуса: “Даже если это будут не все 2. SIM карт, а 1. 96 или 1хх”. До этого момента я никогда не работал ни с SIM картами, ни с PCI шиной в качестве разработчика ПЛИС. Опыт разработки на VHDL и Verilog уже был. Разборки решено было начать с PCI, так как часть относящаяся к SIM картам работала. Первое прочтение спецификации “PCI Local Bus” не подействовало чудесным образом и не сильно пролило свет на то как всё нужно делать. Начитавшись статей о том, как делать и как не делать я так толком ничего еще и не поняв, решил: “нужно делать, по ходу дела разберусь”. Для PCI у Altera в среде Quartus есть Мегафункция, которая позволяет генерировать ядро PCI с необходимыми нам параметрами. К ядру прилагается хорошая документация, на сайте есть описание PCI- кита, к которому прилагается PCI модель, для поведенческого моделирования в Models. Sim- Altera. Всё это вместе — здорово помогает освоится с нуля в этой теме. Также Altera разрешает пользоваться своим Vendor ID (1. В спецификации PCI выбран класс устройства не доступный в ранних версиях спецификаций: 0. Simple Communication Controllers, 0. Smart Card. Далее всё должно работать в Linux. Так как у коллеги больше опыта работы и с SIM картами и с PCI, то с него технические требования. За что ему огромное спасибо. Грамотно составленный документ, это половина дела. Хоть и требует “лишней писанины”. Изучение материала. Так как устройство разрабатывал не я, то мне также необходимо было ознакомится с проектом схемы и платы. О том как это сыграло злую шутку со мной я опишу чуть позже. По схеме мы имеем плату с двумя ПЛИС Altera Cyclone II EP2. C3. 56. 72. C8 в корпусе с 6. Одна ПЛИС присоединена к PCI шине и она же управляет второй ПЛИС. К каждой ПЛИС присоединены по 1. SIM карт. К каждой SIM карте подведен свой сигнал сброса и данных, сигнал CLK уходит на на группу из 1. Каждая микросхема EP2. C3. 5 содержит 1. M4. K блоков внутренней памяти. Всего в блоке RAM (включая бит чётности) 4,6. Блоки поддерживают разные конфигурации от 4. K . Кто считает правильность прихода данных от SIM и прочее. Разобравшись с контактами первой от шины PCI микросхемы, я сделал пробный проект ядра PCI в Quartus, который должен был заработать с новыми параметрами на шине. Без какой либо логики — просто ядро. Получив ответ на команду “lspci - vv” моему счастью не было предела. Обсудив с разработчиком драйвера и прикладной программы дальнейший ход работы, мы сделали пробный проект в которым драйвер записывал в память данные, а потом их считывал и сверял. Изначально проверка делалась только по первой в схеме микросхеме. Далее был разбор со второй микросхемой. Между двумя микросхемами на схеме предусмотрено 3. PLL. В предыдущем проекте использовались 1. Это было сделано исходя из специфики работы имевшегося ядра. И для получения универсальности драйвера и программ. Так например есть устоявшаяся часть адресов откуда можно вычитать служебную информацию. В ARM весриях хранится информация типа. Elgato G4. К описываемому устройству имеет отношение в плане какую SIM карту мы можем через данный модуль вывести в сеть оператора. SN: 0. 12. 3И если перед прошивкой её не забыли изменить на правильную, то по этим данным можно узнать много интересного из “амбарной книги”, где записано под кого делался проект и какие отличия от стандарта пожелал заказчик. Для Симбанка достаточно серийного номера. Так как конструктивно плата Симбанка всегда одна в устройстве. И в PCI версии такая плата одна на фирме. Болезненное решение. В предыдущей версии ядра использовались два BAR. BAR1 c отображением в память размером 1. М, BAR0 как регистры ввода вывода размером 4. К. Вcё адресное пространство отдавалось под обе ПЛИС одновременно. Во первых разработчику драйвера работать с памятью гораздо проще. Во вторых в сети есть множество рекомендаций почему при возможности стоит отказаться от IO в новых разработках. В третьих, количество IO ресурсов доступное для настройки в ядре от Altera ограничено 2. Ресурсов памяти можно выделить гораздо больше. Но этот переход повлек за собой изменение работы с модулями SIM карт. И означал почти полную переделку модуля обмена с SIM. К тому отход от привычной адресации означал, что мы не сможем прочитать любой своей программой в привычном месте нужные нам битики. Не экономить один тактовый сигнал при обмене с картами первой микросхемы. Это часть обмена данными не занимается передачей голоса и нам не нужно экономить милисекунды для того чтоб получить задержку не более 2. Но такое мне показалось правильным. Структура. После первых успехов и проверки записи в память тестовых данных пришло время выстроить структуру обмена данными с SIM картами. Примерное представление как нужно будет делать у меня было давно, но после тестов я готов был предположить, что оно будет работать. И тесты проделаны были продуманны и проделаны не зря. Даже если удастся разнести шину адреса и данных. Для передачи сигнала CLK у нас была отдельная линия. Всего восемь состояний шины которые уложились в три сигнальных линии. Их было решено запрятать в старшие четыре бита на шине данных если у нас используется такой режим. Для каждой SIM карты в ПЛИС был выделен максимально возможный буфер. Так как со Smart картой осуществляется однопроводный полудуплексный интерфейс, карт у нас 1. И обнулять адресацию при начале передачи или приёма. Мне повезло и согласно стандарту от SIM карты не может придти больше 2. А значит доступный буфер не переполнится пока мы его не вычитаем. Термин “команда” тут немного отличается от стандарта ISO- 7. Там под командой понимается обращение к карте, затем подтверждение от карты, а затем данные. Но меня интересует количество данных от обнуления до обнуления буфера. Буфер для обмена данными со второй микросхемой решено было не делать, а сделать непосредственную запись в память для SIM карт во второй микросхемы. Так как у меня уже было занято 1. Выбор первой и второй микросхемы выбирается через обращение к BAR0 или BAR1 соответственно. Для BAR0 и BAR1 сделаны разные контроллеры. Обращение ко второй микросхеме происходит на такт позже, но это регулируется задержкой выставления сигнала TRDY на стороне PCI шины. Для каждой микросхемы выделено 6. К памяти чего достаточно для обслуживания 1. Smart карт. Остается еще 2. В двух блоках разместим служебную информацию где будет храниться информация о состоянии сброса карты, скорости обмена. Обратно нам нужно возвращать количество принятых данных от SIMки. Дальше всё это нужно заставить работать и отладить. Так как проект для 1. SIM карт компилируется очень долго, да и 1. SIM карт спалить гораздо дороже чем 1 или 1. Причем сделать отладку только первой половины, а уже когда решим, что тут всё получилось, идём во вторую микросхему. И тут- то меня ждал сюрприз. Есть схема, на которой контакты карт пронумерованы от 1 до 1. Есть проект платы из которого удачно импортированы настройки контактов ПЛИС (PCI работает, тестовая запись в память работает, обмен между микросхемами также работает). Проект собран для 5 карт, чтоб если ошибусь с началом нумерации от 0 или 1, то вторая карта бы заработала. Дудки. Ну ничего, у нас есть 1. И хоть ими я собирался заниматься потом, пришлось потом пододвинуть чуточку поближе к сейчас. Добавляем простую вещь на включение/выключение светодиода, а лампочка не горит светодиод не мигает. Берем осциллограф. CLOCK есть, а сброса нет. Данных тоже нет. Импорт данных подкачал?
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2016
Categories |