책속에서
C언어,어셈블리어등의프로그래밍언어를이용하여원하는동작을구현(코딩,프로그래밍)한텍스트파일(코드파일)을컴파일하여얻어지는CPU가해독할수있는이진기계어명령의집합을펌웨어(Firmware)라한다.이펌웨어를메모리에저장하면CPU는메모리에서기계어명령을읽어해석하고실행한다.이런일련의과정을이해하기위하여CPU가전원이들어온후펌웨어를동작시키는과정에대해살펴보도록할것이다.
---p.1
전기/전자시스템에는EMI/EMC와전기안전규격이있어그에맞는회로설계및PCB설계를통하여하드웨어의안전성을확보해야하는규칙이있다.마찬가지로,펌웨어측면에도안전성은매우중요한항목으로,안전한펌웨어는어떠한경우라도오동작을하지않는펌웨어를의미한다.ESD,EOS등의전기적충격에의한레지스터,메모리의값의손상이제품의동작의정지로이어진다면오히려안전하다할수있겠지만,펌웨어의오동작,예를들면모터를멈춰야하는시점에하드웨어메모리의손상으로플래그가모터를돌려야하는조건에들어온다면안전에문제가된다.특히,화재및감전,인체손상과같은심각한결과를유발할수있는가전기기에서의안전한펌웨어의구현은매우중요하다할수있다.
소프트웨어안전측면에도국제규격의안전성(Safety)을시험하는항목이있는데,가정용및이와유사한자동제어장치에대한시험규격인IEC60730-1이좋은예이며,여기에는노이즈또는전기충격,환경변화등에의해발생할수있는하드웨어손상에의한펌웨어오동작에대한시험항목들이있다.이시험항목에대해간단하게살펴보면,CPU의PC레지스터및기본레지스터의훼손에의한오동작,잘못된인터럽트에대한오동작,비트단위의메모리훼손시메모리에의한오동작,통신데이터훼손에의한오동작,디지털IO/ADC/DAC입력오류로인한오동작등이있을수있는데,이때기기는이오류를검출하여정지하거나리셋을통해다시시작하는방법등으로펌웨어가오동작을하지않도록해야한다.FailSafe는오류에대한예외처리를의미하는용어로이번장에서간단하지만일반적으로사용되는FailSafe기법에대해서살펴본다.
---p.152
만약,샘플링주기가100ms즉,10Hz라면처리할수있는최대주파수는10Hz/2=5Hz의주파수가된다.5Hz이상의아날로그신호가입력된다면,디지털필터에서는저주파로잘못해석되어처리되기때문에오류가된다.정리하자면,처리하고자하는신호의최대주파수보다2배이상빠른주기로샘플링해야한다는것을의미하며,이를나이퀴스트샘플링이론(NyquistSamplingTheorem)이라한다.나이퀴스트샘플링이론은측정하려는밴드제한(Band-Limit)된연속신호의최대주파수보다최소2배이상의샘플링주파수를가지면,주파수의간섭(Aliasing,에일리아싱)없이원본신호를완전히복원가능하다라고정의된다.이런이유로ADC에서잠깐보았던안티에일리아싱하드웨어필터가샘플링주파수/2이상의신호를하드웨어적으로미리제거함으로써,샘플링주파수/2이상의데이터가디지털데이터로변환되지못하도록하는용도이다.
---p.279