Implementação na arquitetura de calculadoras soviéticas programáveis ​​"Electronics MK-52"



Neste artigo, quero falar sobre a arquitetura dos microcalculadores programáveis ​​soviéticos usando a calculadora eletrônica MK-52 como exemplo e como ela pode ser incorporada à sua arquitetura.

As calculadoras soviéticas da família " Electronics B3-34 " ("Electronics MK-56", "Electronics MK-61" e "Electronics MK-52") eram especialmente populares na URSS. A razão para isso não foi apenas um preço acessível de 65 rublos para o MK-54, 85 rublos para o MK-61 ou 115 rublos para o MK-52, mas também uma linguagem de programação desenvolvida. Essa família de calculadoras se tornou o padrão de fato para vários usuários. Um grande número de livros foi dedicado à programação nessas máquinas e à publicação de algoritmos prontos. O sistema eletrônico MK-52 chegou ao espaço na sonda Soyuz TM-7, onde deveria ser usada como backup em caso de mau funcionamento do equipamento de navegação por descida. Mesmo na Marinha da URSS, a calculadora eletrônica MK-52 com a unidade de expansão de memória Astro PDU foi por algum tempo uma ferramenta padrão para cálculos de navegação.



O microcalculador MK-52 pertence à segunda geração de microcalculadores programáveis ​​soviéticos.

A primeira geração foi a família B3-21 (incluindo MK-46 , MK-64 e MS 1103 ). O modelo básico B3-21 foi desenvolvido em 1975 e produzido em massa desde 1977. Ela tinha uma pilha de trabalho para dois números (B3-21, como a família B3-34 - calculadoras com RPN - um registro polonês reverso (ou sem bloqueio) - onde os números são inseridos primeiro na pilha e depois o botão de operação é pressionado).



Além da pilha de trabalho, havia uma pilha de anéis adicional de 6 números. Você pode escrever um número em um círculo nesta pilha e extraí-lo. E mais sete registradores de memória com os números 2 a 8 (oito no MK-46, MK-64 e MC 1103) são registros comuns de memória para armazenar números. O número de etapas do programa para B3-21 é 60. Nos modelos MK-46, MK-64 e MC 1103, existem 66. Os modelos mais recentes são calculadoras de mesa com blocos para monitorar parâmetros de dispositivos externos. No MK-46, havia apenas a oportunidade de receber códigos digitais, e no MK-64 e no MS 1103 foi instalada uma fita com um conversor analógico-digital e um chip adicional K145IK1801, que organizou a interação. Devido à instalação deste chip, um registro de memória adicional com o número 9 e mais seis etapas do programa apareceu. O controle de leitura ocorreu através do registro número 9, digitando o código de comando. Da mesma forma, a propósito, os MK-61 e MK-52 foram equipados com o chip K745IK1306, que, além de funções adicionais, adicionou mais um registro e mais sete etapas do programa, mas mais sobre isso posteriormente.

Em algum lugar em 1980, a segunda geração de microcalculadores programáveis ​​apareceu em face do "Electronics B3-34". As primeiras cópias custaram 120 rublos, mas a fábrica reduziu rapidamente o preço para 85 rublos e vendeu o modelo em algum lugar até 1985. Em geral, o preço das calculadoras é objeto de discussão para um artigo separado: em algum lugar, os preços diminuem à medida que são liberados, em algum lugar aumentam. Se estiver interessado, pode consultar o meu site para alterações de preços ao longo dos anos - tento coletar essas informações o máximo possível. A calculadora B3-34 foi substituída por funções semelhantes, mas o MK-54 mais compacto, o MK-56 de mesa. Alguns anos depois, o chip K745IK1306 apareceu com funções adicionais e lançou novos modelos MK-61 em um caso semelhante ao MK-54, e o MK-52 horizontal com um EEPROM K1601PP1 interno em 512 etapas (uma coisa única, não vi outras calculadoras com EEPROM no mundo). : eles possuem CMOS RAM de baixo consumo ou Flash mais moderno) e dois conectores para conectar dispositivos: o primeiro foi usado para conectar módulos de memória externa das "unidades de expansão de memória PDU" e o segundo era tecnológico e nada foi conectado lá (a fábrica explicou como a tecnologia conector biológico para testes durante a produção).

Vista traseira:





Comparado aos microcalculadores de primeira geração, a melhoria foi significativa. O número de registros para armazenar números aumentou de 8/9 para 14/15.
A pilha operacional de dois registros aumentou em mais dois registros - X, Y, Z, T. Um registro do último valor do registro X apareceu antes de executar a última operação aritmética - BX (os registros operacionais X, Y, Z, T com o último registro X foram espionados por nós, em vez no total, as calculadoras Hewlett Packard com registros semelhantes, entretanto, é aí que a identidade com a HP termina). A área do programa de 60/66 etapas aumentou de 98 etapas (para B3-34, MK-54, MK-56, MC 1104) para 105 etapas (para MK-61 e MK-52).

No programa, você pode usar loops automáticos nos registradores L0-L3 e, em seguida, o registro correspondente é reduzido em 1, comparado com zero e com ramificação no endereço.
As calculadoras de segunda geração melhoraram bastante a implementação do endereçamento indireto. Qualquer registro de memória pode ser usado como índice para salvar / recuperar números, bem como para transições indiretas para programas e subprogramas, inclusive com uma condição. Nesse caso, o valor do registro de salto indireto será automaticamente reduzido (registros 0-3), aumentado (registros 4-6) ou deixado inalterado.

Todas essas ações automáticas com registros salvam muito a área do programa e facilitam a programação.

Você pode falar sobre como trabalhar com o MK-52 por um longo tempo. Acabei de falar brevemente sobre os recursos dessas máquinas para aqueles que não trabalharam com elas.

Eu gostaria de começar a conversa sobre arquitetura com uma história. A família de calculadoras B3-21 e B3-34 é o desenvolvimento do Instituto de Pesquisa Científica de Microdispositivos de Kiev (NIIMP). As primeiras calculadoras chamadas " Electronics 4-71 " apareceram em 1971. Duas empresas receberam a tarefa de fazer calculadoras em grandes circuitos integrados - o NIIMP de Kiev e o Leningrado Svetlana - no 24º Congresso do CPSU em 1971. Como resultado, mais ou menos na mesma época, apareceram dois modelos de calculadoras - o mencionado Electronics 4-71 e Electronics 24-71 ( você recebe o nome dos modelos?). O Modelo 4-71 foi feito no controle de microprogramas, como as primeiras calculadoras da família Iskra, com lógica nas máquinas Moore em colaboração com o Departamento de Design Especial do Estado de Leningrado. Ou seja, quando o botão é pressionado, os acionadores necessários clicam (dependendo da finalidade do botão), que formam a passagem dos microcommandos correspondentes. Autômatos - isso certamente é bom, mas você não irá longe em termos de melhoria. Até as calculadoras Iskra-114 do Departamento de Design Especial do Estado em 1974 já tinham ROMs K5YAP011001 (presumivelmente a primeira nos microcircuitos de chip-ROM da URSS) com firmware.

E assim, em 1973, o NIIMP apareceu com o núcleo do microcontrolador de seu próprio projeto. Salve esse site por referência enquanto estiver vivo - há muitas informações interessantes sobre o NIIMP. O primeiro microcalculador B3-09 Electronics no microchip K145IK2A saiu como a “primeira panqueca” e não se enraizou, mas suas modificações B3-09M Electronics , B3-14M e B3-14 dispararam com estrondo, centenas de milhares de peças foram produzidas anualmente e resolveu o problema de calcular o déficit. Naqueles anos, não havia calculadoras suficientes de nossa produção e elas eram importadas do exterior, tanto de países socialistas quanto de países capitalistas. Lembra do filme "Office Romance" em 1977? Você pode ver, a partir das 9:15 , quais calculadoras estão sobre as mesas - principalmente o transistor GDR "Soemron 220" e o búlgaro "Elka 50" da primeira modificação.



Fotografias maiores podem ser vistas no site da Radio Pictures: K145IK2 , K145IK501 , K145IK502P .

Estes são cristais dos microcircuitos K145IK2, IK501 e IK502. Como você pode ver, os chips de uma calculadora simples com quatro operações aritméticas K145IK2 praticamente coincidem com os chips da calculadora programada "B3-21" (K145IK501, 502 e 503). Este último difere apenas em "firmware". O número do firmware é mostrado em uma camada separada após o nome.





E este é um chip de cristal K145IK1302 mais avançado, que está nas calculadoras programáveis ​​da família "Electronics B3-34", incluindo o "Electronics MK-52", sobre o qual este artigo trata.

Três áreas são visíveis no centro do chip (marcadas em verde). Essa é a memória dos microcommandos, a memória dos programas de sincronização e a memória do programa. Amarelo indica registros de deslocamento do anel.
O processador da calculadora opera com uma frequência de 75-100 kHz. O processador possui uma ALU de um bit (dispositivo lógico aritmético) com várias fontes e receptores.

Para quatro microtatos, o processador executa um microcontrole (mais de um notebook). Cada micro comando diz qual conjunto de fontes levar para o somador e onde colocar o resultado.
No total, o microcircuito possui 68 microcommandos com um comprimento de 27 bits cada, 128 programas de sincronização diferentes e 256 células para comandos.

O microprocessador da calculadora (seria mais preciso dizer o microcontrolador, porque nele existem portas ROM, RAM e entrada / saída) funciona de acordo com um princípio consistente. Todos os registros são registros de turno.



Dentro do processador, tudo fica em loop e se assemelha a um parque de diversões com carrosséis, uma roda gigante e um ônibus ideal para visitantes, com uma porta trabalhando na entrada, a outra na saída e os visitantes se movendo gradualmente do começo ao fim.
Um funcionário do parque (micro comando), checando com um notebook (campo de micro comando), em cada microtato, extrai (ou não) do carrossel de células abordado, roda gigante ou o próximo passageiro dos bits do ônibus (ou seja, o próximo registro), direciona-os para a atração "somador", onde algumas ações ocorrem com eles e o resultado é enviado de volta, também dependendo dos campos do microcontrole. Essa rotina é válida para 4 bits, após o qual o número da medida é incrementado.

Como os registros são circulares, os desenvolvedores tiveram que definir seu tamanho corretamente. Como resultado, o número base para calculadoras da família K145IK13 foi o número 42.

Esse comprimento (42 tétrades) possui registros seqüenciais - registros M, R e ST. Para não esperar até que os números necessários avancem ao longo do toque, além disso, existem vários registros de 4 bits e um bit, como o registro de transferência disponível em cada ciclo do relógio. Um número com uma mantissa de 8 bits e uma ordem de 2 bits ocupa 14 tétrades (um terço de 42). Exatamente três números entram no registro de toque, o que permite, por exemplo, realizar o registro de memória e o armazenamento de dois números ao calcular com colchetes, conforme implementado na calculadora "Electronics B3-32" no K145IK1301.

Com o número 42, a chamada "memória dos programas de sincronização" também trabalha muito, que contém os endereços dos microcommandos que devem ser executados.

É chamado de programa de sincronização porque está totalmente sincronizado com o tamanho do registro de toque e o número de medida 0-41 - um ciclo de toque.

Cada programa de sincronização contém nove números de microcommandos que precisam ser executados.
Os comandos de sincronização são bem interessantes. Os desenvolvedores analisaram os algoritmos e calcularam que, levando em conta as transferências, uma operação típica da ULA em um notebook requer três ciclos de relógio, e as ações executadas são bastante semelhantes. E eles fizeram isso para que os microcommandos, dependendo do número da medida (0-41), sejam sempre executados no hardware na seguinte sequência:
0, 1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5



Marquei em amarelo as mesmas seções (microcommandos 3, 4, 5), que são executados sete vezes seguidas. Isso é suficiente para processar um número de oito dígitos. De fato, estes são microalgoritmos prontos. Por um lado, esses loops internos reduzem a capacidade da ROM necessária para o programa, mas, por outro lado, imagine que essa sequência sempre seja executada em todas as linhas do programa.

Como um tetrad é processado em três medidas, os dados nesse período conseguem sair em um anel. Devido a esse recurso, os números nos registros de anel não são armazenados em células consecutivas, mas em cada terço, para que eles cheguem a tempo para o final dos ciclos 3, 4, 5.

A figura abaixo mostra a área de memória do programa. Na memória dos programas em cada um de seus campos, há informações sobre três programas de sincronização que devem ser executados em um ciclo de toque. Há também uma nuance de que o terceiro programa de sincronização geralmente é usado para todos os tipos de ramificações. No registrador R, as células 36 e 39 são atribuídas ao endereço do programa atual sendo executado, elas apenas aparecem nos relógios correspondentes quando os dois primeiros programas de sincronização são executados e o terceiro programa de sincronização está processando esse endereço.

Obviamente, dentro do microprocessador funciona ainda mais complicado. Apenas uma descrição dele com todas as nuances ocupa mais de uma dúzia de páginas do livro Trokhimenko Y.K. “Microcalculadores programáveis. Dispositivo e uso "(google book).

Essa arquitetura com três níveis de processamento - memória de programa com endereços de programas de sincronização, memória de programas de sincronização com número de microcommandos e memória de microcommands com um conjunto de fontes e receptores é a base para toda uma família de microcircuitos K145IK2, K145IK13xx, K145IK18xx e K145IK19xx, apenas com tamanhos de registro diferentes, endereçamento e ramificação são feitos para outro e outras melhorias e alterações são feitas.

E a coisa mais interessante que os desenvolvedores fizeram em 1973 foi que eles trouxeram o cérebro do processador para expansão. Quero dizer registros de anel. Na primeira calculadora de massa B3-09M, a capacidade de registro era suficiente e a expansão não era necessária. Mas e se a atração não for suficiente? Você pode aumentar seu tamanho ou colocar outro próximo a ele. Para não aumentar o tamanho da ROM e, portanto, o tamanho do cristal, reduzir o rendimento de cristais adequados no processo de produção e outras dificuldades, os desenvolvedores pegaram vários processadores idênticos e fizeram um registro de anel comum.



Aqui na fotografia à esquerda faz parte do cristal K145IK2 e à direita é K145IK5. Você pode prestar atenção no canto superior esquerdo. Já no processo de produção, existe um pequeno jumper que fecha duas pastilhas de contato (registro de anel). E no K145IK5 esse jumper não é e o registro de anéis não está fechado.

Em 1975, apareceram as primeiras amostras da calculadora programável " Electronics B3-21 ". Lá você pode ver até três processadores do tipo K145IK5 - K145IK501, K145IK502 e K145IK503. Eles diferem apenas no firmware.

O primeiro processador K145IK502 está envolvido na entrada e saída do teclado para o indicador, processando ações no modo automático e no modo de entrada e execução de programas.
K145IK501 está envolvido em operações aritméticas e K145IK503 - em operações trigonométricas. E como também era necessária uma capacidade para armazenar o programa do usuário e os registros de memória, além da lacuna no mesmo registro, eles colocaram o chip K145IR1, que é um registro de turno grande. Como resultado, três viagens apareceram com três ônibus conectados em série e um trem. E todos os dados estão constantemente se movendo ao longo de um anel comum com a velocidade de um gerador de relógio.

Graças a Felix Lazarev, que conseguiu ler o firmware desses microcontroladores e entender a arquitetura, obtivemos um emulador de calculadoras como MK-61 e B3-34, onde você pode estudar seu trabalho com mais detalhes e brincar com a ativação e desativação de chips no anel comum.

O primeiro microcalculador da segunda geração " Electronics B3-34 " usou os chips K145IK1302 (entrada / saída, modos de operação), K145IK1303 (funções matemáticas) e dois registros K145IR2 de 1008 bits cada.



No total, dois registros M e dois registros de 1008 bits formam um anel de 42 * 4 + 42 * 4 + 1008 + 1008 = 2352 bits de tamanho.

Os desenvolvedores dividiram o campo de dados inteiro em três áreas idênticas de 784 bits (196 tetrads ou 98 bytes). O programa do usuário é armazenado na primeira área (98 etapas), os dados registrados na segunda área (14 registros com os números 0-9, a, b, c, d são 14 tétrados cada) e a terceira área é a área de serviço.

Alguns anos após o surgimento do B3-34, surgiram dois novos modelos - o MK-61 e o MK-52. Eles adicionaram outro chip K145IK1306, onde são calculadas operações com graus e operações lógicas. O anel começou a ficar assim:



Observe que no K145IK1306 existe o mesmo registro M que no K145IK1302 e K145IK1303. A aparência desse chip adicionou um registro de memória (14 tetrads) ao anel, outras sete etapas do programa (14 tetrads) e a área de serviço aumentou 14 tetrads.

No MK-52, há também um chip K745IK1801, que transfere dados de um chip EEPROM ou de uma unidade de expansão de memória removível. Mas ele não usa um anel de registro.

A discriminação de todo o anel de dados em calculadoras do tipo MK-61 e MK-52 é mostrada na figura abaixo:



Como eu disse, todo o anel é dividido em três áreas: M1, M2 e M3.

Na região M1 existem registros de memória de 0 a 9, a, b, c, d, e. O interessante sobre eles é que, para armazenar números, você precisa de 12 tetrads (1 é o sinal da mantissa, 8 é o sinal da mantissa, 3 é a ordem) e 14 tetrads são alocados para um registro (para que seja dividido em 42 no processador). Como resultado, dois blocos de anotações para cada registro não são usados.

Na área de M3 está a memória do programa. Tudo é simples lá - 98 etapas para B3-34 e 105 etapas (mais 14 tetrads) para MK-61 e MK-52.

A área M2 é a mais interessante. Além dos registradores X, Y, Z, T, BX, também contém a região Ms, o canal de comunicação KS e Label.

As áreas mostradas não se seguem. Lembre-se, eu disse que no programa de sincronização existem várias operações repetitivas que levam três ciclos de clock e fazem com que os números nos registros sejam armazenados em cada terceira célula? É isso que é implementado nos dados do anel. Primeiro, o primeiro tétrado da região M1 é transmitido, depois o primeiro tétrado da região M2 e, em seguida, o primeiro tétrado da região M3. Depois vêm os segundos cadernos e assim por diante.E enquanto durante três ciclos de relógio os microcommandos 3, 4, 5 são trabalhados no programa de sincronização, áreas desnecessárias são ignoradas.

Quando lidei com a distribuição de dados em um anel comum, fiquei muito deprimido pela área designada como Sra. É bastante grande, ocupando um sexto da área de dados do anel. E esta área não é usada na calculadora. Ao desenvolver a arquitetura, os desenvolvedores ofereceram a oportunidade de criar uma "área de programa de dados". Essa é uma área na qual se pode escrever um programa ou registradores de dados. Além disso, uma área bastante grande - 56 etapas do programa. Nas calculadoras, deveria incluir funções especiais em combinação com o botão [K] para troca (acima dos botões 1 e 2, agora existe um local vazio). Mas, repito, em modelos seriais essa área desapareceu e, portanto, poderíamos ter mais registros de memória ou um programa 56 etapas a mais. Esta área foi mencionada casualmente na revista "Technique-Youth", nº 7 de 1986.

imagem

O elemento mais importante da sincronização nos dados do anel é o chamado "Label". Esta é uma sequência de nove cadernos que consistem em unidades. Quando o código “Tag” aparece, o contador interno dos processadores é redefinido e o anel começa a contar em relação ao código do Tag. No início, depois de ligar a máquina, o processador principal K145IK1302 inicializa o anel e forma a marca. Os comandos e o conteúdo dos registradores são selecionados para que o código Label não possa ser encontrado nos dados ou no programa.

Usuários avançados de calculadoras da família B3-34 ouviram falar sobre o “manequim” - uma operação não documentada quando apenas um ponto decimal é exibido no indicador. Este é um código composto apenas por unidades. Quando esse código aparece, o contador interno se desvia e a calculadora começa a surtar - dois códigos aparecem.O rótulo e toda a sincronização se desvia - a calculadora ocupa uma área de memória para outra.

O endereçamento interno é relativo ao código da etiqueta. Quando o chip K745IK1306 com um registro adicional M apareceu, o número de células aumentou e elas foram adicionadas condicionalmente ao final, porque na arquitetura toda a área de dados no anel é contínua. Nesta arquitetura, você pode adicionar outro processador, como o K145IK13, para que ele se torne mais um registro de memória e mais 7 etapas do programa serão adicionadas (máximo de 112).

Provavelmente, a representação interna dos dados funciona de maneira semelhante na calculadora não programável Electronics MK-44 , feita no mesmo microprocessador K145IK1305. Foi uma das calculadoras de desktop mais populares em nosso país. Possui três registradores de memória. Imaginei o que aconteceria se eu arrancasse o anel do registrador que M trouxesse e acrescentasse memória lá. O experimento foi um sucesso . O processador "pegou" a memória exibida e havia dez registros de memória na calculadora.

E como os processadores interagem entre si? Eles “se comunicam” com um campo especial chamado “canal de comunicação” (CS). As calculadoras da família B3-21 e as calculadoras da família B3-34 possuem um processador principal. No nosso caso, é K145IK502 para B3-21 e K145IK1302 para B3-34. Eles inicializam o toque quando ativados, formam o código de "etiqueta" e interagem com o operador, organizando a entrada e saída do teclado no indicador. Outros processadores estão no modo de espera e aguardando comandos.

Um “canal de comunicação” são dois notebooks nos quais o processador principal pode inserir um número - um byte com um código de operação.

Se o processador principal não puder processar a operação com nenhum código sozinho ao trabalhar no programa ou no modo manual, ele colocará o código de operação no registro da caixa de anel do anel e começará a aguardar.

Os processadores escravos monitoram constantemente o registro do COP no anel de dados. Assim que aparece um código de operação que pode ser processado pelo processador escravo, ele começa a processá-lo, por exemplo, executa a função de adição, calcula o seno, etc. O processador escravo extrai independentemente os registros necessários do anel quando ele chega a um anel, torna-os operações e o resultado é adiado. Depois que o processador executa suas ações, ele limpa o registro do canal de comunicação, substituindo o notebook mais baixo pelo número "F". Ou seja, se o número 10 aparecer no canal de comunicação (código de adição), no final da contagem, o número 1F será gravado no registro do COP.

Simultaneamente com o código de operação definido no canal de comunicação, um contador especial de espera, como um temporizador de vigilância, é ativado no chip principal. Se nenhum processador escravo puder processar o comando pelo canal de comunicação, depois de um certo tempo o processador host limpará o canal de comunicação e exibirá uma mensagem de erro “YYGOG” no indicador.

Os chips escravos usam esse tempo limite se ocorrer um erro com um número durante o processo de cálculo. Por exemplo, um usuário tentou extrair uma raiz de um número negativo. Nesse caso, o chip escravo não coloca nada no canal de comunicação e, após alguns segundos, o próprio processador host exibe uma mensagem de erro. Portanto, nas calculadoras, a saída da inscrição "EGGOG" com esses erros levou muito tempo.

O processador principal pode não saber o que outros processadores estão no ringue. Ele apenas coloca o código no canal de comunicação e outros processadores o processam. Você pode, por exemplo, substituir o chip K745IK1306 por outro ou fazer seu desenvolvimento com base em um microcontrolador, como fez nos tempos soviéticos na calculadora eletrônica MS-1104 .

Além do barramento de dados seriais, as calculadoras do tipo “MK-52 Electronics” possuem uma interface com EEPROM e módulos de expansão de memória externa. Como escrevi acima, o MK-52 possui um chip de memória eletricamente apagável K1601PP1, no qual é possível escrever até 512 etapas do programa. Em vez da memória do programa, os registros numéricos da memória podem ser salvos. O que escrever - programa memória ou registradores, é determinado pela chave "D-P" no painel frontal. As mesmas áreas na EEPROM podem ser usadas tanto para o armazenamento do programa quanto para o armazenamento do registro. Você pode gravar registros na EEPROM, e os dados gravados podem ser extraídos para a área do programa e vice-versa.

Tipo de calculadora no lado do microcircuito



: Microcircuitos grandes :



Além da EEPROM interna, também foram produzidos módulos de memória intercambiáveis ​​"PDUs" (unidades de expansão de memória). Eles são um chip ROM onde os programas são gravados.
Total de módulos conhecidos:

  • PDU "Astro", também conhecido como BRP-2 - programas de navegação. O módulo foi usado em navios, que escrevi no início do artigo.
  • O BRP-3 continha programas matemáticos
  • BRP-4 - programas matemáticos e programas domésticos, incluindo jogos.

As ROMs eram uma quantidade bastante grande e, em uma PDU, os programas eram realmente de dois módulos. Ou seja, os proprietários do módulo BRP-3 poderiam abrir o gabinete, soldar o jumper e obter o módulo BRP-2 Astro.

Quando li os despejos, encontrei um despejo de um módulo de destino desconhecido no módulo BRP-4. Ainda não há informações sobre como usar esses dumps.

O chip de comunicação com EEPROM ou PDU K745IK1801 é bastante independente. Ela também senta no anel da calculadora, mas não rastreia os comandos. Ele lembra apenas o conteúdo do registro X como o endereço e o comprimento do acesso à ROM ou EEPROM pressionando o botão [A ↑] e pressionando o botão [↑ ↓], ele começa a apagar, ler ou gravar a partir da área de programa ou dados.

Em relação à ROM da PDU, o endereço no código paralelo é sempre definido no barramento e a PDU sempre fornece o conteúdo da célula.

O módulo PDU é inserido no soquete correspondente na parte traseira da calculadora MK-52.

Certamente, todo usuário do MK-52, depois de comprar uma calculadora, viu dois conectores na parte de trás do gabinete - grandes para PDU e pequenos, não está claro o porquê. Nas instruções e nas revistas, os desenvolvedores explicaram que esse conector é usado apenas para fins tecnológicos na fase de produção.
Talvez tenham sido produzidas algumas modificações não seriais da calculadora MK-52, mas eu não as ouvi falar. Todo o tempo eu queria desenvolver algum tipo de dispositivo que pudesse se encaixar naquele conector e usá-lo no trabalho.

Se você se voltar para o conceitoNa calculadora, você pode ver que, além das tensões de alimentação e dos sinais do relógio, os sinais do anel retirados da entrada e da saída do chip K745IK1801 também são emitidos para o conector. Para se infiltrar e gravar algo no ringue, foi necessário quebrá-lo. Evidentemente, mudar alguma coisa no esquema MK-52 é a opção mais recente. Mas aconteceu que o sinal de saída do anel do chip K745IK1801 é fraco. Provavelmente, está um pouco apertado em uma das tensões de alimentação e pode ser sobrecarregado livremente com seu sinal. Então eu fiz. O microcontrolador monitora o anel MK-52, analisa e pode ler e gravar dados.

Como resultado, temos um dispositivo - o módulo FRS-BRP. Aqui está um diagrama esquemático:

imagem

O núcleo do módulo é o microcontrolador STM32F205. Ele interrompe a partir do gerador de frequência interno da calculadora que lê pouco a pouco os dados transmitidos ao longo do anel. Monitora simultaneamente o barramento paralelo para emular a unidade de expansão de memória. Um grande número de comparadores é necessário para a detecção correta dos níveis lógicos. O fato é que a calculadora usa uma voltagem negativa de 0 a -15 volts. Essa tensão é gerada a partir de uma fonte de energia de 5 volts. A placa também precisava usar essas tensões, mas não apenas para -15 volts, mas para -5 e -3,3. Como resultado, a voltagem de 0 volts na calculadora na placa FRS-SRP passou a +5 volts e a voltagem de -5 volts tornou-se zero. Nos comparadores, tudo pode ser bem filtrado, existem muitos, mas agora são muito baratos. Basicamentecomparadores estão envolvidos na decodificação de sinais do barramento paralelo do emulador de PDU. Obviamente, a própria PDU pode ser emulada enviando dados diretamente para o anel. Mas, por autenticidade, para que o usuário pressione os botões "mesmos" descritos nas instruções da PDU, decidi criar um emulador completo.



Agora, poucas pessoas usarão a calculadora MK-52 para a finalidade a que se destina. Existem meios mais eficientes de computação. Mas para os entusiastas, para aqueles que querem lidar com sua estrutura interna, que desejam usar programas comprovados ou aqueles que desejam jogar aqueles jogos que enlouqueceram os usuários de meados da década de 1980, esse módulo pode ser útil.

O que este módulo pode fazer:

  1. Ele é exibido na tela OLED do conteúdo para selecionar dois registros da calculadora RAM (0-9, A, B, C, D, E) ao mesmo tempo. No modo de conta de programa, quando a tela principal da calculadora pisca, você pode clicar nos botões do módulo para visualizar os registros.
  2. () -, -3, -4, -5 ( -5 , ).
  3. (105 ) 1 130.
  4. 130 (105 ).
  5. . 3, 4 (0-9, A, B, C, D, E) 130 .
  6. , (, ) 50 .
  7. («-1», «-2», «-3», «-1», «-2», «»).
  8. 7451303 , , . , 7451303 , « », , .
  9. 0x28 (K *) 0x29 ( /).

Como escrevi acima, o código de operação é transmitido pelo canal de comunicação. Agora, quase todos os códigos estão ocupados e apenas três comandos não utilizados podem ser inseridos no controle remoto - códigos 27, 28 e 29. Em princípio, são suficientes para algumas tarefas. Embora eu não saiba quais comandos podem ser implementados porque a calculadora para a finalidade pretendida não é mais um bolo, mas o fato do processamento é fascinante.

Bem, e é claro - comunicação com um computador via USB. O módulo implementa comandos simples de diálogo, você pode ler e escrever o conteúdo dos dados, programa, áreas de serviço ou todo o anel. Ele pode ser salvo em disco, extraído, analisado, modificado e gravado em uma calculadora. Aqui está uma captura de tela:

imagem

Você pode, por exemplo, colocar algum número no canal de comunicação e ver como será processado por outros chips. Ou descubra o que acontece se alguma célula de serviço for escrita de maneira diferente. Ou verifique se é possível remover a calculadora do estado "escuro", se o registro X for corrigido através do módulo através do módulo, digamos, de 500 a 0, será retirado do estupor?

Infelizmente, apenas um anel de dados sai da calculadora. E outros estados, como um contador de software, um sinal - se a calculadora está calculando de acordo com o programa ou exibido no indicador, e assim por diante - essas informações ficam no registro interno R.

Mas os desenvolvedores o trouxeram para fora. Se você observar o circuito do mesmo MK-52, poderá ver que há um "certo jumper" - é a saída e a entrada do registro "R". Ou seja, se desejar, você pode conectar-se a esse barramento e examinar mais cuidadosamente seu interior.

Tais registros deduzidos provavelmente estão em todos os microcircuitos das famílias K145IK5, K145IK13, K145IK18 e até K145IK19. O famoso microcircuito de relógio “K145IK1901” também traz os registros M e R. Você pode ter certeza de observar o diagrama de circuitos.



Até experimentei até me conectar aos registros no relógio no K145IK1901 e levei para onde ele tinha os dados.

Na conclusão do artigo, direi que a família de microcontroladores mencionada era muito popular no CCCP, um grande número de calculadoras - modelos foram lançados em sua base:

  • K145IK2 - B3-09, B3-09M, B3-14, B3-14M;
  • K145IK5xx - B3-05M, B3-21, MK-46, MK-64, MS-1103, MK-59, Elwro 330;
  • K145IK13xx - B3-32, MK-44, B3-34, MK-54, MK-56, MK-52, MK-61, MS-1104.

Nos microcircuitos das séries K145IK18xx e K145IK19xx - os eletrodomésticos, dos conhecidos, são temporizadores para microondas, relógios , cronômetros para fotografia, controladores de fita em gravadores e muito mais.

Isso é tudo que eu queria dizer. Espero que tenha sido interessante. Obrigado pela atenção.

Source: https://habr.com/ru/post/pt467501/


All Articles