
- •Содержание
- •Техническое задание
- •Введение
- •Структурная схема системы и пояснения к ней
- •Выбор элементной базы
- •Описание работы принципиальной схемы
- •Описание работы программного обеспечения (с блок-схемами алгоритмов)
- •Принципиальная схема и спецификация
- •Заключение
- •Список литературы
- •Интерфейс rs232. Протокол modbus ascii
- •Листинг программы
Описание работы принципиальной схемы
Сигнал от ПК по последовательному порту поступает через преобразователь напряжений к МК. МК принимает последовательность байт, анализирует ее и отправляет ответ ПК(ошибка или верно принятые данные).
Из полученной последовательности извлекается число, которое необходимо вывести на индикатор.
МК формирует в регистре порта В первую цифру числа, которое необходимо вывести на индикатор и выводит ее. Делается незначительная задержка, и выводится вторая цифра(первая гаснет). Этот процесс (для каждого индикатора) должен производиться с частотой не менее 60 Гц.
Описание работы программного обеспечения (с блок-схемами алгоритмов)
Р
ис.
2. Блок-схема
алгоритма работы программы
ПК формирует определенным образом (в соответствии с выбранным протоколом и функцией обмена данными (Приложение 1) ) и посылает микроконтроллеру последовательность байт, называемую кадром. Байты продвигаются и поступают на вход микроконтроллера побитно. По принятию одного байта, МК записывает его в память. Необходимо отслеживать: какой по счету это байт, и соответствует ли его содержимое ожидаемому(старт-байт, адрес слэйва(нам ли адресована посылка), номер функции ).
После сохранения всех байт в памяти МК, необходимо проанализировать содержимое: вычислить контрольную сумму LRC (контрольная сумма в режиме ASCII). LRC представляет собой 8-ми разрядное число, передаваемое как два ASCII символа. Контрольная сумма образуется путем сложением двоичных чисел посылки без учета переноса, и вычислением дополнительного кода полученного числа. В приемнике LRC заново рассчитывается и сравнивается с полученным LRC. При вычислении LRC двоеточие, CR, LF и любой другой не-ASCII символ отбрасывается.
Для этого нам уже потребуется преобразование двоичного кода в ASСII код. До этого это было не обязательно, поскольку это не быстрая процедура, а на этапе получения данных скорость важна. Поэтому там мы заранее вычислили двоичные коды, которые ожидаем, и занесли их в память.
Полученное нами значение контрольной суммы преобразуется в ASCII код и сравнивается с принятым. Если Эти два значения совпадают, то можно перейти к анализу данных.
Данные извлекаются из памяти, переводятся из ASCII в двоичный код, затем в «код индикатора», то есть, код той последовательности диодов, которые нужно зажечь, чтобы отобразилась определенная цифра. Три байта данных, преобразованных таким образом, хранятся в регистрах.
Выводятся на индикатор данные в бесконечном цикле, попеременно, но так, чтобы человеческий глаз не замечал мигания.
Цикл прерывается приемом нового байта.
Полный текст программы представлен в Приложении 2.
Принципиальная схема и спецификация
Спецификация |
||
Наименование |
Кол-во |
Условное обозначение |
К10-17Б 0.1 мкФ |
7 |
С1, С2, С3, С5, С6, С7, С12 |
К10-17А-М47 20пФ x 50В, (10%) |
2 |
С8, С9 |
К50-35 100 мкФ x 10В (20%) |
1 |
С10 |
К50-35 10 мкФ x 10В (20%) |
1 |
С11 |
CC0805KKX7R 0.33 мкФ, 10%, 16В |
1 |
С4 |
MCU0805 1 Ком 0.1% 25ppm |
3 |
R4, R5, R6 |
С2-29В-0,125Вт-10кОм |
1 |
R3 |
VR6800-4023J |
1 |
R1 |
С1-4 0.5 вт, 5%, 5.1 Ком |
1 |
R2 |
BC807 |
3 |
Vd1, Vd2, Vd3 |
LQN4N 6,8 мкГн ± 10% |
1 |
L1 |
|
|
|
Микросхемы |
|
|
ADM207E |
1 |
DD1 |
AT90S2313 |
1 |
DD2 |
ULN2003A |
1 |
DD3 |
GNT-5631AX |
1 |
HL1 |
|
|
|
Кварцевый генератор |
|
|
HC-49SM 10.0 МГц |
1 |
ZQ1 |
|
|
|
Разъемы |
|
|
15 EDGV 5,08-09P-14 |
1 |
X1 |