Значение параметров последовательного порта в Java? - PullRequest
5 голосов
/ 24 декабря 2008

Я новичок в Java. Я читаю данные с последовательного порта. Я получил

serialPort.setSerialPortParams(
   9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, 
   SerialPort.PARITY_NONE); 

Что означает 9600, DATABITS_8,STOPBITS_1 и PARITY_NONE?

Ответы [ 3 ]

10 голосов
/ 24 декабря 2008

9600, DATABITS_8, STOPBITS_1 и PARITY_NONE

9600 BAUD : Бод является синонимом символов или импульсов в секунду. В этом случае это относится к числу битов, передаваемых в секунду.

БАЗЫ ДАННЫХ _8 : 8 бит данных передаются одновременно. Это типично, поскольку в наши дни большинство машин имеют 8-битные байты.

STOPBIT S_1 : добавляется один завершающий бит для обозначения конца слова.

PARITY_NONE : Нет четность бит включен. Это функция проверки ошибок. Для четной четности добавляется 1, если сумма битов будет четной, и наоборот для нечетной четности. Марка и пробел иногда используются также. RS-232 - это протокол низкого уровня, и проверка ошибок часто оставляется на уровне приложений. Поэтому контрольная сумма или CRC часто включается в пакеты последовательных данных. Например, Ethernet использует 32-битный CRC для своих фреймов данных, но это никогда не касается разработчика приложений.

В связи RS-232 всегда включен стартовый бит. универсальный асинхронный приемник / передатчик (UART) - аппаратное обеспечение, которым будет управлять эта библиотека Java - ищет этот маркер и затем начинает сдвигать биты данных в буфер. Итак, каждое слово в вашем переводе займет 10 бит: 1 стартовый бит + 8 бит данных + 1 стоповый бит. При 9600 бод, это даст вам максимальную скорость передачи данных 960 байт в секунду, даже если будет отправлен эквивалент 1200 байт: 9600 бит в секунду, разделенные на 10 бит на слово, дают 960 слов в секунду с 8 битами данных ( 1 байт) за слово.

Эта конфигурация, которую вы используете, обычно сокращается до 9600,8, N, 1 для скорости, битов данных, четности и стоп-битов в этом порядке.

2 голосов
/ 24 декабря 2008

Когда вы говорите, что у вас есть "serialPort.setSerialPortParams (....", где вы его взяли? Если вы хотите понять параметры метода, см. javadoc

0 голосов
/ 23 сентября 2011

, если вы не знакомы с последовательным портом, просто прочитайте http://www.beyondlogic.org/serial/serial.htm

...