Desktop
Website
Multimedia
Database
Security
Enterprise
Вопрос : Правая дорога снабдить поверхность стыка GPIO
Так нам нужно сделать 2 микропроцессора поговорить к одину другого. Одно будет оригиналом, и одно будет невольником, и мы хотим послать назад настоящее положение дел от невольника к оригиналу (например, init, готовому, многодельному, ошибке, etc). Мы вычисляем просто дорога сделать это с как раз обыкновенными толком линиями I/O (GPIO), комплектами micro невольника один или больше линии, списки избирателей оригинала микро- они.
So очень, очень простой способ сделать его будет каждый штырь показывает active state
Pin 0: Active Init
Pin 1: Ready
Pin 2 активно Busy
Pin 3 активно Error
However мы smogли сохранить GPIO путем делать его с 2 pins
Pin 0 бездействующим, Pin 1 бездействующий: Init
Pin 0 бездействующее, active Pin 1: Active Ready
Pin 0, Pin 1 бездействующий: Active Busy
Pin 0, active Pin 1: Error
Note это использует 2 штыря вместо 4. Однако, я думаю в втором методе, котор мы бежим риск улавливать переход. Например, попытки невольника к переходу от INIT к положениям поэтому ему ОШИБКИ изменяют первый штырь от 0 до 1, тогда изменяют второй штырь от 0 до 1. Однако, если мастерские списки избирателей между 2 изменениями оно прочитали бы 01 или 10, то которое ГОТОВО или МНОГОДЕЛЬНО, и оно могл принять плохое action.
So, котор ответ должен вероятно использовать третий штырь, который показывает ценностьь другие 2. Комплекты невольника прикалывают низкий уровень, тогда делают изменения, тогда устанавливают его к максимуму снова, намеревающся другие 2 бита действительны.
So это приняло бы 3 штыря, которое все еще сбереженияа над 4 необходимо первым approach.
Can, котор я получаю проверке психического здоровья на всем это? Второй подход предпочтитен, право, при условии мы используем экстренный метод штыря? То будет обязательно право?
Thanks для всех thoughts.
class=
Ответ : Правая дорога снабдить поверхность стыка GPIO
Вам мило очень получают его точно правое, но положить его небольш по-разному для вас:
1) Ваше первое предложило метод препятствует вам держать след 4 дискретных «перемеююых», каждая одна способная для того чтобы принять на одно из 2 различных значений (высоких или низких уровней). Это использует 4 штыря, и 16 по возможности положений вашей линии шины.
2) Ваше второе предложило метод препятствует вам держать след одной одиночной «перемеююого» может принять на одно из 4 различных значений (00, 01, 10, или 11). 4 по возможности положения к вашей линии шины.
От вы описали, костюмы метода #2 ваши цели более лучше. Если вы делаете его дорога #1, то вы будете иметь линию шины которая имеет 16 по возможности значений, но только 4 из по возможности 16 значений имеют любую смысль к вам (0001, 0010, 0100 и 1000). Все еще инвалидно. Так, что будет напрасная трата ресурсов. То почему вы сохраняете биты пары путем делать его дорога метода #2.
Теперь важная вещь к примечанию что никакое дело метод вы использует, #1 ИЛИ #2, вы всегда будет иметь «вопрос неустойчивого положения». Будет всегда то инфинитезимальное количество времени когда оригинал изменит значение на линии шины, и если невольник читает на том точно моменте, то он получит неправильно чтение.
Вы предложили «синхронизировать сдержанные часы» и оригинал и невольник делят. Вы вызвали это битом ценностьи. Бит часов установлен оригиналом, и прочитан невольником. Оригинал обеспечивает что на поднимая крае часов значение на битах информации стабилизированн. Невольник знает для того чтобы прочитать биты информации только когда часы идут высоко. Это можно сделать сразу в оборудовании на уровне сигнала (например verilog или цепь VHDL запрограммированная на FPGA), или вы можете сделать его на более высоком уровне (например микропроцессоре как доска Altera которая имеет брошенный interrupt оборудования когда тот бит sync идет высоко).
Настолько основно я думаю вы вполне правильно, как раз осуществляет вы все еще сохранило 2 штыря gpio, как раз 1, потому что даже если вы сделали его первая дорога вам все еще был бы нужен бит часов синхронизации.
Другие решения
Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
Шнур ошибки в блоке задвижки?
сколько вариант сервера SQL на одной машине
Внешний вид 2007 не может архивный файл открытой сети сохраненный
Активно директория DNS записывает вопрос
Отчет о доступа 2010 экспорта к CSV с коллекторами?
Прокладчик OCE 9400 не начинает
как добавить десятичное место в формуле в отчете о кристалла seagate
Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
VB6 к VS2010 - консультации тренировки?