2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Проверка СОМ-порта без компьютера
Сообщение04.12.2006, 17:34 


01/12/06
1
Господа, вот возник такой вопросец - есть тепловой счетчик ТЭМ-104 с интерфейсом RS323. Как можно проверить его работоспособность без компьютера? (есть целый склад таких счетчиков, надо проверить каждый)

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

Посылка "ведущего" устройства:

байт обозначение пример описание
0 SIG 55 Признак начала пакета
1 ADDR 01 Сетевой адрес ведомого устройства
2 !ADDR FE Инверсное значение сетевого адреса
3 CGRP 00 группа команд
4 CMD 00 Идентификация устройства
5 LEN 00 Число байт посылаемых данных
6 CS 54 Контрольная сумма (дополнение до нуля)

При этом будет должен быть ответ "ведомого" устройства (счетчика)

байт Обозначение пример описание
0 SIG AA признак начала пакета
1 ADDR 01 сетевой адрес устройства
2 !ADDR FE инверсное значение адреса
3 CGRP 00 группа команд
4 CMD 00 идентификатор команды
5 LEN 07 Число байт посылаемых данных
6 DATA 'Т'
7 DATA 'Е'
8 DATA 'М'
9 DATA '-'
A DATA '1'
B DATA '0'
C DATA '4'
D CS Контрольная сумма

Может кто сталкивался с подобным... Хотелось бы узнать о целесообразности сборки подобного устройства.

Так понимаю, что можно сделать нечто подобное - чтобы конкретно посылать на счетчик такой запрос как показан выше - можно взять 7 8-битных регистров c последовательной выгрузкой и заполнить их так (перемычками или даже тумблерами):

1-ый байт - 55, тогда - 1-ый регистр - 01010101
2-ой байт - 01, тогда - 2-ой регистр - 00000001
3-ый байт - FE, тогда - 3-ый регистр - 11111110
4-ый байт - 00, тогда - 4-ый регистр - 00000000
5-ый байт - 00, тогда - 5-ый регистр - 00000000
6-ой байт - 00, тогда - 6-ой регистр - 00000000
7-ой байт - 54, тогда - 7-ой регистр - 01010100

затем поставить что-то типа мультиплексора, чтобы регистры "опорожнялись" по очереди на один выход, чтобы получить всю последовательность "за раз" (например, нажали кнопочку, на выходе получили 01010101000000011111111000000000000000000000000001010100).
Выход мультиплексора преобразовать в сигналы RS232 (по амплитуде и тд и тп).

Вот только еще не думал как принимать отклик... Требуется помощь.

 Профиль  
                  
 
 
Сообщение09.01.2007, 21:53 


21/03/06
1545
Москва
Только глянул эту тему, может еще не поздно ответить.

1. Вы не ошиблись с типом порта связи - точно RS323, а не RS232?
2. Что-то оч. сложно вы предлагаете с регистрами и т.п. Как минимум при передаче по последовательному порту должны быть довольно точно выдержаны интервалы следования импульсов (скорость обмена, бод), каждому байту предшествуют стартовй(ые) биты, завершают стоповый(е), бит(ы) четности. Используйте все-таки ПК, либо ноутбук, либо КПК с функцией USB-host с воткнутым туда USB->Com преобразователем, либо соберите простейшую схемку на микроконтроллере, например на любом младшем серии Atmel AVR - его даже на коленке можно распаять и запрограммировать.
3. Думаю, что с большой степенью достоверности можно предположить, что если после приема входного пакета ваш датчик начинает что-нибудь отвечать, то он - исправен. Хотя сделать прием тоже не так сложно, будете на 100% уверены.
4. Мелкое замечание: в вашем случае, если приведенные вами значения посылаемых байт верны, при подсчете контрольной суммы использован т.н. "xor" (искл. или) метод. Считается сумма значений всех байт посылки по модулю 0xFF, записывается она же в конец. Приемник делает тот же подсчет и xor'ит с последним байтом. Должен получится 0. Дополнение до нуля - это когда сумма по всем байтам посылки кроме последнего и последний байт равна 0 по модулю 0xFF. Поправьте меня, если я неправ.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group