NL193804C - Storingsveilige gegevensverwerkende inrichting. - Google Patents

Storingsveilige gegevensverwerkende inrichting. Download PDF

Info

Publication number
NL193804C
NL193804C NL8403403A NL8403403A NL193804C NL 193804 C NL193804 C NL 193804C NL 8403403 A NL8403403 A NL 8403403A NL 8403403 A NL8403403 A NL 8403403A NL 193804 C NL193804 C NL 193804C
Authority
NL
Netherlands
Prior art keywords
test
program
time
function
retest
Prior art date
Application number
NL8403403A
Other languages
English (en)
Other versions
NL8403403A (nl
NL193804B (nl
Original Assignee
Sasib Spa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sasib Spa filed Critical Sasib Spa
Publication of NL8403403A publication Critical patent/NL8403403A/nl
Publication of NL193804B publication Critical patent/NL193804B/nl
Application granted granted Critical
Publication of NL193804C publication Critical patent/NL193804C/nl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

Storingsveilige gegevensverwerkende inrichting 1 193804
De uitvinding heeft betrekking op een storingsveilige gegevensverwerkende inrichting voor het opwekken van een bepaald signaal met tijdgevoelige parameters met behulp van een processor waaraan groepsgewijs 5 testgegevens worden toegevoegd, welke gegevens verwerkt worden door programmamiddelen, die programmasegmenten inhouden, die reageren op genoemde gegevens om uitgevoerd te worden, waarbij genoemde, groepsgewijs aan de processor toegevoerde gegevens op geschikte tijdstippen leiden tot het uitvoeren van een opeenvolging van programmasegmenten teneinde het bepaalde signaal op te wekken.
Een dergelijke inrichting is bekend uit de Nederlandse octrooiaanvrage No. 82 00962. Daarbij gaat het 10 om een storingsvrije tijdregelinrichting voor het bekrachtigen van een storingsvrij relais aan het einde van een voorgeselecteerd tijdsinterval, gegenereerd door een storingsvrij geprogrammeerde microprocessor. Diverse tijdsgegevenswoorden van het voorgeselecteerde tijdsinterval worden gegenereerd, gebracht in verschillende registers in de microprocessor, en worden vermeerderd door middel van een programmalus voor de duur van het tijdsinterval, bepaald door de grootte van de diverse tijdsgegevenswoorden. De 15 microprocessor werkt met testroutines om te verifiëren, dat het geselecteerde tijdsinterval op de juiste wijze is gelezen, dat een primaire klok van de microprocessor in een voorbepaalde relatie staat met een uitwendige hulpklok, en dat de diverse registers een voorbepaalde telrelatie aanhouden voor de duur van het voorgeselecteerde tijdsinterval.
Testroutines produceren een aantal voorbepaalde testwoorden, die indicatief zijn voor de werking van de 20 storingsveilige tijdregelinrichting, welke testwoorden gebruikt worden voor het adresseren van een uitgangsprogramma, gevormd van groepen van instructies, elk corresponderende met een respectievelijk testwoord, en waarvan elk moet worden toegelaten in voorbepaalde volgorde, teneinde een voorbepaalde, in de tijd variërende uitvoer te produceren naar de afgestemde, storingsveilige relaisdrijver. Zodoende wordt de afgestemde, storingsveilige relaisdrijver uitsluitend geactiveerd in het geval, dat elk voorgeschreven 25 testwoord gegenereerd is, teneinde storingsvrije werking van de tijdregelinrichting te verifiëren.
De inrichting volgens de Nederlandse octrooiaanvrage No."82 00962 betreft specifiek een tijdregelinrichting, waarvan de primaire interne klok gekoppeld is aan een uitwendige hulpklok. In tegenstelling daarmee gaat het bij de uitvinding om storingsveilige logica voor het verifiëren van de storingsveilige, ook wel genoemd vitale eigenschap van de uitgang van een onafhankelijk werkende processor.
30 Storingsveilige logica is een aanduiding voor technieken en bijbeherende apparatuur voor het waarborgen dat een niet vitale inrichting, zoals een conventionele computer, een microprocessor of dergelijke, op de juiste wijze werkt. Dit wordt van belang geacht, zodat de uitgang die verkregen wordt van de processor vitaal kan worden geacht.
Bekend is een vitale relaisaandrijving (met inbegrip van een digitale processor) met een bestuurde 35 reactietijd. De vitale relaisaandrijvingsinrichting kan een uitgangssignaal van vaste en gespecificeerde frequentie opwekken, bijvoorbeeld om een relais bekrachtigd te houden, maar kan eveneens dat uitgangssignaal manipuleren om een beheerste afvaltijd van het relais te verkrijgen. Dienovereenkomstig bepaalt de vitale aandrijfinrichting niet alleen of het relais wel of niet bekrachtigd moet zijn, maar indien het relais in onbekrachtigde toestand moet worden gebracht kan de afvaltijd van het relais selectief van tevoren worden 40 bepaald. Bekend is ook een vitaal communicatiestelsel voor het overdragen van meervoudige boodschappen. Een vitale aandrijvingsinrichting is daarbij aanwezig voor het geldig maken van de werkingen van onafhankelijk werkende processor, die zelf een decoderingstaak vervult.
Hierbij voert een processor (de primaire processor) een primaire taak uit op zijn ingangen voor het opwekken van één of meer uitgangen. Voor het opwekken van deze uitgangen volvoert de primaire 45 processor een opeenvolging van stappen, die opgelegd worden door een primair programma. Voor zover de gebruikte processors conventionele microprocessors zijn, zijn zij niet op zichzelf genomen vitaal. Eerder zijn de processors verbonden met een vitale aandrijfinrichting, waarvan de functie het testen of checken is van de juiste werking van de primaire processor bij het uitvoeren van zijn primaire taak. Teneinde deze testbewerkingen uit te voeren, volvoert de vitale aandrijfinrichting, zelf een verdere conventionele micropro-50 cessor van niet vitale aard, een opeenvolging van stappen uit. De primaire processor vormt, buiten het uitvoeren van zijn primaire taak via de opeenvolging van stappen, op bepaalde tijdstippen in de opeenvolging één of meer testwoorden. De bedoeling van de testwoorden is dat door hun waarde (mogelijk ook door hun aantal) de correcte werking van de primaire processor door hen wordt aangegeven. Aangezien de primaire taak, die door een dergelijke primaire processor wordt uitgevoerd ruim in ingewikkeldheid kan 55 variëren, zullen de vaklieden in deze techniek begrijpen, dat de tijd, die de primaireprocessor nodig heeft om zijn opeenvolging van stappen af te lopen, eveneens betrekkelijk ruim zal variëren. De tijd die nodig is voor de primaire processor om door zijn opeenvolging van stappen te gaan voor het uitvoeren van de 193804 2 primaire taak, evenals voor het vormen van de bijbehorende checkwoorden zal een basiscyclus genoemd worden. Bij het einde van elke basiscyclus doen resultaten zich in twee vormen voor: uitgangsaanduidingen, die een aanduiding vormen van waarden die door de primaire processor aan zijn verschillende uitgangen zijn toegevoegd, evenals een groep testwoorden. De waarden, die door de primaire processor aan de 5 uitgangen zijn toegevoegd zijn uiteindelijk bestemd voor de buitenwereld, dat wil zeggen om op een of andere fysieke inrichting in te werken, zoals een relais, wissel, sein of dergelijke. De testwoorden zijn anderzijds bestemd voor de vitale aandrijfinrichting. De werking van de vitale aandrijfinrichting is het inwerken op de testwoorden en het verschaffen van een toelatingsuitgang in het geval dat voor zover de vitale aandrijfinrichting dat kan bepalen, de testwoorden aangeven dat de basiscyclus zodanig is afgewik-10 keld, dat aangegeven wordt dat de uitgangen passend zijn. De uitgangen van de primaire processors worden gepoort naar de buitenwereld door de vitale aandrijfinrichting. Bij het ontbreken van de toelatingsuitgang wordt verhinderd dat de werkelijke uitgang van de primaire processor werkzaam wordt en in plaats daarvan worden de signalen voor de buitenwereld op hun meest beperkende toestand gesteld, bijvoorbeeld dat alle seinen op stoppen worden gezet. Op die wijze is het slechts bij aanwezigheid van een toelatings-15 uitgang, die door de vitale aandrijfinrichting geleverd wordt, dat één of meer toe te stane uitgangen van de primaire processor voor de buitenwereld beschikbaar zijn.De primaire processor kan, in de loop van zijn primaire functie, niet alleen de stappen volvoeren die nodig zijn om de vereiste uitgangen te vormen, evenals het opwekken van de testwoorden voor de vitale aandrijfinrichting, maar bevat eveneens onderzoeken van zijn uitgangsaanwijzingen om te verifiëren of de uitgangsaanwijzingen in feite de waarden 20 weergeven, die aan hen zijn toegevoegd door de primaire processor. Deze test van de uitgangsaanwijzingen is een factor, die gebruikt wordt bij de vorming van de testwoorden. Op deze wijze test de vitale aandrijfinrichting, wanneer die inwerkt op de testwoorden, niet alleen de juiste funktionering van de stappen, die zijn uitgevoerd voor het volvoeren van de primaire taak, maar is zij eveneens verantwoordelijk voor het verifiëren dat de uitgang van de primaire processor in werkelijkheid de waarden weergeeft, die 25 beoogd werden toegevoegd te worden aan de desbetreffende uitgangen door de primaire processor.
Een probleem bij het realiseren van deze testen wordt duidelijk indien de tijd, die de primaire processor nodig heeft voor het uitvoeren van de basiscyclus veel langer is dan de tijd, waarin de uitgang van de primaire processor zou kunnen falen.
Wanneer men bijvoorbeeld een basiscyclus beschouwt die voor zijn uitvoering één seconde nodig heeft, 30 kan de werking van de basiscyclus niet vaker dan eenmaal per seconde onderzocht worden. Anderzijds kan het geval beschouwd worden dat de tijd waarbinnen de uitgang van de primaire processor onderzocht moet worden ten minste eenmaal in elke 300 milliseconden is om te waarborgen dat hij op de juiste wijze de waarde weergeeft, die aan die uitgang door de primaire processor is toegevoegd. Het is dan direct duidelijk dat er een vraag kan zijn naar frequenter testen, ten minste voor zover het de uitgang van de primaire 35 processor betreft, dan mogelijk is indien het testen slechts eenmaal in elke basiscyclus wordt uitgevoerd.
Omdat verder de veiligheid waarborgende logica moet worden toegepast op een ruime variëteit van basiscycli, in het bijzonder degene die het gamma bestrijken van betrekkelijk eenvoudige tot aanmerkelijk complexe logica, zal het eveneens duidelijk zijn, dat het aantal testwoorden, dat nodig is om de vlekkeloosheid van de uitvoering van basiscyclus naar voren te brengen, eveneens zeer ruim kan variëren. Het ligt 40 bijvoorbeeld geheel niet buiten de reële mogelijkheden ervan uit te gaan dat sommige basiscycli 50 testwoorden zullen vormen, terwijl andere er tot 1000 of meer zullen vormen. Bovendien moet de uitgang van de vitale aandrijfinrichting onderscheidend zijn en van zodanige aard, dat zij slechts kan worden opgewekt ten gevolge van een reeks van betrekkelijk onwaarschijnlijke gebeurtenissen, tenzij zowel de primaire processor als de vitale aandrijfinrichting beide hun programma’s zonder fout hebben uitgevoerd. De 45 uitgang van de vitale aandrijfinrichting (de toelatingsuitgang) kan een signaal zijn op een gespecificeerde frequentie, die wordt vastgesteld door de uitgang van een bepaald bit met een overeenkomende snelheid te wijzigen. Daarbij is het van belang dat geen afgestemde keten in de apparatuur is opgenomen, die in staat is de gespecificeerde frequentie op te wekken. Het opwekken van een vaste frequentieuitgang, die is gevormd uit een reeks van toestanden van een bepaald bit, wanneer de gegevens die nodig zijn voor het 50 vormen van die uitgang variëren van 50 tot 1000 of meer testwoorden, vormt evenwel een verder.
probleem. Een gedeelte van het probleem is het feit, dat processors niet in de reële tijd werken en in dit geval toch de vereiste uitgang tijdgevoelig is. Een ander deel van het probleem is de wens de toelatingsuitgang van de vitale aandrijfinrichting uniform te laten zijn. Bijgevolg wordt het probleem verband met hoe een bepaalde tijdgevoelige toelatingsuitgang opgewekt kan worden ten gevolge van de herhaalde ontvangst 55 van een groep van testwoorden, waarbij evenwel het aantal woorden in de groep binnen betrekkelijk ruime grenzen variabel moet zijn.
De uitvinding lost deze en daarmede verband houdende problemen op doordat de storingsveilige 3 193804 gegevensverwerkende inrichting volgens de aanhef zodanig is uitgevoerd, dat het bepaalde signaal een amplitude-gemoduleerde draaggolf is, waarin de draaggolffrequentie en de modulatiefrequentie de genoemde tijdgevoelige parameters zijn, en dat de programmamiddelen eerste programmasegmenten inhouden, die bij uitvoering door de processor variabele delen opwekken van het bepaalde signaal, en 5 tweede programmasegmenten, die bij uitvoering door de processor een vast deel van het bepaalde signaal opwekken, waarbij de programmamiddelen in de eerste programmasegmenten middelen bevatten voor het opwekken van een deel van het bepaalde signaal van een duur, bepaald door de testgegevens, die aan de middelen zijn doorgegeven, en waarbij de programmamiddelen in de tweede programmasegmenten middelen omvatten voor het opwekken van een deel van het bepaalde signaal van vaste duur en van 10 tevoren bepaalde amplitude.
Verdere kenmerken en aspecten van de uitvinding zullen duidelijk worden aan de hand een gedetailleerde beschrijving van voorkeursuitvoeringen met verwijzing naar de tekeningen, waarin gelijke verwijzingscijfers gelijke apparatuur aangeven, en waarin: 15 figuur 1 een blokschema is van de vitale aandrijfinrichting 15 en zijn samenwerking met een hoofdprocessor 10; figuren 2A-2C het formaat en de duur van de toelatingsuitgang op verschillende tijdschalen toelichten; figuur 3 een totaal afwikkelingsdiagram toont van het programma van de vitale aandrijfinrichting; figuren 4A en 4B een afwikkelingsdiagram tonen van programmasegmenten MNWRDS resp. NUMAIN; 20 figuur 5A een afwikkelingsschema is van het programmasegment EXECHK; figuur 5B een afwikkelingsschema is van het programmasegment TIMCHK; figuur 5C een afwikkelingsschema is van het programmasegment GETCHK; figuur 5D een afwikkelingsschema is van het programmasegment NUTIME; figuur 5E een afwikkelingsschema is van het programmasegment HICYCL; 25 figuur 5F een afwikkelingsschema is van het programmasegment NOCYCL; figuur 5G een afwikkelingsschema is van het programmasegment LOCYCL; en figuren 6A en 6B een programmasegment toelichten dat is aangeduid als SIGANL.
Figuur 1 is een blokschema van de vitale aandrijfinrichting 15 en zijn samenwerking met een onafhankelijk 30 werkende primaire processor 10 en enige van de ingangsuitgangsketens van de onafhankelijk werkende processor 10. Meer in het bijzonder heeft, zoals in figuur 1 is weergegeven, een primaire processor 10 een representatieve aan/uitaansluiting 11 en is voorzien van een adresverzamelgeleider MA en een gegevens-verzamelgeleider MD. De primaire processor 10 voert, gebaseerd op ingangen die er beschikbaar voor zijn via de aan/uit-aansluiting 11, de primaire functie uit door het uitvoeren van zijn basiscyclus op een 35 herhalingsbasis. Ten gevolge van het uitvoeren van de primaire functie bepaalt hij de toestand van de representatieve relaisspoel 12, die, zoals is weergegeven, bekrachtigd kan worden via een weg vanaf plus via het frontcontact 42 van een relais RR naar de aan/uit-aansluiting 11. Onder de in figuur 1 weergegeven omstandigheden kan het frontcontact 13 van de spoel 12 sluiten, waardoor spanning aan een uitgang wordt toegevoerd om het resultaat manifest te maken, dat op de aan/uit-aansluiting 11 is geleverd, wanneer de 40 bijzondere bitplaats, waarmede de relaisspoel 12 is verbonden, een lage spanning beschikbaar maakt (teneinde de stroom door de spoel te verlagen). Er wordt op gewezen dat het relais 12 (representatief voor alle andere uitgangen van de processor 10, die in staat zijn de buitenwereld te besturen) niet in staat is bekrachtigd te worden, tenzij het relais RR bekrachtigd is voor het sluiten van zijn frontcontact 42 voor het toevoeren van energie voor het op laten komen van relais 12 via de geleider 34. Het relais RR zelf wordt 45 via de afgestemde vitale aandrijfinrichting 33 bekrachtigd, wanneer de golfvormingang van de afgestemde vitale aandrijfinrichting 33 in overeenstemming is met de karakteristieken, die geëist worden door de afgestemde vitale aandrijfinrichting. Die golfvorm (de toelatingsuitgang) wordt toegevoerd door de R/S-flipflop 32, die op zijn beurt wordt aangedreven vanuit de uitgangsaansluiting 29 via de geleider 39. Indien dit gewenst is zal een paar aansluitingen 29 en 29’ de R/S-flipflop 32 kunnen aandrijven via geleiders 39 en 50 39’, aangezien de toestand van de aansluitingen 29 en 29’ complementair is. De uitgangsaansluiting 29 wordt bestuurd door de centrale rekeneenheid 20, die een hoofdbestanddeel van de vitale aandrijfinrichting 15 van figuur 1 uitmaakt. De vitale aandrijfinrichting 15 bevindt zich in het met stippellijnen aangegeven blok in figuur 1. Figuur 1 en de beschrijving zijn gericht op een uitvoeringsvorm, waarin de primaire processor 10 en de centrale rekeneenheid 20 zijn uitgevoerd als aparte inrichtingen. Huidige microprocessors zijn niet in 55 staat om met een enkele inrichting de functies te laten vervullen van zowel een kenmerkende primaire processor als een vitale aandrijfinrichting. Er is evenwel geen reden, waarom de beide functies niet vervuld kunnen worden door een enkele inrichting, zolang de inrichting voldoende snel is en of de functie van de 193804 4 primaire processor 10 voldoende eenvoudig is.
In een voorkeursuitvoering kan de centrale rekeneenheid 20 een Intel 8085 bevatten en de golfvorm waarop de vitale aandrijfinrichting 33 is afgestemd komt overeen met een amplitude-gemoduleerde draaggolf, met bijvoorbeeld een frequentie van 10 KHz, en amplitude-gemoduleerd tussen aan- en 5 uittoestanden met een frequentie van 500 Hz en een 50 %’s belastingscyclus.
Figuur 1 toont eveneens, dat de vitale aandrijfinrichting 15 een adresdecodeur 21, een programma-geheugen of ROM 22, en een gegevensgeheugen 27 of RAM bevat. Het gegevensgeheugen 27 is, aangezien het reageert op hetzij de primaire processor 10, hetzij de centrale rekeneenheid 20, via kiesorganen 26 en 28 gekoppeld met de adresverzamelleider van de centrale rekeneenheid 20 evenals met 10 de verzamelgeleider MA, de gegevensverzamelgeleider van de centrale rekeneenheid 20 en de verzamel-geleider MD.
Eveneens in de vitale aandrijfinrichting 15, die in figuur 1 is weergegeven, is een verzameling OF-poorten 23 opgenomen, waarvan de ingang wordt afgeleid van de uitgang van de adresdecodeur 21, en die een ingang levert voor een stopzet-door-een-foutketen 24, die is ingericht de bewerkingen van de centrale 15 rekeneenheid 20 stop te zetten na de weergave op de OF-poorten 23 van gespecificeerde ingangsadressen (in het bijzonder enig adres uit het bereik van ROM 22 of RAM 27) , waarvan het doel in het volgende beschreven zal worden. Een terugstelketen 31 is met een andere uitgang van de aansluiting 29 verbonden en op zijn beurt gekoppeld met een terugstelingang van de centrale rekeneenheid 20, voor het terugstellen van de centrale rekeneenheid 20 bij het ontbreken van een trekkersignaal, dat ontvangen wordt met een 20 periodieke herhalingssnelheid op de ingangsklem van de terugstelketen 31.
Een gegevensvlag voor de centrale rekeneenheid 20 is via de geleider 37 met een ingangsaansluiting 30 gekoppeld, waarvan de ingang ontvangen wordt vanuit de primaire processor 10 en aangeeft dat test-woorden vanuit de primaire processor 10 gereed zijn voor gebruik door de centrale rekeneenheid 20 (dat wil zeggen in het gegevensgeheugen 27). De uitgangsaansluiting 29 levert een verdere uitgang via de geleider 25 38 die een testwoordaanvraag aangeeft aan de hoofdprocessor 10. De omstandigheden waaronder signalen, die overeenstemmen met een testwoord een testwoord-gereedvlag vergen, worden gegenereerd, zullen in het volgende beschreven worden. Een polynoomdeler 45, die gebruikt kan worden voor het uitvoeren van CRC testen, die in het volgende beschreven worden, is eveneens weergegeven. Deze hardware is facultatief en kan vervangen worden door software-functies.
30 Ten slotte toont figuur 1 een onafhankelijke klok 41, die een deler 40 aandrijft, die een ingang levert aan een teller/tijdsbepalingseenheid 25, die een andere ingang vanuit een uitklokklem van de centrale rekeneenheid 20 ontvangt (de klok van de centrale rekeneenheid 20 is niet expliciet weergegeven). De teller/ tijdsbepalingseenheid 25 bevat een teller die in reactie op het klokuit-signaal vanuit de centrale rekeneenheid 20 telt. Dienovereenkomstig telt de teller in de teller/tijdbepalingseenheid 25 kloktoestanden van de 35 centrale rekeneenheid 20. De teller is via de centrale rekeneenheid 20 bestuurbaar, zodat hij van tevoren kan worden ingesteld. Verder kan de centrale rekeneenheid 20 op elk ogenblik de toestand van de teller aflezen. De teller wordt gebruikt om te verifiëren, dat elke modulatiecyclus van de toelatingsuitgang overeenstemt met een van tevoren bepaalde toestandstelling, zoals in het volgende zal worden beschreven. De teller/tijdbepalingseenheid 25 bevat eveneens een tijdbepalingseenheid, die reageert op de uitgang van 40 de deler 40 die zelf wordt aangedreven door de onafhankelijke klok 41. Het tijdbepalingsdeel van de teller/tijdbepalingseenheid 25 wordt eveneens door de centrale rekeneenheid 20 bestuurt, zodat de tijdbepalingseenheid, wanneer dit gewenst is, kan worden teruggesteld. Verder kan de centrale rekeneenheid 20 op elk ogenblik de toestand aflezen van de tijdbepalingseenheid op een in het volgende te beschrijven wijze. De toestand van de tijdbepalingseenheid wordt gebruikt om te verifiëren, dat een 45 willekeurige bepaalde hertesttijd in feite de daartoe geëigende tijd gebruikte (in een voorbeeld 50 milliseconden). Hoewel de aanduidingen ’’teller” en ’’tijdbepalingseenheid” gebruikt zijn, zal het duidelijk zijn dat zij beide kunnen zijn uitgevoerd als tellers, waarbij de ’’teller” de kloktoestanden van de centrale rekeneenheid 20 telt, terwijl de ’’tijdbepalingseenheid" de toestanden telt van de gedeelde uitgang van klok 41.
Alvorens meer in bijzonderheden de werking van de componenten die in figuur 1 zijn weergegeven, te 50 beschrijven, wordt verwezen naar figuren 2A-2C om een tijdhierarchie toe te lichten en de wijze waarop de toelatingsuitgang wordt verschaft door de uitgangsaansluiting 29 en gebruikt via de afgestemde vitale aandrijfinrichting 33 voor het aanhouden van het relais RR. Meer in het bijzonder is de basistijdeenheid in de vitale aandrijfinrichting een kloktoestand van de processor, bijvoorbeeld in een uitvoeringsvorm 0,4 microseconden. De vitale aandrijfinrichting 15 wekt bij het uitvoeren van zijn programma een draaggolf-55 periode op van bijvoorbeeld 100 microseconden in 250 kloktoestanden. Een opeenvolging van modulatie aan en modulatie uit, 1 milliseconde voor elk, wekt een modulatiecyclus met een duur van 2 milliseconden op, die overeenstemt met een modulatiefrequentie van 500 Hz. Zoals nog beschreven zal worden kan een 5 193804 paar testwoorden van 16 bits (of een andere geschikte bitlengte) een programmasegrnent uitkiezen voor het opwekken van een modulatiecyclus (2 ms), of één of meer draaggolfcycli (hetzij draaggolf aan, hetzij draaggolf uit, van een duur van 100 usee x N, waarin N een geheel getal is van 1 tot 10). Een tabel of groep van hertestwoorden wekt een uitgekozen aantal modulatiecycli op voor het vormen van een gewenste 5 hertesttijd. De hertesttijd wordt gedeeltelijk bepaald door het aantal hertest-testwoorden in de groep of tabel. Een hertesttijd is een geheel aantal modulatiecycli (bijvoorbeeld 25).
Figuur 2B toont een hertesttijd RT als zich uitbreidend tussen de ontvangst van een eerste groep van hertestwoorden op het tijdstip T, tot op een tijdstip T2 waarop een tweede groep of tabel van hertestwoorden wordt ontvangen. Op gewenste wijze is de hertesttijd samengesteld uit een vast (maar kiesbaar) 10 aantal modulatiecycli, waarbij elke modulatiecyclus kan overeenstemmen met 2 milliseconden. Aangezien de hertestwoorden, die op Tn zijn ontvangen, een vast aantal modulatiecycli van de toelatingsuitgang toestaan, moet de tweede groep van hertestwoorden binnen deze tijd ontvangen worden of de toelatingsuitgang wordt beëindigd. Men zal bijgevolg inzien, dat de tijdschalen van figuur 2A en 2B op beduidende wijze verschillen.
15 Ten slotte toont figuur 2C dat een aanhoudingstijd is samengesteld uit een opeenvolging van hertest-tijden RT, waarbij het aantal hertesttijden, dat zich in een aanhoudingstijd bevindt, gedeeltelijk bepaald wordt door het aantal hoofdtestwoorden, dat in feite bij bijvoorbeeld T3 wordt ontvangen. Dienovereenkomstig wordt op het tijdstip T3 een groep van hoofdtestwoorden ontvangen. Dit vormt op voorwaardelijke wijze de aanhoudingstijd, waarbij evenwel elke hertesttijd de ontvangst vergt van een nieuwe groep van 20 hertestwoorden. Dienovereenkomstig kan de aanhoudingstijd worden uitgekozen als de tijd die nodig is voor de primaire processor 10 voor het uitvoeren van een basiscyclus, dat wil zeggen de tijd die nodig is om de primaire processor 10 te laten reageren op zijn ingangen en bijgewerkte waarden te bepalen die aan zijn uitgangen moeten worden toegevoegd. Zolang de groep hertestwoorden ontvangen wordt met de geëigende snelheid, en in het geëigende aantal, daarbij de geëigende waarden heeft, zal het geëigende aantal 25 hertesttijden worden gegenereerd. Gedurende de loop van elke hertesttijd maakt de uitgangsaansluiting 29 via de geleider 39 de golfvorm beschikbaar, die in figuur 2A is weergegeven (de toelatingsuitgang van de vitale aandrijfinrichting) hetgeen de geëigende uitgangsspanning (toelatingssignaal) opwekt vanuit de afgestemde vitale aandrijfinrichting 33 om het relais RR bekrachtigd te houden. Op gewenste wijze wordt de hertesttijd gekozen als de tijd waarbinnen de uitgangen van de primaire processor 10 geverifieerd moeten 30 worden (om bijvoorbeeld een falende uitgangsketen te detecteren). Zoals in het bovenstaande vermeld staat dit vermogen vrij de aanhoudingstijd en de hertesttijd te kiezen toe de uitgangsketens van de primaire processor 10 te testen met een frequentere tussenpoos dan de tijd die nodig is om de primaire processor 10 zijn basiscyclus te laten uitvoeren.
Dienovereenkomstig, onder herverwijzing naar figuur 1 laat het programma (in het ROM 22), wanneer 35 een groep hoofdtestwoorden beschikbaar is voor de centrale rekeneenheid 20 (ondergebracht in het gegevensgeheugen 27) de microprocessor 20 de hoofdtestwoorden op juistheid onderzoeken en bepaalt uit het aantal testwoorden een (voorwaardelijke) aanhoudingstijd. Bovendien wordt een enkele hertesttijd toegestaan door de eerste groep of tabel van hoofdtestwoorden, aangezien een tabel van hoofdtestwoorden tegelijkertijd wordt gevonden. Dienovereenkomstig zijn, gedurende de duur van deze hertesttijd, de hoofd-40 en de hertesttestwoorden getest en vernietigd. Wanneer men aanneemt dat de woorden geëigend waren, wordt de toelatingsuitgang die in figuur 2A is weergegeven gedurende een vaste tijd gegenereerd, de hertesttijd gedurende het testen en vernietigen van de hertest-testwoorden. Dankzij de flexibiliteit van de inrichting kan de hertesttijd worden opgewekt uit een stel woorden van een ruim verschillend aantal. Vervolgens, bij het beëindigen van de eerste hertesttijd en in de veronderstelling dat aanvullende hertest-45 woorden beschikbaar zijn, worden deze getest en vernietigd, hetgeen zoveel tijd gebruikt als leidt tot het opwekken van het uitgangssignaal gedurende een aanvullende hertesttijd. Zolang voortgaande groepen hertestwoorden beschikbaar zijn, wordt het proces voortgezet gedurende de duur van de aanvankelijk toegestane aanhoudingstijd. Bij het beëindigen van de aanvankelijk toegestane aanhoudingstijd moet een aanvullende groep hoofdtestwoorden beschikbaar zijn omdat anders de opwekking van de toelatingsuitgang 50 en het toelatingssignaal beëindigd wordt.
De basiscyclus, die in de primaire processor 10 wordt uitgevoerd, kan een aantal testwoorden binnen ruime grenzen genereren, bijvoorbeeld van 25 tot zoveel als 1000 of meer.
De hertest- en aanhoudingstijden kunnen worden opgevat als onafhankelijke variabelen, zolang het aantal hoofdtestwoorden het noodzakelijke aantal hertesttijden toestaat. Bovendien heeft de vitale aandrijf-55 inrichting geen a priori kennis van hetzij de aanhoudings- hetzij de hertesttijd en bijgevolg kan de primaire processor elk van deze parameters veranderen door geschikte wijziging in het aantal en/of de inhoud van de testwoorden.
193804 6
Zoals is aangegeven is de tijd in een hiërarchie ingedeeld, die is weergegeven in figuren 2A - 2C. Significante perioden zijn de modulatiecyclus (een geheel aantal B draaggolfcycli) en de hertesttijd (een geheel aantal A modulatiecycli). De gehele getallen A en B zijn volledig onafhankelijk. Bovendien is het aantal testwoorden, dat nodig is voor het opwekken van de modulatiecyclus eveneens een onafhankelijke 5 variabele. Het testen gebeurt op een aantal niveaus. Eerst moet uiteraard elk testwoord de verwachte waarde hebben of het is onwerkzaam, dat wil zeggen zal geen resultaat veroorzaken dat door dat testwoord moest worden veroorzaakt. Bovendien verbreekt, aangezien het gehele programma is samengesteld uit opeenvolgende programmasegmenten, het verlies van een enkel testwoord de keten en zal met grote waarschijnlijkheid leiden tot het stopzetten van de vitale aandrijfinrichting 15. Op een tweede niveau wordt 70 de duur van elke modulatie-cyclus getest tegen de toestand van de teller, die een verwachte waarde moet vertonen. In de derde plaats wordt elke hertesttijd eveneens getest tegen een onafhankelijke tijdsbepaling-sinrichting en weer moet het verband het verwachte zijn. Wanneer de vitale aandrijfinrichting 15 het eerst bekrachtigd wordt of is teruggesteld, wordt de vitale vertraging gegenereerd, die een periode is gedurende welke er geen uitgang beschikbaar is. Deze vertragingstijd kan worden gespecificeerd als een willekeurig 15 aantal seconden, bijvoorbeeld 1 seconde. Bij de beëindiging van de vertraging wordt een vlag naar de primaire processor gezonden, bijvoorbeeld een vraag om een testwoord. Het doel van de vertraging is te waarborgen dat alle signaalinrichtingen, bijvoorbeeld een relais 12, die met de uitgangen van de primaire processor 10 verbonden zijn, de tijd hebben af te vallen voordat het stelsel zijn werking herneemt nadat het om enigerlei reden is stopgezet.
20 Zoals in het volgende beschreven zal worden, wordt de vitale vertraging uitgevoerd door een vitale tijdbepalingsroutine. De uitgang is een tak van een adres, berekend uit de toestanden van vitale telregisters op het tijdstip van de uitgang.
Zoals beschreven werken de primaire processor 10 en de centrale rekeneenheid 20 van de vitale aandrijfinrichting 15 onafhankelijk. Anderzijds moet de vitale aandrijfinrichting 15 groepen hertestwoorden op 25 het geschikte tijdstip ontvangen teneinde de toelatingsuitgang te handhaven. De primaire processor 10 slaat de eerste tabel (hoofd en hertestj-testwoorden in het gegevensgeheugen 27 op zodra hij deze heeft gegenereerd. Daaropvolgende tabellen van hertest-testwoorden worden in het geheugen 27 gebracht met regelmatige tussenpozen, die bepaald worden door de hertesttijden van de primaire processor 10. De vitale aandrijfinrichting 15 voert een programmasegment GETCHK uit, wanneer nieuwe testwoorden verwacht 30 worden. Er wordt een klein aantal modulatiecycli door dit programma segment gegenereerd, op kenmerkende wijze vier draaggolfcycli, uitgekozen door de primaire processor door geschikte waarden toe te wijzen aan twee parameters, die zijn doorgegeven gezamenlijk met de hoofdtestwoorden. Het gegevensgeheugen 27 wordt gedurende de uitvoering van GETCHK niet gebruikt, en is bijgevolg beschikbaar voor de primaire processor 10 om tabellen testwoorden in te voeren. Wanneer de testwoorden zijn ingevoerd, wordt de 35 uitvoering van dit programmasegment beëindigd, wanneer de volgende modulatiecyclus beëindigd is. Indien het verschil in frequentie tussen de primaire processor 10 en de vitale aandrijfinrichtingklok er de oorzaak van is dat de twee processors met 2 milliseconden uit de pas zijn, stelt de vitale aandrijfinrichting 15 zijn fase in over dit bedrag door één modulatiecyclus toe te voegen of weg te laten. Indien de vitale aandrijfinrichting 15 en de primaire processor 10 volledig hun synchronisatie verliezen, houdt de vitale aandrijf-40 inrichting 15 op met het opwekken van de toelatingsuitgang. Wanneer de processor 20 terugstelt initieert de vitale aandrijfinrichting 15 het vitale startrelais, hetgeen waarborgt dat de uitgangen van de hoofdprocessor 10, bijvoorbeeld relais 12, opgeheven worden of afvallen.
De software (of firmaware) die de stappen beëindigt, die door de vitale aandrijfinrichting 15 worden uitgevoerd (en in het bijzonder de centrale rekeneenheid 20 daarvan) zijn meer in bijzonderheden in figuren 45 3, 4A-4B, 5A-5J, en 6A en 6B weergegeven.
Eerst wordt naar figuur 3 verwezen waarin een overzicht van de verwerking is weergegeven. Zoals in figuur 3 is aangegeven worden drie segmenten, vertraging 100 (om de vitale startvertraging te leveren) MNWRDS/NUMAIN 300 (om in te werken op hoofdtestwoorden) en EXECHK 200 (voor het uitvoeren van een test van een hertestwoord) gevolgd door een sprong naar één uit vier specifieke segmenten of naar 50 een tussengelegen plaats. De sprong naar enige van de vier specifieke elementen (TIMCHK, HICYCL, NOCYCL or LOCYCL) wordt bepaald door het testwoord, dat wordt gevormd door uitvoering van EXECHK. Indien het testwoord waar op deze wijze toegang toe is verkregen, niet overeenstemt met één van de specifieke segmenten, wordt een halttoestand ingevoerd, die na een vaste tijdsperiode leidt tot een terugstelling, zoals in figuur 3 is weergegeven. Een wachtlus (functie 400) wordt geleverd om de tijd te 55 markeren (met geen significante uitgang) totdat de primaire processor aangeeft dat een tabel van hoofdtestwoorden gereed is. De MNWRDS/NUMAIN verwerking test onmiddellijk de tabel van hoofdtestwoorden, door hen te lezen en te vernietigen. Zoals in het onderstaande is beschreven vergt het leesproces, dat in de 7 193804 juiste opeenvolging toegang wordt verkregen tot de hoofdtestwoorden, en dat zij het juiste verband hebben met eerder gebruikte testwoorden. Het leesproces bouwt een tekentabel op die gebruikt zal worden voor het toelaten van elke hertesttijd en wel één teken per hertesttijd.
Na NUMAIN neemt EXECHK over en leest het eerste hertestwoord, weer op zodanige wijze dat het 5 vernietigd wordt. De lezing van het hertestwoord is zodanig ingericht, dat in de juiste opeenvolging toegang wordt verkregen tot de hertestwoorden. Een hertestwoord (indien geschikt) kan de verwerking richten naar één van NOCYCL, HICYCL, of LOCYCL. Elk segment gebruikt een tweede hertestwoord en in het proces een tijdshoeveelheid. HICYCL en NOCYCL zijn complementair, doordat elk van hen een hoeveelheid tijd gebruikt, die gelijk is aan de helft van een draaggolfperiode, waarbij HYCYCL een aanuitgang (draaggolf 10 aan), en NOCYCL een uituitgang (draaggolf uit) opwekken. EXECHK is ingericht een periode gelijk aan een halve draaggolfperiode te gebruiken zodat de combinatie van EXECHK en hetzij HICYCL of NOCYCL een volledige draaggolfperiode gebruikt. LOCYCL gebruikt een tijd die bepaald wordt door de waarde van het hertestwoord. Elk hertestwoord (indien correct) brengt de verwerking terug naar EXECHK. TIMCHK wordt opgeroepen door EXECHK bij het einde van elke modulatiecyclus voor het testen van het aantal toestand-15 stellingen. Weer wordt de tijd die gebruikt wordt door TIMCHK (en EXECHK) ingericht van tevoren bepaald te zijn zodat het patroon van de uitgang vastligt. Dit gaat zo voort tot het einde van een hertesttijd waarin EXECHK, GETCHK oproept. GETCHK is ingericht een korte tijdsperiode te markeren (onder het opwekken van een vitale uitgang) totdat de volgende tabel van hertestwoorden beschikbaar is. De combinatie van EXECHK en GETCHK wordt ingericht een gelijk aantal perioden draaggolf aan en draaggolf uit te gebrul· 20 ken. Aan het einde van een onderhoudingstijd worden nieuwe hertesttabellen ingevoerd en wordt het proces herhaald. Het testen wordt uitgevoerd door de resultaten ’die geleverd worden door de testwoorden, hetgeen betekent dat het opwekken van een uitgang met een gespecificeerd tijdgevoelig patroon slechts kan gebeuren indien de verwachte testwoorden ontvangen worden. De verkeerde testwoorden zullen er de oorzaak van zijn dat het uitgangspatroon afwijkt van het beoogde patroon, hetgeen gedetecteerd zal worden 25 door de dubbelafgestemde keten. Deze werking is vele malen veiliger dan alleen vergelijken van testwoorden met een opgeslagen tabel van ’’goede” antwoorden, zoals duidelijk zal zijn.
Zoals in figuur 3 is weergegeven, wordt, na de startvertraging, zie functie 100, de testwoordgereedvlag getest (zie figuur 3) in de functie 400. Wanneer de testwoorden ingevoerd worden in het gegevensgeheugen 27 door de primaire processor, wordt de test doorstaan en de functie 300 uitgevoerd. Dit is in bijzonderhe-30 den in figuur 4A beschreven.
Alvorens naar figuur 4A te verwijzen zal evenwel de inhoud van de hoofd- en hertestwoordtabellen worden beschreven. De hoofdtesttabel wordt ingevoerd in RAM 27 door de primaire processor 10 bij het einde van elke basiscyclus. De hoofdtestwoordtabel heeft een label, die een hoofdtestwoordtabel identificeert en twee verdere delen, waarvan een eerste een variabele lengte heeft en een variabel aantal 35 hoofdtestwoordparen bevat. Het aantal hoofdtestwoorden of hoofdtestwoordparen bepaalt het aantal hertesttijden, dat voorwaardelijk toegestaan wordt door de hoofdtestwoordtabel, waarbij een hoofdtestwoord-paar nodig is voor elke hertesttijd die op de eerste volgt.
Het lezen en testen van testwoorden (hetzij hoofd hetzij hertest) gaat zodanig verder dat geverifieerd wordt, dat de woorden zijn toegelaten in de juiste opeenvolging. Bij het starten (of na terugstellen) worden 40 bepaalde initialiseringsgegevens (nog te beschrijven) gebruikt, en wel één stel voor hoofdtestwoorden en een ander stel voor hertest-testwoorden. Deze initialiseringsgegevens omvatten de parameters INCREMENT en Δ INCREMENT, DISPLACEMENT en Δ DISPLACEMENT. Deze parameters worden gebruikt op een wijze, die thans zal worden toegelicht, om te waarborgen dat de testwoorden, waartoe het vitale aandrijfinrichtingsprogramma toegang verkreeg, daaraan in de juiste opeenvolging worden onderworpen. De 45 testwoorden (zowel de hoofd- als de hertest-testwoorden) die in RAM 27 zijn ingevoerd door de primaire processor 10 zijn niet de testwoorden, die de juiste werking van de vitale aandrijf in richting 15 zullen bewerkstelligen, omdat de vitale aandrijfinrichting 15 de testwoorden moet wijzigen voor zij geëigend zullen zijn. Aangezien, zoals nog beschreven zal worden, de wijziging niet constant is, moet toegang tot de testwoorden verkregen worden in de juiste opeenvolging voor het oproepen van het verwachte resultaat. De 50 wijziging bestaat uit het toevoegen van een waarde OFFSET aan elk testwoord. De waarde OFFSET verandert elke keer dat hij wordt gebruikt en de mate waarin hij verandert is de waarde INCREMENT. De vitale aandrijfinrichting 15 heeft geen a priori kennis van OFFSET of INCREMENT. Deze worden daarentegen op een nog te beschrijven wijze opgebouwd.
Bij het starten van het stelsel of bij terugstelling wordt een waarde OFFSET afgeleid door het sommeren 55 van INCREMENT en DISPLACEMENT. Het resultaat is OFFSET. Aangezien OFFSET voortdurend verandert zal een bijzondere waarde van deze grootheid als OFFSET (X,Y) worden geïdentificeerd, waarin X de hertesttijd identificeert, waarin de grootheid wordt gebruikt (bijvoorbeeld X is 1 in de eerste hertesttijd, 193804 8 2 in de tweede enz.) en Y het desbetreffende testwoord aangeeft in de opeenvolging van optredende testwoorden, met welke waarde het gebruikt wordt. Dienovereenkomstig heeft de vitale aandrijfinrichting direct na het afleiden van OFFSET in feite OFFSET (1,1) afgeleid. De vitale aandrijfinrichting wijzigt dan het eerste testwoord door dit te sommeren met OFFSET (1,1) het plaatsen van de som, die nu het gewijzigde 5 testwoord is, in een interne register in de centrale rekeneenheid 20, en het herschrijven van het testwoord met de parameter INCREMENT. Dit vernietigt duidelijk het testwoord 1.
Voor toegang tot het volgende testwoord wordt verkregen, wordt de waarde OFFSET (1,1) gesommeerd met INCREMENT. INCREMENT is afgeleid van de plaats van testwoord 1 om te bewijzen dat het voorafgaande testwoord inderdaad vernietigd is. Deze som, OFFSET (1,2) wordt dan gesommeerd met testwoord 10 2 en het resultaat is het volgende gewijzigde testwoord, dat in de vitale aandrijfinrichting 15 gebruikt zal worden. De grootheid INCREMENT wordt nu overgeschreven op de plaats van het gegevensgeheugen 27 waarop het ongewijzigde testwoord 2 oorspronkelijk was opgeslagen, hetgeen dit testwoord vernietigt. Na volledige afwerking van de hoofdtestwoordtabel heeft de tabel elke van zijn testwoorden vervangen door de waarden INCREMENT.
15 De primaire processor 10 zo ingericht om de testwoorden op een complementaire wijze op te wekken. Dat wil zeggen dat in elke basiscyclus de testwoorden, die opgewekt worden in feite constant zijn (hetgeen wil zeggen dat zij niet van cyclus tot cyclus veranderen tenzij er een fout is). De primaire processor wijzigt evenwel elk checkwoord onder gebruikmaking van een wijzigende P-OFFSET hetgeen onafhankelijk wordt afgeleid door de primaire processor. Op deze wijze moet het onafhankelijke proces van het opwekken van 20 OFFSET (in de vitale aandrijfinrichting) en P-OFFSET (in de primaire processor) gelijk oplopend gebeuren en moeten de testwoorden die toegelaten worden in de vitale aandrijfinrichting in de correcte opeenvolging zijn om voort te gaan met de verwachte verwerking.
Er zijn vele rekenkundige technieken, die gebruikt zouden kunnen worden. Zo kan bijvoorbeeld de primaire processor 10 P-OFFSET aftrekken van elk testwoord. De vitale aandrijfinrichting zou dan OFFSET 25 bij elk testwoord kunnen optellen. Indien P-OFFSET gelijk is aan OFFSET dan zal het oorspronkelijke testwoord het resultaat zijn. In een uitvoeringsvorm die in feite geconstrueerd is, tellen de beide machines modulo 2 bit bij bit (waarbij de optelling voldoet aan de regel 1+1=0; 1+0=1 en 0+1=1).
De hoofdtestwoordtabel bevat eveneens twee aanvullende parameters CYCNBR en CYCTOT. Deze worden in het segment GETCHK gebruikt, dat in het volgende beschreven wordt, om een venster te 30 bepalen. Hét venster is de tijdsduur na beëindiging van de eerste aanhoudingstijd, gedurende welke een toelatingsuitgang wordt opgewekt bil het ontbreken van verdere testwoorden. Bij het einde van het venster eindigt de toelatingsuitgang bij het ontbreken van verdere testwoorden. Het zelfde type van venster wordt bij het einde van de hertesttijd voor hetzelfde doel gebruikt.
De primaire processor 10 voert een eerste tabel van hertest-testwoorden in tegelijkertijd met de invoering 35 van de hoofdfestwoorden. De hertest-testwoorden worden op dezelfde wijze gewijzigd, hoewel een ander stel parameters wordt gebruikt. Wanneer de volgende groep van hertest-testwoorden ontvangen is, is het de tweede groep van hertestwoorden die de tweede hertesttijd toestaat.
De vitale aandrijfinrichting 15 vergt OFFSET (2,1). Dit wordt tot stand gebracht door INCREMENT op te tellen bij Δ INCREMENT en de som als INCREMENT op te slaan, DISPLACEMENT en Δ DISPLACEMENT 40 op te tellen en het resultaat als DISPLACEMENT op te slaan. INCREMENT en DISPLACEMENT worden gesommeerd voor het vormen van OFFSET (2,1). Met de waarde van OFFSET (2,1) kan het eerste hertestwoord nu worden verkregen, gewijzigd en gebruikt. De verwerking gaat voort door voortdurend OFFSET (2,Y) te laten toenemen wanneer de verwerking door de hertesttabel heengaat. Elke nieuwe HERTESTWOORDTABEL wordt verwerkt door INCREMENT en DISPLACEMENT te vergroten met 45 Δ INCREMENT en Δ DISPLACEMENT waarbij de som gebruikt wordt voor het vormen van OFFSET (X,1).
In figuur 4A is de verwerking MNWRDS toegelicht. Functie 302 test de hoofdtestwoordtabellabel. De hoofdtestwoordtabel en de label worden ingelezen door de primaire processor 10. Eenmaal uitgelezen vertakt de functie 303 in afhankelijkheid van het resultaat van de test. Indien de test faalde gaat de verwerking terug naar de functie 400. Een faling in dit punt geeft in het algemeen aan, dat de hoofdtest-50 woordtabel nog niet is ingelezen en bijgevolg is wachten op de stap 400 aangewezen.
Anderzijds leest, indien de tabel in orde is, de functie 304 het eerste testwoord van een testwoordpaar en slaat het testwoord of een waarde die van het testwoord is afgeleid op als TOKEN OFFSET. Hoewel niet weergegeven in figuur 4A wordt het lezen van een testwoord (functie 304) uitgevoerd met de in het bovenstaande toegelichte stappen. Deze stappen zijn in het bijzonder in schema gebracht en besproken in 55 verband met EXECHK (zie figuur 5A) in het onderstaande.
De functie 305 ’’leest” het tweede testwoord van het eerste testwoordpaar (in dezelfde functie) en voert het in op een plaats TOKEN. Functie 306 telt TOKEN OFFSET (van de functie 304) bij de TOKEN en het 9 193804 resultaat wordt opgeslagen in TOKEN TABEL. Dienovereenkomstig vormen de functies 304-306 uit de hoofdtestwoordtabel een TOKEN TABEL en wel een ’’TOKEN” voor een paar testwoorden. Hoewel niet in figuur 4A weergegeven kan de verwerking sprongen in het programma omvatten, die gebaseerd zijn op het gebruik van trefwoorden of hun afgeleiden als adressen, zodat de verwerking niet voort zal gaan tenzij het 5 verwachte testwoord gevonden is of gevormd is bij het ’’lezen”. Elk TOKEN in de TOKEN TABEL zal een enkele hertesttijd toestaan. Functie 307 onderzoekt om te zien of het volgende testwoordpaar het laatste testwoordpaar is en indien dit niet het geval is worden de functies 304-306 herhaald voor elk ander woordpaar. Wanneer ai de woordparen verwerkt zijn, onderzoekt de functie 308 het TOKEN TABEL adres tegen het hoofdtestwoordtabeladres. Aangezien de TOKENS worden opgeteld in de TOKEN TABEL als een 10 functie van de hoofdtestwoorden in de hoofdtestwoordtabel, moet er een van tevoren bepaald verband bestaan tussen de omvang van de hoofdtestwoordtabel en de TOKEN TABEL. Functie 309 vertakt op basis van dit verband, indien incorrect heeft de aftakking plaats naar een incorrecte plaats hetgeen (direct of indirect) zal leiden tot een HALT toestand. Indien het verband correct is springt de verwerking over op NUMAIN.
15 NUMAIN is in figuur 48 weergegeven. Functie 310 voert een vertraging in de verwerking in voor het normaliseren van de programmauitvoeringstijd. NUMAIN die een onderhoudingstijd initieert, voert een functie uit die analoog is aan GETCHK bij het begin van een hertesttijd. De vertraging 310 wordt empirisch zodanig uitgekozen dat GETCHK en MNWRDS/NUMAIN verwerking ruw gesproken gelijke tijden vergen. Exacte gelijkheid wordt verkregen zelfs hoewel GETCHK een marge heeft van ongeveer één modulatie-20 cyclus (2 ms] door de mogelijkheid compenserende wijzigingen in de parameters aan te brengen. Een functie 311 begint een onderzoek van de duur van de laatste hertesttijd. Aangezien NUMAIN wordt verwerkt is de laatste hertesttijd van de onmiddellijk voorafgaande onderhoudingstijd net afgelopen. Daarom kan de toestand van de tijdbepalingsinrichting onderzocht worden om de lengte van de laatste hertesttijd te bepalen. Functie 311 leest de waarde van de tijdsbepalingsinrichting af. Functie 312 voegt een grootheid 25 REFRNC toe en telt die bij de waarde van de tijdbepalingsuitlezing bij 311. Functie 313 voegt een constante toe en behoudt de som. Functie 314 initialiseert met de tijdbepalingseenheid verband houdende grootheden PRESET en REFRNC (waarden die in de daarop volgende verwerkingen gebruikt zullen worden, zoals nog beschreven zal worden). Functie 315 voert aan de toestandsteller en tijdbepalingsinrichting (beide aanwezig in de teller/tijdbepalingsinrichting 25) de geïnitialiseerde constanten toe en staat hen toe verder te werken. 30 Functie 316 initialiseert DISPLACEMENT en INCREMENT (in het bovenstaande beschreven) voor het verwerken van hertest-testwoorden. Ten slotte vertakt de functie 317 naar een adres dat gedefinieerd wordt door SUM (gespaard bij functie 313). Aangezien deze SUM afhangt van de met de tijd verband houdende duuraflezing uit de tijdbepalingsinrichting in functie 311 wordt de aftakking naar EXECHK slechts uitgevoerd indien de tijdbepalingsinrichtingsaflezing de gewenste waarde heeft, dat wil zeggen dat de hertesttijdsduur 35 een geschikte was. Elk ander resultaat zal (direct of indirect) naar een HALT leiden.
De EXECHK verwerking is weergegeven in figuur 5A. Aangezien MNWRDS de hoofdtestwoorden vernietigd heeft, wordt deze verwerking uitgevoerd op het eerste stel hertestwoorden, dat de hoofdtestwoorden vergezelde. In daarop volgende hertesttijden worden slechts hertestwoorden ontvangen. De functie 501 ontvangt de grootheid INCREMENT vanuit de testwoordtabel (die werd geïnitialiseerd in de functie 40 316). Functie 502 telt INCREMENT op bij OFFSET (dat wil zeggen de OFFSET die over is na verwerking van de voorafgaande hertesttabel) en functie 503 houdt de bijgewerkte OFFSET vast. Functie 504 leest het volgende testwoord (dit maal het eerste hertestwoord) en vervangt het volgende testwoord door het nieuw geïnitialiseerde INCREMENT; dit vernietigt het testwoord in de testwoordtabel.
Het testwoord, dat aan de tabel ontleend wordt bij functie 504 wordt opgeteld bij OFFSET in de functie 45 505; dit is een gewijzigd testwoord, dat bij verdere verwerking gebruikt zal worden. Daarna springt de verwerking over op functie 500.
Onder terugverwijzing naar figuur 3 wordt opgemerkt, dat functie 500 een sprong is, die gebaseerd is op het testwoord (zoals gewijzigd bij functie 505). Het desbetreffende segment waar naar toe gesprongen wordt zal NOCYCL, HICYCL, LOCYCL, or TIMCHK zijn, gebaseerd op de volgende criteria. Onder korte 50 terugverwijzing naar figuur 28 zien we, dat elke hertesttijd een aantal modulatiecycli bevat en dat elke modulatiecyclus een periode bevat waarin de draaggolf nominaal aan is (gedurende dewelke het uitgangsbit afwisselend aan is gedurende 5 microseconden of 125 kloktoestanden en dan uit is gedurende een gelijke periode)en een 1 milliseconde durende duur, waarin de draaggolf uit is. Onder deze omstandigheden kan het eerste testwoord ons naar NOCYCL brengen aangezien zoals in het volgende beschreven zal worden, 55 de lopende NOCYCL het uitgangsbit niet waar maakt (overeenstemmend met de draaggolf aan). Normaal wordt de duur van elke modulatiecyclus bij het einde getest. De uitzondering vormt de eerste hertesttijd, waar uitsluitend enige parameters geïnitialiseerd worden, onder gebruikmaking van de NOCYCL ingang 193804 10 voor TIMCHK. De eerste modulatiecyclus start met TIMCHK, waarbij de periode die overeenstemt met een halve draaggolfcyclus gebruikt wordt door de voorafgaande uitvoering van EXECHK vastgezet op de laatste modulatiecyclus.
TIMCHK is ontworpen om een vaste tijd te gebruiken, die overeenstemt met een vast aantal draaggolf-5 cycli, bijvoorbeeld 3 tot 6 (of 6 tot 12 halve cycli). De eerste functie, 320, test de toestandstelling. De toestandstelling wordt weergegeven in de toestand van de teller in de teller/tijdbepalingsinrichting 25 (zie figuur 1). Om te waarborgen, dat een vaste fouttoestand niet kan leiden tot het doorlaten van de toestand-stellingstest worden twee grootheden in samenwerking gebruikt: REFERENCE en PRESET. In het algemeen wordt de toestandsteller teruggesteld met een of andere grootheid (PRESET) en telt hij klok-10 toestanden van de processor 20 tot hij wordt afgelezen. De kloktelling wordt opgeteld bij een verdere grootheid: REFERENCE. De som wordt als een aftakkingsadres gebruikt. Om te waarborgen dat een toestandsteller die bij een bepaalde telling is blijven steken of ketens, die een statische grootheid opwekken voor elke keer dat de toestandsteller wordt afgelezen (ongeacht de eigenlijke telling) de test niet kunnen passeren, worden de grootheden PRESET en REFERENCE zodanig gemanipuleerd, dat hoewel de 15 feitelijke verandering van de toestandstelling constant is, de begin (en daardoor de eind)-waarden verschillend zien. In de voorbeelden die in figuur 58 zijn getoond, wordt PRESET elke keer verkleind dat de routine wordt uitgevoerd. De grootheid REFERENCE wordt vergroot. Onder deze omstandigheden wordt de toestandsteller, nadat die van tevoren is ingesteld, teruggeteld vanaf een begin (of voorinstelling) tot een eindwaarde. Deze eindwaarde wordt opgeteld bij de vergrote grootheid reference en elke keer zal de som 20 constant zijn, wanneer de toestandsteller met een vast aantal toestanden veranderde. De vakman zal gemakkelijk begrijpen, dat andere combinaties voor het manipuleren van PRESET en REFERENCE en tellen of aftellen gebruikt kunnen worden om hetzelfde resultaat te verkrijgen. De functie 321 vertakt op de som indien deze de verwachte waarde heeft, waarna de verwerking opgepikt wordt bij de functie 323. Elke andere gebeurtenis veroorzaakt een HALT, hetzij onmiddellijk hetzij na enige onbepaalde verwerking.
25 Functie 323 beëindigt de toestandstellingsverwerking door de grootheid PRESET te verkleinen en de toestandsteller te vullen. (Dit is eveneens het initiële ingangspunt NOCHEK).
Functie 324 onttrekt dan het volgende testwoord en voert er een aftakking op uit. Functie 324 bevat in feite de functies 501-505 (zie figuur 5A) nl. dat het testwoord uit deze tabel gewijzigd wordt, bewaard en het oorspronkelijke testwoord vernietigd.
30 Het volgende testwoord (zoals in functie 324 gewijzigd) kan één uit de vier aftakkingen veroorzaken, afhankelijk van de waarde van het woord. Testwoord ADDOO zal bijvoorbeeld de verwerking terugsturen naar EXECHK. Anderzijds en voortgaande met het beschreven voorbeeld, waarin 20 halve draaggolfcycli nodig waren op gelijk te zijn aan een halve modulatiecyclus, wordt verondersteld dat TIMCHK 6-12 halve cycli van de draaggolf heeft gevormd, en wenst men het draaggolf-ontbrekende deel van de modulatiecyclus 35 te beëindigen door toevoeging van meer cycli met de draaggolf ontbrekend. Dit kan tot stand worden gebracht door meer testwoorden en NOCYCL te gebruiken. Nadat de helft van de modulatiecyclus met de draaggolf uit is afgelopen, dient een afwisselende draaggolf aan en uit met halve cycli verkregen te worden. Dit wordt verkregen door afwisselend EXECHK en HICYCL uit te voeren (halve draaggolfcyclus voor elk).
Dit zal gevolgd worden door TIMCHK en het weer testen van de duur van de modulatiecyclus.
40 Wanneer het einde van de hertesttijd genaderd wordt zal het laatste hertestwoord CHKWRDS zijn. Indien het testwoord dat in de functie 324 gelezen wordt, overeenstemt met CHKWDS (aanduiding dat de hertesttijd beëindigd is) dan springt de verwerking over op functie 326. Functie 326 geeft toegang tot het volgende testwoordteken. Dit zal specificeren of er een beëindigde hertesttijd was of een onderhoudstijd. In beide gevallen wordt functie 327 uitgevoerd om de grootheden CYCNBR en CYCTOT te ontdekken, 45 hetgeen een tijdmaat aangeeft voor een ontvangen venster. Daarna wordt GETCHK uitgevoerd. Zoals in het volgende zal blijken levert GETCHK twee functies. Het levert de toelatingsuitgang voor en van tevoren bepaalde tijdsperiode, bepaald door de parameters CYCNBR en CYCTOT. Indien op enig tijdstip gedurende dit ontvangende venster de primaire processor 10 aangeeft dat de checkwoorden zijn toegevoerd, is de modulatiecyclus, die gaande is beëindigd en wordt het ontvangende venster op dit punt kortgesloten en 50 wordt een nieuwe hertest of onderhoudingstijd begonnen. Het ontvangende venster verschaft enige elasticiteit voor het absorberen van kleine hoeveelheden slip in de tijd tussen de vitale aandrijfinrichting 15 en de primaire processor 10. Indien het ontvangende venster afloopt zonder ontvangst van testwoorden, wordt de toelatingsuitgang beëindigd en gaat de vitale aandrijfinrichting 15 naar een wachtlus, voor het afwachten van de testwoorden. GETCHK zal in bijzonderheden in verband met figuur 5C beschreven 55 worden.
Teneinde de modulaire aard van deze verwerking aan te tonen wordt thans eerst verwezen naar de basiselementen HICYCL en de complementaire NOCYCL. HICYCL is in figuur 5E weergegeven. De eerste 11 193804 functie, functie 381 zet het uitgangsbit aan. Functies 382-385 zijn analoog aan de EXECHK functies 501-505. Ten slotte heeft, indien het testwoord gewijzigd is in functie 385 en de verwachte waarde geeft, de sprong plaats naar EXECHK via functie 386, die het uitgangsbit uitzet. Uitvoeringen van HICYCL en EXECHK gebruiken elk een periode van een halve draaggolfcyclus. Door aaneenschakeling van HICYCL en 5 EXECHK de een na de ander wordt het effect verkregen van een enkele draaggolfcyclus (draaggolf aan). Thans wordt verwezen naar figuur 5F - NOCYCL. De functies 371-374 zijn identiek aan de functies 382-385 (figuur 5E) en 501-505 (figuur 5A) en gebruiken bijgevolg een equivalente hoeveelheid verwerkingstijd. Aangezien er geen functie in NOCYCL aanwezig is die overeenstemt met de functies 381 en 386, blijft het uitgangsbit uit wanneer NOCYCL wordt verwerkt. Dienovereenkomstig door aaneenschakeling van 10 NOCYCL en EXECHK wordt een periode van één draaggolfcyclus gebruikt (draaggolf uit). Aangezien de sprong van EXECHK naar hetzij HICYCL of NOCYCL evenals de sprongen van HICYCL of NOCYCL terug naar EXECHK alle afhangen van de waarde van het testwoord (zoals dat gewijzigd is) zullen deze segmenten worden uitgevoerd en verbonden slechts indien de oorspronkelijke testwoorden de verwachte waarde hebben en indien zij in de juiste opeenvolging worden toegevoerd. Indien het programma van de 15 vitale aandrijfinrichting geen andere basisuitgangsbitmanipulatieroutine zou hebben dan EXECHK, NOCYCL en HICYCL, zou de toelatingsuitgang slechts kunnen worden opgewekt door een rigoureus evenredig aantal testwoorden en het is uiteraard een doel van de onderhavige uitvinding de toelatingsuitgang op te wekken met een variabel aantal testwoorden. Dit vermogen wordt door LOCYCL verschaft.
Thans wordt verwezen naar figuur 5G.
20 Zoals in figuur 5G is weergegeven, heeft LOCYCL twee ingangspunten, het ingangspunt bij functie 361 direct van EXECHK (zoals beschreven zal worden), en het ingangspunt vanuit functie 325 (figuur 58) dat zich bij functie 366 bevindt. Functie 366 wekt de draaggolf aan en uit cycli op die afgeleid worden van het testwoord, dat ontleend is aan de hertestwoordtabel. Van functie 366 gaat de verwerking terug naar EXECHK bij functie 506. Functies 361-365 zijn analoog aan de functies die besproken zijn naar aanleiding 25 van HICYCL, NOCYCL en EXECHK. De aanwezigheid van functies 366 en 369 geeft evenwel de mogelijkheid een variabel aantal cycli met de draaggolf aan (functie 366) en een variabel aantal cycli met de draaggolf uit (functie 369) op te wekken uit de waarden van het testwoord. Functie 366 vult een register met het gewenste aantal cycli met de draaggolf aan, stelt het uitgangsbit in en geeft de tijdmeting van een halve draaggolfcyclus, verandert het uitgangsbit van aan in uit, meet dan een verdere halve draaggolfcyclus, 30 verlaagt het register, en, ingeval van de waarde niet-nul worden deze stappen herhaald tot het register volledig is teruggeteld. Functie 369 is analoog met dit verschil dat het uitgangsbit uit wordt gehouden gedurende de gehele werking. Deze functies geven de mogelijkheid een variabel aantal draaggolfcycli te verkrijgen uit een vast aantal testwoorden. Er wordt op gewezen, dat NOCYCL in de functie 366 kan worden ingebracht vanuit TIMCHK zodat het geen aanvullend testwoord gebruikt, hetgeen wel het geval zou 35 zijn indien de functies 362-365 werden uitgevoerd. De invloed van functies 367, 368 en de aftakking naar SIGANL zullen in het volgende besproken worden.
Ten slotte wordt weer naar figuur 5G verwezen en in herinnering geroepen dat de functies 367, 368 en SIGANL nog niet besproken zijn.
Wanneer LOCYCL wordt ingevoerd vanuit TIMCHK stelt de laatste functie in TIMCHK (functie 325) een 40 vlag in. Na het opwekken van het geschikte aantal cycli met de draaggolf aan (functie 366) test de functie 367 om na te gaan of deze vlag is ingesteld. Dienovereenkomstig zal de vlag, wanneer LOCYCL wordt ingevoerd vanuit TIMCHK worden ingesteld en bijgevolg is de aftakking bij functie 368 naar SIGANL in plaats van naar functie 369. De verwerking van SIGANL is weergegeven in figuur 6A en 6B. De functie van SIGANL is het testen van het programmageheugen als beveiliging tegen enigerlei fouten in ROM. Functie 45 603 initialiseert de bronwijzer naar de bovenzijde van het programmageheugen en een overeenkomende tabelwijzer naar een eerste normalisatieconstante (eveneens in ROM). Functie 602 verhoogt de wijzer, functie 603 leest het byte uit in het adres en zendt het naar een polynome functie of CRC test. Deze polynome deling kan worden uitgevoerd met daartoe geschikte hardware, zie figuur 1, en de polynoomdeler 45, maar is ook uit te voeren in software. In elk geval ontleent functie 603 een uitgekozen byte aan ROM en 50 zendt het naar de polynoomdeelfunctie. Functie 604 bepaalt of een van tevoren bepaald deel van het geheugen beëindigd is en zolang als dit niet het geval is wordt teruggekeerd naar functie 602 en een resultaat opgebouwd in de polynoomdeler. Wanneer eenmaal een van tevoren bepaald aantal bytes is uitgelezen, wordt de functie 604 uitgevoerd om te bepalen of het gehele geheugen onderzocht is of niet. In sommige gevallen kan het gehele geheugen getest worden bij één doorvoering door SIGANL in andere 55 gevallen, waarin het programmageheugen te lang is, kan het in delen getest worden, waarbij software-registers bijhouden welke delen van het geheugen reeds getest zijn. Wanneer het gehele geheugen getest is, stelt de functie 606 de wijzers terug. Afhankelijk of dit juist bevonden is of niet leest de functie 607 (zie 193804 12 figuur 68) daarna de rest in de polynoomdeler of de resultaten van de polynoomdeelfunctie. Functie 608 telt een normaliseringsconstante (uit de tabel) bij en de functie 609 wordt uitgevoerd. Terwijl functie 609 een vergelijking blijkt te zijn is het in feite een aftakking op de rest. Indien de aftakking juist is dan wordt afgetakt in het hoofdprogramma bij functie 610 om de verwerking voort te zetten. Indien de rest onjuist is dan wordt 5 hetzij beëindigd bij een halt of aftakking naar enig tussengelegen punt dat zal leiden naar een HALT toestand. Het gedeelte van het geheugen dat getest is bij elke doorvoering van SIGANL is ontworpen om een hoeveelheid tijd te gebruiken, die gebruikt zou zijn bij het uitvoeren van functie 369 wanneer de bij functie 367 onderzochte vlag niet zou zijn ingesteld. Dienovereenkomstig worden, wanneer SIGANL verwerkt wordt, twee resultaten verkregen, ten eerste uiteraard dat ROM wordt getest op falen en in de 10 tweede plaats wordt tijd gemarkeerd equivalent aan een van tevoren bepaald aantal cycli met de draaggolf uit. In het algemeen wekt LOCYCL een aantal halve cycli met de draaggolf aan en een aantal halve cycli met de draaggolf uit op, die gespecificeerd worden door de inhoud van het testwoord, wekt HICYCL een enkele halve cyclus met de draaggolf aan op en NOCYCL markeert de tijd voor wat overeenstemt met een halve cyclus met de draaggolf uit. HICYCL en NOCYCL bepalen uitgangspunten vanuit het volgende 15 testwoord, en vergen bilgevolg een testwoordpaar voor hun uitvoering (invoering tijdmarkering en uitvoering). LOCYCL wordt ingevoerd als bepaald door een eerste testwoord, wanneer het wordt toegevoerd vanuit EXECHK leest het het volgende testwoord om het aantal cycli met de draaggolf aan en met de draaggolf uit te bepalen. Wanneer LOCYCL wordt ingevoerd vanuit TIMCHK, is het tweede woord reeds toegevoerd door TIMCHK indien dat woord A7CION is geweest dan gaat TIMCHK 070A voorbij naar 20 LOCYCL, overeenstemmend met het noodzakelijke aantal cyclustellingsgegevens.
Aan het einde van elke moduiatiecyclus, die getest moet worden roept het bij EXECHK gelezen testwoord TIMCHK op. Op deze wijze kan de duur van elke moduiatiecyclus getest worden. Dit vergt natuurlijk het juiste testwoord. Indien TIMCHK niet op het juiste tijdstip wordt opgeroepen, dus wanneer TIMCHK later wordt opgeroepen zal de telling incorrect zijn, hetgeen de verwerking via een HALT zal 25 stoppen.
Aan het einde van een hertesttijd (die eveneens het einde kan zijn van de onderhoudingstijd) heeft de uitgang vanuit TIMCHK plaats via CHKWDS en direct via functie 327.
Onder verwijzing naar figuur 5C wordt thans GETCHK toegelicht.
Zoals in verband met figuur 5B beschreven is, wordt GETCHK ingevoerd met een grootheid die het 30 aantal modulatiecycli, dat gegenereert moet worden (CYCNBR) identificeert evenals het totaal aantal draaggolfcycli (CYCTOT), dat opgenomen is binnen dat aantal modulatiecycli. Het aantal modulatiecycli dat wordt toegelaten CYCNBR wordt toegevoerd aan een eerste teller en het aantal draaggolfcycli dat wordt toegelaten CYCTOT wordt toegevoerd aan een andere teller (functie 340). Functie 341 verhoogt de gevraagde testwoordvlag voor de primaire processor 10.
35 Functie 342 genereert een enkele moduiatiecyclus en verlaagt CYCNBR (het aantal overblijvende toegelaten modulatiecycli). Men zie bijvoorbeeld de beschrijving van functie 366 en 369 in verband met figuur 5G. Functie 343 verlaagt CYCTOT (in feite wordt functie 343 uitgevoerd na elke afzonderlijke draaggolfcyclus voor het verlagen van CYCTOT). Functie 344 test om te zien of de testwoordgereedvlag ontvangen is. Aannemende dat dit niet het geval is, wordt de functie 345 uitgevoerd om te bepalen of 40 aanvullende modulatiecycli toegestaan zijn (dit wordt bepaald door het testen van CYCNBR). Indien aanvullende cycli toegestaan zijn dan laadt de functie 346 de cyclus vanuit CYCTOT. De lus van functie 342-246 kan continu worden uitgevoerd zolang als aanvullende modulatiecycli toegestaan worden (d.w.z. dat CYCNBR nog niet verlaagd is tot nul) en de testwoordgereedvlag niet is gedetecteerd. Indien het aantal toegestane cycli afloopt zonder dat de testwoordgereedvlag gedetecteerd is, dan is de lus van functies 45 344-345 continu uitgevoerd tot de testwoordgereedvlag is gedetecteerd. Bovendien,wanneer de grotere lus niet langer wordt uitgevoerd (omdat aanvullende modulatiecycli niet toegestaan worden), eindigt de toelatingsuitgang. Deze techniek verschaft verdere beschermingsniveaus. Aangezien het aantal draaggolfcycli (CYCTOT) verband houdt met het aantal modulatiecycli (CYCNBR - bijvoorbeeld moet CYCTOT aan het einde van enige moduiatiecyclus en even geheel veelvoud van CYCNBR zijn) kan onderzocht worden of 50 dit verband aanwezig is en indien dit verband geschonden is kan een HALT geforceerd worden, hetgeen eveneens tot gevolg heeft dat de toelatingsuitgang beëindigd wordt.
In beide gevallen stapt de verwerking over op NUTIME (zie figuur 5D) wanneer de testwoordgereedvlag gedetecteerd wordt.
Zoals in figuur 5D is aangegeven wordt de functie 350 uitgevoerd voor het testen van de hertesttijd. De 55 hertesttijd wordt met dezelfde techniek getest, die gebruikt werd voor het testen van de moduiatiecyclus, waarbij bijvoorbeeld aanvullende grootheden REFERENCE en PRESET gemanipuleerd worden en één van hen gesommeerd wordt met de tijdsgrootheid, die vanaf de tijdbepalingseenheid wordt uitgelezen. In feite 13 193804 wordt deze verder opgeteld (zie functie 351) met het volgende TOKEN. Dit bepaalt of een hertesttijd of een onderhoudingstijd wordt vastgesteld. Functie 352 takt af op het adres. Hier zijn er drie mogelijkheden. In het geval dat er een hertesttijd (maar geen onderhoudingstijd) bepaald is wordt de functie 353 uitgevoerd. In het geval dat de onderhoudingstijd eveneens beëindigd wordt springt de verwerking over op MNWRDS. Elke 5 andere mogelijkheid leidt tot een halt.
Aannemende dat een hertesttijd afgelopen is, beëindigd functie 353 de manipulatie van de grootheden PRESET en REFERENCE en vult de hertesttijdsbepalingsinrichting. Functie 354 werkt de grootheden DISPLACEMENT en INCREMENT bij met hun deltas. Daarna richt de functie 354 de verwerking op EXECHK.
10 Deze ontvangt het volgende hertesttestwoord, waarna de cyclus weer herhaald wordt.
Uit het bovenstaande zal een aantal eigenschappen van de inrichting duidelijk zijn. In de eerste plaats heeft de vitale aandrijfinrichting 15 geen a priori kennis van de gevergde vorm van de toeiatingsuitgang, zij reageert met andere woorden eenvoudig op de testwoorden, die vanuit de primaire processor 10 worden ontvangen. Indien de testwoorden vanuit de primaire processor 10 een zodanige vorm hebben, dat zij de 15 toestand van het uitgangsbit op bepaalde tijdstippen wijzigen, wordt een uitgang opgewekt, die de karakteristieken heeft die nodig zijn voor het opwekken van het toelatingssignaal. Dezelfde uitgang kan evenwel worden opgewekt op een nagenoeg oneindig aantal wijzen, waardoor een grote variatie in het op te nemen aantal testwoorden mogelijk is. Meer in het bijzonder is de werkopeenvolging van de vitale aandrijfinrichting opgebouwd uit een aantal moduli. Sommige van deze moduli (HICYCL en NOCYCL) 20 wekken bijvoorbeeld een halve cyclus op met het draaggolfsignaal aan of een halve cyclus met het draaggolfsignaal uit. Een opeenvolging van HICYCL en NOCYCL zal een modulatiecyclus opwekken. Dit volgt uit het feit, dat de verschillende stappen van deze moduli bepaald zijn om een geschikte hoeveelheid tijd te verbruiken, en door het uitgangsbit bij het begin en het einde te manipuleren, wordt het uitgangsbit in de geschikte toestand gehouden om het optreden tot stand te brengen van een cyclus met de draaggolf aan 25 en een cyclus met de draaggolf uit. Uiteraard is een verdere beperking, dat elke moduul een testwoord vergt. Langere perioden van de toeiatingsuitgang kunnen verkregen worden uit een enkel paar testwoorden, dat LOCYCL gebruikt, door het aantal draaggolven aan en draaggolven uit cycli te specificeren. Een verdere moduul (TIMCHK) verschaft de mogelijkheid nog meer van de toeiatingsuitgang te genereren, terwijl tegelijkertijd de duur van de modulatiecyclus getest wordt. Hoewel TIMCHK, HICYCL, NOCYCL en LOCYCL 30 kunnen worden ingevoerd vanuit EXECHK, en direct terugwerken naar EXECHK, zijn andere routines nodig voor het aaneenkoppelen van langere duren van de toeiatingsuitgang, bijvoorbeeld GETCHK en NUTIME. Hoewel deze moduli geen significante hoeveelheden toeiatingsuitgang opwekken, zijn zij essentieel en moeten bijgevolg worden uitgevoerd. Ten slotte zijn andere moduli voor het verbinden van het aantal hertesttijden in een onderhoudingstijd (MNWRDS en NUMAIN) eveneens nodig. Tenslotte wordt het starten 35 van het vitale relais veroorzaakt door DELAY. Het verkregen pakket is modulair van aard maar elk element van de moduul moet ten minste éénmaal worden uitgevoerd, waarbij andere ten minste éénmaal per onderhoudingstijd moeten worden uitgevoerd en nog andere ten minste éénmaal per hertesttijd en ten slotte op het laagste niveau er een aantal moduli zijn, die een variabel aantal malen kan worden uitgevoerd teneinde de vereiste toeiatingsuitgang op te bouwen.
40 Het zal uit het bovenstaande duidelijk zijn, dat een inrichting wordt verschaft om, vanuit testwoorden, die op basis van een hoeveelheid zijn ontvangen, een tijdgevoelig signaal op te wekken (de toeiatingsuitgang) waarvan de parameters (draaggolffrequentie, modulatietype en frequentie en belastingspercentage) door het aantal en de inhoud van de door de vitale aandrijfinrichting ontvangen testwoorden worden bepaald. Twee voorwaarden zijn noodzakelijk om een toeiatingsuitgang van de gewenste vorm op te wekken, waarvan de 45 eerste is dat de testwoorden, door hun aantal en inhoud, zodanig zijn dat zij uit het programma de toeiatingsuitgang opwekken en de tweede voorwaarde is dat de vitale aandrijfinrichting zijn programma zonder fout uitvoert. Bovendien is, hoewel de bovenstaande twee voorwaarden voldoende zijn, de software van de vitale aandrijfinrichting voldoende flexibel dat er meer dan één stel testwoorden is, dat een identieke toeiatingsuitgang zal geven. Meer in het bijzonder kunnen, door de modulaire aard van de programma-50 segmenten in de software van de vitale aandrijfinrichting, segmenten van de toeiatingsuitgang (bijvoorbeeld een gehele modulatiecyclus) worden opgewekt door één of vele paren testwoorden, waardoor een beduidende flexibiliteit voor de vitale aandrijfinrichting wordt verkregen om de testbewerking van de primaire processor mogelijk te maken met op beduidende wijze verschillende primaire functies.

Claims (10)

193804 14
1. Storingsveilige gegevensverwerkende inrichting voor het opwekken van een bepaald signaal met tijdgevoelige parameters met behulp van een processor waaraan groepsgewijs testgegevens worden 5 toegevoegd, welke gegevens verwerkt worden door programmamiddelen, die programmasegmenten inhouden, die reageren op genoemde gegevens om uitgevoerd te worden, waarbij genoemde, groepsgewijs aan de processor toegevoerde gegevens op geschikte tijdstippen leiden tot het uitvoeren van een opeenvolging van programmasegmenten teneinde het bepaalde signaal op te wekken, met het kenmerk, 10 dat het bepaalde signaal een amplitude-gemoduleerde draaggolf is, waarin de draaggolfrequentie en de modulatiefrequentie de genoemde tijdgevoelige parameters zijn, en dat de programmamiddelen eerste programmasegmenten inhouden, die bij uitvoering door de processor variabele delen opwekken van het bepaalde signaal, en tweede programmasegmenten, die bij uitvoering door de processor een vast deel van het bepaalde signaal opwekken, 15 waarbij de programmamiddelen in de eerste programmasegmenten middelen (LOCYCL) bevatten voor het opwekken van een deel van het bepaalde signaal van een duur, bepaald door de testgegevens, die aan de genoemde middelen (LOCYCL) zijn doorgegeven, en waarbij de programmamiddelen in de tweede programmasegmenten middelen omvatten voor het opwekken van een deel van het bepaalde signaal van vaste duur en van tevoren bepaalde amplitude.
2. Inrichting volgens conclusie 1, met het kenmerk, dat de programmamiddelen in de tweede programmasegmenten eerste en tweede middelen omvatten voor het elk opwekken van een bepaald deel van het bepaalde signaal van respectievelijk verschillende amplitude.
3. Inrichting volgens één der vorige conclusies, met het kenmerk, dat de genoemde gegevens bestaan uit testwoorden, en dat de programmasegmenten, wanneer uitgevoerd door de processor, een testwoord 25 slechts eenmaal gebruiken, waarbij de programmasegmenten middelen omvatten voor het vernietigen van elk zo’n testwoord.
4. Inrichting volgens conclusie 3, met het kenmerk, dat de programmasegmenten middelen bevatten voor het wijzigen van elk testwoord op een’wijze verschillend van de wijziging in enig ander testwoord.
5. Inrichting volgens één der voorgaande conclusies, met het kenmerk, dat de processorinrichting een 30 onafhankelijke tijdbepalingsinrichting heeft, en dat de programmamiddelen tijdcontrolemiddelen bevatten voor het periodiek vergelijken van een periode van het bepaalde signaal met een periode, gemeten door de tijdbepalingsinrichting.
6. Inrichting volgens één der voorgaande conclusies, met het kenmerk, dat de processorinrichting een toestandsteller bevat, die kloktoestanden van de processor telt, en dat de programmamiddelen toestands- 35 controlemiddelen bevatten voor het periodiek vergelijken van een huidige toestandstelling met een vooraf bepaald getal.
7. Inrichting volgens één der voorgaande conclusies, met het kenmerk, dat de programmamiddelen in de genoemde programmasegmenten middelen(GETCHK) bevatten voor het voorwaardelijk opwekken van een vast deel van het bepaalde signaal bij ontbreken van ontvangst van nieuwe gegevens, en om bij ontvangst 40 van nieuwe gegevens over te springen op andere programmasegmenten voordat het genoemde vaste deel beëindigd is.
8. Inrichting volgens één der voorgaande conclusies, met het kenmerk, dat er middelen zijn, die reageren op gegevens om overeenkomende programmasegmenten op te roepen om uitgevoerd te worden, welke middelen omvatten: 45 wijzigingsmiddelen voor het wijzigen van een ontvangen testwoord voor het opwekken van een gewijzigd testwoord, en aftakmiddelen om een adres af te takken, dat is afgeleid van het genoemde gewijzigde testwoord, waardoor, indien het gewijzigde testwoord niet een verwachte waarde heeft, de genoemde aftakking op een onjuiste plaats is.
9. Inrichting volgens conclusie 8, met het kenmerk, dat zowel de eerste als de tweede programma- 15 193804 segmenten genoemde wijzigingsmiddelen en genoemde aftakmiddelen bevatten.
10. Inrichting volgens conclusie 3, met het kenmerk, dat geen enkel programmasegment een gedeelte kan opwekken van het tijdgevoelige signaal, dat equivalent is aan een frequentie van de modulatiefrequeties. Hierbij 11 bladen tekening
NL8403403A 1983-11-10 1984-11-08 Storingsveilige gegevensverwerkende inrichting. NL193804C (nl)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US55043183 1983-11-10
US06/550,431 US4553200A (en) 1983-11-10 1983-11-10 Modular output driver for vital processor systems

Publications (3)

Publication Number Publication Date
NL8403403A NL8403403A (nl) 1985-06-03
NL193804B NL193804B (nl) 2000-07-03
NL193804C true NL193804C (nl) 2000-11-06

Family

ID=24197161

Family Applications (1)

Application Number Title Priority Date Filing Date
NL8403403A NL193804C (nl) 1983-11-10 1984-11-08 Storingsveilige gegevensverwerkende inrichting.

Country Status (4)

Country Link
US (1) US4553200A (nl)
GB (1) GB2149539B (nl)
IT (1) IT1177155B (nl)
NL (1) NL193804C (nl)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4740972A (en) * 1986-03-24 1988-04-26 General Signal Corporation Vital processing system adapted for the continuous verification of vital outputs from a railway signaling and control system
US4949273A (en) * 1988-11-04 1990-08-14 General Signal Corporation Vital processing system including a vital power controller with forgiveness feature
US5309445A (en) * 1992-06-12 1994-05-03 Honeywell Inc. Dynamic self-checking safety circuit means
US5704038A (en) * 1994-09-30 1997-12-30 Itt Automotive Electrical Systems, Inc. Power-on-reset and watchdog circuit and method
US5673389A (en) * 1995-08-31 1997-09-30 Ford Motor Company Methods and apparatus for resetting a monitored system using a gray code with alternating check bits
US6323687B1 (en) 2000-11-03 2001-11-27 Fujitsu Limited Output drivers for integrated-circuit chips with VCCQ supply compensation
US7552265B2 (en) * 2002-01-23 2009-06-23 Xerox Corporation System and method for providing context information
ITSV20020018A1 (it) 2002-05-03 2003-11-03 Alstom Transp Spa Dispositivo di elaborazione o comando operante in sicurezza intrinseca
EP1672505A3 (en) * 2004-12-20 2012-07-04 BWI Company Limited S.A. Fail-silent node architecture
US20100275146A1 (en) * 2009-04-24 2010-10-28 Dell Products, Lp System and method for managing devices in an information handling system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253432A5 (nl) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2289967A1 (fr) * 1974-10-28 1976-05-28 Honeywell Bull Soc Ind Dispositif de test et diagnostic d'un appareil peripherique d'une unite de traitement de donnees
USRE30986E (en) * 1978-01-30 1982-06-29 General Signal Corporation Vital relay driver having controlled response time
US4270168A (en) * 1978-08-31 1981-05-26 United Technologies Corporation Selective disablement in fail-operational, fail-safe multi-computer control system
US4472789A (en) * 1979-11-09 1984-09-18 General Signal Corporation Vital timer
US4307463A (en) * 1980-02-08 1981-12-22 General Signal Corporation Vital rate decoder
US4455654B1 (en) * 1981-06-05 1991-04-30 Test apparatus for electronic assemblies employing a microprocessor
US4471486A (en) * 1981-06-15 1984-09-11 General Signal Corporation Vital communication system for transmitting multiple messages
US4454588A (en) * 1981-09-16 1984-06-12 Sundstrand Data Control, Inc. Automatic acceptance test system for aircraft computers

Also Published As

Publication number Publication date
US4553200A (en) 1985-11-12
IT8423526A0 (it) 1984-11-09
IT8423526A1 (it) 1986-05-09
GB8428579D0 (en) 1984-12-19
GB2149539B (en) 1987-02-04
IT1177155B (it) 1987-08-26
GB2149539A (en) 1985-06-12
NL8403403A (nl) 1985-06-03
NL193804B (nl) 2000-07-03

Similar Documents

Publication Publication Date Title
NL193804C (nl) Storingsveilige gegevensverwerkende inrichting.
NL193005C (nl) Faalveilig rekenstelsel.
NL195041C (nl) Werkwijze voor het testen van een signaleringskanaal alsmede een vitaal verwerkingsstelsel dat is ingericht voor continue verifiering van vitale uitgangen vanuit een spoorwegsignalerings- en besturingsstelsel.
US4866713A (en) Operational function checking method and device for microprocessors
EP0445936A2 (en) Supervision of microprocessors
NL194414C (nl)
US4472789A (en) Vital timer
EP0297398B1 (en) A processing pulse control circuit
US4471484A (en) Self verifying logic system
WO1996016369A1 (en) A method and a device for processing signals in a protection system
US4563762A (en) Vital communication system for transmitting multiple messages
DE2422470A1 (de) Anordnung zur ermittelung eines moeglichen ausfalls in einem informationskanal eines speichersystems und eine solche anordnung verwendendes daten-wiedergewinnungssystem
SU982041A1 (ru) Устройство дл счета предметов на конвейере
US8095843B2 (en) Method of acquiring a plurality of logic signals, with confirmation of state validity
NL194329C (nl) Vitale vermogensregelaar.
SU1418741A1 (ru) Устройство дл моделировани процесса программировани задач на ЭВМ
SU1140065A1 (ru) Устройство дл функционально-параметрического контрол логических элементов
NL8006040A (nl) Storingsveilige tijdregelinrichting.
CS243230B1 (cs) Adaptér pro testování dynamických paměťových obvodů
SU723591A1 (ru) Способ статистического контрол цифровых устройств
SU1062623A1 (ru) Устройство дл контрол импульсов
SU1275445A1 (ru) Устройство дл контрол мультиплексора
SU809355A1 (ru) Программатор дл записи информа-ции B пОлупРОВОдНиКОВыЕ элЕМЕНТыпАМ Ти
SU960826A1 (ru) Устройство дл контрол цифровых блоков
SU1226468A1 (ru) Устройство дл функционального контрол логических элементов

Legal Events

Date Code Title Description
BA A request for search or an international-type search has been filed
CNR Transfer of rights (patent application after its laying open for public inspection)

Free format text: SASIB S.P.A.

BB A search report has been drawn up
BC A request for examination has been filed
V4 Discontinued because of reaching the maximum lifetime of a patent

Effective date: 20041108