Sergius Posted February 19, 2009 Share Posted February 19, 2009 Подскажите пожалуйста, работает ли серия CP132UL V2 на нестандартных бодрейтах, которые не указаны в списке настройки порта? Например, на 909000 бит/с. И где можно найти список поддерживаемых бодрейтов? Link to comment
Irina Posted February 19, 2009 Share Posted February 19, 2009 Подскажите пожалуйста, работает ли серия CP132UL V2 на нестандартных бодрейтах, которые не указаны в списке настройки порта? Например, на 909000 бит/с. И где можно найти список поддерживаемых бодрейтов? Плата поддерживает работу на нестандартной скорости. Если вы можете открыть порт на скорости 909000 бит/с, то плата будет работать на этой скорости. Link to comment
Sergius Posted February 20, 2009 Author Share Posted February 20, 2009 Плата поддерживает работу на нестандартной скорости. Если вы можете открыть порт на скорости 909000 бит/с, то плата будет работать на этой скорости. Вы это точно знаете? У меня не всегда получается заставить работать порт на любой скорости, даже если он открыт на ней. Параметры порта и пакеты данных я смотрю в PortMonitor. Задаю скорость порта в Citect Scada, где могу выбрать любую желаемую. Например, порт открывается на стандартной для com-port`а скорости 256000 и нестандартной для MOXA, порт монитор сообщает, что com-port открыт на этой скорости, но передачи нет. Я не уверен, что указывая любую скорость, Moxa открывает порт именно на этой скорости, а не подбирает ближайшую из списка существующих скоростей. Т.е. работать будет, но на какой скорости??? Link to comment
Sergius Posted February 20, 2009 Author Share Posted February 20, 2009 Вот ещё. Наше устройство может работать на скорости 909090 бит/с. 1. При выборе скорости на Moxa 921600 погрешность скоростей составляет 1.36%. Соединение устанавливается. 2. Скорость Moxa = 875000 (отклонение 5% от 921600). Скорость устройства = 909090 бит/с. Соединение устанавливается. 3. Скорость Moxa = 827000 (отклонение >10% от 921600). Скорость устройства = 909090 бит/с. Соединение не устанавливается. Следует, что Moxa открывает порт действительно, на некоторой скорости, отличной от 921600 (т.е. не подбирает ближайшую из списка). Иначе, т.к. 921600 наиболее близкая скорость из списка к скорости 827000, и Moxa выбирала бы ее, то связь бы была установлена и в 3-ем случае. 4. Скорость Moxa = 827000 (отклонение >10% от 921600). Скорость устройства = 833000 бит/с(0.77% ошибка от 827000). Соединение не устанавливается. Т.е. Moxa открывает порт не на скорости 921600 (как на ближайшей из списка), но и не на скорости заданной пользователем (не на 827000). Наверняка существует какая-то сетка доступных скоростей, где скорости рассчитаны по некоторй формуле, в зависимости от частоты генератора. У кого это можно узнать? Link to comment
Sergius Posted February 24, 2009 Author Share Posted February 24, 2009 Скорее всего вот та формула, по которой рассчитываются скорости: Fosc/16*1/(n+1)=BaudRate Fosc=14.7456 MHz - частота кварцевого резонатора Fosc/16=0,9216 MHz - максимальная частота бодрейт генератора Moxa. (n+1) - параметр, определяющий бодрейт. BaudRate, bps---|---(n+1) ----19200--------|------48 ----38400--------|------24 ----57600--------|------16 ---115200--------|------8 ---230400--------|------4 ---460800--------|------2 ---921600--------|------1 Т.о. Moxa работает не на той скорости, на которой открыт порт, а только на доступных. Но при отклонениях реальной скорости от возможной < 10% связь можно установить, только с ошибками. Link to comment
Irina Posted March 3, 2009 Share Posted March 3, 2009 Порт действительно можно открыть на нестандартной скорости, отклонение можно вычислить с помощью утилиты во вложении. Для открытия порта вы можете использовать утилиту PComm Lite. Пример кода для открытия порта на нестандартной скорости: port = 2; /* port =2 means СOM2 */ ret = sio_open (port); /* Port Control, enable the port */ if (ret == 0) { printf ("port opened ok. \n"); /* Port Control, set baud, parity... */ sio_ioctl (port, B38400, P_NONE | BIT_8 | STOP_1 ); sio_baud ( 2, 909000 ) =>Set the non stand baud rate, it will replace the above baud rate 38400. sio_write (port, "ABCDE", 5); /* Output Data function */ sio_read (port, ibuf, length); /* Input Data function */ } sio_close (port); /* Port Control, disable the port */ Linear_Baud_Test_Utility.zip Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now