- •Тема: Программирование com-портов Вопрос №1. Теоретические сведения о работе с коммуникационными портами порты контроллера adam5510м
- •1.1 Встроенные коммуникационные порты контроллера adam5510м
- •1.2 Передача данных методом прерываний
- •1.3 Параметры передачи данных
- •1.4 Коммуникационный драйвер
- •1.5 Алгоритм программирования com-портов
- •Организовать передачу данных.
- •Организовать прием данных.
- •Вопрос №2 Коммуникационные функции библиотеки adam 5510 (comm*.Lib)
1.3 Параметры передачи данных
Передача данных через последовательные порты ведется асинхронно. Поэтому на обоих концах линии передачи должен быть установлен ряд согласующих параметров. Эти параметры должны быть проинициализированы до начала процесса передачи данных:
скорость передачи данных в бодах (bit/s) "последовательного порта" равна числу битов, передаваемых в секунду. Скорость передачи данных в бодах, поддерживаемая операционной системой DOS 6.22 для контроллера ADAM 5510 – от 50 до 11520;
"длина слова" представляется числом битов, составляющих символ. Это значение может равняться 7 или 8;
"четность" - это простой механизм обнаружения ошибок в линии передачи. Согласно стандартам, принятым в интерфейсах RS-232 для последовательной передачи данных, значением параметра четности может быть "четно" или " нечетно" (два способа проверки ошибок) или может не существовать проверки на четность;
"биты останова". Каждый символ отделяется от других битами, называемыми "битами останова". Можно задавать один или два бита останова.
1.4 Коммуникационный драйвер
Коммуникационный драйвер представляет собой ПО, обеспечивающее возможность прикладной программе взаимодействовать с COM-портом через ОС. Другими словами, КД позволяет обращаться к COM-порту не как к физическому, а как к логическому устройству (переменной), имеющему свой адрес.
1.5 Алгоритм программирования com-портов
Выполнить инициализацию регистров прерывания микропроцессора для работы с соответствующим портом и задать вектор прерывания для COM2 и COM3; либо установить коммуникационный драйвер для порта COM1 при работе с ADAM 5510.
Определить для конкретного COM-порта параметры информационной посылки:
Количество бит данных;
Наличие бита четности;
Количество стоповых бит (бит останова).
Установить значение скорости передачи данных (два устройства могут обмениваться данными только работая на одинаковых скоростях передачи данных)
Организовать передачу данных.
Здесь надо иметь в виду следующее. ПО работает с данными, представленными в параллельном коде, а передача информации через СОМ-порт осуществляется в последовательном коде. Поэтому при программировании передачи данных необходимо:
4.1. Записать байт данных, представленных в параллельном коде в буфер (регистр данных) передатчика.
4.2. Организовать передачу информации, находящиеся в буфере передатчика уже в виде последовательного кода. Реально передача данных на контакте TX произойдет тогда, когда будет инициировано прерывание на передачу.
Организовать прием данных.
П
ереданные
в последовательном коде данные
записываются в буфер
приемника и
накапливаются там до тех пор, пока не
поступит сигнал о приходе последнего
бита данных. После чего информация, но
уже в виде данных в параллельном коде
может использоваться приемником
(например, станет значением некоторой
переменной). В библиотеке функций
Advantech
для контроллера ADAM
5510М для программной реализации пп. 5 и
6 есть два типа функций, имеющих в
названиях элементы _tx_
(передача данных) и _rx_(прием,
чтение данных). Вызов процедур прерывания,
отвечающих за извлечение данных из
буфера передатчика и передачу их в буфер
приемника заложен непосредственно
внутри их, в связи с чем программист,
пользующийся этими функциями избавлен
от необходимости работать с прерываниями.
Перед обменом следующего пакета данных буфер приемника и передатчика должны быть очищены.
