Linux rs 485 driver

Драйвер Rs 485

У меня контроллер который располагает Rs 485 я установил на него Linux v3.10.17-smp. Видно наличие /dev/ttyS0, /dev/ttyS1, /dev/ttyS2, /dev/ttyS3. Первые два это по всей видимости com1 и com2 два других это Rs485 и Rs422. Для того, что бы 485 начал работать, необходимо ли произвести еще какие-нибудь действия? Или если я вижу устройства, то драйвер будет работать с 485 интерфейсом адекватно, не спутает он его с RS232 ?

232 отличается от 485 только на физическом уровне, байты по ним гоняются совершенно одинаково.

не работает иначе бы не было вопроса

Эра тупняка на лоре. Тупняковый период, блин.

Человек работает с контроллерами с RS485 и не знает, что оно отличается от RS232 только физикой и для компа выглядит абсолютно одинаково, как обычный UART.

Видно наличие /dev/ttyS0, /dev/ttyS1, /dev/ttyS2, /dev/ttyS3. Первые два это по всей видимости com1 и com2 два других это Rs485 и Rs422.

Совершенно необязательно. UART он и есть UART, неважно в куда он работает — в 232, 485, 422 или DMX512 какой. Отличить по названию и номеру невозможно.

драйвер будет работать с 485 интерфейсом адекватно, не спутает он его с RS232 ?

Для драйвера нет никакой разницы 485 это, или 232. Ему насрать, да и нет способа для него выяснить, к чему там Tx и Rx UART’а подключены.

Те микросхема одна и та же все отличие в последующей схемотехнике и драйвер, что для 283 и 485 один и тот же, так?

Я об этом догадывался просто хотел убедиться в этом. Вы наверное очень острый

У 485-го все передатчики и приёмники сидят на двух проводах, поэтому передатчик обычно выключен, чтобы другим не мешать, на время передачи включается или автоматом , должно поддерживаться контроллером, или из программы записью в какой-либо порт. Короче, кури доки на контроллер.

У 485-го все передатчики и приёмники сидят на двух проводах

Не обязательно. В нём и full duplex бывает.

поэтому передатчик обычно выключен, чтобы другим не мешать, на время передачи включается или автоматом , должно поддерживаться контроллером

Нет, это дело выходной микрухи а не контроллера.

Там могут быть нюансы с переключением схемы в 4-проводной или 2-проводной режимы 485 или режим 232, если он поддерживается. Возможно, через fcntl какой-нибудь. Доку на драйвер смотреть надо.

Я об этом догадывался просто хотел убедиться в этом.

Об этом не нужно догадываться и убеждаться, это в любом самом крастком описании стандарта написано. Прочитать описание стандарта — раз в 20 быстрее чем писать что-то на лор и ждать ответа.

Читайте также:  Linux rename directory terminal

Ну да, почитаешь вот эту вот лавину кромешного тупняка льюшегося на лор в последнее время, начинаешь чувствовать себя гением.

Если 485 full duplex это 422 называется. Микрухи не включают автоматом передатчики, adm489 можешь посмотреть, отдельный вход для включения Tx.

ilovewindows ★★★★★ ( 13.03.15 14:03:54 MSK )
Последнее исправление: ilovewindows 13.03.15 14:04:04 MSK (всего исправлений: 1)

Если 485 full duplex это 422 называется.

Это называется «4-wire RS-485». 422 обычно в шину не соединяют.

Если 485 full duplex это 422 называется.

Нет. У 485 есть и simplex и half и full duplex в стандарте, Это у 422 нет half duplex, он только full duplex или simplex может быть и передатчик у него неотключаемый.

Микрухи не включают автоматом передатчики, adm489 можешь посмотреть, отдельный вход для включения Tx.

У многих UART есть железячный выход TXDEN, есть драйвера со встроенным auto-transmit (y LTC, что-ли), а во времена больших микросхем auto-trаnsmit для RS485 традиционно на 555 делался.

Хамство — это вот такие вот тупорылые вопросы задавать, в надежде забесплатно и не приложив ни капли собственных усилий получить нужный ответ на халяву. Особенно это выглядит по-хамски, когда за решение этих вопросов задающему платят зарплату на работе.

А во что соединяют 422? Выключай передатчики, если не передаёшь. Выключай приемник, если передаёшь. И будет счастье хоть на двух проводах, хоть на четырех.

Поржал. Зачем тогда нужны форумы? Я когда первый раз делал железку с 232 и 485 тоже долго вдуплял что ещё надо TXEN дёргать когда начинаешь гнать данные и разбирался как это делать из линукса.

Так не отвечай! Никто тебя не принуждает, храни вековую мудрость в себе! Никто же не обязывает, общайся сам с собой если ты такой умный. Не общайся с убогими! Смысл форумов в обмене опытом, я до этого работал с 232 сейчас 485 решил проверить правильность своих предположений, в чем преступление?

Видно наличие /dev/ttyS0, /dev/ttyS1, /dev/ttyS2, /dev/ttyS3. Первые два это по всей видимости com1 и com2 два других это Rs485 и Rs422

не обязательно. даже, скорее всего — нет. стандартный com-овский контроллер поддерживает до 4-х портов. и его драйвер, соответственно, создает четыре файла устройств, вне зависимости от физического наличия этих самых портов. смотри pci id своей железяки, гугли на предмет, что включить в ядре для поддержки нестандартных контроллеров или какие есть сторонние драйвера на него.

Читайте также:  Установка системного времени линукс

мы, к примеру, используем advantech-овские. для них нет поддержки в ядре, однако фирма поставляет переделанный напильником стандартный комовский. в результате, в дополнение к ttyS*, в системе присутствуют еще и ttyAP*, для доступа к 485-му

Например, чтобы совместно решать проблемы, решения для которых ещё не существует.

Я когда первый раз делал железку с 232 и 485 тоже долго вдуплял что ещё надо TXEN дёргать когда начинаешь гнать данные и разбирался как это делать из линукса.

Не представляю, что там можно долго вдуплять. Даташиты на микрухи почитать, конечно была не судьба.

Спасибо! Но я полагаю, что в данном случае соответствие верное. Ибо на железке есть четыре пары индикаторов приема передачи (Tx Rx) и когда я делаю cat что нибудь в соотв устройства (ttyS0..3), то индикаторы Tx соответственно загораются.

Все делаю вроде, как надо, а чертова железяка не отвечает 🙁

Источник

RS485 Serial Communications¶

EIA-485, also known as TIA/EIA-485 or RS-485, is a standard defining the electrical characteristics of drivers and receivers for use in balanced digital multipoint systems. This standard is widely used for communications in industrial automation because it can be used effectively over long distances and in electrically noisy environments.

Some CPUs/UARTs (e.g., Atmel AT91 or 16C950 UART) contain a built-in half-duplex mode capable of automatically controlling line direction by toggling RTS or DTR signals. That can be used to control external half-duplex hardware like an RS485 transceiver or any RS232-connected half-duplex devices like some modems.

For these microcontrollers, the Linux driver should be made capable of working in both modes, and proper ioctls (see later) should be made available at user-level to allow switching from one mode to the other, and vice versa.

3. Data Structures Already Available in the Kernel¶

The Linux kernel provides the struct serial_rs485 to handle RS485 communications. This data structure is used to set and configure RS485 parameters in the platform data and in ioctls.

The device tree can also provide RS485 boot time parameters 1. The serial core fills the struct serial_rs485 from the values given by the device tree when the driver calls uart_get_rs485_mode().

Any driver for devices capable of working both as RS232 and RS485 should implement the rs485_config callback and provide rs485_supported in the struct uart_port . The serial core calls rs485_config to do the device specific part in response to TIOCSRS485 ioctl (see below). The rs485_config callback receives a pointer to a sanitizated struct serial_rs485 . The struct serial_rs485 userspace provides is sanitized before calling rs485_config using rs485_supported that indicates what RS485 features the driver supports for the struct uart_port . TIOCGRS485 ioctl can be used to read back the struct serial_rs485 matching to the current configuration.

Читайте также:  Steam games directory linux

serial interface for controlling RS485 settings.

Источник

RS485 Serial Communications¶

EIA-485, also known as TIA/EIA-485 or RS-485, is a standard defining the electrical characteristics of drivers and receivers for use in balanced digital multipoint systems. This standard is widely used for communications in industrial automation because it can be used effectively over long distances and in electrically noisy environments.

Some CPUs/UARTs (e.g., Atmel AT91 or 16C950 UART) contain a built-in half-duplex mode capable of automatically controlling line direction by toggling RTS or DTR signals. That can be used to control external half-duplex hardware like an RS485 transceiver or any RS232-connected half-duplex devices like some modems.

For these microcontrollers, the Linux driver should be made capable of working in both modes, and proper ioctls (see later) should be made available at user-level to allow switching from one mode to the other, and vice versa.

3. Data Structures Already Available in the Kernel¶

The Linux kernel provides the struct serial_rs485 to handle RS485 communications. This data structure is used to set and configure RS485 parameters in the platform data and in ioctls.

The device tree can also provide RS485 boot time parameters 1. The serial core fills the struct serial_rs485 from the values given by the device tree when the driver calls uart_get_rs485_mode().

Any driver for devices capable of working both as RS232 and RS485 should implement the rs485_config callback and provide rs485_supported in the struct uart_port . The serial core calls rs485_config to do the device specific part in response to TIOCSRS485 ioctl (see below). The rs485_config callback receives a pointer to a sanitizated struct serial_rs485 . The struct serial_rs485 userspace provides is sanitized before calling rs485_config using rs485_supported that indicates what RS485 features the driver supports for the struct uart_port . TIOCGRS485 ioctl can be used to read back the struct serial_rs485 matching to the current configuration.

serial interface for controlling RS485 settings.

Источник

Оцените статью
Adblock
detector