Формат tap файла с gprs
Формат файла tap zx spectrum
The .TAP files contain blocks of tape-saved data. All blocks start with two bytes specifying how many bytes will follow (not counting the two length bytes). Then raw tape data follows, including the flag and checksum bytes. The checksum is the bitwise XOR of all bytes including the flag byte. For example, when you execute the line SAVE "ROM" CODE 0,2 this will result:
13 00 00 03 52 4f 4d 7x20 02 00 00 00 00 80 f1 04 00 ff f3 af a3
^^^^^. first block is 19 bytes (17 bytes+flag+checksum)
^^. flag byte (A reg, 00 for headers, ff for data blocks)
^^ first byte of header, indicating a code block
file name ..^^^^^^^^^^^^^
header info . ^^^^^^^^^^^^^^^^^
checksum of header . ^^
length of second block . ^^^^^
flag byte . ^^
first two bytes of rom . ^^^^^
checksum (checkbittoggle would be a better name!). ^^
Note that it is possible to join .TAP files by simply stringing them together; for example, in DOS / Windows: COPY /B FILE1.TAP + FILE2.TAP ALL.TAP ; or in Unix/Linux: cp file1.tap all.tap && cat file2.tap >> all.tap
For completeness, I'll include the structure of a tape header. A header always consists of 17 bytes:
Byte Length Description
0 1 Type (0,1,2 or 3)
1 10 Filename (padded with blanks)
11 2 Length of data block
13 2 Parameter 1
15 2 Parameter 2
The type is 0,1,2 or 3 for a Program, Number array, Character array or Code file. A SCREEN$ file is regarded as a Code file with start address 16384 and length 6912 decimal. If the file is a Program file, parameter 1 holds the autostart line number (or a number >=32768 if no LINE parameter was given) and parameter 2 holds the start of the variable area relative to the start of the program. If it's a Code file, parameter 1 holds the start of the code block when saved, and parameter 2 holds 32768. For data files finally, the byte at position 14 decimal holds the variable name.
Вопрос по блокам
length of second block . ^^^^^
flag byte . ^^
first two bytes of rom . ^^^^^
checksum (checkbittoggle would be a better name!). ^^
что это за блок и откуда берутся first two bytes of rom (в каждом файле они разные)
Нужно ли этот блок считывать.
Размещение рекламы на форуме способствует его дальнейшему развитию
На самом деле, формат файла .TAP очень простой. Формат предназначен для хранения данных, записанных на кассете магнитофона на стандартной скорости записи, без информации о паузах и т.п.
Каждый блок данных предваряется двумя байтами его длины, и дальше идут собственно данные. Это всё.
2 байта длины (младший вначале), затем данные блока последовательно, начиная с первого флагового байта, заканчивая последним байтом контрольной суммы.
Собственно, формат о них ничего не знает, и первый и последний байт могут быть произвольными, но для корректной загрузки стандартными загрузчиками обычно первый байт - флаговый, последний - байт контрольной суммы (XOR всех предыдущих байтов блока).
Формат стандартного заголовочного блока Бейсика такой:
1 байт - флаговый, для блока заголовка всегда равен 0 (для блока данных за ним равен 255)
1 байт - тип Бейсик блока, 0 - бейсик программа, 1 - числовой массив, 2 - символьный массив, 3 - кодовый блок
10 байт - имя блока
2 байта - длина блока данных, следующего за заголовком (без флагового байта и байта контрольной суммы)
2 байта - Параметр 1, для Бейсик-программы - номер стартовой строки Бейсик-программы, заданный параметром LINE (или число >=32768, если стартовая строка не была задана. Для кодового блока - начальный адрес блока в памяти. Для массивов данных - 14й-байт хранит односимвольное имя массива
2 байта - Параметр 2. Для Бейсик-программы - хранит размер собственно Бейсик-програмы, без инициализированных переменных, хранящихся в памяти на момент записи Бейсик-программы. Для остальных блоков содержимое этого параметра не значимо, и я почти уверен, что это не два байта ПЗУ. Скорее всего, они просто не инициализируются при записи.
1 байт - контрольная сумма заголовочного блока.
Считывать блок заголовка нужно, если программа не знает точных параметров блока данных за ним. Если знает, его можно пропустить.
Понял, откуда 2 байта ПЗУ. В примере описано содержимое файла .TAP, для сохраненного из Бейсика командой <SAVE "ROM" CODE 0,2>
блока кодов ПЗУ длиной 2 байта. Это актуально только для данного примера:
Проблемы оплаты услуг роуминга
О ператоры мобильной связи могли бы более эффективно извлекать потенциально высокие доходы от услуг международного роуминга. Роуминг данных предоставляет новые возможности и открывает новые перспективы
G SM–технология мобильной связи изначально была предназначена для обеспечения функций роуминга, и до сих пор небывалый успех ее функциональных возможностей воспринимается в индустрии как подарок. Для многих операторов роуминговый трафик становится очень существенным источником доходов. И эти доходы могут стать еще больше.
Информация об участвующих в сеансе связи сторонах и количестве и продолжительности вызовов является лишь скелетом, вокруг которого может быть выстроено законченное информационное тело путем объединения воедино той технической информации, которая проносится среди коммутаторов, маршрутизаторов и баз данных.
При нормальном вызове с мобильного телефона биллинговая система сети в месте временного пребывания абонента принимает постоянный поток CDR–записей (Call Detailed Record) от коммутаторов. Эта информация обрабатывается и в конечном итоге прекращается, прокладывая себе путь от розничной биллинговой системы к счетам заказчиков. Затем она сортируется по индивидуальным местным абонентам и поступает к абонентам со ссылкой на код идентификатора абонента мобильной связи (IMSI – International Mobile Subscriber Identificator), который представляет собой 15–разрядное число в мобильном терминале, позволяющее сервис–провайдерам идентифицировать абонента.
При роуминговом вызове информация поступает не от коммутаторов, она приходит от системы интерконнекта сети, расположенной в месте временного пребывания абонента.
Эти файлы записаны в ТАР–формате, который введен Ассоциацией GSM в качестве стандартного формата для CDR–записей. Ассоциация GSM предложила также концепцию стандартного межоператорского трафика (IOT), являющегося механизмом для обеспечения прозрачности на уровне оптовой схемы продаж применительно к ценообразованию для роуминга между коммутационными операторами.
Роуминговые записи, поступающие со стороны сетевого интерконнекта, приходят предварительно оцененными. Система розничной схемы биллинга принимает эту информацию и устанавливает, что она составлена в ТАР–формате, то есть относится к роумингу, и что применительно к ней необходимо использовать другой ценовой план, так как она уже оценена. Система интерконнекта будет иметь всю информацию относительно соглашений по услугам роуминга. Расхождения возникают из–за того, кто и что оценивает.
Вот здесь следует быть внимательным. Роуминговые записи могут быть полностью оценены зарубежным партнером по роумингу и посланы непосредственно оригинальному оператору. Или же партнер ничего не оценивает, а просто посылает запись о роуминговом вызове оригинальному оператору сети, и тот производит полную оценку на основе прайс–листа партнера.
Домашняя сеть принимает файлы в формате ТАР и трансформирует их в международный биллинговый формат для местной системы розничного биллинга. По этой причине CDR–записи обрабатываются так, как если бы они поступали от местных коммутаторов, и в конце пути поступают на счет абонента. CDR–записи, относящиеся к роуминговому трафику, содержат большой объем информации, потенциальные возможности которой, с точки зрения принесения доходов, до сих пор полностью не использованы.
Так, во–первых, сеть, расположенная в месте временного пребывания путешествующего абонента, не имеет никаких других взаимоотношений с этим абонентом, кроме исполнения функций головной сети. Например, компания Telefonica знает, как много клиентов Vodafone пользовались услугами роуминга через ее сеть в Испании и как долго они говорили, но она не знает, кто они, сколько им лет, говорят ли они по–испански, по каким другим странам они путешествовали, сколько они затратили на оплату своих телефонных счетов, как часто они покупают новые телефонные аппараты и т.д.
Во-вторых, объемы информации огромны и постоянно растут. Обработка полного объема информации является существенной проблемой для систем биллинга и операционной поддержки (OSS). Например, компания Partner Communications в Израиле производит дважды в день более 200 файлов для сбора всех CDR–записей, относящихся к каждому оператору, с которыми компания имеет соглашение по оказанию услуг роуминга.
Соглашения по оказанию услуг роуминга регламентируются стандартными документами, выпускаемыми Ассоциацией GSM : документ IREG.21 содержит указания технического характера, версия документа АА.14, обновленная применительно к GPRS–роумингу, касается сферы бизнеса.
Оператор хочет ухватиться за сам процесс биллинга, как за связующее звено с клиентом и источник денежных поступлений, однако, передача вовне административных функций и произведение расчетов в клиринг–центре могут обеспечить сокращение расходов.
Основная идея использования клиринг–центра заключается в том, чтобы создать централизованный механизм, посредством которого коммуникационные линии между операторами сократятся до одной. Роуминговые взаимоотношения между операторами являются двусторонними. Клиринг–центр осуществляет физическую обработку и пересылку данных роуминговым партнерам своих клиентов по всему миру.
Партнер по роумингу также может пользоваться услугами клиринг–центра, возможно, и конкурирующего, и в этом случае два клиринг–центра обмениваются данными. Они будут также осуществлять преобразование между форматами TAP1 и ТАР2, ТАР2 и ТАР3.
Файл формата ТАР содержит большой объем информации, которая, если ее экстраполировать, может быть использована для создания множества ценных услуг. Эта информация предоставляет возможность клиринг–центру предлагать оказание услуг по финансовым взаиморасчетам, возврату налогов, по созданию сигнальных линий и техническому тестированию передачи данных вызова или даже по внесению и обработке изменений в соглашениях по роумингу.
Стандарт ТАР, позволяя сосредоточиться на всех вызовах, проходящих через многие сети, и осуществляя мониторинг для многих партнеров по роумингу, может обеспечивать и контроль над жульническими операциями. Когда число установленных пороговых значений будет превышено, при поступлении ТАР–файла от любой сети включится сигнал тревоги, и клиринг–центр может принять необходимые меры, известив о случившемся ответственные стороны. Клиринг–центр обеспечивает условия для чистых расчетов, но не производит надзор за передачей денег. Этот процесс должен осуществляться установлением связи между банком оператора и финансовыми департаментами, но часто в дальнейшем передается по субдоговору финансовому клиринг–центру, такому как Cybernet , который может производить транзакции через многие границы, добиваясь наилучшего курса обмена валют.
Техническая информация, касающаяся поведения звонящих абонентов, может быть использована в целях маркетинга. Так, например, в компанию EDS поступил запрос от оператора из Исландии провести сравнение роумингового трафика в зимние и летние месяцы. Суть запроса состояла в том, чтобы осуществить моделирование тарификации услуг, что позволило бы отделу маркетинга изменять тарифы с целью сделать их более привлекательными для абонентов, пользующихся услугами роуминга.
Несмотря на всю информацию, которую операторы и клиринг–центры могут извлечь из коммутаторов и систем интерконнекта, конечный пользователь сталкивается с еще большими трудностями, добывая информацию о ценах.
Достаточно легко, когда вы находитесь в чужой стране, узнать о сетях, предоставляющих услуги роуминга, через которые вы можете получить сигнал: просто дождитесь, чтобы увидеть, на какую сеть настроился телефонный аппарат, затем перейдите в меню «network» («сети») и выберите режим «manual» («ручной»), чтобы получить возможность просмотреть другие сети. Но добыть информацию об этих сетях, к коим абонент может получить доступ, очень не просто, пользуясь соглашением об услугах роуминговой связи, которое абонент заключил с провайдером домашней сети.
По всей видимости, около 99% абонентов не знают, к какой сети они приписаны за рубежом, и какая из них предоставляет наиболее дешевые услуги. Абонент может получить список от своего сетевого провайдера, но только по запросу. И 99% пользователей не хотят этого делать.
Конечные пользователи (и регуляторы) все больше и больше отказываются воспринимать относительно высокие цены роуминговых вызовов и огромную разницу в стоимости услуг от одного роумингового партнера к другому.
С другой стороны, большая разница в ценах между роуминговыми сетями отражает собственнические интересы домашней сети. Так, например, для компании BT Cellnet выгодно, чтобы ее путешествующий абонент был прикреплен к сети Viag Interkom, так как она является владельцем этой сети и заключила с ней соглашение о более низких ценах. Оператор часто блокирует SIM–карту в момент покупки, чтобы обеспечить автоматическое прикрепление абонента к одной из своих родственных сетей, которая покрывает нужную зону. SIM–карта имеет достаточно большой объем памяти для запоминания главных партнеров.
Однако проблема заключается в том, что отношения собственничества и вытекающие отсюда роуминговые соглашения изменяются в наши дни очень быстро, а SIM–карта не обновляется. И если сегодня сеть Viag принадлежит компании BT , то завтра она будет продана кому–то из конкурентов. И тогда все SIM–карты будут иметь неправильную информацию, а все абоненты будут вынуждены платить слишком много.
Та же деловая цель может быть достигнута за счет стратегической кооперации между коммутационными операторами. Операторы пяти азиатских стран собрались недавно на Азиатско–Тихоокеанский форум главных администраторов мобильной связи, чтобы сформулировать региональную стратегию мобильной связи с целью обеспечения взаимного роуминга. По заявлению компании SingTel , ее сотрудничество с AIS и Globe позволило сократить совокупные расходы на сеть и оборудование на 40 млн. долларов в год.
При использовании схемы предварительной оплаты услуг роуминга существуют два типа CDR–записей: один на уровне оператора и другой на уровне розничной системы биллинга. CDR–запись, генерируемая домашней сетью, позволяет получить кредит по предварительно оплаченной карте и в то же время дает команду иностранной сети послать файл ТАР3 в клиринг–центр.
Трудности, с которыми сталкиваются поставщики коммуникационных услуг при использовании метода предварительной оплаты, связаны, в основном, с проблемами взаимодействия сетей и риском жульничества. В связи с тем, что записи посылаются в клиринг–центр и обратно только через каждые 6–24 часа, в некоторых случаях потребуется от 6 часов до нескольких дней, чтобы они достигли оператора домашней сети. В такой ситуации существуют широкие возможности для жульничества с использованием предварительно оплаченных карт.
Д ругая опасность потерь потенциальных доходов исходит от огромного объема SMS–трафика, доходы от которого поступают только к оператору домашней сети. Проблема заключается в том, кто платит за завершение линии передачи.
Мы находимся в ситуации, когда люди хотят извлечь деньги из предоставляемых услуг, если они становятся очень популярными, и это приводит к разрыву отношений между операторами.
Владельцы фирменных линий связи также обеспокоены тем, какой объем SMS–трафика они переносят. Они передают SS7 сигналы от одного оператора мобильной связи к другому и не имеют от этого никакой прибыли.
Международный роуминг данных становится намного более сложным при высокой скорости передачи данных, характерной для систем связи поколений 2.5G и 3G. Хотя с появлением роуминга данных и мультимедийного роуминга возросла сложность, связанная с увеличением числа участников линии связи, желающих получить кусок от пирога роуминговых услуг, не существует большой разницы между способом обработки роумингового вызова в HSCSD –сети ( High Speed Circuit Switched Data – высокоскоростная передача данных с коммутацией каналов) и в обычной GSM–сети со скоростью передачи данных 9,6 кбит/с. Нужна только информация, которая укажет, что «это была высокоскоростная передача данных».
Задержки в завершении программы 3G и проблема с телефонными аппаратами GPRS привели в результате к задержке в реализации услуг HSCSD в Европе в некоторых ограниченных секторах. Процесс биллинга, в сущности, остается тем же самым, хотя каждая посещаемая сеть может иметь собственную политику ценообразования, исходя из того факта, что HSCSD может выделять разное число каналов абоненту в какой–нибудь один период времени. Так, например, корпорация NTT DoCoMo подсчитала, что за увеличение скорости передачи данных на 1,8% ее клиенты будут платить за услуги FOMA 3G в 1,8 раза больше, чем они платили за услуги 2G.
Компания Partner Communications не повышает плату за дополнительные каналы. По словам одного из ее руководителей, пользователь в любом случае имеет максимум того, что он может получить. Если он прикреплен к сети, которая не имеет функций HSCSD, то он автоматически переключается на обычную сеть и узнает об этом только по увеличению времени связи. По его же уверению, сейчас наблюдается интенсивное использование роуминговой связи определенным кругом пользователей, к которым относятся политики высокого уровня, журналисты–международники, торговые агенты компаний высокой технологии.
Т ем не менее, существует совершенно новая ситуация с GPRS. Применительно к голосовой роуминговой связи имеются одно событие и одна запись, которая описывает вызов. В будущих системах 2.5G/3G будут, вероятно, сотни записей. Одно соединение не обязательно будет означать, что имеется только одно событие на вызов. Может оказаться так, что при одном голосовом вызове будет использовано десять различных служебных функций, и каждой из них будет соответствовать собственная запись, и необходимо объединить всю эту информацию, чтобы иметь единое представление о соединении в целях биллинга.
При просмотре Web–сайта беспроводной связи пользователь может получить доступ как к бесплатному, так и к платному соединению. При каждом выполненном действии в процессе просмотра или совершения транзакции пользователь генерирует события. Эти события могут быть платными или свободными от оплаты, но в любом случае они должны измеряться и регистрироваться в целях биллинга. Каждое отдельное событие должно генерировать значащую запись.
Источники информации различны, параметры разнообразны. Качество и класс услуг связи (QoS), место подключения к IP–серверу, пользование услугами домашней сети, скорость передачи данных – все эти сведения могут содержаться в ТАР–записях и должны быть приняты к рассмотрению.
Кроме того, вопрос «кто за что платит?» становится насущным, когда сети, расположенные в местах временного пребывания путешествующих пользователей, доставляют информацию, инициированную домашней сетью. По мнению одного из специалистов ( David Gordon , компания Partner Communications , Israel ), «сеть, расположенная в месте временного пребывания абонента, будет выставлять счет только за время эфирной передачи, остальные составляющие биллинга будут оцениваться дома. Это совершенно новая версия концепции роуминга».
Конечно, остается масса вопросов относительно того, как будет производиться оценка в новом мире мультимедийной мобильной связи. Будет ли определяться стоимость каждого отдельного элемента информации, которая была послана или принята, или по–прежнему будет определяться стоимость соединения? Как считает Ральф Хеллебран ( Telesens/KCSL ), «мы будем по–прежнему оценивать соединение, потому что это единственная вещь, которую понимают наши клиенты».
Наибольшую сложность привнесут, скорее, дополнительные участники сеанса связи, чем включение данных в процесс передачи, поэтому не должно возникнуть каких–нибудь дополнительных проблем в отношении роуминга данных внутри страны. «Сложность задачи остается практически той же самой,– говорит Ральф Хеллебран,– но придется столкнуться с проблемой, когда одно соединение частично базируется в домашней сети и частично – в роуминговой сети. В этом случае мы будем иметь комбинацию, состоящую из соединения как такового и использования данных». Так. например, при роуминговом соединении из Франции в Германию будут существовать два события, подлежащих оплате. Одним из них является доступ во France Telecom, чтобы обеспечить соединение с Германией, а другим – получение информации от Deutsche Telecom.
Расчеты с провайдерами ин формации
С истема GPRS обеспечит прямое соединение с вашим домашним оператором услуг связи, что является совершенно новой концепцией с использованием магистральной сети, объединяющей мобильные GSM–сети общего пользования (PLMN) или GPRS сети, и обуславливает другую степень сложности. Мы, вероятно, станем свидетелями появления новых GPRS–коммутационных операторов роуминговой связи (GPX), подобных создаваемым компанией Ebone , которые будут предлагать оптовые GPRS–роуминговые услуги европейским операторам мобильной связи.
Должны быть также разработаны и новые стандарты для роуминга данных, так как стандарт ТАР3 предназначен для GPRS–голосового и голосового роуминга. По мнению Ральфа Хеллебрана, лучшим из имеющихся стандартов является стандарт IPDR, разработанный для IP–биллинга. Поскольку в системе GPRS происходит слияние мобильной голосовой связи с услугами IP, то, по его мнению, стандарт IPDR в сочетании со стандартом ТАР3 будет хорошим вариантом применительно к передаче данных. Стандарт IPDR не утверждает, что «это тот формат записей, в котором должна передаваться любая и вся информация, поэтому вы вольны использовать его или отказаться от него». Он просто говорит, что «существуют несколько принципов, которых следует придерживаться, если вы записываете данный тип информации». Каждый, кто хочет ввести новый вид услуг связи, должен очень внимательно присмотреться к стандарту IPDR, и если мы будем им удовлетворены, он станет действующим стандартом.
Клиринг–центры беспроводной связи могут обеспечить механизм, позволяющий провайдерам информации выставлять счета за предоставляемые ими услуги. Эти услуги объединены сейчас в общий поток информации в существующих клиринг–центрах, которые находятся среди новых участников рынка телекоммуникаций, стремящихся занять свое место в управлении этим сложным новым миром.
Мартин Шуберт, менеджер по продажам и маркетингу ( EDS ), так объясняет этот процесс: «Клиринг–центр предполагает получить два файла, один из которых содержит поток обычных голосовых данных в формате ТАР3 или в формате оператора, а другой – поток данных в формате GPRS. Для обоих файлов мы производим операции клиринга и ратификации и, конечно, выдаем биллинговое заключение. Мы должны разделить эти два файла, войти в контакт с провайдером информации и затем выделить биллинговые составляющие, которые направляются к провайдерам информации».
В современных изменяющихся условиях существующие участники рынка телекоммуникационных услуг могут обнаружить, что их оригинальные ценные предложения находятся под угрозой, или же убедиться в появлении лучших возможностей вследствие переориентации. Клиринг–центры беспроводной передачи информации также могут сместить цепочку ценностей, чтобы обеспечить концентрацию информации. «В зависимости от того, каким образом выглядит та или иная модель бизнеса, мы можем эффективно сдвинуться в нужную сторону и обеспечить услуги по концентрации информации для операторов. Это прямо укладывается в брокерскую концепцию роуминга»,– говорит г–н Киллин ( EDS ). Компания EDS уже рассматривает варианты аутентификации и защитного кодирования и модели доставки, обеспечивающие прямую связь между пользователем и провайдером информации. Это новые задачи, которые ранее не стояли в повестке дня.
Роуминг может быть как в национальном, так и в международном роуминге. Национальный роуминг означает, что мобильные абоненты используют другую сеть в географических зонах, где их собственный оператор не имеет покрытия. Это, например, используется операторами, которые не имеют полного покрытия в стране. Международный роуминг используется, когда мобильные абоненты выезжают за границу и используют сеть оператора в чужой стране.
Как это на самом деле происходит? Если у поставщика услуг нет покрытия сети в определенном городе или стране, то этот поставщик услуг заключает соглашение о роуминге с другим поставщиком услуг, имеющим сеть в этом городе или стране. Согласно этому соглашению, другой поставщик услуг предоставляет все доступные услуги роуминговому клиенту первого поставщика услуг.
CDR, сгенерированные в зоне одного партнера по роумингу, собираются и оцениваются этим партнером по роумингу и, наконец, отправляются фактическому поставщику услуг клиента в роуминге. Фактический поставщик услуг взимает с конечного клиента все услуги роуминга, основанные на их заранее определенных тарифах на обслуживание.
Два роуминговых партнера ежемесячно рассчитывают свои финансовые показатели путем обмена фактическими CDR в роуминге и отчетами на основе этих CDR.
HPMN и VPMN
Роуминг Биллинг
Мобильный абонент путешествует в другую страну и создает использование во внешней сети. Чтобы выставить счет абоненту, эта информация должна быть передана обратно в домашнюю сеть абонента. Внешняя сеть будет собирать информацию об использовании с ее коммутаторов и т. Д., А затем создает файлы TAP, содержащие информацию, изложенную в стандарте.
Затем файлы экспортируются (на регулярной основе, как правило, по крайней мере, по одному файлу в день) оператору дома, который их ИМПОРТИТ, а затем использует эту информацию для выставления счета подписчику. Иностранный оператор будет оценивать звонки, а затем взимать плату с домашней сети абонентов за все звонки в файле. Домашний оператор может пометить или повторно оценить звонки, чтобы получить доход.
В этой статье мы рассмотрим проект на основе платы Arduino, в котором мы будем передавать данные на веб-сервер с помощью технологии GPRS. Этот проект относится к проектам интернета вещей (IoT), в котором мы будем использовать для связи с “внешним миром” технологию GPRS, реализованную в GSM модуле SIM900A.
В этом проекте мы будем с помощью буквенно-цифровой панели 4х4 вводить некоторый текст и затем передавать его на сайт SparkFun с использованием Arduino и GPRS. На сайте SparkFun вы потом сможете посмотреть переданный текст из любой точки земного шара где есть сеть интернет. Также в проекте мы использовали ЖК дисплей 16х2 чтобы на нем также отображать передаваемые данные. Также вы можете посмотреть аналогичные проекты на Arduino, рассмотренные на нашем сайте:
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- GSM модуль SIM900A (купить на AliExpress).
- SIM карта.
- ЖК дисплей 16х2 (купить на AliExpress).
- 4х4 матричная клавишная панель (купить на AliExpress).
- Макетная плата.
- Соединительные провода.
- Источник питания с напряжением 12 В.
Использование GPRS в GSM модуле
В этом проекте мы использовали обычный GSM модуль с SIM картой для GPRS соединения. Технология GPRS в нашем проекте ответственна за передачу данных на сервер Sparkfun. Ранее на нашем сайте мы уже рассматривали передачу данных на веб-сервер с помощью Arduino и Wi-Fi модуля ESP8266, здесь же мы вместо технологии Wi-Fi применим технологию GPRS. Более подробно все описанные в статье процессы можно посмотреть на видео, приведенном в конце статьи.
GPRS расшифровывается как General Packet Radio Services и переводится как пакетная радиосвязь общего назначения. Данная технология способна обеспечивать выход в сеть интернет и работать со скоростями передачи данных 56-114 кбит/с.
При этом нет необходимости покупать какой то отдельный модуль для работы с GPRS поскольку она реализована в обычном GSM модуле. Для управления GSM модулем мы будем использовать так называемые AT команды. Далее рассмотрены некоторые из этих команд доступные для модуля SIMCOM SIM900A (на самом деле их достаточно много, информацию по ним легко найти в сети интернет), которые нам понадобятся в данном проекте.
Для передачи данных на веб-сервер с помощью технологии GPRS нам, прежде всего, необходимо инициализировать GSM модуль.
Команды для инициализации GSM модуля
AT : эта команда используется для проверки того отвечает ли GSM модуль или нет AT + CPIN ? : эта команда используется для проверки того вставлена ли SIM карта в GSM модуль или нет ATE0 : эта команда отключает эхо , то есть чтобы модуль не повторял в ответ команды , которые мы ему передаемКоманды для инициализации GPRS интернет соединения
AT + CIPSHUT : закрыть TCP порт , что означает прекращение всех соединений AT + CGATT ? : проверка имеет ли SIM карта интернет соединение или нет AT + CSTT = "APN" , "userName" , "Pass" : соединение с интернет AT + CIICR : соединение с беспроводной сетью . Проверяемая SIM карта должна иметь предоплаченный объем данных или положительный баланс AT + CIFSR : получить IP ( иногда без этой команды GSM не будет работать поэтому желательно ее использовать ) AT + CIPSTART = ” TCP ” , ” SERVER IP ” , ” PORT ” : эта команда используется для создания TCP соединения с сервером который мы прописываем в поле SERVER IP AT + CIPSEND : эта команда используется для передачи данных на сервер . After input , this command server asks for data .После ввода данных мы передаем 26 на сервер. Если все нормально, то данные будут успешно загружены на сервер и SparkFun (сервер в нашем рассматриваемом случае) отвечает что все нормально или произошла ошибка.
Объяснение работы проекта
Процесс передачи данных с помощью технологии GPRS, реализованной в GSM модуле, достаточно прост. В нашем проекте мы будем передавать некоторую строку на сервер, набранную на клавиатуре (клавишной панели). Эта же самая строка будет высвечиваться на экране ЖК дисплея. После этого мы будем нажимать клавишу D/OK чтобы передать введенную строку на сервер. Структурная схема работы проекта изображена на следующем рисунке.
В этом проекте мы использовали алфавитно-цифровую клавишную панель для ввода символов или цифровых значений в Arduino. Более подробно о работе с подобной панелью можно прочитать в этой статье. Клавиша 0/clear запрограммирована для ввода пробела.
Работа схемы
Схема устройства представлена на следующем рисунке.
Для передачи данных на сервер SparkFun мы должны подключить клавишную панель и GSM модуль к плате Arduino, которая будет принимать данные (строку) от клавишной панели и передавать команды на GSM/GPRS модуль. GSM/GPRS модуль используется для подключения к сети интернет и передачи данных на сервер Sparkfun. Контакты GSM модуля Rx и Tx непосредственно подключены к контактам D3 и D2 платы Arduino (земля платы Arduino и земля GSM модуля должны быть соединены друг с другом).
Также мы подключили контакт Tx GSM модуля к контакту Tx платы Arduino для целей отладки проекта с помощью монитора последовательной связи (serial monitor).
Исходный код программы
Исходный код программы этого проекта может быть немного сложным для понимания начинающими, но если вы изучите другие аналогичные проекты на нашем сайте, ссылки на которые приведены в начале статьи, то, я думаю, вы сможете понять и код этой программы.
В коде этой программы мы использовали библиотеку для работы с клавишной панелью, с помощью которой мы потом сможем осуществлять ввод с панели и цифр, и букв. То есть каждая клавиша панели у нас получилась многофункциональной и с помощью всего 10 клавиш мы будем вводить все символы алфавита и все цифры.
То есть ли мы нажмем клавишу 2 на панели (ABC2), то на экране ЖК дисплея высветится ‘A’. Если мы нажмем эту клавишу снова, то ‘A’ на экране ЖК дисплея заменится на ‘B’, а если еще раз – то на ‘C’. Если мы подождем некоторое время после нажатия клавиши курсор на экране ЖК дисплея автоматически переместится на следующую позицию. Аналогично и для других клавиш на панели. То есть наша алфавитно-цифровая клавишная панель фактически будет работать как клавиатура на старых кнопочных телефонах.
В программе мы подключили библиотеку Keypad.h и инициализировали массив символов для клавиш.
Читайте также: