Привет всем. Есть проект, в котором к Малине надо подключить несколько устройств, сливающих в нее инфу по UART протоколу. Заказчик хочет это делать через GPIO. Для одного устройства, это, понятное дело, не проблема. Но таких устройств должно быть 4. Т.е. 4 устройства должны общаться с малиной чрез GPIO, используя протокол UART. Подскажите, пожалуйста, как можно реализовать этот протокол на нестандартных пинах? Заранее благодарю.
1. В случае "тупого" решения - в Малине надо запустить 4 медведя СофтСериала и задействовать 8 пинов. С пинами ладно, но будут ли работать сразу 4 Сериала - не знаю. Малин не держим. Может быть в цикле - закрывать Сериал, менять пины и открывать снова !? 2. Каковы по "умственным" способностям эти устройства ? Если тупые передатчики, то только через аппаратный коммутатор (мультиплексор) и поочередный прием. Задействовать придется 4 пина. Два - Сериал, два - выбор канала мультиплексора. Придется спаять плату мультиплексора. 3. Если устройства интеллектуальные и можно "влезть им в душу" - тогда организовывать шину вроде Далласовской 1Wire. Задействуете 1 (!!!) пин. Библа "pjon".
так какой протокол? Про него ни слова. Сомневаюсь, что на асинхронной ОС можно реализовать асинхронный обмен. Только внешний МК.
Круто! А никто не подумал, что USB-SERIAL можно подключить довольно много... как раз к USB... и будет /dev/ttyUSB0; /dev/ttyUSB1 и далее. А вообще-то для множества устройств по 2-м проводам есть Modbus (RS-485)... он как раз для того и придуман. ЗЫ: программу для каждого сериал можно организовать с применением потоков/процессов. Я лично люблю отдельные процессы, ну на крайний случай отделяемые потоки.
Спасибо всем ответившим. Устройства - RFID сканнеры. Задача: считывать метки по каждому из сканнеров и писать эти метки в текстовый файл. Потом эти файлы читаются и обрабатываются другой прогой. Принцип: одна считанная метка -> один файл. Сканнеры общаются через RS-232 и, понятное дело, могут срабатывать одновременно и не должны мешать друг другу. Я предлагал заказчику сделать по USB, через переходник USB-RS232. Хочет именно через GPIO, причем говорит, что видел такую реализацию. Спасибо, изучу вопрос. Может это ОНО и есть. Вот тут: https://stackoverflow.com/questions/55899490/serial-communication-with-any-gpio-of-raspberry-pi парнишка реализовал чтение пинов, но, похоже, из-за проблем с синхронизацией у него работало не ахти. Еще раз спасибо за идеи и участие.
Сколько не знаю, но одновременно работают... как и обычные /dev/ttyXXX ЗЫ: я испытывал два - больше нету в наличии.
образно... потому как "файл устройства". И доступ к такому файлу, как к устройству. А в винде так же: "открыть файл COM1" в студии на си. Только в винде если зависло, то кирдык до ресета.