Устройство трекера
Трекер состоит из 3-х блоков: 1) GPS приемник Задача приёмника – как описано выше, принять сигналы со спутников, определить текущее положение спутиников, определить расстояние до спутников, определить своё местоположение, скорость, направление движения и отправить эти данные на управляющее устройство. В качестве приёмника в «GPS трекере» выступает GPS модуль Quectel L10. В качестве приёмника в коммуникаторе выступает встроенный в коммуникатор GPS или ГЛОНАСС модуль, у каждого производителя он разный. 2) Передатчик Задача передатчика – передать полученные данные с приёмника на удалённый сервер в заданном формате. В качестве передатчика в «GPS трекере» выступает GSM модуль SIM 900D. В качестве передатчика в коммуникаторе выступает встроенный телефонный модуль, у каждого производителя он разный. 3) Управляющее устройство Задача управляющего устройства – связать в единую систему (трекер) приёмник и передатчик, т.е. принять данный с приёмника и отправить через передатчик на удалённый сервер. В качестве управляющего устройства в «GPS трекере» выступает микроконтроллер STM32F100. В качестве управляющего устройства в коммуникаторе выступает микроконтроллер производителя устройства. Рис 5. Устройство GPS трекера 1.1.5 Стек протоколов TCP/IP Передача данных между всеми компонентами системы осуществляется по стеку протоколов TCP/IP. Стек протоколов TCP/IP состоит из нескольких уровней: Транспортный уровень (англ. Transport layer) — 4-й уровень сетевой модели OSI, предназначен для доставки данных. При этом не важно, какие данные передаются, откуда и куда, то есть, он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка. Пример: TCP, UDP, SCTP. Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции, например, функции передачи данных без подтверждения приема, и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности, мультиплексируют несколько потоков данных, обеспечивают механизм управления потоками данных и гарантируют достоверность принятых данных. Некоторые протоколы транспортного уровня, называемые протоколами без установки соединения, не гарантируют, что данные доставляются по назначению в том порядке, в котором они были посланы устройством-источником. Некоторые транспортные уровни справляются с этим, собирая данные в нужной последовательности до передачи их на сеансовый уровень. Мультиплексирование (multiplexing) данных означает, что транспортный уровень способен одновременно обрабатывать несколько потоков данных (потоки могут поступать и от различных приложений) между двумя системами. Механизм управления потоком данных — это механизм, позволяющий регулировать количество данных, передаваемых от одной системы к другой. Протоколы транспортного уровня часто имеют функцию контроля доставки данных, заставляя принимающую данные систему отправлять подтверждения передающей стороне о приеме данных. Канальный уровень (англ. Data Link layer) — уровень сетевой модели OSI, предназначенный для передачи данных узлам, находящимся в том же сегменте локальной сети. Также может использоваться для обнаружения и, возможно, исправления ошибок, возникших на физическом уровне. Примерами протоколов, работающих на канальном уровне, являются: Ethernet для локальных сетей (многоузловой), Point-to-Point Protocol (PPP), HDLC и ADCCP для подключений точка-точка (двухузловой). Канальный уровень отвечает за доставку кадров между устройствами, подключенными к одному сетевому сегменту. Кадры канального уровня не пересекают границ сетевого сегмента. Функции межсетевоймаршрутизации и глобальной адресации осуществляются на более высоких уровнях модели OSI, что позволяет протоколам канального уровня сосредоточиться на локальной доставке и адресации. Заголовок кадра содержит аппаратные адреса отправителя и получателя, что позволяет определить, какое устройство отправило кадр и какое устройство должно получить и обработать его. В отличие от иерархических и маршрутизируемых адресов, аппаратные адреса одноуровневые. Это означает, что никакая часть адреса не может указывать на принадлежность к какой либо логической или физической группе. Когда устройства пытаются использовать среду одновременно, возникают коллизии кадров. Протоколы канального уровня выявляют такие случаи и обеспечивают механизмы для уменьшения их количества или же их предотвращения. Многие протоколы канального уровня не имеют подтверждения о приёме кадра, некоторые протоколы даже не имеют контрольной суммы для проверки целостности кадра. В таких случаях протоколы более высокого уровня должны обеспечивать управление потоком данных, контроль ошибок, подтверждение доставки и ретрансляции утерянных данных. На этом уровне работают коммутаторы, мосты. В программировании доступ к этому уровню предоставляет драйвер сетевой платы. В операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Рисунок 6. Инкапсуляция и демультиплексирование данных Инкапсуляция в компьютерных сетях — это метод построения модульных сетевых протоколов, при котором логически независимые функции сетиабстрагируются от нижележащих механизмов путём включения или инкапсулирования этих механизмов в более высокоуровневые объекты. Например, когда процесс хочет послать сообщение с помощью UDP, то производится последовательность действий: ·процесс передает сообщение к UDP в соответствии с парой гнездовых адресов и длины данных; ·UDP получает данные, дополненные заголовком UDP; ·UDP передает пользовательскую датаграмму к IP с гнездовым адресом; ·IP дополняет свой заголовок, который использует значение 17 в поле протокола, указывающее, что данные поступили от UDP-протокола; ·IP-датаграмма дополняет и добавляет собственный заголовок (при необходимости и окончание) и передает его к физическому уровню; ·физический уровень кодирует биты в электрические или оптические сигналы и посылает их отдалённой машине.
|