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

 
 
> максимальная скорость 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
 
Start new topic
Ответов
BVU
сообщение Sep 1 2005, 08:20
Сообщение #2


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

Группа: Свой
Сообщений: 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
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 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
Сообщение #4


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

Группа: Свой
Сообщений: 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
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 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
Сообщение #6


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

Группа: Свой
Сообщений: 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
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 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
BVU
сообщение Sep 1 2005, 11:04
Сообщение #8


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

Группа: Свой
Сообщений: 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
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 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
CDT
сообщение Sep 2 2005, 04:19
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 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   максимальная скорость COM-порта?   Aug 31 2005, 21:39
- - yung   Вообще, как-то все странно. Какой смысл брать 16-р...   Aug 31 2005, 22:39
- - ValeraVi   2 skopus при UBRR = 0 и U2X = 1 на вашем кварце м...   Aug 31 2005, 22:42
- - rat   Вообще говоря 25 выборок очень мало, но если их хв...   Sep 1 2005, 03:02
- - CDT   Цитата(skopus @ Sep 1 2005, 00:39)Стоит задач...   Sep 1 2005, 05:10
- - NickB   Может быть стоит подумать о реализации синуса по м...   Sep 1 2005, 07:44
- - skopus   Понимаете, задачу ставил не я. Роль ЦАП играет ком...   Sep 1 2005, 08:15
|- - _sR_   Цитата(skopus @ Sep 1 2005, 11:15)Быстродейст...   Sep 1 2005, 19:52
|- - skopus   Цитата(_sR_ @ Sep 1 2005, 22:52)Цитата(skopus...   Sep 2 2005, 15:45
|- - _sR_   Цитата(skopus @ Sep 2 2005, 18:45)эта штука ч...   Sep 2 2005, 22:43
|- - skopus   Цитата(CDT @ Sep 2 2005, 07:19)Цитата(skopus ...   Sep 2 2005, 12:25
- - bzx   1. А что если работать с LPT? Подключить непосредс...   Sep 1 2005, 10:56
|- - skopus   Цитата(bzx @ Sep 1 2005, 13:56)1. А что если ...   Sep 1 2005, 12:32
|- - bzx   Цитата(skopus @ Sep 1 2005, 15:32)это все изл...   Sep 1 2005, 12:55
|- - BVU   Цитата(bzx @ Sep 1 2005, 16:55)Цитата(skopus ...   Sep 1 2005, 13:17
|- - skopus   Цитата(bzx @ Sep 1 2005, 15:55)Цитата(skopus ...   Sep 2 2005, 12:23
- - BVU   И нечего думать bzx предложил Вам наиболее оптимал...   Sep 2 2005, 12:30
- - skopus   Цитата(BVU @ Sep 2 2005, 15:30)И нечего думат...   Sep 2 2005, 15:43


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:01
Рейтинг@Mail.ru


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