º£Å׶û ¿£Áö´Ï¾îÀÇ Àü±â/ÀüÀÚÀÓº£µðµå ½Ã½ºÅÛ °³¹ßÀ» À§ÇÑ È®½ÇÇÑ ·Îµå¸Ê!¡°ÀÌ Ã¥À» Àд °¡Àå ÁÁÀº ¹æ¹ýÀº ¼Ò¼³Ã¥ ÀеíÀÌ ¹Ýº¹ÇÏ¿© ÀÐ¾î ±âÃÊ À̷аú½Ã½ºÅÛ °³¹ß ±ÔÄ¢ °£ÀÇ ¿¬°ü°ü°è¿¡ ´ëÇØ ÀÌÇØÇÏ´Â °ÍÀÔ´Ï´Ù.¡±CPU(Central Processing Unit)´Â ¸ñÇ¥ÇÏ´Â µ¿ÀÛÀ» ¼öÇàÇϱâ À§ÇØ ¸í·ÉÀ» Àаí Çؼ®ÇÏ¿© ó¸®ÇÏ´Â Áß¾Ó Ã³¸® ÀåÄ¡·Î Á¤ÀǵȴÙ. ¼öµ¿ ¼ÒÀÚ, ´Éµ¿ ¼ÒÀÚ¿Í ¹ÝµµÃ¼ IC. ƯÈ÷ Çø³ÇÃ·Ó °°Àº ¸Þ¸ð¸® ¼ÒÀÚµéÀ» ¸ðµÎ ÀÌ¿ëÇÑ È¸·Î¸¦ ÇϳªÀÇ ÆÐÅ°Áö¿¡ ÁýÀûÇÏ¿© ¸¸µé¾îÁø IC°¡ CPUÀ̸ç, ÁýÀûȸ·ÎÀÇ ÃÖ°íºÀÀ̶ó ÇÒ ¼ö ÀÖ´Ù. CPUÀÇ »ç¿ëÀº Çϵå¿þ¾î¸¸À¸·Î ¼³°èµÈ ½Ã½ºÅÛ¿¡ ºñÇÏ¿© ¼ÒÇÁÆ®¿þ¾î¸¸ º¯°æÇÔÀ¸·Î½á ½Ã½ºÅÛÀÇ ±¸Çö ¹× ¼öÁ¤À» ½±°Ô ÇÒ ¼ö ÀÖ´Ù´Â ÃÖ´ëÀÇ ÀåÁ¡À¸·Î ´ëºÎºÐÀÇ Àü±â/ÀüÀÚ ½Ã½ºÅÛ¿¡ »ç¿ëµÇ¹Ç·Î ±¸Á¶ ¹× µ¿ÀÛ¿¡ ´ëÇØ ¾Ë¾Æ µÎ¾î¾ß ÇÑ´Ù. ƯÁ¤ CPU¸¦ ÁöÁ¤ÇÏ¿© ÀÚ¼¼È÷ ¾Ë¾Æº¸´Â °Íµµ ÃæºÐÈ÷ Àǹ̰¡ ÀÖ°ÚÁö¸¸, ¿©±â¼´Â CPUÀÇ ÀϹÝÀûÀÎ ±¸¼º ¿ä¼Òµé°ú µ¿ÀÛ¿¡ ´ëÇؼ »ìÆ캽À¸·Î½á, »ç¿ëÇÏ°Ô µÉ CPUÀÇ Á¾·ù°¡ ¹Ù²î´õ¶óµµ ½±°Ô Á¢±ÙÇÒ ¼ö ÀÖ´Â ´É·Â ¹è¾çÀ» ¸ñÇ¥·Î ÇÑ´Ù.
1999³âµµ Ãæ³²´ëÇб³ ¸ÞÄ«Æ®·Î´Ð½ºÇаú¸¦ Á¹¾÷Çß´Ù. ÀÌÈÄ ¹ÝµµÃ¼ ÆÕ¸®½º ¾÷ü¿¡¼ 18³â µ¿¾È ¿£Áö´Ï¾î·Î ±Ù¹«Çϸé¼, ƯÇãûÀå ǥâÀ» ¹ÞÀº ÀÌ·ÂÀÌ ÀÖ´Ù.
I. CPU ±âÃÊ ÀÌ·Ð 1. CPU ÀÏ¹Ý 1.1. CPUÀÇ ±¸Á¶ ¹× µ¿ÀÛ1.1.1. CPUÀÇ ±¸Á¶ ¹× ±â´É 1.1.2. CPUÀÇ µ¿ÀÛ ´Ü°è 1.2. ¸í·É¾î ±¸Á¶¿Í ½ÇÇà ÆÄÀÏ 1.2.1. ¸í·É¾î ±¸Á¶·Î º¸´Â RISC/CISC CPU ±¸Á¶1.2.2. CPUÀÇ µ¿ÀÛ°ú ½ÇÇà ¹ÙÀ̳ʸ® ÆÄÀÏ1.3. CPUµ¿ÀÛÀ» À§ÇÑ ÁÖº¯ Çϵå¿þ¾î 1.3.1 Àü¿ø (Power)À» À§ÇÑ ·¹±Ö·¹ÀÌÅÍ1.3.2. Ŭ·° (Clock) 1.3.3. ¸Þ¸ð¸® (Memory) 1.3.4. CPU ¹ö½º ±¸Á¶1.3.5. ¸®¼Â(Reset)1.4. ¸®¼Â ÈÄ Æß¿þ¾î ºÎÆà °úÁ¤ 1.4.1. ¸®¼Â º¤ÅÍ 1.4.2. Reset_Handle1.5. ÀÎÅÍ·´Æ® 1.5.1. ÀÎÅÍ·´Æ®ÀÇ µ¿ÀÛ 2. MCU(Micro Controller Unit) 2.1. GPIO 2.1.1. ºÎ°¡ ±â´É (Alternate Function) 2.1.2. GPIO ³»ºÎ ȸ·Î2.2. Á÷·Ä Åë½Å ÀÌ·Ð ÀÏ¹Ý 2.2.1. 7 °èÃþ(Layer)2.2.2. ÇÁ·ÎÅäÄÝ(Protocol) 2.2.3. Á÷·Ä (Serial) Åë½Å ¹æ½ÄÀÇ ±¸ºÐ 2.2.4. Åë½Å ½ÅÈ£ÀÇ SNR(Signal to Noise Ratio) °È2.2.5. Åë½Å ¿À·ù °ËÃâ ¹æ¹ý 2.3. Á÷·Ä Åë½Å2.3.1. UART (Universal Asynchronous Receiver & Transmitter)2.3.2. I2C2.3.3. SPI (Seri2.3.3. SPI (Serial Peripheral Interface) 2.4. ADC¿Í DAC&PWM 2.4.1. ADC(Analog To Digital Converter) 2.4.2. DAC (Digital to Analog Converter)2.4.3. PWM(Pulse Width Modulation)2.5. MCU ¼±ÅÃÀÇ °í·Á»çÇ× II. ½Ã½ºÅÛ °³¹ß ÇÁ·Î¼¼½ºIII. Æß¿þ¾î °³¹ß ±ÔÄ¢ 1. Æß¿þ¾îÀÇ ¼³°è ¹× ±¸Çö ±ÔÄ¢ 1.1. Æß¿þ¾îÀÇ ¼³°è 1.1.1. HAL ±¸Á¶ ¼³°è 1.1.2. µ¥ÀÌÅÍ Ãëµæ ¹× Á¦¾î ¹æ½Ä 1. 1.3. Æß¿þ¾î ¼³°è µµ±¸ 1.2. Æß¿þ¾îÀÇ ±¸Çö Àü·« 1.2.1. ½Ã½ºÅÛ¿¡ ¸Â´Â ÄÄÆÄÀÏ È¯°æ ¼³Á¤ 1.2.2.°¡µ¶¼ºÀ» À§ÇÑ ±ÔÄ¢ 1.2.3. Çϵå¿þ¾î Á¢±Ù ÄÚµù1.3. Æß¿þ¾îÀÇ ¾ÈÀü¼º 1.4. Æß¿þ¾îÀÇ ¼º´É 1.4.1. ¾Ë°í¸®Áò ±¸Çö 1.4.2. ¸Þ¸ð¸® Á¤·Ä (Align)1.4.3. ¸ÅÅ©·Î¿Í Inline ÇÔ¼öÀÇ »ç¿ë 1.4.4. ½Ç¼ö »ç¿ëÀÇ °í·Á»çÇ×1.4.5. Å×½ºÅ©ÀÇ º´·Ä ó¸® 1.4.6. ±âŸ ¼º´É ±ÔÄ¢ 1.5. Æß¿þ¾îÀÇ ¾ç»ê ¹× À¯Áöº¸¼ö 2. Low Level Æß¿þ¾î2.1. CPUÀÇ µ¿ÀÛ°ú ¹ÙÀ̳ʸ® ÆÄÀÏ »ý¼º °úÁ¤ 2.1.1. ºôµå (Build) °úÁ¤2.2. Low Level ÇÁ·Î±×·¡¹Ö ½Ç½À 2.2.1. ¼Ò½º ÆÄÀÏ »ý¼º2.2.2. ¸µÄ¿ ½ºÅ©¸³Æ® ÀÛ¼º .2.2.3. Startup ÄÚµå ÀÛ¼º 2.2.4. Main() ÇÔ¼ö ÀÛ¼º 2.2.5. Makefile ÀÛ¼º 2.2.6. ÄÄÆÄÀÏ·Î ÄÄÆÄÀÏ·Î ÀÌÁø ¹ÙÀ̳ʸ® ÆÄÀÏ »ý¼º 2.2.7. [ Âü°í ] ELF ÆÄÀÏ¿¡¼ Á¤º¸ ¾ò±â 3. Æß¿þ¾î ¼³°è ¹× ±¸Çö ½Ç½À3.1. ¸ðµå¹ö½º(Modbus) RTU ÇÁ·ÎÅäÄÝ3.1.1. ÇÊµå ¹ö½º (Field Bus) ÀÏ¹Ý 3.1.2. ¸ðµå¹ö½º(Modbus) RTU 3.2. Æß¿þ¾î ¼³°è 3.2.1. ºí·Ï ´ÙÀ̾î±×·¥ 3.2.2. Ç÷οì Â÷Æ® 3.3. Æß¿þ¾î ±¸Çö ¹× Å×½ºÆ® 3.3.1. Modbus_io ¸ðµâ ¼Ò½º ±¸Çö3.3.2. Modbus COM ¸ðµâ 3.3.3. Main ÇÔ¼ö 3.4. Æß¿þ¾î Ãë¾àÁ¡ º¸¿Ï4. ±âÃÊ ¾Ë°í¸®Áò4.1. [ÀϹÝ] äÅ͸µ ¹æÁö ¾Ë°í¸®Áò4.1.1. ÀÏÁ¤ ½Ã°£ ¹Ýº¹ üũ ¹ý 4.1.2. ÀúÁÖÆÄ ÇÊÅ͸¦ ÀÌ¿ëÇÑ Ã¤Å͸µ ¹æÁö ¹æ¹ý4.2. ÀÚ·á ±¸Á¶·Ð4.2.1. µ¥ÀÌÅÍ Á¤·Ä4.2.2. ¿øÇü Å¥(Circular Queue)4.3. ¼öÄ¡ Çؼ®4.3.1. Å×ÀÏ·¯ ±Þ¼ö (Taylor Series)4.3.2. ¿¬¸³ ¹æÁ¤½ÄÀÇ ÇØ4.3.3. ¹æÁ¤½ÄÀÇ ±Ù4.3.4. º¸°£¹ý (Interpolation)4.3.5. ¼öÄ¡ ¹ÌºÐ 4.3.6. ¼öÄ¡ ÀûºÐ 4.4. µðÁöÅÐ ½ÅÈ£ ó¸®(DSP)4.4.1. »ùÇøµ »ùÇøµ ÁÖÆļö 4.4.2. ÀúÁÖÆÄ Åë°ú ÇÊÅÍ 4.4.3. °íÁÖÆÄ Åë°ú ÇÊÅÍ IV. [Âü°í] µð¹ö±ë 1. µð¹ö±ë ÀýÂ÷ 2. ÃøÁ¤ Àåºñ ¹× µð¹ö±ë ¿¹ 2.1. Àü±â ½ÅÈ£ ÃøÁ¤ Àåºñ 2.2. µð¹ö±ë/ÃøÁ¤ Ç׸ñ