Perancangan dan Implementasi Encoder dan Decoder CRC-8 untuk Pendeteksian Error pada Transmisi Data antar Perangkat IoT
DOI:
https://doi.org/10.30865/mib.v6i3.4366Keywords:
Cyclic Redundancy Check, Error Detection, Error Detection Code, Internet-Of-Things, ArduinoAbstract
Cyclic Redundancy Check (CRC) is a widely used error detection code in digital communication systems to detect errors in data transmitted between transmitter and receiver. With the development of Internet-of-Things (IoT) technology, where many devices communicate wirelessly, the application of error detection codes such as CRC is essential to obtain reliable communication. The computation of CRC can be implemented in hardware using a linear feedback shift register (LFSR) or in software with shift and bitwise exclusive OR (XOR) operations for polynomial division. Due to the frequent use of CRC in wireless communication for IoT, research for the design and implementation of CRC continues to this day. This study aims to design and implement the encoder and decoder of CRC-8 with generator polynomial 0x07 on IoT devices. Two algorithms for computing the CRC, namely bitwise computation using LFSR and another one using lookup tables, are implemented on the Arduino Uno R3 board. Two Arduino boards connected in serial were used to verify the encoder and decoder implementation in the data transmission and error detection process. The experiment results showed that the encoder could correctly calculate the CRC value from the input data. Furthermore, the computation using lookup tables takes about four times faster than the bitwise method but requires more memory. In contrast, the bitwise computation method requires less memory but slower computation time. When testing using input data of 128 characters, the bitwise-based encoder requires a computation time of 2.37 milliseconds, while the lookup table-based encoder utilizing a lookup table requires a computation time of 0.5 milliseconds. In the error detection test, the results demonstrated that the receiver could detect errors in the transmitted data with a percentage of 100%.References
W. Stallings, Data and Computer Communications, 10th ed. Pearson, 2014.
T. Moon, Error Correction Coding: Mathematical Methods and Algorithms, 2nd ed. Wiley, 2020.
Y. Cai, S. Ghose, E. F. Haratsch, Y. Luo, and O. Mutlu, “Error Characterization, Mitigation, and Recovery in Flash-Memory-Based Solid-State Drives,†Proc. IEEE, vol. 105, no. 9, pp. 1666–1704, Sep. 2017, doi: 10.1109/JPROC.2017.2713127.
N. Sridevi, K. Jamal, and K. Mannem, “Implementation of Cyclic Redundancy Check in Data Recovery,†Proc. 2nd Int. Conf. Electron. Sustain. Commun. Syst. ICESC 2021, pp. 17–24, Aug. 2021, doi: 10.1109/ICESC51422.2021.9532802.
W. W. Peterson and D. T. Brown, “Cyclic Codes for Error Detection,†Proc. IRE, vol. 49, no. 1, pp. 228–235, 1961, doi: 10.1109/JRPROC.1961.287814.
B. Forouzan, Data Communications and Networking, 5th ed. McGraw-Hill, 2013.
L. A. Zhou and Z. L. Nie, “An Enhanced Decision-Making Fault Detection Model in Medical IoT Embedded Systems,†Wirel. Pers. Commun., 2021, doi: 10.1007/S11277-021-08759-8.
H. Liu, Z. Qiu, W. Pan, J. Li, L. Zheng, and Y. Gao, “Low-Cost and Programmable CRC Implementation Based on FPGA,†IEEE Trans. Circuits Syst. II Express Briefs, vol. 68, no. 1, pp. 211–215, Jan. 2021, doi: 10.1109/TCSII.2020.3008932.
M. M. Arifin, M. T. Hasan, M. T. Islam, M. A. Hasan, and H. S. Mondal, “Design and Implementation of High Performance Parallel CRC Architecture for Advanced Data Communication,†2019 4th Int. Conf. Electr. Inf. Commun. Technol. EICT 2019, Dec. 2019, doi: 10.1109/EICT48899.2019.9068750.
X. Zhang and Y. J. Tang, “Low-complexity parallel cyclic redundancy check,†Proc. - IEEE Int. Symp. Circuits Syst., vol. 2021-May, 2021, doi: 10.1109/ISCAS51556.2021.9401679.
“Arduino.†https://www.arduino.cc/ (accessed Jun. 17, 2022).
A. R. Saleh and S. A. Sudiro, “CRC 8-bit Encoder-Decoder Component in FPGA using VHDL,†ELKOMIKA J. Tek. Energi Elektr. Tek. Telekomun. Tek. Elektron., vol. 8, no. 1, p. 58, Jan. 2020, doi: 10.26760/elkomika.v8i1.58.
G. Natalia, S. Suwadi, and T. Suryani, “Implementasi Encoder dan Decoder Cyclic Redundancy Check Pada TMS320C6416T,†J. Tek. ITS, vol. 3, no. 1, pp. A92–A97, Mar. 2014, doi: 10.12962/j23373539.v3i1.5504.
“Simulink - Simulation and Model-Based Design - MATLAB & Simulink.†https://www.mathworks.com/products/simulink.html (accessed Jun. 05, 2022).
A. S. Panda and G. L. Kumar, “Comparison of serial data-input CRC and parallel data-input CRC design for CRC-8 ATM HEC employing MLFSR,†2014 Int. Conf. Electron. Commun. Syst. ICECS 2014, 2014, doi: 10.1109/ECS.2014.6892739.
A. H. Saleh, K. M. Saleh, and S. Al-Azawi, “Design and simulation of CRC encoder and decoder using VHDL,†1st Int. Sci. Conf. Eng. Sci. - 3rd Sci. Conf. Eng. Sci. ISCES 2018 - Proc., vol. 2018-January, pp. 221–225, Apr. 2018, doi: 10.1109/ISCES.2018.8340557.
R. Novaldi, S. Akbar, and P. Rakhmadhany, “Implementasi Error Detection System Pada Komunikasi Serial Arduino Menggunakan Metode Cyclic Redundancy Check (CRC),†J. Pengemb. Teknol. Inf. dan Ilmu Komput., vol. 3, no. 2, pp. 1480–1485, 2018, [Online]. Available: https://j-ptiik.ub.ac.id/index.php/j-ptiik/article/view/4412.
J. Kurose and K. Ross, Computer Networking A Top-Down Approach, 8th ed. Pearson, 2020.
“Arduino UNO R3.†https://docs.arduino.cc/hardware/uno-rev3 (accessed Jun. 11, 2022).
“Online CRC-8 CRC-16 CRC-32 Calculator.†https://crccalc.com/ (accessed Jun. 22, 2022).
Downloads
Published
Issue
Section
License

This work is licensed under a Creative Commons Attribution 4.0 International License
Authors who publish with this journal agree to the following terms:
- Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under Creative Commons Attribution 4.0 International License that allows others to share the work with an acknowledgment of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgment of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (Refer to The Effect of Open Access).