¡¡¡¡ÕªÒª Õë¶Ô»ùÓÚEPAÐÒéµÄ¹¤ÒµÏÖ³¡Ô¶³Ì·ÃÎʺͼà¿ØÎÊÌ⣬¼òÊö»ùÓÚMPU Rabbit 2000µÄEPAÀ¶ÑÀÊý¾Ý²É¼¯ ϵͳµÄ¹¤×÷ÔÀí£¬ÀûÓÃMPUÄÚ²¿µÄTCP£¯IPÐÒéÕ»ºÍDynamic C¿ª·¢¹¤¾ß£¬¸ø³öÓйØÈí¼þʵÏֵĴúÂë¿ò ¼Ü½á¹¹¡£ÔÚ´Ë»ù´¡ÉÏ£¬½øÐÐϵͳµÄǶÈëʽWeb·þÎñÆ÷Éè¼Æ¡£Í¨¹ýCCIͨÐųÌÐòµÄÉè¼Æ¼°ÔÚϵͳ½çÃæä¯ ÀÀÖеÄÓ¦Óã¬ÑéÖ¤Éè¼ÆµÄ¿ÉÐÐÐÔ¡£¸ÃÉè¼Æ¶ÔǶÈëʽϵͳӦÓÃÓÚ¹¤³§ÏÖ³¡µÄÎÞÏßWeb½ÓÈë¾ßÓÐÖØÒªµÄ²Î ¿¼¼ÛÖµ¡£
¡¡¡¡¹Ø¼ü´Ê EPA EWS Rabbit2000 ¶¯Ì¬C ǶÈëʽWeb·þÎñÆ÷ HTTPÐÒé
Òý ÑÔ
¡¡¡¡EPA(Ethernet for Plant Automation)»ùÓÚÒÔÌ«Íø(IEEE802.3)¡¢ÎÞÏß¾ÖÓòÍø(IEEE802.11)ºÍÀ¶ÑÀ(IEEE802.15)µÈÐÅÏ¢ÍøÂçCOTS(Commercial-Off-The-Shelf)ͨÐż¼ÊõÒÔ¼°TCP(UDP)£¯IPÐÒ飬ÊÇÒ»ÖÖÊÊÓÃÓÚ¹¤Òµ×Ô¶¯»¯¿ØÖÆϵͳװÖÃÓëÒÇÆ÷ÒDZí¼ä£¬ÒÔ¼°¹¤Òµ×Ô¶¯»¯ÒÇÆ÷ÒDZí¼äÊý¾ÝͨÐŵĹ¤Òµ¿ØÖÆÍøÂç¼¼Êõ¡£
¡¡¡¡À¶ÑÀ¼¼ÊõÊÇÒ»ÖÖÏßÀÂÌæ´ú¶Ì¾àÀëÎÞÏßͨÐż¼Êõ£¬¹¤ÒµÏÖ³¡Ä³Ð©¹¤ÒµÉ豸ÐèÒª°²×°ÔÚ¶ñÁӵĹ¤Òµ»·¾³ÖУ¬²ÉÓÃÀ¶ÑÀ¼¼Êõ¿ÉÒÔ±ÜÃ⹤ҵÏÖ³¡²¼ÏßÓöµ½µÄÎÊÌ⡣ǶÈëʽWeb·þÎñÆ÷µÄ³öÏÖÂú×ãÁ˹¤Òµ¿ØÖÆÍøÂçµÍ³É±¾Ô¶³Ì¿ØÖƵÄÐèÒª¡£±¾ÎĽ«Á½Õß½áºÏÆðÀ´Éè¼ÆºÍ¿ª·¢ÁËÂú×ãEPA¹¤Òµ¿ØÖÆÍøÂçÐèÇóµÄÀ¶ÑÀÊý¾Ý²É¼¯Æ÷£¬ÒÔǶÈëʽWeb·þÎñÆ÷EWS(Embedded Web Server)¼¼ÊõΪ»ù´¡£¬½áºÏRabbit2000µÄÍøÂçͨÐŹ¦ÄÜ£¬ÀûÓÃÏÖÓеÄÍøÂç¼¼Êõ(ÈçHTTP¡¢CGI¡¢SSIµÈ)£¬½«À¶ÑÀÎÞÏß·½Ê½²É¼¯µ½µÄÏÖ³¡Êý¾Ý´«Ë͵½·þÎñÆ÷¶Ë£¬·þÎñÆ÷ÒÔÍøÒ³µÄÐÎʽ£¬Ìṩ¸øÔ¶³ÌÓû§Ê¹Óá£
1 »ùÓÚǶÈëʽWeb·þÎñÆ÷µÄÀ¶ÑÀÊý¾Ý²É¼¯ÏµÍ³Éè¼Æ
¡¡¡¡»ùÓÚǶÈëʽWeb·þÎñÆ÷µÄÀ¶ÑÀÊý¾Ý²É¼¯ÏµÍ³Ä£ÐÍÈçͼlËùʾ¡£À¶ÑÀÊý¾Ý²É¼¯Æ÷ÊÇ»ùÓÚEPAÐÒéµÄ¡£Ô¶³Ì¼à¿ØÓû§Í¨¹ýÆóÒµÄÚ²¿ÍøÂçÁ¬½Óµ½Ç¶ÈëʽWeb·þÎñÆ÷ÉÏ£¬¿ØÖÆÀ¶ÑÀоƬÍê³ÉÊý¾Ý²É¼¯£¬²¢½«²É¼¯µ½µÄÊý¾Ý·µ»ØǶÈëʽWeb·þÎñÆ÷£¬ÏÔʾÔÚÔ¶³Ì¹ÜÀíÖն˵ÄWebä¯ÀÀÆ÷ÉÏ¡£
2.1ϵͳӲ¼þ½á¹¹Éè¼Æ
¡¡¡¡»ùÓÚEPAÐÒéµÄÀ¶ÑÀÊý¾Ý²É¼¯Æ÷µÄϵͳ½á¹¹Èçͼ2Ëùʾ¡£Ëü°üÀ¨Î¢´¦ÀíÆ÷¡¢À¶ÑÀÄ£¿é¡¢ÊýÄ£(D£¯A)ת»»Ä£¿é¡¢Ä£Êý(A£¯D)ת»»Ä£¿é¡¢Òº¾§ÏÔʾģ¿é¡¢Flash´æ´¢Æ÷ÒÔ¼°ÒÔÌ«Íø¿ØÖÆÆ÷Ä£¿é£¬ÆäÖУºÀ¶ÑÀÄ£¿é¡¢ÊýÄ£(D£¯A)ת»»Ä£¿é¡¢Ä£Êý(A£¯D)ת»»Ä£¿éÒÔ¼°Òº¾§ÏÔʾģ¿éͨ¹ýÆä½Ó¿Úµç··Ö±ðÓë΢´¦ÀíÆ÷µÄ´®ÐÐͨÐŽӿÚÁ¬½Ó¡£À¶ÑÀÄ£¿é²ÉÓõĴ®¿Ú²¨ÌØÂÊÊÇ57600bps£»Î¢´¦ÀíÆ÷µÄ¹¤×÷Ö÷ƵÂÊÊÇ11.0592MHz¡¢´ÓƵÂÊÊÇ32.768kHz£»À¶ÑÀÄ£¿éµÄ¹¤×÷µçѹÊÇ3.3V£¬ÕâÐèÒªÒ»¸ö5Vµ½3.3VµÄµçѹת»»µç·£»Í¼2ÖÐоƬûÓбêÃ÷µçÔ´ÒýÏߵĶ¼ÐèÌṩ5Vµçѹ¡£
2£®2¹¤×÷ÔÀí
¡¡¡¡¢Ù´ò¿ªÀ¶ÑÀÊý¾Ý²É¼¯Æ÷µÄµçÔ´¿ª¹Øʱ£¬ÏµÍ³½øÐÐ×Լ졣
¡¡¡¡¢Úϵͳ×Ô¼ìͨ¹ýºó£¬À¶ÑÀÊý¾Ý²É¼¯Æ÷¶ÔÀ¶ÑÀ½øÐгõʼ»¯£¬²¢ÔÚÆ串¸Ç·¶Î§ÄÚËÑÑ°ÁíÍâ´øÓÐÀ¶ÑÀоƬµÄÏÖ³¡É豸¡£
¡¡¡¡¢ÛÈô·¢ÏÖÉÏÊöÉ豸£¬¸÷×ÔµÄÁ´Â·¹ÜÀíÆ÷¾Í»á·¢ÏÖ¶Ô·½£¬¾Í¿ÉÒÔÔÚÐèҪʱ¼øȨºÍÈÏÖ¤ºó½¨Á¢Í¨ÐŹØϵ¡£
¡¡¡¡¢ÜÔÚÐèÒª½øÐÐÏÖ³¡Êý¾Ý²É¼¯Ê±£¬½«A£¯Dת»»Ä£¿éµÄÊäÈë¶Ë¿Úͨ¹ýÍâΧ½Ó¿Úµç·Óë±»²É¼¯¶ÔÏóÏàÁ¬¡£A£¯Dת»»Ä£¿é»ñµÃÆô¶¯ÃüÁîºó£¬²É¼¯ÏÖ³¡Êý¾Ý²¢½»¸ø΢´¦ÀíÆ÷½øÐд¦Àí£¬´¦ÀíºóµÄÊý¾Ýͨ¹ýÀ¶ÑÀÄ£¿é·¢Ë͸øÏà¹Ø¿ØÖÆÉ豸£¬Ò²¿ÉÒÔ½«´¦ÀíºóµÄÊý¾Ý´«¸øǶÈëʽWek¡¤·þÎñÆ÷¡£
¡¡¡¡¢Ýͬʱ£¬ÏµÍ³»¹ÅäÓÐһ·D£¯Aת»»Êä³ö£¬ÔÚÐèҪģÄâÁ¿Êä³öʱ£¬¿É½«D£¯Aת»»Æ÷µÄÊä³ö¶Ë¿Úͨ¹ýÍâΧ½Ó¿Úµç·Óë±»¿Ø¶ÔÏóÏàÁ¬£¬³ÌÐò½«¿ØÖÆÖ¸Áî·¢¸øD£¯Aת»»Ä£¿é£¬D£¯Aת»»Ä£¿é½ÓÊÕµ½¿ØÖÆÖ¸Áîºóת»¯ÎªÄ£ÄâÁ¿´«Ë͸øÏÖ³¡É豸£¬Ê¹ÏÖ³¡É豸°´ÕÕ¿ØÖÆÖ¸Áî½øÐй¤×÷¡£
2£®3Èí¼þ×ÜÌåÉè¼Æ
¡¡¡¡»ùÓÚEPAÐÒéµÄÀ¶ÑÀÊý¾Ý²É¼¯ÏµÍ³Èí¼þ½á¹¹Ê¾ÒâͼÈçͼ3Ëùʾ¡£
3 ǶÈëʽweb·þÎñÆ÷µÄʵÏÖ
3£®1ǶÈëʽweb·þÎñÆ÷Ìåϵ½á¹¹
¡¡¡¡¸ÃϵͳµÄǶÈëʽWeb·þÎñÆ÷Ìåϵ½á¹¹Èçͼ4Ëùʾ¡£Ç¶ÈëʽWeb·þÎñÆ÷ÔÚ±¾ÏµÍ³Öд¦ÓÚÓû§ºÍÓ¦ÓÃϵͳµÄÖм䡣ǶÈëʽWeb·þÎñÆ÷±ØÐëÌṩÈô¸É»úÖÆʵÏÖ¶ÔÏÖ³¡É豸µÄ¼àÊӺͿØÖÆ£¬Îªä¯ÀÀÆ÷ÌṩºÍ·¢ËÍWebÒ³²¢´¦Àíä¯ÀÀÆ÷Ìá½»µÄÊý¾Ý[Òý¡£Ç¶ÈëʽWelh·þÎñÆ÷Éè¼ÆÄѵãÖ®Ò»ÊÇÀûÓÃRabbit2000À´ÊµÏÖͨ¹ýä¯ÀÀÆ÷½øÐÐÔ¶³Ì·ÃÎʵÄÄÜÁ¦£¬±¾ÏµÍ³²ÉÓÃcGIºÍSSI¼¼ÊõÀ´ÊµÏÖ£»ÄѵãÖ®¶þÊÇǶÈëʽͨÐųÌÐò¿ª·¢¡£±¾ÏµÍ³ÒÔRabbit2000΢´¦ÀíÆ÷×÷Ϊ¿ØÖÆоƬ£¬ÀûÓÃz¡ªworld¹«Ë¾ÌṩµÄÖ§³ÖTcP£¯IPÐÒéµÄͨÐÅ×Ó³ÌÐò¿â£¬ÔÚDynamic c¼¯³É¿ª·¢»·¾³Ï¿ÉÒÔʵÏÖ¿ìËÙ¿ª·¢¡£
3.2ǰ̨FORM±íµ¥µÄ±àÖƺͽçÃæÉè¼Æ
¡¡¡¡Óû§Ìá½»µÄ¸÷ÖÖÃüÁîÇëÇóÖ÷ÒªÊDzÉÈ¡F()RM±íµ¥ÐÎʽÌá½»¸øcGI³ÌÐòµÄ[Òý¡£Fc)RMÊÇHTML£¬(³¬Îı¾±ê¼ÇÓïÑÔ)µÄÒ»ÖÖ±êʶ£¬¿ÉÒÔÓÃÈκÎÒ»ÖÖÎı¾±à¼Æ÷À´±à¼£¬´æΪ£®htmlÎļþ¿ÉÒÔ±»w¡¯WWä¯ÀÀÆ÷ʶ±ð¡£Êý¾ÝÊäÈ뾡Á¿²ÉÓÃÏÂÀ¿òÊäÈ룬½çÃæÓѺá£
3.3 HTTPÐÒé´¦ÀíÁ÷³Ì
¡¡¡¡HTTPÐÒé´¦ÀíµÄÉè¼ÆÊÇǶÈëʽWeb·þÎñÆ÷ϵͳµÄºËÐIJ¿·Ö¡£CGIÊÇÒ»¸öÓÃÓÚ¶¨ÒåWeb·þÎñÆ÷ÓëÍⲿ³ÌÐòÖ®¼äͨÐÅ·½Ê½µÄ±ê×¼£¬¿ÉÒÔÓÃ×÷Ò»¸öÀ©Õ¹Web·þÎñÆ÷¹¦ÄܵĽӿڣ¬Í¨¹ýCGI¿ÉÒÔʵÏÖÓë·ÃÎÊWebÍøÒ³µÄÓû§½»»¥¡£
¡¡¡¡´Ó±¾ÖÊÉϽ²CGI¾ÍÊÇÒ»¸ö·þÎñ»úÖÆ¡£µ±Óû§Í¨¹ýWebä¯ÀÀÆ÷ÏòHTTP·þÎñÆ÷·¢³öÒ»Ìõ¾ßÓÐGET»òPOSTÃüÁî¸ñʽµÄÇëÇ󣬷þÎñµÄ¾ßÌå²½ÖèÈçÏ£º
¡¡¡¡¢Ùǰ̨¿Í»§»úÀûÓÃä¯ÀÀÆ÷ʹÓÃTCP£¯IPÐÒ飬Óë·þÎñÆ÷½¨Á¢Á¬½Ó£¬·¢ËÍURLÇëÇó£»
¡¡¡¡¢Ú·þÎñÆ÷µ÷ÓôæÈëRabbit2000оƬÀïµÄCGI³ÌÐò£¬Ê¹Óÿͻ§»ú´«µÝµÄ²ÎÊý×÷ΪCGI³ÌÐòµÄ²ÎÊý£»
¡¡¡¡¢ÛCGIÒÔÄܱ»Ê¶±ðµÄ¸ñʽ·µ»Ø´¦Àí½á¹û¸øHTTP·þÎñÆ÷£»
¡¡¡¡¢ÜHTTP·þÎñÆ÷½«Êý¾Ý·µ»Ø¿Í»§¶Ë´¦Àí£¬²¢Í¨¹ýä¯ÀÀÆ÷ÏÔʾCGIÖ´ÐеĽá¹û¡£
¡¡¡¡Í¼5ÏÔʾÁËÉÏÊöä¯ÀÀÆ÷ºÍ·þÎñÆ÷ͨ¹ýCGI³ÌÐòʵÏÖ½»»¥µÄÈ«¹ý³Ì¡£
¡¡¡¡·þÎñÆ÷¶Ë¸½¼þ(SSI)ÊÇÒ»ÖÖ¼òµ¥µÄ¶¯Ì¬WebÒ³ÃæÉú³É¼¼Êõ¡£SSI¶¨ÒåÁËÒ»×é¿ÉÒÔǶÓÚHTMLÎı¾Öеıê¼Ç£¬ÔÚËÍÍù¿Í»§¶Ëä¯ÀÀÆ÷Ç°£¬Web·þÎñÆ÷ÏÈ×÷Ô¤´¦Àí¡£¿ÉÒÔ°ÑSSIÏëÏó³ÉǶÓÚHTMLÒ³ÃæµÄÌØÊâ³ÌÐò¡£
¡¡¡¡ÏÂÃæ¾ÙÒ»¸öÀ¶ÑÀÊý¾Ý²É¼¯ÏµÍ³½øÐÐÀ¶ÑÀоƬ³õʼ»¯µÄÀý×Ó£¬ÆäÖÐSSIµÄÃüÁî×ÖΪexec£¬²ÎÊýΪshowinitial£¬Í¨¹ýHttpSpec http_flashspee[]ÀïµÄ{ HTTPSPEC _ FUNCTION£¬ ¡° showinitial¡±£¬0£® show_initial£¬0£¬NULL£¬NULL}Óï¾äÓëÖ÷³ÌÐòÀïÃæCGIº¯ÊýÖеÄint show_initial(Http-State*state)½¨Á¢¹Øϵ£¬²¢·µ»Ø´Ëº¯Êý½á¹ûÔÚHTMLÎı¾ÀïÃæÏÔʾ¡£
¡¡¡¡