ÕªÒª£ºÕë¶ÔRFIDϵͳµÄÓ¦ÓÃÐèÇ󣬻ùÓÚARM9΢´¦ÀíÆ÷µÄS3C2440ǶÈëʽϵͳ£¬ÊµÏÖÁËnRF905ÎÞÏßÊÕ·¢Æ÷µÄÊý¾Ý´«Ê䣬ΪRFIDϵͳÌṩÁ˵ײãÈíÓ²¼þ½Ó¿Ú¡£Ó²¼þʹÓûùÓÚS3C2440΢¿ØÖÆÆ÷µÄǶÈëʽƽ̨ºÍµ¥Æ¬ÎÞÏßÊÕ·¢Æ÷nRF905£»Èí¼þʹÓÃARM-LinuxÄںˣ¬ÀûÓÃÉϲãÓ¦ÓóÌÐò·¢ËͽÓÊÕÊý¾Ý£¬µ×²ãÇý¶¯³ÌÐò½øÐÐÓ²¼þ¼äµÄÊý¾Ý´«Êä¡£
RFID¾ßÓжÁÈ¡Ëٶȿ졢¶ÁÈ¡¾àÀëÔ¶¡¢´¢´æÐÅÏ¢Á¿´ó¡¢±êÇ©ÉÏÊý¾Ý¿É¼ÓÃÜ¡¢Ê¹ÓÃÊÙÃü³¤¡¢¹¤×÷»·¾³ÊÊÓ¦ÐÔÇ¿µÈ¶àÖÖÓŵ㣬ÒѾÔÚ¸÷ÁìÓò¹ã·ºÓ¦ÓÃ[1]¡£
½«RFID¼¼ÊõÓëǶÈëʽϵͳÏà½áºÏ£¬½«ÉäƵʶ±ðÄ£¿éǶÈ뵽ǶÈëʽϵͳÖУ¬ÔÚǶÈëʽLinuxÏÂͨ¹ýÉè¼ÆÇý¶¯³ÌÐòʵÏÖÉäƵģ¿éµÄÊÕ·¢¹¦ÄÜ¡£Ç¶ÈëʽRFIDϵͳÔö¼ÓÁËRFID¼¼ÊõµÄͨÓÃÐԺͿÉÒÆÖ²ÐÔ£¬·á¸»ÁËǶÈëʽϵͳͨÐŽӿÚÍâÉ蹦ÄÜ£¬ÌáÉýÁËǶÈëʽ¼¼ÊõÔÚÎÞÏßͨÐÅÁìÓòµÄ·¢Õ¹¿Õ¼ä¡£
µ±Ç°µÄǶÈëʽϵͳÖв¢²»Ö§³ÖRFIDϵͳ£¬ËùÒÔÒª½øÐÐÓ²¼þºÍÈí¼þÁ½·½ÃæµÄÀ©Õ¹¡£Ó²¼þ·½ÃæÖ÷Òª¸ù¾ÝnRF905ÎÞÏßÊÕ·¢Æ÷µÄµçÆøÌØÐÔ½øÐнӿÚÀ©Õ¹£¬ÀûÓûùÓÚARM9ǶÈëʽƽ̨µÄÀ©Õ¹¿Ú¶ÔnRF905½øÐпØÖÆ£»Èí¼þ·½ÃæÀûÓÃLinuxÄÚºËÁ¼ºÃµÄÒÆÖ²ÐÔºÍÀ©Õ¹ÐÔ£¬±àдÇý¶¯³ÌÐò¿ØÖÆÉäƵģ¿éµÄÊÕ·¢¹¦ÄÜ£¬ÔڵײãÇý¶¯ÒÔÊÕ¼¯ºÍ·Ö×éÊý¾Ý²¢´«µÝ¸øÉϲãÓ¦ÓóÌÐò£¬ÓÉÉϲãÓ¦ÓóÌÐòÓëÓû§½øÐн»»¥¡£±¾ÎÄËùÑо¿µÄ»ùÓÚǶÈëʽϵͳµÄRFIDÇý¶¯£¬½«ÎªÇ¶ÈëʽRFIDϵͳÌṩµ×²ãÈíÓ²¼þ½Ó¿Ú³ÌÐò£¬ÎªÇ¶ÈëʽÄÚºËÔöÌíRFID¹ÜÀí»úÖÆ£¬ÎªÉϲãÓ¦ÓóÌÐòÌṩÁ¼ºÃ·þÎñ£¬½µµÍǶÈëʽRFIDµÄ¿ª·¢ÄѶȣ¬Ëõ¶Ì¿ª·¢ÖÜÆÚ£¬´Ó¶ø½µµÍÆä³É±¾£¬Ê¹RFIDµÄÓ¦Óøü¼ÓÆÕ¼°¡£
1 Ó²¼þµç·µÄʵÏÖ
ͼ1ÊÇnRF905ÎÞÏßÊÕ·¢Æ÷½Ó¿ÚÀ©Õ¹µÄÓ²¼þµç·ÔÀíͼ£¬Ó²¼þµç·µÄʵÏÖÖ÷Òª»ùÓÚS3C2440 ARM9΢´¦ÀíÆ÷ºÍµ¥Æ¬nRF905ÎÞÏßÊÕ·¢Æ÷µÄ»¥Áª£¬ÒÔ¼°¸ù¾ÝnRF905µçÆøÌØÐÔËù×öµÄһЩÍâ½Óµç·¡£
S3C2440ÊÇÒ»¿î²ÉÓÃARM920TÄں˵ĸßÐÔÄÜ32 bit´¦ÀíÆ÷£¬ÆäÖ÷Ƶ¸ß´ï405 MHz£¬²ÉÓÃ5¼¶Á÷Ë®Ïߺ͹þ·ð½á¹¹¡£S3C2440°üÀ¨Á½¸öSPI½Ó¿Ú£¬Ã¿¸ö½Ó¿Ú·Ö±ðÓÐÁ½¸ö8 bitÊý¾ÝÒÆλ¼Ä´æÆ÷ÓÃÓÚ·¢ËͺͽÓÊÕ¡£ÔÚSPI·¢ËÍÆڼ䣬Êý¾Ýͬʱ·¢ËÍ£¨´®ÐÐÒƳö£©ºÍ½ÓÊÕ£¨´®ÐÐÒÆÈ룩[2]¡£Òò´Ë£¬ÀûÓô¦ÀíÆ÷µÄSPI½Ó¿Ú£¬¿ÉÒԺܷ½±ãµØÓÃSPI½Ó¿ÚÓënRF905ÎÞÏßÊÕ·¢Ä£¿é½øÐÐÊý¾Ý´«Êä¡£
µ¥Æ¬nRF905ÎÞÏßÊÕ·¢Æ÷¹¤×÷ÔÚ433/868/915 MHzµÄISMƵ¶Î¡£ÓÉÒ»¸öÍêÈ«¼¯³ÉµÄƵÂʵ÷ÖÆÆ÷¡¢Ò»¸ö´ø½âµ÷Æ÷µÄ½ÓÊÕÆ÷¡¢Ò»¸ö¹¦ÂÊ·Å´óÆ÷¡¢Ò»¸ö¾§ÌåÕñµ´Æ÷ºÍÒ»¸öµ÷½ÚÆ÷×é³É¡£ÆäËù¾ßÓеÄShockBurst¹¤×÷ģʽ¿ÉÒÔ×Ô¶¯²úÉúÇ°µ¼ÂëºÍCRC¡£¿ÉÒÔͨ¹ýSPI½Ó¿Ú½øÐбà³ÌÅäÖá£
nRF905²ÉÓÃNordic¹«Ë¾µÄVLSI ShockBurst¼¼Êõ¡£ShockBurst¼¼ÊõʹnRF905Äܹ»Ìṩ¸ßËÙµÄÊý¾Ý´«Êä¶ø²»ÐèÒª°º¹óµÄ¸ßËÙMCUÀ´½øÐÐÊý¾Ý´¦Àí/ʱÖÓ¸²¸Ç¡£Í¨¹ý½«ÓëRFÐÒéÓйصĸßËÙÐźŴ¦ÀíÆ÷·Åµ½Ð¾Æ¬ÄÚ£¬nRF905Ìṩ¸ø΢¿ØÖÆÆ÷Ò»¸öSPI½Ó¿Ú£¬ËÙÂÊÓÉרΪ¿ØÖÆÆ÷É趨µÄ½Ó¿ÚËٶȾö¶¨¡£nRF905ͨ¹ýShockBurst¹¤×÷ģʽÔÚRFÒÔ×î´óËÙÂʽøÐÐÁ¬½Óʱ£¬½µµÍÊý×ÖÓ¦Óò¿·ÖµÄËÙÂÊÀ´½µµÍÔÚÓ¦ÓÃÖеÄƽ¾ùµçÁ÷ÏûºÄ¡£ÔÚShockBurst½ÓÊÕģʽÖУ¬µØÖ·Æ¥Åä(AM)ºÍÊý¾Ý×¼±¸¾ÍÐ÷(DR)ÐźÅ֪ͨ΢´¦ÀíÆ÷Ò»¸öÓÐЧµÄµØÖ·ºÍÊý¾Ý°üÒѾ¸÷×Ô½ÓÊÕÍê³É¡£ÔÚShockBurst·¢ËÍģʽÖУ¬nRF905×Ô¶¯²úÉúÇ°µ¼ÂëºÍCRCУÑéÂ룬Êý¾Ý×¼±¸¾ÍÐ÷(DR)ÐźÅ֪ͨ΢´¦ÀíÆ÷Êý¾Ý´«ÊäÒѾÍê³É[3]¡£
2 RFIDÇý¶¯³ÌÐòÉè¼Æ
2.1 ÕûÌåÇý¶¯Éè¼Æ˼Ïë
RFIDÇý¶¯³ÌÐòµÄÉè¼Æ²ÉÓÃ×Ե׶øÉÏ(Down-Top)µÄ·½·¨¡£ÓÅÏÈÉè¼Æµ×²ã²¿·Ö¼´SPI½Ó¿ÚµÄÇý¶¯³ÌÐò£¬È»ºóÔÙÉè¼ÆÉϲãRFIDÇý¶¯¡£ÕâÖÖ×ԵͶøÉÏÉè¼Æ·½·¨¿ÉÒÔ°Ñ´óÄ£¿é·ÖɢΪ¼¸¸öСģ¿é£¬°Ñ´óÉè¼Æ·ÖΪСÉè¼Æ£¬±ãÓÚ¿ª·¢ÑéÖ¤£¬²¢ÇÒ·ûºÏLinuxÄ£¿é»¯µÄÉè¼Æ˼Ï룬ÊÇÒ»ÖÖ¸ßЧµÄÉè¼Æ·½·¨¡£
nRF905²ÉÓÃSPI½Ó¿ÚÓëÍâ½ç½øÐÐͨÐÅ£¬Òò´Ëµ×²ãSPIÇý¶¯Ö÷ÒªÍê³ÉnRF905µÄSPIºÍ΢´¦ÀíÆ÷S3C2440µÄSPIÄ£¿é¼äµÄͨÐÅ¡£ÉϲãRFÇý¶¯³ÌÐòͨ¹ýSPI½Ó¿ÚÏònRF905·¢ËÍÖ¸ÁîºÍÊý¾Ý£¬×îÖÕÓÉnRF905µÄÖ÷»ú¿ØÖÆÆ÷¿ØÖÆÉäƵÊÕ·¢Æ÷Íê³ÉÊý¾ÝÊÕ·¢£¬ÊµÏÖÉäƵģ¿é¼äµÄÎÞÏßͨÐÅ¡£
2.2 SPIÇý¶¯³ÌÐòÉè¼Æ
ÔÚÓ²¼þµç·ÖУ¬Î¢´¦ÀíÆ÷S3C2440µÄSPI0Ä£¿éÓënRF905ÖеÄSPI½Ó¿ÚÏàÁ¬½Ó¡£SPIÇý¶¯µÄ×÷Óü´Íê³ÉÖ÷SPIÓënRF905ÖдÓSPIµÄÊý¾Ý´«Ê䡣ΪÁ˱ãÓÚÑéÖ¤¹¦ÄÜ£¬Ìá¸ßÏîÄ¿¿ª·¢Ð§ÂÊ£¬µ×²ãSPIÇý¶¯Éè¼ÆΪ¶ÀÁ¢µÄÄ£¿é£¬²¢ÇÒ½øÐе÷ÊÔ£¬ÔÚSPIÇý¶¯Éè¼ÆµÄ»ù´¡ÉÏ£¬Íê³ÉÉϲãRFÇý¶¯¡£
ÔÚARM9ǶÈëʽƽ̨µÄÄÚºËLinux2.6.12ÖУ¬²»°üº¬SPIÇý¶¯³ÌÐò£¬¶øÔÚLinuxÄÚºËÖ®ºóµÄ°æ±¾Öаüº¬ÁËSPIÇý¶¯¡£ÕâÑù£¬¾Í¿ÉÒÔÒÆֲа汾ÖеÄSPIÇý¶¯µ½±¾Ç¶Èëʽƽ̨Linux2.6.12ÖС£ËäÈ»ÕâÖÖSPIÇý¶¯Í¨ÓÃÐԺ͹¦ÄÜÐÔ¶¼½ÏÇ¿£¬µ«Æä´úÂëÁ¿´ó£¬½Ï¶à¹¦Äܲ¢²»·ûºÏ±¾Éè¼ÆµÄÒªÇó¡£Òò´Ë£¬±¾Éè¼ÆÑ¡ÔñÖØбàдSPIµ×²ãÇý¶¯£¬¼ò»¯Æ书ÄÜ£¬½¨Á¢»·Ðλº³åÇø£¬Ìá¸ßÊý¾ÝÊÕ·¢Ð§ÂÊ¡£
SPIÇý¶¯³ÌÐò×÷ΪÉ豸Îļþ£¬°üº¬write¡¢read¡¢open¡¢release¡¢ioctlµÈ¼¸¸ö²Ù×÷[4]£¬ÆäÖйؼüÐÔµÄÓ²¼þ²Ù×÷Ϊ¶Áд²Ù×÷£¬Ð´²Ù×÷µÄÖ÷Òª×÷ÓÃÊÇ°ÑÓû§Êý¾Ý¿½±´µ½Äں˻º³åÇø£¬²¢¿ØÖÆ΢¿ØÖÆÆ÷ÖеÄÖ÷SPI·¢ËÍÊý¾Ýµ½nRF905ÖУ»¶Á²Ù×÷Óëд²Ù×÷ÀàËÆ£¬¶ø¹ý³ÌÏà·´£¬¼´°ÑÖ÷SPI½Óµ½µÄÊý¾Ý¿½±´µ½Äں˻º³åÇø£¬ÔÙÓÉÄں˻º³åÇø¿½±´µ½Óû§¿Õ¼äÉêÇëºÃµÄÊý¾Ý½á¹¹ÖС£¶ÔSPIÉ豸Êý¾Ý½ÓÊյļà¿Ø£¬Çý¶¯³ÌÐò²ÉÓÃÖжϵķ½Ê½À´Í¨ÖªÏµÍ³SPIÊý¾ÝÊÇ·ñÊÕ·¢Íê±Ï£¬ÔÚSPIÉ豸ÿ·¢ËÍÍêÒ»×éÊý¾Ý»ò½ÓÊÕµ½Ò»×éÊý¾Ýºó£¬¾Í»á´¥·¢Öжϣ¬ÐźÅÓÉIRQÏß½øÈ룬´«ÈëCPU½øÐÐÖжϴ¦Àí¡£
SPIÇý¶¯³ÌÐòµÄд¹ý³Ì°üÀ¨½¨Á¢Êý¾Ý½á¹¹¡¢½¨Á¢»·Ðλº³åÇø£¬´ÓÓû§¿Õ¼ä°ÑÊý¾Ý¿½±´µ½Êý¾Ý½á¹¹ÖС¢µ÷ÓÃwriteº¯Êý°ÑÊý¾Ý¿½±´½ø»·Ðλº³åÇøÖС¢Ð´Âúºó·¢Ë͵ÚÒ»×éÊý¾Ýµ½·¢ËͼĴæÆ÷¡£µ±SPI·¢ËͼĴæÆ÷ÖеÄÊý¾Ý·¢ËÍÍê±Ïºó£¬»á·¢³öÖжÏÐźţ¬´¥·¢Î¢´¦ÀíÆ÷Öжϣ¬ÏµÍ³½øÈëÖжÏÉÏÏÂÎÄ¡£ÎªÁËËõ¶ÌÖжϴ¦Àíʱ¼ä£¬Ìá¸ßÖжϴ¦ÀíЧÂÊ£¬Çý¶¯³ÌÐòÖвÉÓÃÁ˶¥/µ×°ë²¿µÄ´¦Àí·½·¨[5]£¬¼´Öжϴ¦Àíʱ¼ä¾¡Á¿µØ¶Ì£¬ÔÚÖжϴ¦ÀíÀý³ÌÖе÷ÓÃtaskletµ÷¶Èº¯Êý£¬½«ÐèÒª½Ï¶àʱ¼äµÄÖжϴ¦Àí·¢µ½tasklet(¼´µ×°ë²¿)Öд¦Àí¡£ÔÚtaskletÖлá°Ñ»·Ðλº³åÇøµÄÊý¾ÝдÈë·¢ËͼĴæÆ÷£¬×îÖÕÓÉSPI¿ØÖÆÆ÷·¢ËͳöÈ¥¡£
SPIÇý¶¯³ÌÐòµÄ¶Á¹ý³ÌºÍд¹ý³ÌÀàËÆ£¬SPI½ÓÊռĴæÆ÷½Óµ½Êý¾Ýºó´¥·¢Öжϡ£CPU½Óµ½ÖжÏÐźźó½øÈëÖжϴ¦ÀíÀý³Ì£¬µ÷¶Ètasklet½øÈëµ×°ë²¿½øÐÐÖжϴ¦Àí£¬°Ñ½ÓÊռĴæÆ÷ÖеÄÊý¾Ý¿½±´µ½»·Ðλº³åÇøÖУ¬È»ºó»½ÐÑÕýÔÚÐÝÃߵĽø³Ì£¬ÓÉreadº¯Êý°Ñ»·Ðλº³åÇøÖеÄÊý¾Ý¿½±´µ½ÉêÇëºÃµÄÊý¾Ý½á¹¹ÖУ¬ÔÙ¿½±´ÖÁÓû§¿Õ¼ä¡£
2.3 RFIDÇý¶¯³ÌÐòÉè¼Æ
Íê³ÉSPIµ×²ãÇý¶¯ºó£¬ÉϲãRFIDÇý¶¯µÄÄÚÈÝÖ÷ÒªÊǶÔnRF905ÅäÖüĴæÆ÷½øÐÐÅäÖ㬰üÀ¨·¢ËͽÓÊÕÊý¾ÝµÄ×Ö½ÚÊý¡¢Ä¿±êµØÖ·¡¢¹¤×÷ģʽ¡¢Ê±ÖÓƵÂʵÈͨ¹ýnRF905×Ô¶¨ÒåµÄSPIÖ¸ÁîдÈë¼Ä´æÆ÷ÖС£Òò´ËÒª¶ÔSPIÇý¶¯ÖеÄwrite/readº¯Êý½øÐзâ×°£¬Í¨¹ýµ÷ÓÃSPIÇý¶¯Öеĺ¯ÊýÍê³ÉÕûÌåÇý¶¯µÄ¼Ä´æÆ÷ÅäÖúÍÊý¾Ý´«Ê书ÄÜ¡£
RFIDÇý¶¯³ÌÐò×÷ΪÉ豸Îļþ£¬Í¬Ñù·ÖΪwrite¡¢read¡¢open¡¢release¡¢ioctlµÈ¼¸¸ö²Ù×÷¡£RFIDÇý¶¯³ÌÐòµÄд²Ù×÷¹ý³Ì£ºÊ×ÏȽ«Óû§¿Õ¼äÖеÄÊý¾Ý¿½±´ÖÁÊý¾Ý½á¹¹ÖУ»È»ºóʹnRF905½øÈëStandbyģʽ£¬µ÷ÓÃSPIwriteº¯Êý¶ÔÊý¾Ý¼Ä´æÆ÷ºÍµØÖ·¼Ä´æÆ÷½øÐÐÅäÖ㬰ѷ¢ËÍÊý¾ÝºÍÄ¿±êµØַдÈë±¾µØnRF905£¬Ö®ºó½øÈëShockBurst·¢ËÍģʽ£¬Óɱ¾µØnRF905ÏòÄ¿±ênRF905·¢ËÍÊý¾Ý£»×îºó½ø³Ì½øÈëÐÝÃß״̬£¬µÈ´ýÊý¾Ý×¼±¸ÐźÅDR´¥·¢Öжϣ¬ÓÉÖжϴ¦ÀíÀý³Ì»½Ðѽø³Ì£¬Íê³ÉÊý¾Ý·¢ËÍ¡£Í¼2ΪRFIDµÄ·¢ËÍÁ÷³Ìͼ¡£
RFIDµÄ¶Á²Ù×÷½«Åжϻº³åÇøÊÇ·ñΪ¿Õ£¬Èç¹û²»Îª¿Õ£¬¾Í°Ñ»º³åÇøÖеÄÊý¾Ý¿½±´ÖÁÊý¾Ý½á¹¹ÖУ¬²¢¿½ÖÁÓû§¿Õ¼äÖУ»Èç¹ûΪ¿Õ£¬½ø³Ì¾Í»á½øÈëÐÝÃߣ¬µÈ´ý»º³åÇø½ÓÊÕµ½Êý¾Ýºó£¬½øÈëÖжϻ½Ðѽø³Ì¡£ÔÚ½øÈëShockBurst RXģʽºó£¬±¾µØnRF905»á×Ô¶¯¼à²â¿ÕÖеÄÐÅÏ¢£¬ÔÚnRF905·¢ÏֺͽÓÊÕƵÂÊÏàͬµÄÔز¨Ê±£¬Ôز¨¼ì²âÐźÅCD±»Öøߣ¬´¥·¢Öжϣ¬ÔÚÖжÏÀý³ÌÖÐÖ»ÊÇÑÓʱһ¶Îʱ¼ä£¬µÈ´ýnRF905½ÓÊÕµ½ÓÐЧµÄÄ¿µÄµØַʱ£¬µØÖ·Æ¥ÅäÐźÅÖøߡ£µ±nRF905½ÓÊÕµ½ÓÐЧµÄÊý¾Ý°üºó£¬Êý¾Ý×¼±¸¾ÍÐ÷ÐźÅDR»á´¥·¢Öжϣ¬½øÈëÖжÏÀý³Ì£¬½øÈëStandbyģʽ£¬°Ñ½ÓÊÕµ½µÄÊý¾Ýͨ¹ýSPI½Ó¿Ú¶ÁÈ뻺³åÇøÄÚ£¬¶øºó»½Ðѽø³Ì£¬°Ñ»º³åÇøÖеÄÊý¾Ý¿½±´ÖÁÓû§¿Õ¼äÖС£µ±ËùÓеÄÊý¾Ý±»¶Á³öºó£¬nRF905µÄAMºÍDRÐźÅÏ߻ᱻÖõ͡£nRF905Çл»µ½ÏÂһ״̬¡£RFIDÇý¶¯½ÓÊÕÁ÷³ÌÈçͼ3Ëùʾ¡£
3 ¹¦ÄܲâÊÔ
²âÊÔÖ÷Òª·ÖΪÁ½²¿·Ö£¬Ê×ÏȶԵײãSPI½Ó¿Ú²¿·Ö×öµ÷ÊÔ£¬È»ºóÔÚ´Ë»ù´¡ÉÏ£¬¶ÔRFIDÇý¶¯½øÐй¦ÄܲâÊÔ¡£
Ó²¼þ·½Ã棬ÀûÓÃS3C2440¿ª·¢°åµÄÀ©Õ¹¿ÚÓënRF905Ä£¿éÁ¬½Ó£¬À©Õ¹¿ÚÖÐÓõ½µÄGPIO×ÊÔ´ÔÚÇý¶¯³ÌÐòÖÐÉèÖá£ÁíÍ⣬ÓÃRS-232´®¿Ú½«¿ª·¢°åÓëPC»úÏàÁ¬£¬ÀûÓÃÄں˵ÄDebug¹¦ÄÜ[6]£¬Í¨¹ýPC»ú¶Ô¿ª·¢°å½øÐпØÖÆ£¬Íê³ÉÇý¶¯¼ÓÔغÍÓ¦ÓóÌÐòµÄÔËÐС£
Èí¼þ·½Ã棬»ùÓÚS3C2440µÄǶÈëʽƽ̨ÐèÒªÍêÕûµÄǶÈëʽ²Ù×÷ϵͳ×ÊÔ´£¬°üÀ¨bootloader¡¢kernel¡¢Îļþϵͳ¡£ÔÚ¶ÔÄں˽øÐмô²Ãºó£¬½«bootloader¡¢kernel¡¢Îļþϵͳͨ¹ýJTAGÉÕÈëNAND FlashÖС£²Ù×÷ϵͳҪ±£Ö¤Äںˡ¢ÎļþϵͳÒÔ¼°Ó²¼þÉ豸Õý³£ÔËÐС£
3.1 SPIÇý¶¯¹¦ÄܲâÊÔ
SPIÇý¶¯²âÊÔÖ÷Òª²âÊÔÇý¶¯³ÌÐòµÄ¹¦ÄÜ£¬²âÊÔÇý¶¯³ÌÐòÊÇ·ñÄܹ»¿ØÖÆSPIÖ÷´ÓÉ豸ÕýÈ·´«ÊäÊý¾Ý¡£×ÊÔ´°üÀ¨S3C2440¿ª·¢Æ½Ì¨¡¢Linux2.6.12ÄÚºËÔ´Âë°ü¡¢Ê¾²¨Æ÷¡£ÏµÍ³ÔËÐк󣬼ÓÔØSPIÇý¶¯£¬ÔËÐбàдµÄÉϲãÓ¦ÓóÌÐò½øÐÐÊý¾ÝÊÕ·¢£¬²¢ÓÃʾ²¨Æ÷¹Û²ì²¨ÐΡ£
3.2 RFIDÇý¶¯³ÌÐò²âÊÔ
ÔÚ²âÊÔSPIÇý¶¯³É¹¦ºó£¬ÖØÐÂÆô¶¯ÏµÍ³£¬´ýϵͳ³É¹¦ÔËÐк󣬼ÓÔØRFIDÇý¶¯³ÌÐò£¬ÔËÐÐΪÆä±àдµÄ²âÊÔ³ÌÐò£¬²âÊÔÁ½nRF905ÎÞÏßÄ£¿é¼äµÄͨÐÅ¡£S3C2440µÄGPIO×ÊÔ´ÓënRF905ÐźÅÏ߶ÔÓ¦¹ØϵÈçÏ£º
Power downģʽ£º PWR GPJ12
Ôز¨¼ì²âÊä³ö£º CD GPG6
µØÖ·Æ¥ÅäÊä³ö£º AM GPB9
Êý¾Ý¾ÍÐ÷Êä³ö£º DR GPG1
SPIÖ÷Èë´Ó³ö£º MISO GPE11
SPIÖ÷³ö´ÓÈ룺 MOSI GPE12
SPI汅 SCK GPE13
SPIʹÄÜ£º CSN GPB10
·¢ËÍ/½ÓÊÕʹÄÜ£º TRX_CE GPG8
·¢ËÍ/½ÓÊÕģʽ£º TX_EN GPG0
Á½¸öƽ̨·Ö±ðΪ£ºARM9ǶÈëʽƽ̨ºÍMSP430µ¥Æ¬»úƽ̨¡£ÔÚARMƽ̨ÔËÐз¢ËͲâÊÔ³ÌÐò£¬¶øµ¥Æ¬»úƽ̨ÔËÐнÓÊÕ²âÊÔ³ÌÐò£¬Ö®ºó½»»»¡£½ÓÊն˽«½ÓÊÕµ½·¢ËͶ˷¢Ë͵ÄÊý¾Ý£¬²¢½«Êý¾ÝÔÚPC»úÖÕ¶ËÏÔʾ¡£
µ±ARM·¢ËͶ˵ÄÓ¦ÓóÌÐòÖз¢ËÍ×Ö·û´®“aaaaaaaa”ʱ£¬µ¥Æ¬»ú¶ËµÄnRF905Ä£¿é½ÓÊռĴæÆ÷ÖÐÊÕµ½×ª»»ºóµÄASCIIÂë“97”£»µ±ARM¶Ë×÷Ϊ½ÓÊն˶øµ¥Æ¬»ú×÷Ϊ·¢ËͶËʱ£¬ARM¶ËÔËÐнÓÊÕ³ÌÐòºó£¬ÔÚÓû§¿Õ¼ä¼´ÏÔʾÖÕ¶ËÉÏÏÔʾÁ˽ÓÊÕµ½µÄÊý¾Ý“abcd…”¡£±íÃ÷´ËRFIDÇý¶¯³ÌÐò³É¹¦ÊµÏÖÁË¿ØÖÆnRF905ÎÞÏßÊÕ·¢Æ÷½øÐÐÊý¾Ý½ÓÊÕ´«ÊäµÄ¹¦ÄÜ¡£
±¾ÎĽéÉÜÁËÒ»ÖÖ»ùÓÚARM9S3C2440ǶÈëʽƽ̨À©Õ¹RFIDÇý¶¯µÄÉè¼Æ·½°¸£¬Éè¼ÆÁËÓ²¼þÀ©Õ¹µç·ºÍÏàÓ¦µÄÇý¶¯³ÌÐò£¬Í¨¹ýÁ˲¢²âÊÔ¡£ÊµÏÖÁËǶÈëʽƽ̨¼äµÄRFID¶Ì¾àÀ뼴ʱͨÐŹ¦ÄÜ¡£Ç¶ÈëʽRFIDÇý¶¯½«Íƶ¯RFID¼¼ÊõÔÚÓ¦ÓÃÁìÓòÖеķ¢Õ¹£¬½«»áÖ§³Ö¸ü¶àµÄÉäƵӲ¼þ£¬¸ù¾Ý´ËÇý¶¯¿ÉÒÔ¿ª·¢¸ü¶àµÄÓ¦ÓóÌÐò£¬Âú×ã¶àÖÖÐèÇó¡£
²Î¿¼ÎÄÏ×
[1] ¶Àö»ª.RFID¼¼ÊõÓëÓ¦ÓÃ[M].±±¾©£ºµç×Ó¹¤Òµ³ö°æÉ磬2008.
[2] SAMSUNG.S3C2440A user’s manual reltminary[OL]. Revision0£¬2004.
[3] NORDIC Semiconductor.nRF905_rev1_1[OL].2004£º1-36.
[4] Áõíµ.ǶÈëʽϵͳ½Ó¿ÚÉè¼ÆÓëLinuxÇý¶¯³ÌÐò¿ª·¢[M]. ±±¾©£º±±¾©º½¿Õº½Ìì´óѧ³ö°æÉ磬2006.
[5] Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman. Linux device drivers[M].Sebastopol£ºO’Reilly Media£¬2005.
[6] BOVERTDP£¬MARCOCÖø.ÉîÈëÀí½âLinuxÄÚºË(µÚÈý°æ)[M].³ÂÀò¾ý£¬ÕÅÇíÉù£¬Õźê࣬Òë.±±¾©£ºÖйúµçÁ¦³ö°æÉ磬2007.
×÷ÕߣºÖÜÅô ºîÁ¢¸Õ ÅíÏþºê ³©´ï À´Ô´£º¡¶µç×Ó¼¼ÊõÓ¦Óá·2011ÄêµÚ8ÆÚ