רÀûÃû³Æ£º»ùÓÚ±±¶·ºÍÍÓÂÝÒǵݲ׿ϵͳÏÂ×éºÏµ¼º½Êý¾ÝÊÊÅä·½·¨
¼¼ÊõÁìÓò£º
±¾·¢Ã÷Éæ¼°»ùÓÚ±±¶·ºÍÍÓÂÝÒǵÄAndroidÏÂ×éºÏµ¼º½Êý¾ÝÊÊÅäµÄ·½·¨£¬ÓÈÆäÉæ¼°Ó¦ÓÃÓÚË«CPU¼Ü¹¹ÏµÄÍÓÂÝÒǺÍandroidϵͳµÄÊý¾ÝÊÊÅä·½·¨¡£
±³¾°¼¼Êõ£º
ÔÚ´«Í³µÄÓ²¼þ¼Ü¹¹ÉÏ£¬ÍÓÂÝÒǺÍAndroidϵͳµÄCPUÖ±½ÓÁ¬½Ó£¬ÕâÑù±ØÐëµÈµ½ÏµÍ³³õʼ»¯Íê³É²ÅÄܹ»¶ÁÈ¡µ½ÍÓÂÝÒÇ»º´æµÄÊý¾Ý£¬¶ÁÈ¡µ½ÍÓÂÝÒǵÄÊý¾Ý·Ç³£Âý¡£´«Í³ÍÓÂÝÒǺÍCPUµÄ¼Ü¹¹Ä£Ê½£¬Ê¹µÃÖ»ÓÐϵͳÔÚ³õʼ»¯¿ª±ÙÁËÉ豸Îļþºó£¬²ÅÄܶÔÍÓÂÝÒǵÄÊý¾Ý½øÐд洢£¬ÉϲãÓ¦ÓòÅÄܹ»¶ÁÈ¡µ½ÍÓÂÝÒǵÄÊý¾Ý£»ÕâÖּܹ¹ËäȻͨÐŹý³Ì±È½Ï¼òµ¥£¬µ«ÊDz¢²»ÄÜ¿ìËٵĻñÈ¡µ½ÍÓÂÝÒǵÄÊý¾Ý¡£
·¢Ã÷ÄÚÈÝ
ΪÁ˽â¾öÏÖÓм¼ÊõÖÐÎÊÌ⣬±¾·¢Ã÷ÌṩÁËÒ»ÖÖ»ùÓÚ±±¶·ºÍÍÓÂÝÒǵݲ׿ϵͳ(Android)ÏÂ×éºÏµ¼º½Êý¾ÝÊÊÅä·½·¨£¬
²½Öè1:²ÉÓÃË«ÖÐÑë´¦ÀíÆ÷¼Ü¹¹µÄÖÇÄÜϵͳ£¬µÚÒ»´¦ÀíÆ÷Éϼ¯³ÉÍÓÂÝÒÇÄ£¿é£»
²½Öè2 :ÔÚµÚÒ»´¦ÀíÆ÷Éϲɼ¯Ó²¼þÍÓÂÝÒǵÄÊý¾Ý£¬½øÐÐÊý¾Ý·â×°£»
²½Öè3 :µÚÒ»´¦ÀíÆ÷ͨ¹ý´®¿Ú°ÑÊý¾Ý·¢Ë͸øµÚ¶þ´¦ÀíÆ÷£¬µÚ¶þ´¦ÀíÆ÷µÄ´®¿Ú´úÀí½ÓÊÕµ½ÍÓÂÝÒǵÄÊý¾Ý£»
²½Öè4 :ÔÚµÚ¶þ´¦ÀíÆ÷´®¿Ú´úÀíÉÏÖØÐ´ò°üÊý¾Ý£¬²¢»º´æÆðÀ´£»
²½Öè5 :½¨Á¢Ì×½Ó×ÖͨÐÅsocket·þÎñ¶Ë£¬Í¨¹ýsocket·þÎñ¶Ë°Ñ»º´æµÄÊý¾Ý´«µÝµ½socket¿Í»§¶Ë£»
²½Öè6 =Socket¿Í»§¶Ëͳ·¢ËÍÇëÇó±êʶ·û£¬»ñÈ¡ÍÓÂÝÒÇÄ£¿éµÄÊý¾Ý£»
²½Öè7 =Socket¿Í»§¶Ë»ñÈ¡µ½ÍÓÂÝÒǵÄÊý¾Ý£¬»º´æÆðÀ´£»
²½Öè8 :½âÎösocket¿Í»§¶Ë»º´æµÄÊý¾ÝÔÙͨ¹ý»Øµ÷º¯Êý°ÑÊý¾Ý´«µÝ¸øÍÓÂÝÒǶÁÈ¡µÄÎļþÃèÊö·û£»
²½Öè9 :ͨ¹ýÍÓÂÝÒÇ×ÔÉíµÄ¶ÁÈ¡ÎļþÃèÊö·ûµÄ·½Ê½»ñÈ¡×îºóµÄÍÓÂÝÒÇÊý¾Ý¡£×÷Ϊ±¾·¢Ã÷µÄ½øÒ»²½¸Ä½ø£¬ËùÊöµÚÒ»´¦ÀíÆ÷Ó²¼þ¼Ü¹¹ÉϸºÔðµ×²ãϵͳһ²àµÄ´¦ÀíÆ÷ MCU¡£×÷Ϊ±¾·¢Ã÷µÄ½øÒ»²½¸Ä½ø£¬ËùÊöµÚ¶þ´¦ÀíÆ÷ΪӲ¼þ¼Ü¹¹ÉϸºÔðAndroidϵͳһ²àµÄ´¦ÀíÆ÷X86¡£×÷Ϊ±¾·¢Ã÷µÄ½øÒ»²½¸Ä½ø£¬MCU²àµÄÍÓÂÝÒÇÄ£¿éÊý¾Ýͨ¹ýUART´®¿Ú´úÀí·¢Ë͸øX86²àµÄAndroidϵͳ¡£×÷Ϊ±¾·¢Ã÷µÄ½øÒ»²½¸Ä½ø,ÔÚAndroidϵͳ¶ÔÓ²¼þ³éÏó²ãµÄ´úÂëÊÊÅä,AndroidϵͳÉϲãͨ¹ýÓ²¼þ³éÏó²ã»ñÈ¡µ½ÍÓÂÝÒǵĵ¼º½Êý¾Ý¡£±¾·¢Ã÷µÄÓÐÒæÐ§¹ûÊÇÔÚÒ»ÖÖÐÂÓ²¼þ¼Ü¹¹Ï£¬Í¨¹ýÔÚÓ²¼þ³éÏó²ãµÄÊý¾ÝͨÐÅÊÊÅäÀ´½â¾öÍÓÂÝÒÇÊý¾Ý´Óµ×²ãµ½ÉϲãµÄÊÊÅä·½·¨£¬²¢ÔÚÆäÖнøÐÐͨÐÅÓÅ»¯£»¿ìËٵĻñÈ¡µ½ÍÓÂÝ ÒǵÄÊý¾Ý¡£
ͼ1ÊDZ¾·¢Ã÷ÍÓÂÝÒÇÊý¾Ý´«µÝÁ÷³Ìͼ½á¹¹Ê¾Òâ ͼ2ÊDZ¾·¢Ã÷·â×°¹æÔòʾÒâ ͼ3ÊDZ¾·¢Ã÷½âÎö¹æÔòʾÒâͼ¡£Í¼ÖеÄCacheÊÇÖ¸Êý¾Ý»º´æ£¬ÊÇÒ»¸öÊý¾Ý´æ´¢µÄ¿Õ¼ä¡£AppÊÇÖ¸ÉϲãµÄÓ¦ÓÃÈí¼þ¡£
¾ßÌåʵʩÀý·½Ê½ÏÂÃæÊÇÒ»ÖÖʵÏÖ±¾·¢Ã÷Ä¿µÄµÄ¾ßÌåʵʩ·½°¸¡£±¾·¢Ã÷°ÑMCU²àµÄÍÓÂÝÒÇÄ£¿éÊý¾Ýͨ¹ýUART (Universal AsynchronousReceiver/Transmitter,ͨÓÃÒì²½ÊÕ·¢Æ÷)´®¿Ú´úÀí·¢Ë͸øX86²àµÄAndroidϵͳ£¬ÔÚAndroidϵͳÐèÒª¶ÔÓ²¼þ³éÏó²ã(HAL²ã)µÄ´úÂëÊÊÅ䣬ʹµÃϵͳÉϲãÄܹ»Í¨¹ýHAL²ã»ñÈ¡µ½ÍÓÂÝÒǵĵ¼º½Êý¾Ý¡£ÖÇÄÜϵͳ²ÉÓÃË«CPU¼Ü¹¹£¬µÚһΪӲ¼þ¼Ü¹¹ÉϸºÔðAndroidϵͳһ²àµÄ´¦ÀíÆ÷X86£¬Android²àµÄCPU¸ºÔðϵͳÔËÐУ»µÚ¶þΪӲ¼þ¼Ü¹¹ÉϸºÔðµ×²ãϵͳһ²àµÄ´¦ÀíÆ÷MCU£¬MCU¸ºÔðµ×²ãµÄ´¦Àí¡£MCUÉϼ¯³ÉÍÓÂÝÒÇÄ£¿é¡£MCUºÍAndroidͨ¹ý´®¿Ú´úÀíͨÐÅ£¬Android»ñÈ¡µ½MCU²àÍÓÂÝÒǵÄÊý¾Ý¡£Èçͼ1Ëùʾ£¬ÔÚMCUÉϲɼ¯µ½Ó²¼þÍÓÂÝÒǵÄÊý¾Ý£¬°´ÕÕÒ»¶¨µÄÊý¾Ý¸ñʽ½øÐзâ×°£» MCUͨ¹ý´®¿Ú°ÑÊý¾Ý·¢Ë͸øX86£¬X86´®¿Ú´úÀí½ÓÊÕµ½ÍÓÂÝÒǵÄÊý¾Ý£»
ÔÚX86´®¿Ú´úÀíÉϰ´ÕÕÒ»¶¨µÄÊý¾Ý¸ñÊ½ÖØÐ´ò°üÊý¾Ý£¬²¢»º´æÆðÀ´£»
½¨Á¢socket·þÎñ¶Ë,ͨ¹ýsocket·þÎñ¶Ë°Ñ»º´æµÄÊý¾Ý´«µÝµ½socket¿Í»§¶Ë£»Socket:ÊÇÖ¸Ì×½Ó×ÖͨÐÅ£¬Ò»ÖÖͨÐÅ»úÖÆ£»
Socket¿Í»§¶Ëͳ·¢ËÍÇëÇó±êʶ·û£¬»ñÈ¡ÍÓÂÝÒÇÄ£¿éµÄÊý¾Ý£»
Socket¿Í»§¶Ë»ñÈ¡µ½ÍÓÂÝÒǵÄÊý¾Ý£¬»º´æÆðÀ´£»
½âÎösocket¿Í»§¶Ë»º´æµÄÊý¾ÝÔÙͨ¹ý»Øµ÷º¯Êý°ÑÊý¾Ý´«µÝ¸øÍÓÂÝÒǶÁÈ¡µÄÎļþÃèÊö
·û;
ÔÙͨ¹ýÍÓÂÝÒÇ×ÔÉíµÄ¶ÁÈ¡ÎļþÃèÊö·ûµÄ·½Ê½»ñÈ¡×îºóµÄÍÓÂÝÒÇÊý¾Ý¡£Êý¾ÝµÄ·â×°¸ñʽºÍ½âÎö¹æÔòÈçÏÂ
·â×°¹æÔòÈçͼ2Ëùʾ£¬
Head :Ö¡Í·£¬2¸ö×Ö½Ú£¬´Ë´¦Îª0xa5a5£¬
Type :ͨÐÅÀàÐÍ£¬I¸ö×Ö½Ú£¬·¶Î§0x00 0xff ,
Data Length :Êý¾Ý³¤¶È£¬I¸ö×Ö½Ú£¬¼´DataµÄ×Ö½Ú×ÜÊý£¬
Data :ʵ¼Ê´«ÊäµÄÊý¾Ý£¬³¤¶È²»¶¨£¬
CS :УÑéÖµ£¬1¸ö×Ö½Ú£¬type¡¢data length¡¢dataÈý¸öÓòËùÓÐ×Ö½ÚµÄÒì»òÖµ,ʵ¼ÊÖв¢Ã»Óõ½Ð£Ñ飬
End :֡⣬2¸ö×Ö½Ú£¬´Ë´¦ÎªOxbeef¡£½âÎö¹æÔò¼û¸½Í¼3Ëùʾ¡£
ÒÔÉÏÄÚÈÝÊǽáºÏ¾ßÌåµÄÓÅѡʵʩ·½Ê½¶Ô±¾·¢Ã÷Ëù×÷µÄ½øÒ»²½Ïêϸ˵Ã÷£¬²»ÄÜÈ϶¨±¾·¢Ã÷µÄ¾ßÌåʵʩֻ¾ÖÏÞÓÚÕâЩ˵Ã÷¡£¶ÔÓÚ±¾·¢Ã÷ËùÊô¼¼ÊõÁìÓòµÄÆÕͨ¼¼ÊõÈËÔ±À´Ëµ£¬ÔÚ²»ÍÑÀë±¾·¢Ã÷¹¹Ë¼µÄǰÌáÏ£¬»¹¿ÉÒÔ×ö³öÈô¸É¼òµ¥ÍÆÑÝ»òÌæ»»£¬¶¼Ó¦µ±ÊÓΪÊôÓÚ±¾·¢Ã÷µÄ±£»¤·¶Î§¡£
ȨÀûÒªÇó
1.Ò»ÖÖ»ùÓÚ±±¶·ºÍÍÓÂÝÒǵݲ׿ϵͳÏÂ×éºÏµ¼º½Êý¾ÝÊÊÅä·½·¨£¬ÆäÌØÕ÷ÔÚÓÚ²½Öè1:²ÉÓÃË«ÖÐÑë´¦ÀíÆ÷¼Ü¹¹µÄÖÇÄÜϵͳ£¬µÚÒ»´¦ÀíÆ÷Éϼ¯³ÉÍÓÂÝÒÇÄ£¿é£»²½Öè2 :ÔÚµÚÒ»´¦ÀíÆ÷Éϲɼ¯Ó²¼þÍÓÂÝÒǵÄÊý¾Ý£¬½øÐÐÊý¾Ý·â×°£»²½Öè3 :µÚÒ»´¦ÀíÆ÷ͨ¹ý´®¿Ú°ÑÊý¾Ý·¢Ë͸øµÚ¶þ´¦ÀíÆ÷£¬µÚ¶þ´¦ÀíÆ÷µÄ´®¿Ú´úÀí½ÓÊÕµ½ÍÓÂÝÒǵÄÊý¾Ý£»²½Öè4 :ÔÚµÚ¶þ´¦ÀíÆ÷´®¿Ú´úÀíÉÏÖØÐ´ò°üÊý¾Ý£¬²¢»º´æÆðÀ´£»²½Öè5 :½¨Á¢Ì×½Ó×ÖͨÐÅsocket·þÎñ¶Ë£¬Í¨¹ýsocket·þÎñ¶Ë°Ñ»º´æµÄÊý¾Ý´«µÝµ½ socket¿Í»§¶Ë£»²½Öè6 =Socket¿Í»§¶Ëͳ·¢ËÍÇëÇó±êʶ·û£¬»ñÈ¡ÍÓÂÝÒÇÄ£¿éµÄÊý¾Ý£»²½Öè7 =Socket¿Í»§¶Ë»ñÈ¡µ½ÍÓÂÝÒǵÄÊý¾Ý£¬»º´æÆðÀ´£»²½Öè8 :½âÎösocket¿Í»§¶Ë»º´æµÄÊý¾ÝÔÙͨ¹ý»Øµ÷º¯Êý°ÑÊý¾Ý´«µÝ¸øÍÓÂÝÒǶÁÈ¡µÄÎļþÃèÊö·û£»²½Öè9 :ͨ¹ýÍÓÂÝÒÇ×ÔÉíµÄ¶ÁÈ¡ÎļþÃèÊö·ûµÄ·½Ê½»ñÈ¡×îºóµÄÍÓÂÝÒÇÊý¾Ý¡£
2.¸ù¾ÝȨÀûÒªÇó1ËùÊöµÄ»ùÓÚ±±¶·ºÍÍÓÂÝÒǵݲ׿ϵͳÏÂ×éºÏµ¼º½Êý¾ÝÊÊÅä·½·¨£¬ÆäÌØÕ÷ÔÚÓÚËùÊöµÚÒ»´¦ÀíÆ÷Ó²¼þ¼Ü¹¹ÉϸºÔðµ×²ãϵͳһ²àµÄ´¦ÀíÆ÷MCU¡£
3.¸ù¾ÝȨÀûÒªÇó1»ò2ËùÊöµÄ»ùÓÚ±±¶·ºÍÍÓÂÝÒǵݲ׿ϵͳÏÂ×éºÏµ¼º½Êý¾ÝÊÊÅä·½·¨£¬ÆäÌØÕ÷ÔÚÓÚËùÊöµÚ¶þ´¦ÀíÆ÷ΪӲ¼þ¼Ü¹¹ÉϸºÔðAndroidϵͳһ²àµÄ´¦ÀíÆ÷X86¡£
4.¸ù¾ÝȨÀûÒªÇó3ËùÊöµÄ»ùÓÚ±±¶·ºÍÍÓÂÝÒǵݲ׿ϵͳÏÂ×éºÏµ¼º½Êý¾ÝÊÊÅä·½·¨£¬ÆäÌØÕ÷ÔÚÓÚMCU²àµÄÍÓÂÝÒÇÄ£¿éÊý¾Ýͨ¹ýUART´®¿Ú´úÀí·¢Ë͸øX86²àµÄAndroidϵͳ¡£
5.¸ù¾ÝȨÀûÒªÇó3ËùÊöµÄ»ùÓÚ±±¶·ºÍÍÓÂÝÒǵݲ׿ϵͳÏÂ×éºÏµ¼º½Êý¾ÝÊÊÅä·½·¨£¬ÆäÌØÕ÷ÔÚÓÚÔÚAndroidϵͳ¶ÔÓ²¼þ³éÏó²ãµÄ´úÂëÊÊÅ䣬AndroidϵͳÉϲãͨ¹ýÓ²¼þ³éÏó²ã»ñÈ¡µ½ÍÓÂÝÒǵĵ¼º½Êý¾Ý¡£
È«ÎÄÕªÒª
±¾·¢Ã÷ÌṩÁËÒ»ÖÖ»ùÓÚ±±¶·ºÍÍÓÂÝÒǵݲ׿ϵͳÏÂ×éºÏµ¼º½Êý¾ÝÊÊÅä·½·¨£¬°ÑMCU²àµÄÍÓÂÝÒÇÄ£¿éÊý¾Ýͨ¹ýUART´®¿Ú´úÀí·¢Ë͸øX86²àµÄAndroidϵͳ£¬ÔÚAndroidϵͳÐèÒª¶ÔÓ²¼þ³éÏó²ã(HAL²ã)µÄ´úÂëÊÊÅ䣬ʹµÃϵͳÉϲãÄܹ»Í¨¹ýHAL²ã»ñÈ¡µ½ÍÓÂÝÒǵĵ¼º½Êý¾Ý¡£±¾·¢Ã÷ÔÚÒ»ÖÖÐÂÓ²¼þ¼Ü¹¹Ï£¬Í¨¹ýÔÚÓ²¼þ³éÏó²ãµÄÊý¾ÝͨÐÅÊÊÅäÀ´½â¾öÍÓÂÝÒÇÊý¾Ý´Óµ×²ãµ½ÉϲãµÄÊÊÅä·½·¨£¬²¢ÔÚÆäÖнøÐÐͨÐÅÓÅ»¯£»¿ìËٵĻñÈ¡µ½ÍÓÂÝÒǵÄÊý¾Ý¡£
Îĵµ±àºÅG01C21/20GK103017770SQ201210502590
¹«¿ªÈÕ2013Äê4ÔÂ3ÈÕ ÉêÇëÈÕÆÚ2012Äê11ÔÂ30ÈÕ ÓÅÏÈȨÈÕ2012Äê11ÔÂ30ÈÕ
·¢Ã÷ÕߺÎÕÕµ¤, ÎÂάƽ, ÍõÓ¢¶« ÉêÇëÈË:ÉîÛÚÊк½Ê¢µç×ӹɷÝÓÐÏÞ¹«Ë¾