Последовательная связь против драйверов устройств

434
pnongrata

Насколько я понимаю, последовательная связь предназначена для прямой связи между процессором (или микроконтроллером-микроконтроллером) по последовательной шине.

Насколько я понимаю, драйвер устройства предназначен для связи между устройством и процессором или между устройством; по сути, он говорит процессору, как читать / записывать данные на определенные контакты для правильной связи с необработанным устройством.

Я прав здесь или далеко от базы? Если что-то из сказанного мной не соответствует действительности или неправильно понято, пожалуйста, уточните / исправьте меня! Я в основном ищу лакмус, чтобы помочь мне решить, когда мне нужно использовать, скажем, SPI или I2C или UART (последовательная связь) или просто использовать драйвер. Заранее спасибо.

0
Последовательная связь - это устройство от устройства, а не процессор к процессору. (Устройство будет последовательным интерфейсом на каждой стороне.) David Schwartz 11 лет назад 1
Спасибо @DavidSchwartz (+1) - можете ли вы быть более конкретным, что вы имеете в виду, когда говорите * устройство *. Разве MCU (скажем, процессор ARM и некоторые светодиоды на одной печатной плате) не могут считаться устройством? В этом случае, не является ли ЦП ARM на MCU связывающимся с ЦП на том, к чему он подключен (последовательно)? Я думаю, я не вижу разницы между * устройством * и * процессором *. Еще раз спасибо. pnongrata 11 лет назад 0
Процессор - это то, что выполняет вычисления и принимает решения. Устройство - это то, что соединяет процессор с периферийным устройством или каким-либо другим устройством. Микроконтроллер включает в себя как процессор, так и несколько устройств на одном чипе. David Schwartz 11 лет назад 1
Еще раз спасибо @DavidSchwartz (+1), но все еще не понимает, когда нужен драйвер устройства, и когда последовательная связь более уместна. pnongrata 11 лет назад 0
Я думаю, что вы упускаете что-то фундаментальное, потому что это как «Когда я должен использовать машину, а когда я должен использовать молоток». Драйвер устройства - это часть программного обеспечения, которая работает на процессоре и контролирует устройство, чтобы оно могло выполнять полезную работу. Последовательная связь - это способ для одного устройства общаться с другим, когда биты отправляются по одному. David Schwartz 11 лет назад 0
Хорошо, теперь мы начинаем понимать причину моего замешательства. Для меня ваше определение драйвера устройства и последовательной связи в основном одно и то же. Программа, запущенная на машине, использует драйвер устройства `XYZ` для управления устройством` XYZ` (возможно, подключенным через порт USB). Если я правильно интерпретирую ваше определение, эти команды отправляются с устройства (т.е. ноутбука) на устройство `XYZ` через последовательную связь. Значит ли это, что драйверы устройств - это то, что на самом деле использует последовательную связь SPI? Если так, SPI comm доступен для пользовательских приложений, так зачем использовать драйверы устройств? pnongrata 11 лет назад 0
Другими словами, если я могу написать приложение C для запуска на моем ноутбуке и использовать последовательную связь SPI для отправки / получения данных и команд на устройство `XYZ`, то зачем мне драйверы устройств? pnongrata 11 лет назад 0
Код, который использует последовательную коммуникацию SPI *, является * драйвером устройства. David Schwartz 11 лет назад 1
Ах, так будет ли справедливо сказать, что драйвер устройства должен предоставлять API для пользовательских приложений, а затем преобразовывать эти вызовы API для чтения / записи в порт / соединение SPI? pnongrata 11 лет назад 0
Если это достаточно сложно, безусловно. Если нет, то это, вероятно, все еще хорошая идея. David Schwartz 11 лет назад 0
Еще раз спасибо, если вы хотите превратить это в ответ, я был бы рад дать вам зеленый чек. pnongrata 11 лет назад 0

2 ответа на вопрос

1
David Schwartz

So does this mean that device drivers are what actually use SPI serial comm? If so, SPI comm is available to user applications, so why use device drivers?

Many reasons:

You might want to write code that can use various different types of serial communications without having to change the higher-level code.

You might want to moderate access to the serial port from different applications.

The serial interface may be most efficient with interrupts and you need to handle interrupts in low-level code.

And so on.

0
Isaac Rabinovitch

The term "serial communication" refers to any digital communication that transfers one bit at a time. This is opposed to parallel communication, where multiple bits are transferred at a time.

Your misunderstanding of serial communication comes from confusing a particular application of serial communication with the idea of serial communication. There are actually a huge number of applications.

Похожие вопросы