Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Инженерный раздел > Микроконтроллеры, робототехника, схемотехника, 3D принтеры
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 11.02.2017, 04:47   #51
aizhan0212
Пользователь
 
Регистрация: 10.02.2017
Адрес: Томск
Сообщений: 31
Репутация: 10
По умолчанию

о времени да, но думала, что и так можно использовать, Вы проанализировали больше информации, чем я, спасибо огромное я тут больше искала код на VBA, по разбираюсь с "эмулированием протокола" но уже завтра
aizhan0212 вне форума   Ответить с цитированием
Старый 11.02.2017, 04:54   #52
ura_111
Профессионал
 
Регистрация: 14.05.2016
Сообщений: 1,793
Репутация: 354
По умолчанию

Для начала почитай здесь (это FPaul прислал):
http://we.easyelectronics.ru/electro...-s-kompom.html

Потом поищи в интернете. Разберись (тебя же чему то учили: помыкалась-помыкалась вспомни и разберись). Хотя бы не код, а реализацию: как, что осуществляется на физическом уровне ("эмулирования"); куда что посылает и кто что принимает; зачем 3 выхода+1 вход задействован в схеме...

Этот вопрос принципиален.

Последний раз редактировалось ura_111; 11.02.2017 в 04:57.
ura_111 вне форума   Ответить с цитированием
Старый 12.02.2017, 02:22   #53
ura_111
Профессионал
 
Регистрация: 14.05.2016
Сообщений: 1,793
Репутация: 354
По умолчанию

1) Твою тему переносят в другой раздел форума:

0.jpg

И соответственно, её надо будет искать в нём.

2) Необходимо обменяться знаниями по задаче ("сверить часы")... Что я знаю (ну в реальности не знаю, а просто предполагаю):
а) (напомню, я говорю пока что только о инициализации датчика, а остальные моменты (РОМ команды, проверка на ошибки сигнала CRC, изменения точности измерения датчика) вообще не рассматриваю). Итак, сопоставив 2-е, нам уже знакомые, схемы я выявил закономерности.
1.jpg

Описание второй схемы: "С RX мы будем принимать данные, которые сами передаем + изменения, вносимые слейвом. TX подключен так, чтобы не было конфликтов уровней на линии (когда TX в лог единице, а слейв тянет линию вниз)" (p.s.: я так понял, последняя фраза относится к ответу датчика) . Или в контексте нашей схемы:
- включаем DTR 1 'это питание
- подаём байт данных на передатчик "TxD" (заметь, не просто байт а байт специальной формы!).
- принимаем, только что отправленный байт, на приёмник "RxD".
- надо сопоставить отправленный и принятый байт: если они одинаковые, то это значит, что нет ни каких термо-датчиков на линии, а если разные - значит термо-датчик есть (и он откликнулся).

Но почему пришедший, изменённый байт будет сигнализировать о наличие связи компьютера с термо-датчиком?
Сначала нужно начать с формы самого байта. В интернет-статье предлагают передавать: байт 0xF0 c бодрейтом 9600 бит/с. 0xF0, в двоичной форме записи 11110000. Обрати внимание, что первые 4-бита логические нули передаваемые от передатчика (т.е. положительно напряжение), а вторые 4-ри бита логические единицы. Следующий вопрос: сколько времени будет передаваться (а вернее сказать, будет воздействовать на вход термо-датчика) такой сигнал? Ну при скорости передаче 9600 бит/с –> 8/9600= 833 мкс, из которых 416 мкс – будет “+”, а другие 416 мкс – будет “0B”.
10.jpg
И тут происходит, с точки зрения входа термо-датчика, магия. Магию я нарисовал (прочитай надписи-пояснения на рисунке):

11.jpg

Вопрос: для запроса компьютера (см. рисунок чуть выше) нужно ещё 66мкс провала, где им взяться?
В принципе, мы могли отправить не такой сигнал (11110000), а такой: 11000000… Но в интернет статье показан какой-то “StartBit”, который занимает по времени 104мкс (что и дополняет интервал до значений 480-960 мкс). На рисунке “StartBit” показан; также на рисунке, оранжевым светом, отображён ответ датчика (это когда датчик, выждав 480мкс, сам “зануляет” последние несколько бит):

4.jpg

Не до конца понимаю: каким же образом термо-датчик отзывается? (“зануляет сигнал”). Просто объединяет свои 1-2 контакты?... Вот в этой схеме мне понятно:

5.jpg

а для нашей схемы – не совсем понимаю.
p.s.1: По фотографии сравнения схем. Напряжение единицы для DTR "+12В", а на второй фотографии написано, что напряжение питания "+5В" (да ещё сопротивление присутствует) - хотя термо-датчик один и тот же. Меня эти смущает.
p.s.2: я не до конца уверен, что подав биты "0" (или напряжение от +5В до +15В) на хвост стабилитронов 1N5819 от передатчика TX (смотри схему) можно их открыть, - тем самым зашунтировав вход термо-датчика (симулировать запрос 480 мкс).
p.s.3: также в этом месте, я не понимаю: на что будет замыкаться сигнал DTR (в случае открытия 2-х стабилитронов)? На RxD (приёмник)? Приёмник – это земля? Дело вот в чём: посмотри на последнюю фотографию – там питание замыкалось на землю.
p.s.4: ни чего не знаю как организовываются биты старта и останова. И вообще, что это такое? Ну старта вроде мужик рассказал:

12.jpg

А вот по завершающему биту вопрос остался (сопоставь картинку эту и через одну выше).

p.s.5: Я не знаю, как послать и принять байт. Я думаю, что именно с этой задачи и надо начать экспериментировать с COM портом: отправить передатчиком байт и его же принять на приёмник (RxD). Вот интернете нашёл (правда для другой библиотеки) пример:

6.jpg

p.s.6: Перечитай пост, для лучшего восприятия, 3 раза.
___________________________________ ____________________________
Т.е. пока я слоняюсь к мысли, что для процесса инициализации датчика (конечно же, с поправкой на нашу схему) необходимо:
- включаем DTR 1 'это питание
- подаём байт данных на передатчик "TxD" (не просто байт, а байт специальной формы!).
- принимаем, только что отправленный байт, на приёмник "RxD".
- надо сопоставить отправленный и принятый байт: если они одинаковые, то это значит, что нет ни каких термо-датчиков на линии, а если разные - значит термо-датчик есть (и он откликнулся).
___________________________________ ______________________________

Что там у тебя и пиши что думаешь.

Последний раз редактировалось ura_111; 12.02.2017 в 23:43.
ura_111 вне форума   Ответить с цитированием
Старый 14.02.2017, 02:20   #54
ura_111
Профессионал
 
Регистрация: 14.05.2016
Сообщений: 1,793
Репутация: 354
По умолчанию

Ещё пару моментов забыл сообщить.


p.s.7: Где то мелькало, что нужно посылать целое число - текстовый символ - значение (от 0-255). Тогда калькулятор показал:

10.jpg

p.s.8: И ещё. Меня посещала мысль по поводу ошибок при передаче на линии. Чем тогда отличить ответ датчика от простой помехи? Или не чем?
Если ли какой-нибудь контроль со стороны компьютера (на железном уровне) за ошибками передачи? Исправления? Или как запрограммируешь так и будет?
p.s.9: Вот о чём я говорил:

12.jpg

А посмотри сколько подаётся в схеме из интернет-статьи (там, где аналогии искал в 2-х схемах)... Я это к тому, что правильно ли я понимаю схемные решения (короче, чтобы ничего не сгорело там у тебя от такого программирования). Вполне может оказаться, что схема должна работать как-то по другому... Но, на данный момент, я склоняюсь к тому, что всё правильно в моих рассуждениях и алгоритм инициализации тоже правильный...

Последний раз редактировалось ura_111; 14.02.2017 в 03:03.
ura_111 вне форума   Ответить с цитированием
Старый 14.02.2017, 17:36   #55
aizhan0212
Пользователь
 
Регистрация: 10.02.2017
Адрес: Томск
Сообщений: 31
Репутация: 10
По умолчанию

https://www.codeproject.com/Articles...-USB-Interface вот нашла)) теперь этот код нужно подстроить под RSAPI.DLL и думаю все
aizhan0212 вне форума   Ответить с цитированием
Старый 14.02.2017, 17:37   #56
aizhan0212
Пользователь
 
Регистрация: 10.02.2017
Адрес: Томск
Сообщений: 31
Репутация: 10
По умолчанию

большое спасибо
aizhan0212 вне форума   Ответить с цитированием
Старый 26.05.2017, 20:55   #57
pbt
Пользователь
 
Регистрация: 15.08.2012
Сообщений: 21
Репутация: 63
По умолчанию

Для 1Wire есть библиотека ftp://ftp.radio.ru/pub/2015/01/OWire.zip
pbt вне форума   Ответить с цитированием
Старый 17.09.2017, 23:25   #58
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 1,883
Репутация: 513

icq: 359393755
По умолчанию

Че вы тут за извращениями занимаетесь? Зачем блокировать ОС. А прерывания никак не прикрутить?
__________________
ICQ - 359393755 E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В текстовом файле фиксируются результаты измерения температуры окружающей среды. Результаты измерения температуры фиксируются четы dinar94 Общие вопросы C/C++ 1 26.04.2016 10:51
Помогите написать игру на с++,используя библиотеку opengl Diashek Фриланс 9 05.05.2015 08:35
Как сделать меню 3-его уровня используя библиотеку Gtk+ Rom@rio Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 0 26.10.2014 23:53
Cчитывание\запись файла Dizelektwo Win Api 2 06.04.2012 00:07
Cчитывание с файла СобачийКусок Visual C++ 1 04.10.2011 22:11


10:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru