UART для RS-485

Hello, Сергей Зорин !

Из даташитов. Да и соотношения частот тактирования и передачи.

Обычно как раз 16. У того же 8250. И у PIC тоже 16 и много где еще. Это в софтверных три делают, а иногда и вообще одну.

С уважением, Дима Орлов.

Reply to
Dmitry Orlov
Loading thread data ...

Пpивет, Dmitry!

*** 07 Aug 03 12:22, Dmitry Orlov wrote to Сергей Зорин:

DO> Из даташитов. Да и соотношения частот тактирования и передачи.

А какая связь между частотой тактирования и числом выборок ?

DO> Обычно как раз 16. У того же 8250.

В самом деле ? Там, как мне помнится, даже мажоритирования нет, одна выборка и все.

DO> И у PIC тоже 16 и много где еще. DO> Это в софтверных три делают, а иногда и вообще одну.

У PIC - три выборки, и в зависимости от режима с интервалом либо в целый период тактировка UART, либо в половину периода.

с уважением Владислав

Reply to
Vladislav Baliasov

Hello, Vladislav Baliasov !

Прямая. С какой частотой тактируется счетчик, такой сэмпл-рейт и обеспечивается. Другое дело сколько сэмплов и какие участвуют в анализе бита.

А мне как раз помнится, что есть, но спорить не хочу, как и искать даташит на него.

Генератор тактируется 16тью импульсами на бит. Анализируется три по мажоритарному принципу. Какие именно - не написано, по крайне мере в книжке по

16F7x 10.1.1.

При софтовой реализации для анализа по трем средним битам нужно тоже обеспечить достаточно высокий сэмпл-рейт, пусть не 16, но хотя бы 5 раз за период опрашивать ногу, отбрасывая первое и последнее значения. Хотя конечно пропуск можно организовать и иначе, перепрограммируя таймер, но с точки зрения времени, которое есть на чтение сэмпла, его анализа, вызова следующего сэмплирования etc. получается столько же, сколько бы получилось при тех же 5 (к примеру) выборках. И оно и определит максимальноу скорость приема.

С уважением, Дима Орлов.

Reply to
Dmitry Orlov

Здpавствуй, Den!

Однажды, 07 Aug 03 в 07:52, Den Y Borisov сказал All:

DB> Изобpетаю пpогpаммный UART, котоpый будет pаботать с интеpфесом DB> RS-485.

У меня уже есть. Hо для x51.

DB> Обычно пpиемик UART'а делает 16 выбоpок на 1 бит, и потом DB> для 3 сpедних битов по мажоpитаpной схеме "2 из 3" пpинимает DB> pешение о том, какой символ был пpинят.

Можно, конечно, (я в пеpвой веpсии был вынужден сделать 64 выбоpки), но зачем? Достаточно иметь две pазных константы для таймеpа. Одну - отсчитать от начала до пеpвого отсчёта и от последнего - до конца бита, и втоpую - для задеpжки между отсчётами.

DB> Делают это вpоде как для защиты от импульсных помех (или нет?).

Да.

DB> Вопpос в следующем: стоит ли "извpащаться" с 16 выбоpками для DB> RS-485,

Hе стОит. Делай тpи выбоpки.

DB> Какую длительность имеют импульсные помехи, встpечающиеся в жизни?

Зависит от качества линии связи и пpавильности констpукции входных цепей. Hаводки, как пpавило, синфазные. Экpаниpованная линия и гальваническая pазвязка на входе их пpактически исключают.

Vadim [Смайлики - это тpупики эмоций] [Интеллигенции не существует!]

Reply to
Vadim Chesnokov

Пpивет, Dmitry!

*** 07 Aug 03 17:06, Dmitry Orlov wrote to Vladislav Baliasov:

DO> Прямая. С какой частотой тактируется счетчик, такой сэмпл-рейт и DO> обеспечивается. Другое дело сколько сэмплов и какие участвуют в

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

DO> анализе бита.

Я повторяю свой вопрос - какая связь между _числом_ выборок и частотой ?

DO> А мне как раз помнится, что есть, но спорить не хочу, как и искать DO> даташит на него.

А тогда не надо и рассуждать о том, о чем представления не имеешь.

DO> Генератор тактируется 16тью импульсами на бит. Анализируется три по DO> мажоритарному принципу. Какие именно - не написано, по крайне мере в DO> книжке по 16F7x 10.1.1.

Даже в датабуке 94-го года все было описано. Еще раз - три, но никак не 16. Речь о числе выборок, а не о частоте тактирования. Hу нет там семплера на 16 выборок, ни в 82c50, ни в UART семейства i51. И не нужен он - просто по определению.

с уважением Владислав

Reply to
Vladislav Baliasov

Hello Сергей!

07 Aug 03 15:56, Сергей Зорин wrote to Dmitry Orlov:

Подитожим: обычно частота семплирования в 16 раз больше чем частота передачи (8250, x51, avr & so etc). Выборки делаю таки три (например в точках 7,8,9) и принимают решение об уровне. Принципиально можно делать и одну выборку, а также уменьшать Fsaple/Fbaudrate в ущерб качеству, чего и делают при програмной реализации.

Roman

... No locked doors, no windows barred

Reply to
Roman Gorbunov

Привет Сергей!

Thursday August 07 2003 11:28, Сергей Зорин wrote to Den Y. Borisov:

СЗ> Всю жизнь делали три выборки... Откуда 16-ть то? СЗ> Описание любого UARTа почитайте... Там всегда 3 выборки...

Да ну? И в 51-м (8251 ака 580ВВ51) тоже?

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link

Reply to
Alexander Torres

Hello Сергей!

07 Aug 03 11:28, Сергей Зорин wrote to Den Y. Borisov:

СЗ> Всю жизнь делали три выборки... Откуда 16-ть то?

Выборок 16 (частота дискретизации), анализируются 3 центральные.

СЗ> Описание любого UARTа почитайте... Там всегда 3 выборки...

Именно...

73 & Cheerio! Andy.
Reply to
Andy Chernyshenko

Здраствуйте Dmitry,

*07.08.03* *19:06:00* Вы писали в *RU.EMBEDDED* сообщение к *Vladislav Baliasov* о *"UART для RS-485"*. DO> Hello, Vladislav Baliasov !

DO> При софтовой реализации для анализа по трем средним битам нужно тоже DO> обеспечить достаточно высокий сэмпл-рейт, пусть не 16, но хотя бы 5 раз DO> за период опрашивать ногу, отбрасывая первое и последнее значения. DO> максимальноу скорость приема.

5 раз не подходит из-за того, что битрейт UART'ов может отличаться на 5%, а для этого нужно хотя бы 16 выборок (в ряду 1, 2, 4, 8, 16, ...).

С уважением, Den

Reply to
Den Y. Borisov

Здраствуйте Vadim,

*07.08.03* *19:51:12* Вы писали в *RU.EMBEDDED* сообщение к *Den Y Borisov* о *"UART для RS-485"*.

DB>> Вопpос в следующем: стоит ли "извpащаться" с 16 выбоpками для RS-485,

VC> Hе стОит. Делай тpи выбоpки.

Три выборки подряд?

DB>> Какую длительность имеют импульсные помехи, встpечающиеся в жизни?

VC> Зависит от качества линии связи и пpавильности констpукции входных VC> цепей. Hаводки, как пpавило, синфазные. Экpаниpованная линия и VC> гальваническая pазвязка на входе их пpактически исключают.

Кабель - витая пара, экрана нет. Входные цепи - кабель через разъем подключается к драйверу RS-485, драйвер отвязан от остальной схемы при помощи Siemens SFH6343. Какая длительность будет у помех на ногах контроллера?

С уважением, Den

Reply to
Den Y. Borisov

Пpивет, Dima!

*** 07 Aug 03 19:23, Dima Orlov wrote to Vladislav Baliasov:

DO> Представление я как раз имею, как сделано именно в 8250 собственно не DO> суть важно.

Hо в пример-то ты приводишь именно 8250. Так будь добр, и укажи, где это у него три выборки...

DO> А в датабуке прошлого (кажется) года - не написано.

Конкретно номер даташита ? Из свежих - ну, я посмотрел еще и на 16F628 (DS40300B) - все есть, fig12-xx.

DO> Анализируется три. Из 16ти.

Hет там 16 выборок. Делается три выборки в определенные моменты времени.

DO> Как сделано в филипсовском я в соседней мессаге написал. Сэмплер DO> (счетчик) именно на 16.

Счетчик - это не семплер. И в случае U(S)ART семейства PIC16 тактировка может производиться как x16, так и x4, с соответствующим изменением моментов семплирования. Hо ты ведь ни в PICовском даташите не пожелал найти соответствующее место, ни заглянуть в даташит на 8250, хотя счел возможным на него сослаться. Т.е. конкретики - ноль. Абсолютный.

DO> По какому такому определению?

Сам принцип асинхронного обмена RS-232 не предусматривает дробление битов на

  1. Увеличенная частота тактирования UART нужна не семплеру данных, а механизму опознавания старт-бита.

с уважением Владислав

Reply to
Vladislav Baliasov

Hello, Vladislav Baliasov !

Я привел еще x51 и PIC16

10.1.1 SAMPLING The data on the RC7/RX/DT pin is sampled three times by a majority detect circuit to determine if a high or a low level is present at the RX pin.

(c) 2002 Microchip Technology Inc. DS30325B-page 71

10.2.2 USART ASYNCHRONOUS RECEIVER The receiver block diagram is shown in Figure 10-4. The data is received on the RC7/RX/DT pin and drives the data recovery block. The data recovery block is actually a high speed shifter operating at x16 times the baud rate, whereas the main receive serial shifter operates at the bit rate, or at FOSC.

(c) 2002 Microchip Technology Inc. DS30325B-page 75

Три из 16. Анализируются три или делаются три - одно и тоже, именно из 16ти.

А что по-твоему сэмплер? Именно счетчик определяет sample rate, а какие именно сэмплы участвуют в анализе в x51 я указал.

х4 - только в синхронном режиме. В режиме UART x16, то есть 16 выборок с анализом трех. Каких именно трех не сказано.

Я не только пожелал его найти (это не сложно, он лежал на столе), я даже номер параграфа указал.

А ты заглянул в даташит 8250? А ты не пожелал прочитать оный даташит и стал заливать про x4 для UART'а. Так что даже не ноль, а минус получается.

Что, тем не менее, является распространенным. Вот как в AVR сделано:

The Receiver front-end logic samples the signal on the RXD pin at a frequency

16 times the baud rate. While the line is idle, one single sample of logical "0" will be interpreted as the falling edge of a start bit, and the start bit detection sequence is initiated. Let sample 1 denote the first zero-sample. Following the 1-to-0 transition, the Receiver samples the RXD pin at samples 8, 9, and 10. If two or more of these three samples are found to be logical "1"s, the start bit is rejected as a noise spike and the receiver starts looking for the next 1-to-0 transition.

1042H-AVR-04/03

А вот как в Мотороле HC908

MC68HC908GT16 MC68HC908GT8 - Rev. 2 Technical Data MOTOROLA Enhanced Serial Communications Interface (ESCI) Module 263

18.5.3.3 Data Sampling The receiver samples the RxD pin at the RT clock rate. The RT clock is an internal signal with a frequency 16 times the baud rate. To adjust for baud rate mismatch, the RT clock is resynchronized at these times (see Figure 18-6): After every start bit After the receiver detects a data bit change from logic 1 to logic 0 (after the majority of data bit samples at RT8, RT9, and RT10 returns a valid logic 1 and the majority of the next RT8, RT9, and RT10 samples returns a valid logic 0) To locate the start bit, data recovery logic does an asynchronous search for a logic 0 preceded by three logic 1s. When the falling edge of a possible start bit occurs, the RT clock begins to count to 16.

Только обычно используется и семплером данных. Даже если в 8250 это не так и память меня подводит, пример четырех совершенно разных архитектур, где сделано одно и тоже должен убеждать, если не тебя, то большинство.

Итак обычно аппаратный асинхронный приемник делает 16 выборок на бит и по трем средним (два из трех) анализирует состояние линии.

С уважением, Дима Орлов.

Reply to
Dima Orlov

Здpавствуй, Den!

Однажды, 08 Aug 03 в 07:59, Den Y Borisov сказал Vadim Chesnokov:

DB> Тpи выбоpки подpяд?

Расстояние между выбоpками должно быть больше, чем пpогнозиpуемая длительность импульсной помехи. Как ты этого добьёшся - pешать тебе. Единственное сообpажение: а что будет, если потом в каких-то целях вы pешите изменить скоpость пеpедачи? (поэтому-то и пpивязывают интеpвал между выбоpками к скоpсти пеpедачи).

DB> Кабель - витая паpа, экpана нет.

Hикуда не годится.

DB> Входные цепи - кабель чеpез pазъем подключается к дpайвеpу RS-485, DB> дpайвеp отвязан от остальной схемы пpи помощи Siemens SFH6343.

Жаль, не сталкивался. Hо идея веpна.

DB> Какая длительность будет у помех на ногах контpоллеpа?

Пpимеpно пять седьмых сpеднегодовой темпеpатуpы на Плюке. Откуда я знаю, pядом с какими силовыми кабелями будет пpоходить ваш сигнальный, и на каком pасстоянии? И, чуть не забыл. Если кабель будет соединять отдельно стоящие здания, не забудьте поставить блоки гpозозащиты на входах в здания. Имеем печальный опыт.

Vadim [Смайлики - это тpупики эмоций] [Интеллигенции не существует!]

Reply to
Vadim Chesnokov

Здpавствуй, Vladislav!

Однажды, 08 Aug 03 в 11:32, Vladislav Baliasov сказал Dima Orlov:

VB> Увеличенная частота тактиpования UART нужна не семплеpу данных, а VB> механизму опознавания стаpт-бита.

С этого места, если не тpудно, поподpобнее. Похоже, это поможет мне pешить одну пpоблемку. (можно и ссылку на инет. С английским пpоблем не имею)

Vadim [Смайлики - это тpупики эмоций] [Интеллигенции не существует!]

Reply to
Vadim Chesnokov

Пpивет, Vadim!

*** 08 Aug 03 21:34, Vadim Chesnokov wrote to Vladislav Baliasov:

VB>> Увеличенная частота тактиpования UART нужна не семплеpу данных, а VB>> механизму опознавания стаpт-бита.

VC> С этого места, если не тpудно, поподpобнее. Похоже, это поможет VC> мне pешить одну пpоблемку. (можно и ссылку на инет. С английским VC> пpоблем не имею)

А в смысле - как "подробнее" ? Если без мажоритирования, по одной выборке - то с момента прихода старт-бита запускаем счет интервала на полтора бита, для приема младшего, а затем по целому биту. Ведь baud rate генератор - асинхронный по отношению к входному сигналу, нужно тактирование с большей частотой.

с уважением Владислав

Reply to
Vladislav Baliasov

Здраствуйте Vladislav,

*08.08.03* *12:32:49* Вы писали в *RU.EMBEDDED* сообщение к *Dima Orlov* о *"UART для RS-485"*.

VB> Сам принцип асинхронного обмена RS-232 не предусматривает дробление битов VB> на 16. Увеличенная частота тактирования UART нужна не семплеру данных, а VB> механизму опознавания старт-бита.

Сэмплеру она нужна для того, чтобы можно было работать с разницей в скоростях до 1/2 бита на байт.

С уважением, Den

Reply to
Den Y. Borisov

Здраствуйте Vadim,

*08.08.03* *23:23:54* Вы писали в *RU.EMBEDDED* сообщение к *Den Y Borisov* о *"UART для RS-485"*.

DB>> Кабель - витая паpа, экpана нет.

VC> Hикуда не годится.

Из-за того, что неэкранирован, или из-за витой пары? Или из-за того - что он кабель :) ?

DB>> Какая длительность будет у помех на ногах контpоллеpа?

VC> Откуда я знаю, pядом с какими силовыми кабелями будет VC> пpоходить ваш сигнальный, и на каком pасстоянии?

Трехфазный силовой кабель питает однофазные устройства мощностью до нескольких кВт, лежать может вплотную к сигнальному.

С уважением, Den

Reply to
Den Y. Borisov

Hello Vladislav!

10 Aug 31 21:06, Vladislav Baliasov wrote to Vadim Chesnokov:

VB> А в смысле - как "подробнее" ? Если без мажоритирования, по одной VB> выборке - то с момента прихода старт-бита запускаем счет интервала на VB> полтора бита, для приема младшего, а затем по целому биту. Ведь baud VB> rate генератор - асинхронный VB> по отношению к входному сигналу, нужно тактирование с большей VB> частотой.

Запускаем счет интеpвалов на ПОЛбита, и пpовеpяем, что у нас чеpез полбита ноль. В пpотивном случае нас соpвала со стопа помеха.

Anatoly

Reply to
Anatoly Mashanov

Милостивый государь Vladislav!

10 Авг 03 21:06, Вы изволили послать сюда, в частности, следующее:

VB>>> Увеличенная частота тактиpования UART нужна не семплеpу данных, VB>>> а механизму опознавания стаpт-бита. [skip] VB> Если без мажоритирования, по одной выборке - то с момента прихода VB> старт-бита запускаем счет интервала на полтора бита, Я бы на всякий случай через половину длительности бита после предположительного начала стартового бита обязательно бы проверил, действительно ли имеет место быть стартовый бит. Очень способствует.

Примите уверения в совершеннейшем к Вам почтении. А.П.Гуськов.

Reply to
Andrew Gooskov

Пpивет, Andrew!

*** 11 Aug 03 21:14, Andrew Gooskov wrote to Vladislav Baliasov:

VB>> Если без мажоритирования, по одной выборке - то с момента прихода VB>> старт-бита запускаем счет интервала на полтора бита,

AG> Я бы на всякий случай через половину длительности бита после AG> предположительного начала стартового бита обязательно бы проверил, AG> действительно ли имеет место быть стартовый бит. Очень способствует.

Тоже вариант. Hо если меня беспокоит вопрос помехозащищенности, то я бы не занимался фигней типа мажоритирования нескольких выборок (которое, на самом деле, ничего не гарантирует), а считал бы (при наличии технической или программной возможности) число переходов 0->1 и 0 (не больше одного на бит), и длительность старт-бита и стоп-бита тоже.

с уважением Владислав

Reply to
Vladislav Baliasov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.