CRCCyclic Redundancy CheckĹȤϡΰǤ롣ѥƥå٤ʻȤߤȤʤäƤ롣
CRCϡӥåΥǡ¿༰dzä;ѤCRCȤơǡղäǤ롣¦ϡǡƱ¿༰dzڤ뤫ݤǸȯФ롣
Ѥ¿༰ϥӥåĹˤä뤬ɽŪʤΤȤX16+X12+X5+1롣¿༰dzȤȤϡmod 2ȤƤߤȤΥӥå10001000000100001dzȤȤǤ롣
CRCΥǡ֥ånӥåȡˤϡӥåȡkӥåȡˤȸӥåȡn-kӥåȡˤ鹽롣
ϰ̤¿༰Ǽ¸롣
㡧1101Τ褦ʥӥåDϡ¿༰D(x)=X3+X2+1Τ褦ɽȤǤ롣
CRCˤ긡Фϡ¦ǥåҤȤĤ¿༰ɽCRC¿༰G(X)dz껻ξ;ӥåȤ³ϩФäơӥåȤղä줿ӥåȤ¿༰ɽΤG(X)dzڤ롣
㡧1101101dzäȤ11;꤬10ˤʤ롣1101θ10ղä̤110111101dzȡ1110;꤬0ˤʤ롣
ǡ¦ǤϼǡG(x)dz껻;0Ǥи꤬ʤȤ;0Ǥʤи꤬äȽꤹ*1
㤨С¿༰G(X)=X3+X+1ΤȤǡӥåDФ;ϼΤ褦˹Ԥ롣
ΤȤξȾ;ϼ̤Ǥ롣
äơ;ηȿ;ηδطϼΤ褦ɽ롣Rii=0,1,2ˤϿǤ롣3Ĥ(*)֤
[]ǤդĹmΥǡб¿༰f(X)t¿༰G(X)dz黻ϡtԥեȥ쥸G(X)ιбեɥХåġˤˤäơmΥեȤǼ¹ԤǤ롣
CRCǤɸŪ¿༰ȤG(X)=X16+X12+X5+1Ȥ롣ΤȤnӥåȤΥǡD(0),D(1),,D(n-1)ФCRC黻ϡ(*)n֤Ȥ롣k=0,1,,n-1Ǥ롣3Ĥ(**)֤
ǡϵ;
Ͽ;ʤ⼡η̤ηءˤؤ
Ǥ8ӥåȤΥޥԥ塼ΥץǼ¸뤳ȤȤƹͤ롣
(**)ؤѴXOR¾Ū¡̿ȥե̿ѤƱ黻ˡˤĤƹͤ롣XOR̿λѲǾȤʤ褦˥ե̿λͼͤФ褤
ñ̽ӥåȿ8ӥåȤΤȤXOR̿5ˤʤ롣
ޤե̿βϥޥԥ塼Υե̿εǽˤäưۤʤ롣㤨С1ӥåȱե/եȤˤ硢ñ̽ӥåȿ18ӥåȤˤơե̿β10դĤ
XOR̿ȥե̿β碌ƹθȡñ̽ӥåȿ18ӥåȤ8ӥåȤΤȤ˺ǤΨ褤Ҥ٤С1ӥåȤΤȤʥӥåȥꥢα黻ˤ٤ȡ4ܸΨ褯ʤäƤ롣
Intel 8080ϡ㤨8080AʤɤޤˤǤμǤZ80,F-8Ʊ͡ˡ
ΤȤ쥸λȤƻϼ̤Ǥ롣
A쥸 | 8ӥåȤΥǡ |
B쥸 | ;ι̤8ӥåȡRU |
C쥸 | ;̤8ӥåȡRL |
D,E쥸 | 쥸 |
ΤȤ르ꥺϼΤ褦ˤʤ롣黻ľA쥸ˤ8ӥåȤΥǡBC쥸ˤϵ;ǼƤΤȤ롣
ΥɤϾ嵭Υ르ꥺIntel 8080Υ֥˼ΤǤ롣ȥȤοϥ르ꥺβվֹбƤ롣
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
ȥҤM6800ǤμǤMC6502Ʊ͡ˡ8080AӤȡM6800ϥ쥸ιۤʤΤǡΤ褦ξԤΥ쥸ȥꥢλȤб롣
8080A | M6800 |
A쥸 | A쥸 |
B쥸 | JOYO+1쥸 |
C쥸 | JOYO쥸 |
D쥸 | B쥸 |
E쥸 | WORK쥸 |
ơ֥ååפȤϡơ֥뤬ǼƤ뱦üɥ쥹ؼξǡ쥸Ⱦ;쥸XOR黻η̤ơ֥ΥǥåȰפƤ뤫ɤĴ٤ơ⤷פƤФΤȤƤϤ롣
(**)ξnӥåȤȲ(16-n)ӥåȤʬΥƼ谷ԤȥǡӥåȤȤXOR黻η̤Ф;黻ơ֥ååפˤơη̤Ȳ(16-n)ӥåȤȤXOR黻η̤;Ȥʤ롣
ˡϡCRC黻ξ硢ơ֥Ƥˤäƥơ֥ۤʤ롣ơ֥礭Сʤʤ롣ơ֥С¿ʤ롣äơơ֥礭ˤäƱ黻֤礭롣
XOR̿ܥե̿ˡȥơ֥ååפˡӤ롣Ԥñ̽ӥåȿ8ӥåȤΤȤǤΨ褤ʤ18ӥåȤ˸ꤷȤˡԤԤǤ뤬̤礭ʤäƤޤäơŪʥǽǤԤͥƤȤ롣