Как написать драйвер на C для UART для Raspberry Pi для общения с устройствами по RS485?

Столкнулся с задачей - опрашивать устройства по интерфейсу RS485 с помощью Raspberri Pi. Для этого необходимо использовать UART с режимом передачи 9-ти битов в посылке (9-й бит используется для адресации устройств). Подскажите, пожалуйста, как написать драйвер для хардварного общения по UART для Raspberry Pi. Или куда посмотреть, чтоб разобраться с этим вопросом. Раньше дела с Raspberry Pi не имел - сейчас разбираюсь с этим. Но буду благодарен за любую информацию


Ответы (1 шт):

Автор решения: Александр Привалов

То что вы описываете, очень похоже на битстаффинг, и 9 бит используется в физическом уровне 485-го интерфейса для разделения флага начала и конца посылки от комбинации в полезном байте данных, но никак не для адреса. Это все легко реализовать с помощью GPIO и аппартного прерывания на GPIO.Ну а чтобы написать для этого драйвер, надо сначала изучить инструменты для кросс-компиляции, прочитать LDD и выкурить мануал по BCM2835, и изучить архитектуру ядра Linux, особенно работу подсистем прерывания.

→ Ссылка