Desktop
Website
Multimedia
Database
Security
Enterprise
Pergunta : Maneira direita de executar a relação de GPIO
Assim nós precisamos de fazer dois microprocessadores falar. Um é um mestre, e um é um escravo, e nós queremos emitir para trás o estado atual do escravo ao mestre (por exemplo, init, pronto, ocupado, erro, etc.). Nós figuramos que a maneira a mais simples de fazer isto é com apenas linhas lisas do I/O (GPIO), jogos do micro do escravo umas ou várias linhas, micro votações do mestre elas. o
So muito, muito forma facil fazê-la é cada pino indica um ative do state
Pin 0: Ative de Init
Pin 1: Ready
Pin 2 Busy
Pin 3 Error
However nós poderíamos conservar GPIO fazendo o com dois o pins
Pin 0 inativo, Pin 1 inativo: Init
Pin 0 inativo, ative do Pin 1: Ative de Ready
Pin 0, Pin 1 inativo: Ative de Busy
Pin 0, ative do Pin 1: Error
Note isto usa dois pinos em vez de 4. Entretanto, eu penso na segunda técnica que nós corremos o risco de travar uma transição. Por exemplo, as tentativas do escravo à transição de INIT aos estados assim que a ele do ERRO mudam o primeiro pino de 0 a 1, a seguir mudam o segundo pino de 0 a 1. Entretanto, se as votações mestras entre as duas mudanças ele leriam 01 ou 10, que é PRONTO ou OCUPADO, e ele pôde tomar um action.
So que a resposta é provavelmente usar um terceiro pino, que indique a validez dos outros dois. Os jogos do escravo que fixam o ponto baixo, a seguir fazem as mudanças, a seguir ajustam-nas à elevação outra vez, significando que outros dois bocados são válidos. o
So isto tomaria três pinos, que é ainda economias sobre os 4 exigidos pelo primeiro approach.
Can que eu começ a uma verificação da sanidade no todo o este? A segunda aproximação é preferível, direito, desde que nós usamos a técnica extra do pino? Aquela é direita necessária?
Thanks para algum thoughts.
class= do
Resposta : Maneira direita de executar a relação de GPIO
Você bonito é-o começ muito exatamente direito, mas para põr ligeiramente diferentemente o para você:
1) Seu primeiro props que o método o deixasse se manter a par de quatro “variáveis discretas”, cada um capaz de tomar em um de dois valores diferentes (elevados ou ponto baixo). Isto usa quatro pinos, e há 16 estados possíveis de sua linha de barra-ônibus.
2) Seu segundo props que o método o deixasse se manter a par de uma única “variável” que pode tomar em um de quatro valores diferentes (00, 01, 10, ou 11). Há 4 estados possíveis a sua linha de barra-ônibus.
O que você descreveu, ternos do método #2 suas finalidades de melhor. Se você o faz a maneira #1, você terá uma linha de barra-ônibus que tenha 16 valores possíveis, mas somente 4 dos 16 valores possíveis têm-lhe todo o significado (0001, 0010, 0100 e 1000). Tudo mais é inválido. De modo que seja um desperdício de recursos. Isso é porque você conserva bocados de um par fazendo o a maneira do método #2.
Agora a coisa importante a anotar é que nenhuma matéria que o método você usa, #1 OU #2, você terá sempre “a edição do estado instável”. Há sempre essa quantidade de tempo infinitesimal quando o mestre está mudando o valor na linha de barra-ônibus, e se o escravo lê nesse momento exato começ uma leitura incorreta.
Você props uma “sincronização do pulso de disparo mordido” de que o mestre e o escravo compartilham. Você chamou este o bocado da validez. O bocado do pulso de disparo é ajustado pelo mestre, e lido pelo escravo. O mestre assegura-se de que em cima da borda de aumentação do pulso de disparo o valor nos bocados de dados seja estável. O escravo sabe para ler os bocados de dados somente quando o pulso de disparo vai altamente. Isto pode ser feito diretamente na ferragem a nível do sinal (por exemplo um verilog ou circuito de VHDL programado em um FPGA), ou você pode fazê-lo em um de mais alto nível (por exemplo um microprocessador como uma placa de Altera que tenha uma interrupção de ferragem jogada quando esse bocado da sincronização vai altamente).
Tão basicamente eu penso você está completamente correto, apenas realiza que você ainda conservou 2 pinos do gpio, não apenas 1, porque mesmo se você o fêz a primeira maneira você ainda precisaria o bocado do pulso de disparo da sincronização.
Outras soluções
Perguntas da entrevista do certificado de Shell da festança
lima de .vmdk
Como encontrar a contagem da fileira em Oracle DataReader em ASP.NET?
Excitador do bluetooth BCM2045 do inspiron 1720 de Dell para o profissional de Windows Xp.
Como conseguir o lightbox mostrar sobre a bandeira instantânea?
Fora do escritório o assistente que não trabalha w/Forwarding configurou
Redistribuindo o RASGO em subnets non-contiguous do OSPF.
líquidos de corpo após a sessão da natação
SQL0952N
Criando um vbscript para a chave do registro - IRPStackSize