реклама на сайте
подробности

 
 
> максимальная скорость COM-порта?, получится ли?
skopus
сообщение Aug 31 2005, 21:39
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Здравствуйте!
Прошу вашей помощи по алгоритму задачи.

Есть контроллер AS-megaM на основе Atmega128 с кварцем 7.232 Мгц.

Стоит задача сделать из него генератор синусоидального сигнала с частотой 780гц . То есть в ком-порт будут отправляться дискретные значения амплитуды, которые беруться из таблицы, хранящейся в памяти контроллера, а верхний софт считает все это из порта и будет выводить на экран в виде графика. Казалось, все довольно просто но!...

1/780 = 0.00128205 секунды
за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное)
получается, что COM-порт должен работать на частоте 780*25*18=351000 Гц.

Это же не реально, не так ли? Или есть какой-то другой способ?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 26)
yung
сообщение Aug 31 2005, 22:39
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



Вообще, как-то все странно. Какой смысл брать 16-разрядную точность для амплитуды, если всего 25 выборок на период? Искажения гораздо больше отсюда будут (малое число отсчетов на период). ИМХО, разрядность квантования и дискретизации должна быть сопоставима.
Go to the top of the page
 
+Quote Post
ValeraVi
сообщение Aug 31 2005, 22:42
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 30-07-05
Из: Kyiv, Ukraine
Пользователь №: 7 211



2 skopus
при UBRR = 0 и U2X = 1 на вашем кварце мега128 может работать и на 904000 bps (RTFM) ... Проблемы могут возникнуть только если вы это дело будете связывать по ком порту с ПК ... хотя ... и они решаемые...
Go to the top of the page
 
+Quote Post
rat
сообщение Sep 1 2005, 03:02
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 497
Регистрация: 9-06-05
Из: Новосибирск
Пользователь №: 5 852



Вообще говоря 25 выборок очень мало, но если их хватает и 25, то должно хватать 6-8 разрядов, 16 совершенно не к чему, если все-таки нужен приличный синус, то ставь ЦАП 8-разрядов, 64 или 128 выборок, а после активный фильтр, лучше 2 , второго порядка каждый, у меня в такой схеме искажения были лучше 0.1%
Go to the top of the page
 
+Quote Post
CDT
сообщение Sep 1 2005, 05:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 303
Регистрация: 3-03-05
Пользователь №: 3 044



Цитата(skopus @ Sep 1 2005, 00:39)
Стоит задача сделать из него генератор синусоидального сигнала с частотой 780гц . То есть в ком-порт будут отправляться дискретные значения амплитуды, которые беруться из таблицы, хранящейся в памяти контроллера, а верхний софт считает все это из порта и будет выводить на экран в виде графика.
*

Интересно, а что, верхний софт такой тупой, что сам не может содержать таблицы синуса и брать их из своей памяти, что бы вывести на экран?


--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
Go to the top of the page
 
+Quote Post
NickB
сообщение Sep 1 2005, 07:44
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 22-06-04
Пользователь №: 102



Может быть стоит подумать о реализации синуса по методу DDS?
А передавать только значение частоты
Посмотрите напримет на телесистемах проект Леонида Ивановича
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 1 2005, 08:15
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Понимаете, задачу ставил не я. Роль ЦАП играет компьютер. Выборок 25. Амплитуда 16- разрядная. Это условие. Менять его нельзя. Это что-то вроде тестововй задачи.
Искажения сейчас не имеют никакого значения. Нужно, чтоб картинка была похоже на синус хотя бы приблизительно.
Быстродействия меги хватит, но меня беспокоит именно проблема слишком высокой скорости передачи данных по com-порту. Может можно обойти этот момент как-то алгоритмически?
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 1 2005, 08:20
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(skopus @ Sep 1 2005, 01:39)
1/780 = 0.00128205 секунды
за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное)
*


Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 1 2005, 08:28
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Цитата(BVU @ Sep 1 2005, 11:20)
Цитата(skopus @ Sep 1 2005, 01:39)
1/780 = 0.00128205 секунды
за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное)
*


Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи.
*




но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200.
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 1 2005, 08:56
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(skopus @ Sep 1 2005, 12:28)
Цитата(BVU @ Sep 1 2005, 11:20)
Цитата(skopus @ Sep 1 2005, 01:39)
1/780 = 0.00128205 секунды
за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное)
*


Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи.
*




но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200.
*



Хорошо давайте так - передавайте скорость изменения вашего сигнала (ускорение). Может быть в 8-бит то уложитесь, а Программе на PC отдать всю остальную обработку по восстановлению сигнала.
По всей видимости 'в лоб' эта не решается (1 выборка значения -> передача в порт). Если уж связались с COM портом здесь необходима информационная компрессия при граничной скорости передачи (во времени).
Есть еще вариант: необходимо рассмотреть, как быстро надо перестраивать параметры амплитуды, частоты и фазы вашего синуса? Передаете Вашей PC программе 'блоком' эти три значения, при изменении снова 'блок' и т.д.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 1 2005, 09:04
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Цитата(BVU @ Sep 1 2005, 11:56)
Цитата(skopus @ Sep 1 2005, 12:28)
Цитата(BVU @ Sep 1 2005, 11:20)
Цитата(skopus @ Sep 1 2005, 01:39)
1/780 = 0.00128205 секунды
за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное)
*


Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи.
*




но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200.
*



Хорошо давайте так - передавайте скорость изменения вашего сигнала (ускорение).
*



Ускорение - это вторая производная от синуса. То есть -sin. От этого ничего не меняется абсолютно, но идея красивая smile.gif
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 1 2005, 09:15
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(skopus @ Sep 1 2005, 13:04)
Цитата(BVU @ Sep 1 2005, 11:56)
Цитата(skopus @ Sep 1 2005, 12:28)
Цитата(BVU @ Sep 1 2005, 11:20)
Цитата(skopus @ Sep 1 2005, 01:39)
1/780 = 0.00128205 секунды
за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное)
*


Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи.
*




но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200.
*



Хорошо давайте так - передавайте скорость изменения вашего сигнала (ускорение).
*



Ускорение - это вторая производная от синуса. То есть -sin. От этого ничего не меняется абсолютно, но идея красивая smile.gif
*



cool.gif бывает 'зарапортовался'.
Но есть еще возможность - как поднять тактовую частоту Вашего mega128 на кварце скажем 16.000000Mz и получить максимально совместимые для PC скорость передачи по COM порту в 256000.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 1 2005, 10:38
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Цитата(BVU @ Sep 1 2005, 12:15)
Цитата(skopus @ Sep 1 2005, 13:04)
Цитата(BVU @ Sep 1 2005, 11:56)
Цитата(skopus @ Sep 1 2005, 12:28)
Цитата(BVU @ Sep 1 2005, 11:20)
Цитата(skopus @ Sep 1 2005, 01:39)
1/780 = 0.00128205 секунды
за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное)
*


Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи.
*




но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200.
*



Хорошо давайте так - передавайте скорость изменения вашего сигнала (ускорение).
*



Ускорение - это вторая производная от синуса. То есть -sin. От этого ничего не меняется абсолютно, но идея красивая smile.gif
*



cool.gif бывает 'зарапортовался'.
Но есть еще возможность - как поднять тактовую частоту Вашего mega128 на кварце скажем 16.000000Mz и получить максимально совместимые для PC скорость передачи по COM порту в 256000.
*



проще припаять обычный ЦАП, чем заменить кварц... Скорее всего так и придется сделать.
Go to the top of the page
 
+Quote Post
bzx
сообщение Sep 1 2005, 10:56
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



1. А что если работать с LPT? Подключить непосредственно к нему ЦАП. Как?
2. А почему бы не использовать звуковую карту PC. Она 16бит. Очень много софта для работы со звуковой картой?


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 1 2005, 11:04
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(skopus @ Sep 1 2005, 14:38)
проще припаять обычный ЦАП, чем заменить кварц... Скорее всего так и придется сделать.
*


А смысл передачи данных на COM порт тогда в чем был? Только что бы посмотреть картинку генерируемого сигнала? cranky.gif
Наверно с этого и надо было начинать ("припаять обычный ЦАП"), если Вы собирались делать обыкновенный генератор синусоидального сигнала. А средством визуализации Вашего сигнала при прохождении всевозможных трактов является тривиальный осцилограв или примочка к PC (в данном случае, что доступнее). smile.gif


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 1 2005, 11:54
Сообщение #16


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Цитата(BVU @ Sep 1 2005, 14:04)
Цитата(skopus @ Sep 1 2005, 14:38)
проще припаять обычный ЦАП, чем заменить кварц... Скорее всего так и придется сделать.
*


А смысл передачи данных на COM порт тогда в чем был? Только что бы посмотреть картинку генерируемого сигнала? cranky.gif
Наверно с этого и надо было начинать ("припаять обычный ЦАП"), если Вы собирались делать обыкновенный генератор синусоидального сигнала. А средством визуализации Вашего сигнала при прохождении всевозможных трактов является тривиальный осцилограв или примочка к PC (в данном случае, что доступнее). smile.gif
*



да нет же. Это тестовая задача. Изменять условие в принципе нельзя. Но если возникнет конфликт физической нереализуемости, то можно попробовать договориться с заказчиком. И кроме того за ЦАп еще надо в магазин съездить, а ком-порты в пределах досигаемости. Пока я все еще пробую наладить связь через ком. Но если не получится, тогда придется заморачиваться с цапом
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 1 2005, 12:32
Сообщение #17


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Цитата(bzx @ Sep 1 2005, 13:56)
1. А что если работать с LPT? Подключить непосредственно к нему ЦАП. Как?
2. А почему бы не использовать звуковую карту PC. Она 16бит. Очень много софта для работы со звуковой картой?
*


это все излишне усложняет задачу. И удорожает реализацию. Все выдумки по поводу цап оплачивать придется из своего кармана sad.gif это не есть хорошо
Go to the top of the page
 
+Quote Post
bzx
сообщение Sep 1 2005, 12:55
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



Цитата(skopus @ Sep 1 2005, 15:32)
это все излишне усложняет задачу. И удорожает реализацию. Все выдумки по поводу цап оплачивать придется из своего кармана sad.gif это не есть хорошо
*

Каким это местом вывод гармонического сигнала частотой 780Гц через звуковую карту усложнит задачу и, тем более, удорожает реализацию? Никопейки не будет потрачено! (Если есть звуковая карта) Более того, сидеть с паяльником не придётся!


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 1 2005, 13:17
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(bzx @ Sep 1 2005, 16:55)
Цитата(skopus @ Sep 1 2005, 15:32)
это все излишне усложняет задачу. И удорожает реализацию. Все выдумки по поводу цап оплачивать придется из своего кармана sad.gif это не есть хорошо
*

Каким это местом вывод гармонического сигнала частотой 780Гц через звуковую карту усложнит задачу и, тем более, удорожает реализацию? Никопейки не будет потрачено! (Если есть звуковая карта) Более того, сидеть с паяльником не придётся!
*



А это действительно вариант! Причем кроме DAC и согласование со входом звуковой карты самому делать ничего не потребуется. Софта на PC для этого предостаточно (бери любую "аудио студию").
Правда должно быть еще одно условие - наличие у контроллера свободного параллельного порта. Либо организовывать все это через другие интерфейсы (последовательные) реализованные на DAC.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
_sR_
сообщение Sep 1 2005, 19:52
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 25-07-05
Из: Екатеринбург
Пользователь №: 7 077



Цитата(skopus @ Sep 1 2005, 11:15)
Быстродействия меги хватит, но меня беспокоит именно проблема слишком высокой скорости передачи данных по com-порту.
*

Мне в свое время помог HiSerial
Go to the top of the page
 
+Quote Post
CDT
сообщение Sep 2 2005, 04:19
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 303
Регистрация: 3-03-05
Пользователь №: 3 044



Цитата(skopus @ Sep 1 2005, 14:54)
да нет же. Это тестовая задача. Изменять условие в принципе нельзя. Но если возникнет конфликт физической нереализуемости, то можно попробовать договориться с заказчиком. И кроме того за ЦАп еще надо в магазин съездить, а ком-порты в пределах досигаемости. Пока я все еще пробую наладить связь через ком. Но если не получится, тогда придется заморачиваться с цапом
*

Жалко человека.
Ну тогда есть такая штука, как АДИКМ, когда периодически передаются истинные значения сигнала, а между ними - только отклонение нового значения от истинного или соседнего.
Посмотрите протокол кодирования в телефонах GSM, где на скорости 4800 передается речь (300-3000Гц).
Самое эффективное - передать PC частоту и амплитуду (4 байта) и пусть рисует.


--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 2 2005, 12:23
Сообщение #22


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Цитата(bzx @ Sep 1 2005, 15:55)
Цитата(skopus @ Sep 1 2005, 15:32)
это все излишне усложняет задачу. И удорожает реализацию. Все выдумки по поводу цап оплачивать придется из своего кармана sad.gif это не есть хорошо
*

Каким это местом вывод гармонического сигнала частотой 780Гц через звуковую карту усложнит задачу и, тем более, удорожает реализацию? Никопейки не будет потрачено! (Если есть звуковая карта) Более того, сидеть с паяльником не придётся!
*



усложняет тем, что придется это еще все придумать. Я не знаю как это сделать. Даже если мой контроллер будет по какому-нибудь выводу выдавать значения с частотой 780 гц. Что дальше? неужели провод в аудио-вход воткнуть?
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 2 2005, 12:25
Сообщение #23


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Цитата(CDT @ Sep 2 2005, 07:19)
Цитата(skopus @ Sep 1 2005, 14:54)
да нет же. Это тестовая задача. Изменять условие в принципе нельзя. Но если возникнет конфликт физической нереализуемости, то можно попробовать договориться с заказчиком. И кроме того за ЦАп еще надо в магазин съездить, а ком-порты в пределах досигаемости. Пока я все еще пробую наладить связь через ком. Но если не получится, тогда придется заморачиваться с цапом
*

Жалко человека.

Самое эффективное - передать PC частоту и амплитуду (4 байта) и пусть рисует.
*



это откровенный обман. Цель задачи в том, чтоб контроллер был генератором, а PC был цап+осцилограф
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 2 2005, 12:30
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



И нечего думать bzx предложил Вам наиболее оптимальный вариант, как по временным, так и по материальным затратам. А заказчику не все ли равно как пройдет демонстрация изделия по COM или аудио-входу...!? cheers.gif


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 2 2005, 15:43
Сообщение #25


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Цитата(BVU @ Sep 2 2005, 15:30)
И нечего думать bzx предложил Вам наиболее оптимальный вариант, как по временным, так и по материальным затратам.  А заказчику не все ли равно как пройдет демонстрация изделия по COM или аудио-входу...!?  cheers.gif
*


Ну посмотрим. Я решил воспользоваться хитростью, которая применяется при передаче телевизионного сигнала. А именно передавать не весь кадр целиком, а сначала четные строки, а потом нечетные. Думаю, что эту идею легко перенести и на мою задачу. А аудиокарта... я уже говорил. Я ни разу так не делал. Это "новые горизонты". Не факт что я смогу съэкономить на этом время.

В любом случае, я очень признателен всем, кто откликнулся. smile.gif хороший форум
Go to the top of the page
 
+Quote Post
skopus
сообщение Sep 2 2005, 15:45
Сообщение #26


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Цитата(_sR_ @ Sep 1 2005, 22:52)
Цитата(skopus @ Sep 1 2005, 11:15)
Быстродействия меги хватит, но меня беспокоит именно проблема слишком высокой скорости передачи данных по com-порту.
*

Мне в свое время помог HiSerial
*



эта штука черезчур сильно аппаратно-зависима sad.gif
Go to the top of the page
 
+Quote Post
_sR_
сообщение Sep 2 2005, 22:43
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 25-07-05
Из: Екатеринбург
Пользователь №: 7 077



Цитата(skopus @ Sep 2 2005, 18:45)
эта штука черезчур сильно аппаратно-зависима sad.gif
*

а Вы не пугайтесь черезчур
не много РАЗНЫХ микросхем Вам встретится (тем более последнее время). Я в свое время не смог найти мать, которая не смогла бы работать на частотах более 115200 (хотя допускаю что мне повезло).
По крайней мере мне кажется что это самый простой вариант перед выбором других альтернатив.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 17:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01685 секунд с 7
ELECTRONIX ©2004-2016