РЕГУЛИРОВКА СИНХРОНИЗАЦИИ СТЕКА ДЛЯ ПОСЛЕДОВАТЕЛЬНОЙ СВЯЗИ
STACK TIMING ADJUSTMENT FOR SERIAL COMMUNICATIONS

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Нижеописанные варианты осуществления относятся к стекам протоколов, и, более конкретно, к регулировке синхронизации стека для последовательной передачи данных.
УРОВЕНЬ ТЕХНИКИ
Последовательная передача данных между ведущим и ведомым устройствами в ряде случаев основывается на синхронизации для определения начала и конца связи. Например, протокол связи Modbus использует конфигурацию "ведущий-ведомый", в которой ведущее устройство инициирует каждую активность связи. В этой конфигурации ведущее устройство отправляет команду на ведомое устройство. Перед ответом ведомое устройство находится в режиме ожидания в течение периода времени, длительность которого, как правило, составляет 3.5 символа. Если ведущее устройство не отправляет какие-либо другие данные по истечении периода времени, то ведомому устройству разрешается отправить ответ. Эта конфигурация гарантирует, что только ведущее устройство или ведомое устройство будет осуществлять связь в определенное время. Другие протоколы связи используют подобные ограничения синхронизации, такие как, например, протокол магистрального адресуемого дистанционного преобразователя (HART). Протокол HART является мультимастерным протоколом с различными ограничениями синхронизации, такими как, например, срок ожидания ведомого устройства (STO), предоставление RT1 линии связи и тишина RT2 на линии связи, которые определяют, когда устройство в сети может осуществлять связь.
Как правило, последовательная передача данных передается через универсальный асинхронный приемопередатчик (UART), который последовательно передает двоичные данные. Например, программа на ведущем устройстве может сгенерировать команду, которая отвечает требованиям стандарта Modbus, а также отправить команду через приемопередатчик UART. Ведомое устройство может принять двоичные данные при помощи приемопередатчика UART ведомого устройства. Приемопередатчик UART может обеспечить двоичные данные программе ведомого устройства или встроенной системе, которая может интерпретировать двоичные данные, согласно стандарту Modbus. В дальнейшем ведомое устройство может сгенерировать ответ на команду и отправить его через приемопередатчик UART на ведущее устройство. Впоследствии ответ интерпретируется посредством ведущего устройства, согласно стандарту Modbus. Подобные способы могут быть использованы с другими протоколами последовательной передачи данных.
Очевидно, что правильная интерпретация последовательно переданных двоичных данных должна соответствовать протоколам последовательной передачи данных. Протоколы связи могут определить интервалы синхронизации, такие как, например, время для выполнения связи, периоды ожидания между приемом и передачей, битовые размеры полей в связи, или подобное. Например, если приемопередатчик UART ведущего устройства передает пакет запроса, где в двоичных данных присутствует интервал (промежуточная тишина, длительностью в один символ), то ведомое устройство не воспримет это в качестве двух независимых пакетов запроса. Если длительность интервала превышает 3.5 символа, то ведомое устройство неправильно воспримет это в качестве двух независимых пакетов запроса.
Универсальная последовательная шина (USB) плавно заменяет более старые протоколы последовательной передачи данных на основе приемопередатчика UART, согласно фактическому стандарту аппаратных средств. Например, множество компьютеров, которые функционируют в качестве ведущих устройств в протоколах последовательной передачи данных на основе приемопередатчика UART, заменяются компьютерами с USB-интерфейсами. Однако программы, которые используют протоколы последовательной передачи данных на основе приемопередатчика UART, все еще используются во многих приложениях. Для осуществления связи через USB-интерфейсы последовательная связь "помещается в стек" на виртуальном уровне UART и передаются по USB-интерфейсу, согласно USB-стандарту.
Однако, когда последовательная связь на основе приемопередатчика UART, которая основывается на синхронизации, передается по USB-интерфейсу, в процессе интерпретирования связи могут возникнуть ошибки синхронизации. Соответственно, существует потребность в регулировке синхронизации стека для последовательной передачи данных.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Обеспечивается способ регулировки синхронизации стека для последовательной передачи данных. Согласно варианту осуществления, способ содержит этапы приема данных по протоколу USB, декодирования данных по протоколу USB в UART-кадры, и регулировки синхронизации UART-кадров, согласно последовательному протоколу.
Обеспечивается USB-устройство с блоком регулировки синхронизации стека для последовательной передачи данных. Согласно варианту осуществления, USB-устройство с блоком регулировки синхронизации стека содержит USB-контроллер, выполненный с возможностью приема данных по протоколу USB и извлечения закодированного последовательного пакета из данных по протоколу USB. USB-устройство с блоком регулировки синхронизации стека дополнительно содержит микропроцессор, выполненный с возможностью декодирования закодированного последовательного пакета в UART-кадры, и блок регулировки синхронизации стека, выполненный с возможностью регулировки синхронизации UART-кадров, согласно последовательному протоколу.
Обеспечивается система связи с блоком регулировки синхронизации стека для последовательной передачи данных. Согласно варианту осуществления, система связи с блоком регулировки синхронизации стека для последовательной передачи данных содержит USB-устройство, которое является выполненным с возможностью кодирования последовательного пакета в данные по протоколу USB, при этом USB-устройство с блоком регулировки синхронизации стека состоит в связи с USB-устройством. USB-устройство с блоком регулировки синхронизации стека является выполненным с возможностью извлечения и декодирования последовательного пакета из данных по протоколу USB, а также регулировки синхронизации последовательного пакета.
АСПЕКТЫ
Согласно аспекту, способ регулировки синхронизации стека для последовательной передачи данных содержит этапы приема данных по протоколу USB, декодирования данных по протоколу USB в UART-кадры, и регулировки синхронизации UART-кадров, согласно последовательному протоколу.
Предпочтительно, чтобы этап декодирования данных по протоколу USB в UART-кадры содержал этап упорядочения UART-кадров.
Предпочтительно, чтобы этап регулировки синхронизации UART-кадров, согласно последовательному протоколу, содержал этап добавления задержки между двумя или более последовательными пакетами, закодированными в данные по протоколу USB.
Предпочтительно, чтобы этап регулировки синхронизации UART-кадров, согласно последовательному протоколу, содержал этап удаления межсимвольных задержек, добавленных к последовательному пакету, закодированному в данные по протоколу USB.
Предпочтительно, чтобы последовательный протокол содержал протокол Modbus.
Предпочтительно, чтобы последовательный протокол содержал протокол HART.
Предпочтительно, чтобы данные по протоколу USB содержала сообщение USB CDC с последовательным пакетом.
Согласно аспекту, USB-устройство (100) с блоком регулировки синхронизации стека содержит USB-контроллер (100a), выполненный с возможностью приема данных по протоколу USB и извлечения закодированного последовательного пакета из данных по протоколу USB, микропроцессор (100b), выполненный с возможностью декодирования закодированного последовательного пакета в UART-кадры, и блок (100c) регулировки синхронизации стека, выполненный с возможностью регулировки синхронизации UART-кадров, согласно последовательному протоколу.
Предпочтительно, чтобы микропроцессор (100b) дополнительно выполнен с возможностью упорядочения UART-кадров в последовательности.
Предпочтительно, чтобы блок (100c) регулировки синхронизации стека, выполненный с возможностью регулировки синхронизации UART-кадров, согласно последовательному протоколу, содержал блок (100c) регулировки синхронизации стека, выполненный с возможностью добавления задержки по времени между двумя или более последовательными пакетами, закодированными в данные по протоколу USB.
Предпочтительно, чтобы блок (100c) регулировки синхронизации стека, выполненный с возможностью регулировки синхронизации UART-кадров, согласно последовательному протоколу, содержал блок (100c) регулировки синхронизации стека, выполненный с возможностью удаления межсимвольных задержек, добавленных к последовательному пакету, закодированному в данные по протоколу USB.
Предпочтительно, чтобы последовательный протокол содержал протокол Modbus.
Предпочтительно, чтобы последовательный протокол содержал протокол HART.
Предпочтительно, чтобы данные по протоколу USB содержала сообщение USB CDC с последовательным пакетом.
Согласно аспекту, система связи (50) с блоком регулировки синхронизации стека для последовательной передачи данных содержит USB-устройство (200), которое выполнено с возможностью кодирования последовательного пакета в данные по протоколу USB, при этом USB-устройство (100) с блоком регулировки синхронизации стека состоит в связи с USB-устройством (200). USB-устройство с блоком регулировки синхронизации стека выполнено с возможностью извлечения и декодирования последовательного пакета из данных по протоколу USB, а также регулировки синхронизации последовательного пакета.
Предпочтительно, чтобы USB-устройство (100) с блоком регулировки синхронизации стека являлось дополнительно выполненным с возможностью ответа на последовательный пакет последовательным пакетом ответа, который кодируется в данные по протоколу USB ответа.
Предпочтительно, чтобы USB-устройство (200) являлось ведущим устройством, которое является дополнительно выполненным с возможностью кодирования последовательного пакета запроса в данные по протоколу USB.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Одинаковые ссылочные позиции представляют одинаковые элементы на всех чертежах. Следует понимать, что чертежи не должны быть в обязательном порядке представлены в масштабе.
Фиг. 1 изображает блок-схему 10 системы связи предшествующего уровня техники с USB-устройством 12 и устройством 14 для последовательной передачи данных.
Фиг. 2 изображает более подробный частичный вид блок-схемы 10, изображенной на Фиг. 1.
Фиг. 3 изображает блок-схему системы связи 50 с блоком регулировки синхронизации стека, согласно варианту осуществления.
Фиг. 4 изображает более подробную блок-схему USB-устройства 100 с блоком регулировки синхронизации стека, описанного со ссылкой на Фиг. 3.
Фиг. 5 изображает стек 500 протоколов с блоком регулировки синхронизации, согласно варианту осуществления.
Фиг. 6 изображает стек 600 протоколов Modbus с блоком регулировки синхронизации стека, согласно варианту осуществления.
Фиг. 7 изображает стек 700 протоколов HART с блоком регулировки синхронизации стека, согласно варианту осуществления.
Фиг. 8 изображает способ 800 регулировки синхронизации стека для последовательной передачи данных, согласно варианту осуществления.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Фиг. 1-8, а также нижеследующее описание, демонстрируют конкретные примеры для обучения специалистов в данной области техники создавать и использовать наилучший из вариантов осуществления регулировки синхронизации стека для последовательной передачи данных. Для обучения патентоспособным принципам, некоторые традиционные аспекты были упрощены или опущены. Специалистам в данной области техники будут очевидны различные вариации этих примеров, которые подпадают под объем настоящего описания. Специалистам в данной области техники будет очевидно, что нижеописанные отличительные признаки могут быть объединены различными способами для формирования множества различных вариаций регулировки синхронизации стека для последовательной передачи данных. Вследствие этого, нижеописанные варианты осуществления не ограничиваются нижеописанными конкретными примерами, и ограничиваются только посредством формулы изобретения и ее эквивалентов.
Фиг. 1 изображает блок-схему 10 системы связи предшествующего уровня техники с USB-устройством 12 и устройством 14 для последовательной передачи данных. В конфигурации, изображенной на Фиг. 1, блок 16 преобразователя располагается между USB-устройством 12 и устройством 14 для последовательной передачи данных. USB-кабель 18 соединяет блок 16 преобразователя с USB-устройством 12 через USB-порт 18a. Блок 16 преобразователя также соединяется с устройством 14 для последовательной передачи данных при помощи кабеля 19 последовательной передачи данных через порт 19а последовательной передачи данных. Ниже представлено более подробное описание устройства 14 для последовательной передачи данных и блока 16 преобразователя, которое демонстрирует способ устранения аппаратной избыточности посредством регулировки синхронизации стека для последовательной передачи данных.
Фиг. 2 изображает более подробный частичный вид блок-схемы 10, изображенной на Фиг. 1. Блок-схема 10 включает в себя устройство 14 для последовательной передачи данных, блок 16 преобразователя, USB-кабель 18 и кабель 19 последовательной передачи данных, описанные со ссылкой на Фиг. 1. Также демонстрируется преобразователь 14a RS485, который соединяется с кабелем 19 последовательной передачи данных. Однако в альтернативных вариантах осуществления могут быть использованы другие физические уровни, такие как, например, физический уровень Bell202 или RS422. Преобразователь 14a RS485 также демонстрируется в качестве состоящего в связи с приемопередатчиком 14b UART RS232. В качестве альтернативы, преобразователь 14a RS485 может не использоваться. Вместо этого, для осуществления связи с блоком 16 преобразователя может быть использован приемопередатчик 14b UART RS232. В изображенном варианте осуществления, микропроцессор 14c соединяется с приемопередатчиком 14b UART RS232. Микропроцессор 14c обеспечивает стек 14d последовательных протоколов, например, для программных средств, выполняемых на USB-устройстве 12. Фиг. 2 также изображает блок 16 преобразователя, имеющий USB-контроллер 16a, который соединяется с USB-кабелем 18. В блоке 16 преобразователя микропроцессор 16b соединяется с USB-контроллером 16a и приемопередатчиком 16c UART RS232. Приемопередатчик 16c UART RS232 соединяется с преобразователем 16d RS485. В качестве альтернативы, преобразователь 16d RS485 может не использоваться. Вместо этого, приемопередатчик 16c UART RS232 может состоять в связи с устройством 14 для последовательной передачи данных. В изображенном варианте осуществления, преобразователь 16d RS485 соединяется с кабелем 19 последовательной передачи данных, а также состоит в связи с преобразователем 14a RS485 в устройстве 14 для последовательной передачи данных.
Как можно видеть на Фиг. 2, использование преобразователя 14a RS485 может предусматривать аппаратную избыточность. Например, как устройство 14 для последовательной передачи данных, так и блок 16 преобразователя включают в себя микропроцессоры 14c, 16b, приемопередатчики 14b, 16c UART RS232 и преобразователи 14a, 16d RS485. Функции аппаратной избыточности предусматривают кодирование и декодирование последовательной передачи данных между USB-устройством 12 и устройством 14 для последовательной передачи данных. Например, преобразователь 16d RS485 в блоке 16 преобразователя кодирует UART-кадры от приемопередатчика 16c UART RS232, а преобразователь 14a RS485 в устройстве 14 для последовательной передачи данных декодирует UART-кадры. Соответственно, устранение функций избыточности кодирования и декодирования UART-кадров может устранить аппаратную избыточность. Нижеследующее описание демонстрирует способ сокращения или устранения ошибок синхронизации и избыточности аппаратных средств связи посредством регулировки синхронизации стека.
Фиг. 3 изображает блок-схему системы связи 50 с блоком регулировки синхронизации стека, согласно варианту осуществления. В изображенном варианте осуществления система связи 50 с блоком регулировки синхронизации стека включает в себя USB-устройство 100 с блоком регулировки синхронизации стека, соединенное с USB-устройством 200 при помощи USB-кабеля 120. USB-кабель 120 соединяется с USB-устройством 100 с блоком регулировки синхронизации стека через USB-порт 110, а также с USB-устройством 200 через USB-порт 210.
USB-устройство 100 с блоком регулировки синхронизации стека может являться любым надлежащим USB-устройством, которое может включать в себя блок регулировки синхронизации стека последовательной передачи данных. Например, USB-устройство 100 с блоком регулировки синхронизации стека может являться передатчиком расходомера, который включает в себя программные средства, которые генерируют последовательный пакет. В некоторых вариантах осуществления данные могут быть получены от расходомера и преобразованы в последовательный пакет в ответ на запрос от USB-устройства 200. Последовательный пакет может быть сгенерирован согласно протоколу последовательной передачи данных. В этом иллюстративном варианте осуществления USB-устройство 100 с блоком регулировки синхронизации стека может являться ведомым устройством в отношении USB-устройства 200.
USB-устройство 200 может являться любым надлежащим USB-устройством, которое способно осуществлять связь с USB-устройством 100 с блоком регулировки синхронизации стека. Например, в вышеупомянутом примере, в котором USB-устройство 100 с блоком регулировки синхронизации стека является передатчиком, который получает данные от расходомера, USB-устройство 200 может являться персональным компьютером, выполняющим программные средства, которые могут отправить последовательный пакет запроса. Последовательный пакет запроса может отвечать требованиям протокола последовательной передачи данных, используемого посредством USB-устройства 100 с блоком регулировки синхронизации стека. Соответственно, USB-устройство 100 с блоком регулировки синхронизации стека может правильно интерпретировать и ответить на последовательный пакет запроса последовательным пакетом ответа.
Как будет более подробно описано ниже, USB-устройство 200 может кодировать последовательный пакет в данные по протоколу USB. Например, последовательный пакет запроса может быть закодирован в сообщение класса устройства данных по протоколу USB (CDC). USB CDC является USB-стандартом, который определяет связь между устройствами с различными интерфейсами, такими как, например, последовательные интерфейсы. Однако кодирование последовательного пакета в данные по протоколу USB может добавить задержку, такую как, например, задержка по времени, к последовательному пакету. Задержка также может являться межсимвольной задержкой между двумя или более символами в последовательном пакете. Эти и другие задержки могут привести к возникновению проблем связи в случае отсутствия регулировки синхронизации. Например, задержка по времени, добавленная к последовательному пакету запроса Modbus без регулировки синхронизации посредством ведомого устройства Modbus, может воспрепятствовать ответу, вследствие присутствия 3.5 межсимвольной задержки между двумя или более символами в последовательных пакетах запроса Modbus. Межсимвольные задержки могут привести к ошибочному декодированию последовательных пакетов запроса, что может повлечь за собой неверные ответы и команды данных, и в том числе катастрофические отказы в промышленном оборудовании. Дополнительные детали регулировки синхронизации стека, которые могут предотвратить возникновение подобных проблем, описываются ниже.
Фиг. 4 изображает более подробную блок-схему USB-устройства 100 с блоком регулировки синхронизации стека, описанного со ссылкой на Фиг. 3. Как изображено на Фиг. 4, USB-устройство 100 с блоком регулировки синхронизации стека включает в себя USB-контроллер 100a, который соединяется с USB-кабелем 120 через USB-порт 110. USB-контроллер 100a соединяется с микропроцессором 100b. Блок 100c регулировки синхронизации стека демонстрируется в качестве соединенного с микропроцессором 100b. В альтернативных вариантах осуществления блок 100c регулировки синхронизации стека может являться частью микропроцессора 100b. Блок 100c регулировки синхронизации стека может обеспечить стек 100d последовательных протоколов, например, для программных средств, выполняющихся на USB-устройстве 100 с блоком регулировки синхронизации стека.
USB-контроллер 100a может принять данные по протоколу USB от USB-устройства 200. данные по протоколу USB может содержатся в сообщении USB CDC с последовательным пакетом, сгенерированным программными средствами на USB-устройстве 200. Детали кодирования последовательного пакета в данные по протоколу USB будут более подробно описаны ниже со ссылкой на Фиг. 5-8. USB-контроллер 100a может являться любым надлежащим USB-контроллером, который способен декодировать данные по протоколу USB для извлечения закодированного последовательного пакета из данных по протоколу USB. USB-контроллер 100a может извлечь и обеспечить закодированный последовательный пакет микропроцессору 100b.
Микропроцессор 100b может являться выполненным с возможностью декодирования закодированного последовательного пакета в UART-кадры. Микропроцессор 100b может являться любым надлежащим микропроцессором, который способен декодировать закодированный последовательный пакет в UART-кадры. Например, микропроцессор 100b может являться процессором, который выполняет программные средства, которые принимают извлеченный последовательный пакет с высокой тактовой частотой, буферизует закодированный последовательный пакет с тем чтобы скорость передачи данных отвечала требованиям формата приемопередатчика UART, и упорядочивает UART-кадры в надлежащей последовательности. Декодированные UART-кадры могут быть обеспечены блоку 100c регулировки синхронизации стека.
Блок 100c регулировки синхронизации стека может принять декодированные UART-кадры от микропроцессора 100b. Несмотря на то, что декодированные UART-кадры от микропроцессора 100b могут быть упорядочены и иметь скорость передачи данных, которая отвечает требованиям стандарта приемопередатчика UART, UART-кадры могут все еще иметь обсуждаемые выше задержки. Например, UART-кадры могут иметь межсимвольные задержки или ненадлежащие задержки по времени между последовательными пакетами. Блок 100c регулировки синхронизации стека может регулировать синхронизацию UART-кадров, согласно последовательному протоколу, как будет обсуждаться ниже со ссылкой на Фиг. 5-8. Соответственно, блок 100c регулировки синхронизации стека может обеспечить стек 100d последовательных протоколов без задержек, например, для программных средств, выполняющихся на USB-устройстве 100 с блоком регулировки синхронизации стека.
Стек 100d последовательных протоколов может являться любым стеком последовательных протоколов, который используется посредством USB-устройства 100 с блоком регулировки синхронизации стека. Например, USB-устройство 100 с блоком регулировки синхронизации стека может иметь программные средства, которые принимают и отправляют связь, которая отвечает требованиям стандартов Modbus или HART. В варианте осуществления, в котором USB-устройство 100 с блоком регулировки синхронизации стека является расходомером, стек 100d последовательных протоколов может являться последовательным пакетом запроса, отправленным посредством USB-устройства 200. Поскольку блок регулировки синхронизации стека позволяет последовательной передачи данных проходить без ошибок, вызванных посредством задержек, USB-устройство 200 может правильно ответить на последовательный пакет запроса. Дополнительные детали кодирования и декодирования последовательного пакета описываются ниже.
Фиг. 5 изображает стек 500 протоколов с блоком регулировки синхронизации, согласно варианту осуществления. В изображенном на Фиг. 5 варианте осуществления последовательный пакет 510 запроса может быть обеспечен посредством, например, USB-устройства 200, описанного со ссылкой на Фиг. 3 и 4. Как изображено на Фиг. 5, последовательный пакет 510 запроса кодируется во множество UART-кадров 520. Изображенное множество UART-кадров 520 состоит из первого набора UART-кадров 520a и второго набора UART-кадров 520b. В альтернативных вариантах осуществления может быть использовано большее или меньшее количество UART-кадров. Кроме того, как видно на Фиг. 5, множество UART-кадров 520 кодируется в данные по протоколу USB 530. Первый набор UART-кадров 520a кодируется в первое сообщение 530a USB CDC, а второй набор UART-кадров 520b кодируется во второе сообщение 530b USB CDC. В альтернативных вариантах осуществления может быть использовано большее или меньшее количество сообщений 530a, 530b USB CDC. данные по протоколу USB 530 может быть отправлена на USB-устройство 100 с блоком регулировки синхронизации стека.
На Фиг. 5 также изображается последовательный пакет 550 ответа, который может быть отправлен посредством, например, USB-устройства 100 с блоком регулировки синхронизации стека после приема данных по протоколу USB 530. Последовательный пакет 550 ответа может быть отправлен на USB-устройство 200, описанное со ссылкой на Фиг. 3. В изображенном на Фиг. 5 варианте осуществления последовательный пакет 550 ответа кодируется во множество UART-кадров 560. Изображенное множество UART-кадров 560 состоит из первого набора UART-кадров 560a и второго набора UART-кадров 560b. Множество UART-кадров 560 кодируется в данные по протоколу USB 570. В изображенном варианте осуществления первый набор UART-кадров 560a кодируется в первое сообщение 570a USB CDC. Второй набор UART-кадров 560b кодируется во второе сообщение 570b USB CDC. данные по протоколу USB 570 может быть отправлена на, например, USB-устройство 200, в ответ на последовательный пакет 510 запроса.
Последовательный пакет 510 запроса может являться последовательностью символов, которая отвечает требованиям стандарта последовательной передачи данных, такого как, например, Modbus и HART. Однако другие стандарты последовательной передачи данных находятся в рамках настоящего раскрытия. Последовательность символов может представлять команду, запрос, данные и т.д. Например, последовательность символов может являться связью, инициированной посредством приложения, запущенного на USB-устройстве 200. Связь может быть адресована к USB-устройству 100 с блоком регулировки синхронизации стека для запроса тех данных, которые обеспечиваются USB-устройству 200 через USB-кабель 120.
Последовательный пакет 510 запроса кодируется во множество UART-кадров 520, согласно интерфейсному стандарту. Например, множество UART-кадров 520 может являться преобразованием последовательного пакета 510 запроса в последовательность символов с синхронизацией и скоростями передачи данных, которые отвечают требованиям стандарта последовательного интерфейса, такого как, например, стандарт RS232. Однако вместо передачи множества UART-кадров 520 через коннектор RS232, множество UART-кадров 520 кодируется в данные по протоколу USB 530.
Часть множества UART-кадров 520 может быть включена в часть данных по протоколу USB 530. Например, стандарт USB CDC может выделить часть сообщения USB CDC для инкапсуляции данных. Часть каждой данных по протоколу USB 530, которая используется для инкапсуляции данных, иногда называется в уровне технике информационным наполнением. В некоторых вариантах осуществления информационное наполнение может иметь ограниченную ширину в байтах. Например, информационное наполнение может иметь ширину, равную 64 байтам. Кроме того, каждый из множества UART-кадров 520 может не иметь одинаковую ширину в байтах с информационным наполнением. Вследствие этого, в информационном наполнении могут присутствовать неиспользуемые символы. Кроме того, каждый из множества UART-кадров 520 может быть поделен между различными USB-связями 530. В этих и других вариантах осуществления данные по протоколу USB 530 может быть использована для передачи множества UART-кадров 520. Соответственно, приложения, которые запускаются на USB-устройстве 100 с блоком регулировки синхронизации стека, не должны модифицироваться или повторно программироваться для осуществления связи через, например, USB-порт 110.
На Фиг. 5 также изображается задержка по времени, указанная посредством пунктирных линий между последовательным пакетом 510 запроса и множеством UART-кадров 520. Задержка по времени может возникнуть вследствие прерывания процесса обработки USB-устройства 100 с блоком регулировки синхронизации стека, например, в микропроцессоре 100b, или других задержек в ходе декодирования последовательного пакета 510 запроса во множество UART-кадров 520. Задержка по времени демонстрируется между последовательным пакетом 510 запроса и множеством UART-кадров 520. Однако, как было описано выше, могут возникнуть другие задержки. Например, могут возникнуть задержки между каждым из множества UART-кадров 520, между двумя или более символами в каждом из множества UART-кадров 520, или подобное.
Как было описано выше со ссылкой на Фиг. 3-4, блок 100c регулировки синхронизации стека может удалить задержки для гарантии осуществления безошибочной последовательной передачи данных между USB-устройством 100 с блоком регулировки синхронизации стека и USB-устройством 200. Очевидно, что блок 100c регулировки синхронизации стека может отвечать требованиям последовательного протокола. Иллюстративные последовательные протоколы будут более подробно описаны ниже со ссылкой на Фиг. 6 и 7.
Фиг. 6 изображает стек 600 протоколов Modbus с блоком регулировки синхронизации стека, согласно варианту осуществления. В изображенном на Фиг. 6 варианте осуществления пакет 610 запроса Modbus может быть обеспечен посредством, например, USB-устройства 200, описанного со ссылкой на Фиг. 3 и 4. Как изображено на Фиг. 6, пакет 610 запроса Modbus кодируется во множество UART-кадров 620. Изображенное множество UART-кадров 620 состоит из первого набора UART-кадров 620a и второго набора UART-кадров 620b. В альтернативных вариантах осуществления может быть использовано большее или меньшее количество UART-кадров. Кроме того, как видно на Фиг. 6, множество UART-кадров 620 кодируется в данные по протоколу USB 630. Первый набор UART-кадров 620a кодируется в первое сообщение 630a USB CDC, а второй набор UART-кадров 620b кодируется во второе сообщение 630b USB CDC. В альтернативных вариантах осуществления может быть использовано большее или меньшее количество сообщений USB CDC. данные по протоколу USB 630 может быть отправлена на USB-устройство 100 с блоком регулировки синхронизации стека.
Также на Фиг. 6 изображается задержка конца пакета (EOP) 640. EOP 640 является задержкой или периодом времени после пакета 610 запроса Modbus, которая позволяет ведомому устройству ответить. Если пакет 610 запроса Modbus принимается посредством ведомого устройства с 3.5-символьной задержкой, то ведомое устройство может ответить пакетом 650 ответа Modbus.
Пакет 650 ответа Modbus может быть отправлен посредством, например, USB-устройства 100 с блоком регулировки синхронизации стека после приема данных по протоколу USB 630. Пакет 650 ответа Modbus может быть отправлен на USB-устройство 200, описанное со ссылкой на Фиг. 3. В изображенном на Фиг. 6 варианте осуществления пакет 650 ответа Modbus кодируется во множество UART-кадров 660. Изображенное множество UART-кадров 660 состоит из первого набора UART-кадров 660a и второго набора UART-кадров 660b. Множество UART-кадров 660 кодируется в данные по протоколу USB 670. В изображенном варианте осуществления первый набор UART-кадров 660a кодируется в первое сообщение 670a USB CDC. Второй набор UART-кадров 660b кодируется во второе сообщение 670b USB CDC. данные по протоколу USB 670 может быть отправлена на, например, USB-устройство 200, в ответ на пакет 610 запроса Modbus.
Пакет 610 запроса Modbus может являться последовательностью символов, которая отвечает требованиям стандарта связи Modbus. Последовательность может включать в себя команды, отправленные посредством ведущего устройства на ведомое устройство. Однако, вследствие задержки, изображенной на Фиг. 6 посредством пунктирных линий, USB-устройство 100 с блоком регулировки синхронизации стека не может ответить без регулировки синхронизации пакета 610 запроса Modbus. Например, декодирование пакета 610 запроса Modbus во множество UART-кадров 620 может побудить синхронизацию пакета 610 запроса Modbus к смещению, уменьшая EOP 640 до размера менее 3.5 символов. Вследствие этого, ведомое устройство не может ответить на пакет 610 запроса Modbus.
Кроме того, стандарт Modbus делит пакет 610 запроса Modbus на части или поля, определенные посредством битовых длин. Например, формат кадра Modbus RTU может иметь часть данных после полей адреса и функции. Кодирование пакета 610 запроса Modbus в данные по протоколу USB 630 может вставить символы или биты в эти поля. Например, как было описано выше со ссылкой на Фиг. 5, пакет 610 запроса Modbus может быть поделен в числе двух или более USB-связей. Такое деление может побудить вставку дополнительных символов в пакет 610 запроса Modbus. Аналогичные задержки могут быть добавлены к последовательным пакетам в протоколе HART, который будет более подробно описан ниже.
Фиг. 7 изображает стек 700 протоколов HART с блоком регулировки синхронизации стека, согласно варианту осуществления. В изображенном на Фиг. 7 варианте осуществления пакет 710 запроса HART может быть обеспечен посредством, например, USB-устройства 200, описанного со ссылкой на Фиг. 3 и 4. Как изображено на Фиг. 7, пакет 710 запроса HART кодируется во множество UART-кадров 720. Изображенное множество UART-кадров 720 состоит из первого набора UART-кадров 720a и второго набора UART-кадров 720b. В альтернативных вариантах осуществления может быть использовано большее или меньшее количество UART-кадров. Кроме того, как видно на Фиг. 7, множество UART-кадров 720 кодируется в данные по протоколу USB 730. Первый набор UART-кадров 720a кодируется в первое сообщение 730a USB CDC, а второй набор UART-кадров 720b кодируется во второе сообщение 730b USB CDC. В альтернативных вариантах осуществления может быть использовано большее или меньшее количество сообщений 730a, 730b USB CDC. данные по протоколу USB 730 может быть отправлена на USB-устройство 100 с блоком регулировки синхронизации стека.
На Фиг. 7 также изображается период срока 740 ожидания ведомого устройства (STO). STO 740 является максимальным периодом времени после пакета 710 запроса HART, за который ведомое устройство в стандарте HART должно начать отвечать, например, пакетом 750 ответа HART.
Пакет 750 ответа HART может быть отправлен посредством, например, USB-устройства 100 с блоком регулировки синхронизации стека, после приема данных по протоколу USB 730. Пакет 750 ответа HART может быть отправлен на USB-устройство 200, описанное со ссылкой на Фиг. 3. В изображенном на Фиг. 7 варианте осуществления пакет 750 ответа HART кодируется во множество UART-кадров 760. Изображенное множество UART-кадров 760 состоит из первого набора UART-кадров 760a и второго набора UART-кадров 760b. Множество UART-кадров 760 кодируется в данные по протоколу USB 770. В изображенном варианте осуществления первый набор UART-кадров 760a кодируется в первое сообщение 770a USB CDC. Второй набор UART-кадров 760b кодируется во второе сообщение 770b USB CDC. данные по протоколу USB 770 может быть отправлена на, например, USB-устройство 200, в ответ на пакет 710 запроса HART.
Пакет 710 запроса HART может являться последовательностью символов, которая отвечает требованиям стандарту связи HART. Последовательность может включать в себя команды, отправленные посредством ведущего устройства на ведомое устройство. Однако, вследствие задержки, изображенной на Фиг. 7 посредством пунктирных линий, USB-устройство 100 с блоком регулировки синхронизации стека не может ответить без регулировки синхронизации пакета 710 запроса HART. Например, декодирование пакета 710 запроса HART во множество UART-кадров 720 может побудить синхронизацию пакета 710 запроса HART к смещению, уменьшая длину STO 740. Вследствие этого, ведомое устройство не может ответить на пакет 710 запроса HART.
Кроме того, стандарт HART делит пакет 710 запроса HART на части или поля, определенные посредством битовых длин. Как изображено на Фиг. 7, пакет 710 запроса HART состоит из преамбулы 712, разделителя 714 и части данных 716. Пакет 750 ответа HART подобным образом делится на преамбулу 752, разделитель 754 и часть данных 756. Преамбула 712, 752 является полем синхронизации и обнаружения несущей. Разделитель 714, 754 отделяет преамбулу 712, 752 от части данных 716, 756. Несмотря на то, что это не изображено на Фиг. 7, данные 716, 756 состоят из адреса, команды, размера, состояния, поля данных и полей контрольной суммы в протоколе HART.
Вышеописанные задержки могут быть удалены из последовательных пакетов, таких как, например, последовательные пакеты 510-710 запроса, при помощи блока регулировки синхронизации стека, как будет более подробно описано ниже.
Фиг. 8 изображает способ 800 регулировки синхронизации стека для последовательной передачи данных, согласно варианту осуществления. Способ 800 включает в себя этап 810 приема данных по протоколу USB, этап 820 декодирования данных по протоколу USB в UART-кадры, и этап 830 регулировки синхронизации UART-кадров, согласно последовательному протоколу.
Как обсуждалось выше, этап 810 приема данных по протоколу USB 810 может содержать этап приема связи USB CDC. данные по протоколу USB 530 может включать в себя последовательный пакет 510 запроса, который кодируется в данные по протоколу USB 530 посредством USB-устройства 200. Как было описано выше, этап кодирования может добавлять задержки, такие как, например, задержка синхронизации, к последовательному пакету.
Этап 820 декодирования данных по протоколу USB в UART-кадры может включать в себя различные операции. Например, этап 820 декодирования данных по протоколу USB в UART-кадры может включать в себя этап упорядочения UART-кадров в последовательности, которая является аналогичной UART-кадрам, закодированным в данные по протоколу USB. Дополнительно или альтернативно, этап декодирования данных по протоколу USB в UART-кадры может включать в себя этап буферизации закодированных UART-кадров на скорости, которая отвечает требованиям скорости передачи данных интерфейсного стандарта.
Этап 830 регулировки синхронизации UART-кадров, согласно последовательному протоколу, может включать в себя операции, которые регулируют задержки по времени между последовательными пакетами, межсимвольные задержки или подобное. Например, этап 830 регулировки синхронизации UART-кадров, согласно последовательному протоколу, может включать в себя этап удаления межсимвольной задержки в UART-кадрах. Дополнительно или альтернативно, также может быть отрегулирована задержка по времени между последовательными пакетами. Этап регулировки синхронизации UART-кадров может включать в себя этап проверки задержки конца пакета, такой как, например, вышеописанная EOP 640 или STO 740. Если задержка конца пакета не соответствует стандарту последовательной передачи данных, то задержка может быть добавлена к последовательному пакету 510-710 запроса. Соответственно, USB-устройство 100 с блоком регулировки синхронизации стека может правильно ответить на последовательный пакет 510-710 запроса.
Вышеописанные варианты осуществления обеспечивают регулировку синхронизации стека для последовательной передачи данных. Как разъяснялось выше, способ 800 регулировки синхронизации стека может регулировать синхронизацию множества UART-кадров 520-720. Этап регулировки синхронизации множества UART-кадров 520-720 может включать в себя этап удаления задержек, таких как, например, задержки по времени, межсимвольные задержки или подобное, добавленные к последовательному пакету 510-710 запроса. В результате удаления задержек, USB-устройство 100 с блоком регулировки синхронизации стека может правильно интерпретировать последовательные пакеты, такие как, например, последовательный пакет 510 запроса, отправленный посредством USB-устройства 200.
USB-устройство 100 с блоком регулировки синхронизации стека может включать в себя блок 100c регулировки синхронизации стека для выполнения способа 800 регулировки синхронизации стека. Поэтому USB-устройство 100 с блоком регулировки синхронизации стека может правильно выполнить команды в последовательном пакете. Например, USB-устройство 100 с блоком регулировки синхронизации стека может являться передатчиком, который считывает данные из расходомера и отправляет данные на USB-устройство 200 через последовательный пакет 550-750 ответа.
Включение блока 100с регулировки синхронизации стека в USB-устройство 100 с блоком регулировки синхронизации стека может уменьшить количество или исключить компоненты и устройства. Например, блок 16 преобразователя, описанный со ссылкой на Фиг. 1 и 2, не требуется. Кроме того, преобразователь 14a RS485, описанный со ссылкой на Фиг. 2, не требуется. Кроме того, скорости передачи данных для связи между USB-устройством 200 и USB-устройством 100 с блоком регулировки синхронизации стека могут быть повышены. Например, данные по протоколу USB 530-730 может быть передана с намного более высокими скоростями, чем во многих стандартах последовательного интерфейса, таких как, например, стандарт RS232.
Включение способа 800 регулировки синхронизации стека в USB-устройство 100 с блоком регулировки синхронизации стека также может исключить потребность в том, чтобы потребители модифицировали программные средства для гарантии совместимости блоков преобразователя, и т.д. Например, программные средства, выполняемые на USB-устройстве 200, не должны обновляться, например, со специализированным протоколом данных по протоколу USB. Программные средства могут продолжать отправлять последовательные пакеты, такие как, например, последовательные пакеты 510-710 запроса, без модификации или разработки новых программных средств.
Подробное описание вышеизложенных вариантов осуществления не является полным описанием всех вариантов осуществления, предполагаемых посредством авторов изобретения, которые подпадают под объем настоящего описания. Очевидно, что специалистам в данной области техники будет понятно, что конкретные элементы вышеописанных вариантов осуществления могут быть объединены или исключены различными способами для создания дополнительных вариантов осуществления, и такие дополнительные варианты осуществления подпадают под объем и принципы настоящего описания. Специалистам в данной области техники также будет понятно, что вышеописанные варианты осуществления могут быть объединены полностью или частично для создания дополнительных вариантов осуществления, подпадающих под объем и принципы настоящего описания.
Следовательно, несмотря на то, что конкретные варианты осуществления были описаны в настоящей заявке в иллюстративных целях, возможны различные эквивалентные модификации в пределах объема настоящего описания, которые будут понятным специалистам в данной области техники. Представленные в настоящей заявке принципы могут быть применены к другой регулировке синхронизации стека для последовательных протоколов, а не только к вариантам осуществления, которые были описаны выше и изображены на прилагаемых чертежах. Соответственно, объем вышеописанных вариантов осуществления должен быть определен посредством нижеследующей формулы изобретения.