2015-04-27 2 views
0

Это может быть глупый вопрос, но это меня сбивает с толку. Я смотрел несколько видео на Embedded Systems, и они говорят о параллельных портах, данных, направлении и используемой сумме. Я понимаю, что порты подключены к проводам, которые питают другие части системы или внешние устройства. Но я смущен, потому что лекция, которую я наблюдал, говорит, что для управления одним светодиодом потребуется 1 бит от 1 порта.Как выглядит параллельный порт встроенной системы?

Мой вопрос: как выглядит параллельный порт встроенной системы и как вы подключаете свои устройства к плате? (скажем, вы создали устройство, которое отправило в порт 4 случайных бита)

EDIT: Я только начал учиться, поэтому, возможно, я пропустил важную информацию, которая могла бы связать это в целом. Я просто не понимаю, как вы можете иметь 8-битный порт и использовать только 1 бит.

+0

http://en.wikipedia.org/wiki/Parallel_port Хотя это может быть не совсем то, что вы ищете. Из вопроса, я не совсем уверен, чего вы хотите, поэтому я пошел родовым. –

ответ

1

Во-первых, вы должны знать, что термин «параллельный порт» может относиться к широкому разнообразию разъемов. Обычно люди используют фразу для описания 25-контактных разъемов на старых ПК для периферийных устройств, таких как принтеры или модемы, но у них может быть больше или меньше контактов. Wikipedia article на них есть несколько примеров.

Светодиодный пример означает, что если у вас есть 8-битный параллельный порт, он будет иметь 8 контактов, поэтому вам нужно будет только подключить один из контактов к светодиоду, чтобы управлять им. Другие штыри не исчезают или что-то странное, их можно просто отключить. Остальные контакты будут либо либо нулями, либо , но это не имеет значения, потому что они не связаны. Запись «1» или «0» на этот подключенный вывод приведет к тому, что напряжение будет высоким или низким, что включит или выключит светодиод в зависимости от того, как он подключен. Вы можете написать все, что хотите, на других контактах, и это не повлияет на работу светодиода (хотя было бы безопаснее подключить их к земле и записать «0»).

Вот пример:

// assume REG is a memory-mapped register that controls an 8-bit output 
// port. The port is connected to an 8-pin parallel connector. Pin 0 is 
// connected to an LED that will be turned on when a "1" is written to 
// Bit 0 (the least-significant bit) of REG 

REG = 0x01 // write a "1" to bit 0, "0"s to everything else 

Я думаю, что ваша путаница проистекает из фразы «нам нужно только один бит», и я думаю, что это оправдано путаница. Что они означают, так это то, что нам нужно только контролировать этот бит на порту, который соответствует нашему светодиоду, чтобы управлять светодиодом, но на самом деле вы не можете писать всего по одному бит за раз, так что это немного (га!) вводящий в заблуждение. Вы (вероятно) больше не найдете регистров меньше 8 бит, так что вы должны сделать, чтобы читать/записывать регистры по целому байту за раз, но вы можете замаскировать биты, которые вам не нужны, или do read-modify-write, чтобы избежать изменения битов, которые вы не собираетесь использовать.

+0

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

+0

Здравствуйте, спасибо, что ответили на мой вопрос. Последнее, что нужно уточнить. Порт на самом деле не порт, как последовательный порт или USB или старый Parallel? Это трудно подключить, прежде чем вы когда-нибудь приступите к написанию своей программы? Таким образом, светодиоды и кнопки уже будут там, потому что это то, о чем система была указана. Это не похоже на то, что я получаю встроенную систему и подключаю клавиатуру и должен сам кодировать порты, потому что она будет подключаться к USB или клавиатуре порт? – JamesDonnelly

+0

@JamesDonnelly Это будет полностью зависеть от системы, с которой вы работаете. У некоторых из них будут контроллеры для порта, поэтому вы можете просто записывать свои данные в регистры, чтобы заставить их работать, а другие могут быть просто проводными соединениями, которые требуют от вас самих реализовать контроллеры с нуля. Я только что закончил проект, в котором у моего чипа был подключен VGA-порт, но нет контроллера, поэтому мне пришлось сам кодировать VGA-контроллер (я знаю: VGA не является параллельным портом, но ситуация аналогична). Еще один чип, который я работал с аппаратным контроллером UART (опять же, не параллельным, но это та же идея) ... – skrrgwasme

0

Без контекста стенограммы стенограмм видео, о которых идет речь, вероятно, невозможно точно определить, о чем они конкретно могли упоминать.

Термин «параллельный порт», как правило, обычно относится к портам, предназначенным главным образом для подключения принтера на ПК, в соответствии со стандартом IEEE 1284; термин, отличающий его от «последовательного порта», также используется в некоторых случаях для соединений с принтером, но для двусторонней передачи данных в целом. В более общем плане, однако, он может ссылаться на любой порт, несущий несколько одновременных бит данных на нескольких проводниках. В этом смысле, который включает SDIO, SCSI, IDE, GPIB, чтобы назвать несколько, и даже шина данных памяти процессора является примером параллельного порта.

Скорее всего, в контексте встроенных систем в целом он может ссылаться на адресный порт GPIO, хотя он не является особенно полезным или точным термином.Обычно на микроконтроллерах порты ввода-вывода общего назначения (GPIO) универсальны (обычно 8, 16 или 32 бита), все биты одного порта GPIO могут записываться одновременно (или в параллельно) со всеми краями битов синхронизированы, поэтому их состояния устанавливаются одновременно.

Теперь, когда вы хотите получить доступ только к одному биту GPIO (например, для управления светодиодом), некоторые блоки GPIO допускают одиночный доступ, но имеют доступ к отдельным регистровым/очищающим регистрам, в то время как другим требуется чтение-изменение -write семантика всего порта. ARM Cortex-M поддерживает «бит-диапазон», который является альтернативным адресным пространством, где каждый адрес слова соответствует одному биту в физическом адресном пространстве.

Однако доступ к битам порта GPIO не совпадает с последовательным портом ; который относится к порту, где несколько бит данных отправляются по одному, в отличие от нескольких бит данных одновременно.

Кроме того, термины «параллельный порт» и «последовательный порт» подразумевают передачу данных в виде блоков или потоков, в отличие от управления вводом/выводом, где каждый бит управляет одной вещью, например, ваш индикатор включения/выключения светодиода Светодиод не «принимает данные», он просто включается и выключается. Обычно это называется цифровым вводом/выводом (или DIO). В этом контексте вы можете обратиться к цифровому порту ввода-вывода ; термин, который отличает его от аналогового ввода-вывода, где напряжение на штыре может быть установлено или измерено в противоположность двум состояниям высокого/низкого.