Оцифровка аналогового сигнала

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

Возникла необходимость разработать аппаратно-программный комплекс ;) на основе персонального компьютера, на котором установлена MS Windows. Hа компьютере должен отображаться график зависимости некоего параметра от времени за один период.

Как это планируется: аналоговый периодический сигнал (период от 10 до 100 мс) с датчика подается на вход АЦП (точность большая не нужна, поэтому 8 бит хватит), который преобразует сигнал в цифровое представление не менее 100 раз за период (чтобы график выглядел более-менее прилично). Затем его цифровое представление передается через RS-232 (потому что PC + Windows) в компьютер, где и обрабатывается. Для передачи каждой выборки в компьютер в реальном времени потребуется сокрость не меньше 115 200 бит/с. (100 выборок / 10 мс = 10 000 выборок/с * 10 бит = 100 000 бит/c). Hо читать COM-порт побайтово на такой скорости из под Windows не очень, хорошо, поэтому выборки лучше складывать в буфер, и по мере возможности его считывать. Бывают ли АЦП с UART'ом? С буфером в 1000 байт? Или придется ставить контроллер с АЦП, UART'ом и ОЗУ 1 кб? Какой для этого лучше всего подходит?

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

Reply to
Den Y. Borisov
Loading thread data ...

Hello, Den!

Чет Дек 11 2003, Den Y. Borisov писал к All по поводу "Оцифровка аналогового сигнала."

DB> аналоговый периодический сигнал (период от 10 до 100 мс) с датчика DB> подается на вход АЦП (точность большая не нужна, поэтому 8 бит DB> хватит), который преобразует сигнал в цифровое представление не менее DB> 100 раз за период (чтобы график выглядел более-менее прилично). т.е. минимальное время преобразования 0.1 мс DB> Затем его цифровое представление передается через RS-232 (потому что DB> PC + Windows) в компьютер, где и обрабатывается. Для передачи каждой DB> выборки в компьютер в реальном времени потребуется сокрость не меньше DB> 115 200 бит/с. DB> (100 выборок / 10 мс = 10 000 выборок/с * 10 бит = 100 DB> 000 бит/c). Стоповых битов 2 что-ли или еще парити будет? Так можно 9 бит сделать. DB> Hо читать COM-порт побайтово на такой скорости из под Windows не DB> очень, хорошо, поэтому выборки лучше складывать в буфер, и по мере DB> возможности его считывать. Зачем. Если у тебя период не четко 100 выборок 10-мс а не менее 100 выборок на

10мс - то надо просто непрервно делать выборки и гнать на 115200, пришем програмный UART на 12f675. Выдаем старт, 8 бит данных, потом 1 на ножку. (стоп) и во время этого самого стоп бита можно хватать сигнал с АЦП, чтоб не привязыватся к времени преобразования перед началом грузим RTCC и по переполнению снова на старт передачи. Только вот могут проблемы быть с 115200 если захочешь сэкономить на кварце. Если стоит задача сделать ровно 0.1 ms на выборку - все то-же самое только RTCC грузим при начале передачи байта для переполнения через 0.1ms. Если денег не жалко - берем pic с аппаратным UART+ADC тогда программы в нем будет - кот наплакал. DB> Бывают ли АЦП с UART'ом? С буфером в 1000 байт? Конечно нет. DB> Или придется ставить контроллер с АЦП, UART'ом и ОЗУ 1 кб? Какой для DB> этого лучше всего подходит? Hе совсем понятно зачем озу... DB> С уважением, Den WBR! Maxim Polyanskiy.
Reply to
Maxim Polyanskiy

Hi Maxim !

Совсем недавно 12 Dec 03 01:55, Maxim Polyanskiy писал к Den Y. Borisov:

DB>> сокрость не меньше 115 200 бит/с. (100 выборок / 10 мс = 10 000 DB>> выборок/с * 10 бит = 100 000 бит/c). MP> Стоповых битов 2 что-ли или еще парити будет? Так можно 9 бит сделать. Это стартовый. Плюс стоповый. Плюс 8 бит байта. Итого 10.

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

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

*12.12.03* *1:55:36* Вы писали в *RU.EMBEDDED* сообщение к *Den Y. Borisov* о *"Оцифровка аналогового сигнала"*.

MP> Стоповых битов 2 что-ли или еще парити будет? Так можно 9 бит сделать.

1 старт-бит, 8 бит данных, 1 стоп-бит. 1 + 8 + 1 = 10.

DB>> Hо читать COM-порт побайтово на такой скорости из под Windows не очень, DB>> хорошо, поэтому выборки лучше складывать в буфер, и по мере возможности DB>> его считывать.

MP> Зачем. Если у тебя период не четко 100 выборок 10-мс а не менее 100 MP> выборок на 10мс - то надо просто непрервно делать выборки и гнать на MP> 115200, пришем програмный UART на 12f675.

Да, нужно не менее 100 выборок на период. Hо мне нужно быть уверенным, что два байта, считанные подряд из COM-порта, относятся к рядом расположенным выборкам, а не к отстоящим к друг от друга на полпериода. Поэтому пусть лучше выборки складываются в кольцевой буфер по мере оцифровки, тогда можно будет их считывать, зная ЧТО именно ты читаешь.

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

Reply to
Den Y. Borisov

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.