Ò»ÇÐÖ»ÊÇ¿ªÊ¼

来源: BlogBus 原始链接: http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=148190 存档链接: https://web.archive.org/web/20040624200805id_/http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=148190


Ò»ÇÐÖ»ÊÇ¿ªÊ¼ Linux, ǶÈëʽϵͳ, ´®¿ÚͨÐÅ, PALM OS, Bluetooth ... Êǹ¤×÷ÖÐÕýÓõ½µÄ

Java, software engineering, ÒÔ¼°ÆäËûµÄºÜ¶à¼¼Êõ£¬ÊÇÎÒ¸ÐÐËȤµÄ <<<ÓÃprc-tool¹¹ÔìPALMµÄ¾²Ì¬¿â | Ê×Ò³ | ¶ÔÓÚ sizeof µÄһЩÀí½â>>> Linux ÎÞÏßÍøÂç¼¼Êõ ʱ¼ä: 04/04/21 Linux É쵀 WLAN¡¢Bluetooth¡¢GPRS¡¢GSM ºÍ Infrared Data Ò»ÀÀ µÈ¼¶£ºÖм¶ Sreekrishnan Venkateswaran ( s_krishna@in.ibm.com ) רְÈí¼þ¹¤³Ìʦ£¬IBM India 2004 Äê 4 Ô µ±½ñ£¬²»¿¼ÂÇ Linux ºÍÎÞÏßÍøÂç¼¼ÊõµÄ»°£¬¾ÍÎÞ·¨Ì¸µ½¼ÆËã»úºÍÍøÂç¡£ÔÚÕâÆªÎÄÕÂÖУ¬Sreekrishnan Venkateswaran Óà Linux ¹Ûµã²ûÊÍÁËͨ¹ý WLAN¡¢Bluetooth¡¢GPRS¡¢GSM ÒÔ¼° IrDA ʵÏÖÎÞÏßÁªÍø¡£ËûʹÓø÷ÖÖ²»Í¬µÄÎÞÏßÉ豸ºÍÏàÓ¦µÄÄں˲㣬ÒÔ¼°Óû§¿Õ¼ä¹¤¾ßÀ´Ê¾·¶ËüÃÇÔÚ Linux ÏÂÈçºÎ¹¤×÷¡£ ÎÞÏß¼¼Êõ£¬ÀýÈç WLAN (Wireless Local Area Network)¡¢Bluetooth¡¢GPRS (General Packet Radio Service)¡¢GSM (Global System for Mobile communications) ÒÔ¼° IrDa (Infrared Data)£¬ÔÚ²»Í¬µÄ»·¾³ÏÂÌṩ·þÎñ¡£ËäÈ» WLAN Ö§³Ö±È Bluetooth ¸ü¸ßµÄËٶȺ͸ü³¤µÄ´«²¥¾àÀ룬µ«ÊÇËüÒ²ÐèÒª¸ü¶àµÄ·ÑÓò¢ÇҺĵçÁ¿¸ü´ó¡£GPRS ËäÈ»±È Bluetooth ºÍ WLAN Âý£¬µ«ÊÇ¿ÉÓÃÓÚÒÆ¶¯¼¼Êõ¡£¾¡¹ÜËüÃÇ´æÔÚ²îÒ죬»òÕßÊÇÆäËûÔ­Òò£¬µ«ÊǾßÓжàÖÖÎÞÏß¹¦ÄܵÄÉ豸¿ÉÒÔ×ÛºÏÀûÓÃËüÃÇ¡£ÀýÈ磬¸ù¾Ý GPS Ä£¿éµÄ¶¨Î»ÊäÈ룬É豸¿ÉÒÔ͸Ã÷µØ½«ÍøÂçÁ¬½Ó´Ó·É쵀 GPRS Çл»µ½Íø°ÉÖиü±ãÒ赀 WLAN¡£Òƶ¯µç»°¿ÉÒÔͨ¹ý Bluetooth ÓëÐÄÂɼàÊÓÆ÷ͨÐÅ£¬µ±²¡ÈËÐÄÂɳ¬³öij¸ö¼«ÏÞʱ£¬¾Í¿ÉÒÔͨ¹ý GSM ÏòÒ½Éú·¢Ë;¯±¨¡£ Ŀǰ£¬ÎÞÏß¼¼ÊõÒѾ­ÒÔ PCMCIA¡¢Compact Flash (CF) ¿¨µÄÐÎʽ¹ã·ºÓ¦Ó㬻òÕßÓÃÓÚ USB É豸¡£´ó¶àÊý¼ÆËã»úϵͳ£¬°üÀ¨Ç¶ÈëʽÉ豸£¬¶¼ÓÐ PCMCIA¡¢CF »òÕß USB ½Ó¿Ú£¬¼´Ê¹²»º¬¶ÔÎÞÏß¼¼ÊõµÄÄÚÖÃÖ§³Ö£¬Ò²Äܹ»Á¢¿ÌʹÓÃÕâЩ¼¼Êõ¡£ÕâÆªÎÄÕ·ÖÎöÁËÎÞÏßÉ豸µÄһЩʾÀý£¬²¢ÇÒÑо¿ÁËÉ豸Çý¶¯³ÌÐòµÄ Linux ʵÏÖ¡¢×ÜÏß¼¼ÊõÒÔ¼°¸÷ÖÖЭÒé¡£ Ê×ÏÈ£¬Í¨¹ý¸ú×Ù WLAN Ñù¿¨µÄ´úÂëÁ÷£¬Äú½«Á˽⵽ WLAN É豸ÊÇÈçºÎÔÚ Linux Ϲ¤×÷µÄ£¬È»ºó»¹¿ÉÒÔ¿´µ½¼¸¸ö Bluetooth É豸ÈçºÎÓë Linux Bluetooth Õ»ºÍÆäËûÄں˲ãÁ¬½Ó¡£½ÓÏÂÀ´£¬Äú½«Á˽⵽ÈçºÎʹ GPRS ºÍ GSM É豸ÔÚ Linux Ϲ¤×÷¡£ÎÄÕÂ×îºó·ÖÎöÁË Linux É쵀 IrDa Ö§³Ö²¢¼òÒª½éÉÜÁËÓйØÎÞÏßÍøÂçÉ豸µÄÐÔÄÜÎÊÌâ¡£ ×¢Ò⣺ ±¾ÎÄÉæ¼°µ½µÄÄÚºËÊý¾Ý½á¹¹ºÍÎļþÃûÊǵ±Ç° Linux °æ±¾ÖÐËùʹÓõġ£ÎļþÃûÏà¶ÔÓÚ Linux ÄÚºËÔ´³ÌÐòÊ÷µÄ¸ù¡£ Linux 802.11 WLAN WLAN ͨÐÅϵͳ×÷ΪÓÐÏß LAN ÒÔÍâµÄÁíÒ»ÖÖÑ¡ÔñÒ»°ãÓÃÔÚͬһ×ù½¨ÖþÄÚ¡£WLAN ʹÓà ISM (Industrial¡¢Scientific¡¢Medical) ÎÞÏßµç¹ã²¥Æµ¶ÎͨÐÅ¡£WLAN µÄ 802.11a ±ê׼ʹÓà 5 GHz Ƶ¶Î£¬Ö§³ÖµÄ×î´óËÙ¶ÈΪ 54 Mbps£¬¶ø 802.11b ºÍ 802.11g ±ê׼ʹÓà 2.4 GHz Ƶ¶Î£¬·Ö±ðÖ§³Ö×î´ó 11 Mbps ºÍ 54 Mbps µÄËÙ¶È¡£ WLAN ÀàËÆÓÚÓÐÏßÒÔÌ«Íø£¬ËüÃǶ¼ÊÇ´ÓͬһµØÖ·³Ø·ÖÅä MAC (Media Access Control) µØÖ·£¬²¢ÇÒ¶¼ÊÇ×÷ΪÒÔÌ«ÍøÉ豸³öÏÖÔÚ²Ù×÷ϵͳµÄÍøÂçÉ豸²ã¡£ÀýÈ磬ARP(Address Resolution Protocol) ±íÊÇÓà WLAN MAC µØÖ·ºÍÒÔÌ«Íø MAC µØÖ·Ìî³äµÄ¡£ È»¶ø WLAN ÓëÓÐÏßÒÔÌ«ÍøÔÚÁ´Â·²ãÓкܴóµÄÇø±ð¡£ÀýÈ磬802.11 ±ê׼ʹÓóåÍ»±ÜÃ⣨CSMA/CA£©´úÌæÓÐÏßÒÔÌ«ÍøµÄ³åÍ»¼ì²â£¨CSMA/CD£©¡£¶øÇÒ£¬ÓëÒÔÌ«ÍøÖ¡²»Í¬µÄÊÇ£¬WLAN Ö¡ÊDZ»È·Èϵġ£ ÓÉÓÚ WLAN ¹¤×÷Õ¾Ö®¼äµÄÄ£ºý±ß½ç£¬WLAN Á´Â·²ãÓµÓÐÔÚ´«ËÍǰÇå³ýÒ»¸öÇøÓòµÄЭÒé¡£³öÓÚ°²È«ÐÔ¿¼ÂÇ£¬WLAN µÄ Wired Equivalent Privacy (WEP) ¼ÓÃÜ»úÖÆÌṩÓëÓÐÏßÍøÂçÏàͬµÄ°²È«¼¶±ð¡£WEP ½« 40 ±ÈÌØ»ò 104 ±ÈÌØÃÜÔ¿ÓëËæ»úµÄ 24 ±ÈÌØ³õʼÏòÁ¿×éºÏÓÃÒÔ¼Ó½âÃÜÊý¾Ý¡£WLAN Ö§³ÖÁ½ÖÖͨÐÅģʽ£º Ad Hoc ģʽ ÓÃÓÚСȺ×鹤×÷Õ¾Ö®¼ä²»±ØÊ¹Ó÷ÃÎʵãµÄ¶Ìʱ¼äÄÚͨÐÅ£¬¶ø Infrastructure ģʽ µÄËùÓÐͨÐűØÐëͨ¹ý·ÃÎʵ㡣·ÃÎʵãÖÜÆÚÐԵع㲥һ¸ö·þÎñ¼¯±êʶ·û£¨SSID£©£¬SSID ÓÃÓÚ½«Ò»¸ö WLAN ÍøÂçÓëÆäËûÍøÂçÇø±ð¿ªÀ´¡£ ´ó¶àÊý¿ÉÓÃµÄ WLAN ¿¨ÊÇ»ùÓÚ Intersil Prism »ò Lucent Hermes оƬ×éµÄ¡£Compaq¡¢Nokia¡¢Linksys ºÍ D-Link ¿¨Ê¹Óà Prism оƬ×飬¶ø Lucent Orinoco ¿¨ºÍ Apple Airport ʹÓà Hermes оƬ×é¡£ Linux WLAN Ö§³Ö Linux WLAN Ö§³ÖÓÉ WLAN API ʵÏÖºÍ WLAN É豸Çý¶¯³ÌÐò×é³É¡£ÎÒ½«ÒÀ´ÎÑо¿ËüÃÇ¡£ ÓÐÁ½¸ö Linux ÏîÄ¿¶¨ÒåÒ»°ãµÄ WLAN API£¬²¢ÇÒÌṩ¹¤¾ßÈÃÓû§¿Õ¼äÓ¦ÓóÌÐòÅäÖòÎÊýºÍ´æÈ¡À´×Ô WLAN É豸Çý¶¯³ÌÐòµÄÐÅÏ¢¡£Wireless Extensions ÏîĿΪ²»Í¬µÄÎÞÏßÍø¿¨Ìṩ¹«¹²µÄ Linux Óû§¿Õ¼ä½Ó¿Ú¡£Õâ¸öÏîÄ¿µÄ¹¤¾ß°üÀ¨ iwconfig ÓÃÒÔÅäÖòÎÊý£¨±ÈÈç WLAN Çý¶¯³ÌÐòÖÐµÄ WEP ¹Ø¼ü×Ö¼° SSID£©¡£linux-wlan ÏîÄ¿×÷Ϊ Wireless Extensions ÏîĿһ²¿·Ö£¬Ò²Ö§³ÖһϵÁÐÓÃÓÚ´ÓÓû§¿Õ¼äÓë WLAN É豸Çý¶¯³ÌÐò½»»¥µÄ¹¤¾ß¡£Óë»ùÓÚ Wireless Extensions µÄ¹¤¾ß²»Í¬£¬ÕâЩ¹¤¾ßʹÓÃÀàËÆÓÚ SNMP (Simple Network Management Protocol) MIB (Management Information Base) µÄÓï·¨£¬¸ÃÓï·¨·´Ó³ IEEE 802.11 ¹æ·¶¡££¨Çë²ÎÔÄ ²Î¿¼×ÊÁÏ £¬»ñµÃÏîÄ¿µÄ¸ü¶àÐÅÏ¢¡££© ¼ÌÐøÌÖÂÛÉ豸Çý¶¯³ÌÐò£¬Ö§³ÖÁ÷ÐÐµÄ WLAN ¿¨µÄ Linux É豸Çý¶¯³ÌÐò°üÀ¨£º Orinoco WLAN Çý¶¯³ÌÐò£º ÊÇ Linux ÄÚºËÔ´´úÂëµÄÒ»²¿·Ö£¬Ö§³Ö»ùÓÚ Hermes µÄ¿¨ºÍ»ùÓÚ Intersil Prism µÄ¿¨¡£ orinoco_cs Ä£¿éÌṩÁË PCMCIA ºÍ CF ¿¨Ëù±ØÐèµÄ PCMCIA ¿¨·þÎñÖ§³Ö¡£ linux-wlan ÏîÄ¿µÄ linux-wlan-ng Çý¶¯³ÌÐò£º Ö§³Ö¶àÖÖ»ùÓÚ Prism оƬ×éµÄ¿¨¡£Õâ¸öÇý¶¯³ÌÐòÖ§³Ö linux-wlan API ²¢²¿·ÖÖ§³Ö Wireless Extensions¡£ Host AP É豸Çý¶¯³ÌÐò£º Ö§³Ö Prism оƬ×éµÄ AP ģʽ£¬¿ÉÒÔʹ WLAN Ö÷»úÆð·ÃÎʵãµÄ×÷ÓᣠLinux Symbol Spectrum É豸Çý¶¯³ÌÐò£º Ö§³Ö Symbol PCMCIA ¿¨¡£²»Í¬ÓÚ PCMCIA ¿¨£¬Symbol CF ¿¨È±·¦°åÔØ¹Ì¼þ£¬ËüÒÀ¿¿É豸Çý¶¯³ÌÐòÀ´ÏÂÔØ¹Ì¼þ¡£¸ÃÇý¶¯³ÌÐòµÄÒ»¸öµ¥¶À°æ±¾ÊÊÓÃÓÚ CF ¿¨¡£Intel ½« Symbol PCMCIA ¿¨ÖØÐ´ò°üΪ Intel PRO/Wireless ¿¨£¬¶ø Socket ͨÐÅÖØÐ´ò°üÁË Symbol CF ¿¨¡£ Atmel USB WLAN Çý¶¯³ÌÐò£º ÀûÓà Atmel оƬ×éÖ§³ÖÐí¶à USB WLAN É豸¡£ Çë²ÎÔÄ ²Î¿¼×ÊÁÏ £¬»ñµÃÕâЩÉ豸µÄÇý¶¯³ÌÐòÐÅÏ¢¡£ Intersil Prism2 WLAN CF ¿¨ ÎÒ½«ÌÖÂÛ Intersil Prism2 802.11b WLAN CF ¿¨À´Õ¹Ê¾ËüÈçºÎÓë Linux PCMCIA¡¢ÍøÂçÉ豸¼°Ð­Òé²ãÒ»Æð¹¤×÷¡£ Linux PCMCIA/CF ²ãÓÉ PCMCIA Ö÷»ú¿ØÖÆÆ÷µÄÉ豸Çý¶¯³ÌÐò¡¢²»Í¬¿¨µÄ¿Í»§»úÇý¶¯³ÌÐò¡¢Óû§Ä£Ê½³ÌÐò¡¢ÓÐÖúÓÚÈȰεĺǫ́½ø³ÌºÍÓëÒÔÉϸ÷²¿·Ö½»»¥²¢ÎªËüÃÇÌṩ·þÎñµÄÄں˿¨·þÎñÖÐÊà×é³É£¨Çë²ÎÔÄ ²Î¿¼×ÊÁÏ £©¡£PCMCIA ¿ØÖÆÆ÷½«¿¨Á¬½Óµ½ÏµÍ³×ÜÏߣ¬½«¿¨ÄÚ´æÓ³Éäµ½Ö÷»ú I/O ºÍÄÚ´æ´°¿Ú£¬²¢½«¿¨²úÉúµÄÖжÏ·Óɵ½×ÔÓÉ´¦ÀíÆ÷ÖжÏÏß¡£CF ¿¨½ÏС£¬µ«Óë PCMCIA ¼æÈÝ£¬²¢ÇÒ¾­³£Ó¦ÓÃÓÚÊÖ³ÖÉ豸¡£PCMCIA/CF ¿¨ÓµÓÐÁ½¸ö´æ´¢¿Õ¼ä£º ÊôÐÔÄڴ棨attribute memory £©ºÍ ¹«¹²Äڴ棨common memory£© ¡£ÊôÐÔÄÚ´æÀàËÆÓÚ Card Information Structure (CIS)£¬ÓÃÀ´±£´æÅäÖÃ×¢²áºÍÃèÊö·ûÐÅÏ¢¡£Linux ¿¨·þÎñºËÐÄÓëÖ÷»ú¿ØÖÆÆ÷É豸Çý¶¯³ÌÐò¡¢¿¨É豸Çý¶¯³ÌÐò¼°Óû§Ä£Ê½ cardmgr ºǫ́½ø³Ì½»»¥¡£ËüÔÚһЩʼþ£¨±ÈÈ翨²åÈë¡¢¿¨ÒƳöÒÔ¼°µÍµçÁ¿£©·¢Éúʱµ÷Óÿ¨Çý¶¯³ÌÐòµÄʼþ´¦Àí³ÌÐòÀý³Ì¡£¾¡¹Ü¿¨·þÎñ´Ó¿¨µÄ CIS ÏòÉÏ´«ËÍÐÅÏ¢µ½ cardmgr £¬ µ«ÊÇ cardmgr ½«Îª·ÖÅäÄÚ´æ´°¿ÚºÍÖжϼ¶±ð¶øÔÚÓû§¿Õ¼ä£¨/etc/pcmcia/config.opts£©Öж¨ÒåµÄ×ÊÔ´·ÖÅä²ßÂÔÏòÏ´«Ë͵½¿¨·þÎñ¡£²é¿´ drivers/pcmcia/ds.c ¿ÉÒÔÁ˽âÓë cardmgr ½»»¥µÄÄں˴úÂ룬²éÔÄ /etc/pcmcia/config.opts ¿ÉÒÔÁ˽âÓû§¿Õ¼ä×ÊÔ´·ÖÅä²ßÂÔ¡£ ²åÈë Intersil WLAN CF ¿¨Ê±£¬¿¨·þÎñµ÷Óà orinoco_cs Ä£¿éµÄ PCMCIA ʼþ´¦Àí³ÌÐò¡£¿¨·þÎñ½âÎö¿¨ÊôÐÔÄÚ´æÖÐµÄ CIS Ôª×飨tuples£©²¢ÏòÉÏ´«ËÍÐÅÏ¢µ½ cardmgr £¬Õ⽫´Ó /etc/pcmcia/config Îļþ£¨²ÎÔÄÇåµ¥ 1£©¼ÓÔØÊʵ±µÄÉ豸Çý¶¯³ÌÐò¡£ÓÉÓÚ¿¨µÄ CIS ÖÐµÄ manfid Ôª×鯥Åä /etc/pcmcia/config ÖеÄÌõÄ¿£¬ËùÒÔ cardmgr °ó¶¨´øÓÐ orinoco_cs Çý¶¯³ÌÐòµÄ¿¨¡£Çåµ¥ 1 ÖеÄÉ豸ÌõÄ¿¹æ¶¨ orinoco_cs Çý¶¯³ÌÐòÓÉÈý¸öÄÚºËÄ£¿é×é³É£º orinoco ¡¢ orinoco_cs ºÍ hermes ¡£´ËÍ⣬ÓÉÓÚÉ豸ÊôÓÚ ÎÞÏߵģ¨wireless£© Ò»À࣬ËùÒÔµ±Æô¶¯ºÍÍ£Ö¹É豸ʱ£¬ cardmgr Ö´Ðнű¾ /etc/wireless/wireless¡£Õâ¸ö½Å±¾Ê¹Óà WLAN ¹¤¾ßºÍʵÓóÌÐòÀ´ÅäÖÃÉ豸Çý¶¯³ÌÐò²ÎÊý£¬ÀýÈç WEP ¹Ø¼ü×ÖºÍ SSID¡£Ëü»¹¿ÉÒÔÆô¶¯ WLAN ÉϵÄÍøÂçЭÒ飬ÀýÈç DHCP£¨Dynamic Host Configuration Protocol£¬¶¯Ì¬Ö÷»úÅäÖÃͨѶЭÒ飩¡£Çåµ¥ 1 ÖеÄʾÀýʹÓà Wireless Extensions ¹¤¾ßÀ´Ö´ÐÐÉ豸ÅäÖᣠעÒ⣺ PCMCIA ÅäÖÃÎļþµÄÈ·ÇÐλÖÃÈ¡¾öÓÚËùÓÃµÄ Linux ·Ö²¼¡£ Çåµ¥ 1. Intersil WLAN CF ¿¨µÄ PCMCIA É豸ÌõÄ¿ card "Intersil PRISM2 11 Mbps Wireless Adapter" manfid 0x0156, 0x0002 bind "orinoco_cs" device "orinoco_cs" class "wireless" module "orinoco","orinoco_cs","hermes" Óà /etc/pcmcia/wireless ºÍ /etc/pcmcia/wireless.opts ½Å±¾À´ÅäÖà WEP ¹Ø¼ü×ÖºÍ SSID ÕâÑùµÄ²ÎÊý¡£ Çåµ¥ 2. ÅäÖà WLAN ÌØ¶¨²ÎÊý iwconfig ethX essid <wlan_name> key AAAA-AAAA-AA [1] key BBBB-BBBB-BB [2] key CCCC-CCCC-CC [3] key DDDD-DDDD-DD [4] : Set 64-bit WEP Keys and ESSID in the driver iwconfig ethX : Display WLAN parameters iwpriv : Get nongeneric, driver-specific parameters iwlist : List Information and statistics from an interface iwspy : Read quality of link for a set of addresses /proc/net/wireless : Wireless Statistics from the device driver ÔÚ²åÈ뿨ʱ£¬ orinoco_cs Ïñ´«Í³µÄÍøÂçÉ豸Çý¶¯³ÌÐòÒ»Ñù£¬µ÷Óà register_netdev À´»ñµÃ·ÖÅ䏸 WLAN ½Ó¿ÚµÄ ethX ÍøÂç½Ó¿ÚÃû¡£Ëü»¹»á×¢²áÒ»¸öÖжϷþÎñÀý³ÌµÄµØÖ·ÒÔ·þÎñÊÕ·¢ÎÞÏßÊý¾Ýʱ²úÉúµÄÖжϡ£Öжϴ¦Àí³ÌÐòÊÇ orinoco Ä£¿éµÄÒ»²¿·Ö£¬²¢Óë Linux ÍøÂçÕ»½»»¥¡£Linux ÍøÂçջʹÓÃÖ÷ÒªµÄÊý¾Ý½á¹¹ÊÇ sk_buff ½á¹¹£¨¶¨ÒåÔÚ include/linux/skbuff.h ÖУ¬Çë²ÎÔÄ ²Î¿¼×ÊÁÏ £¬¸ÃÎļþ°üÀ¨¹ØÓÚ¸½¼ÓÔÚËüÉϵÄÒ»¸öÄÚ´æ¿éµÄ¿ØÖÆÐÅÏ¢£©¡£ sk_buffs ΪËùÓÐÍøÂç²ãÌṩÓÐЧµÄ»º³åÆ÷´¦ÀíºÍÁ÷¿ØÖÆ»úÖÆ¡£ÍøÂçÉ豸Çý¶¯³ÌÐòÖ´ÐÐÒ»¸ö dev_alloc_skb ºÍÒ»¸ö skb_put £¬ÒÔÓà IP Êý¾ÝÌî³äÒ»¸ö sk_buff £¬È»ºóͨ¹ýµ÷Óà netif_rx ½«Õâ¸ö sk_buff ´«Ë͵½ TCP/IP Õ»¡£orinoco ÖжϷþÎñÀý³ÌÓÃ´Ó WLAN ½ÓÊÕµÄÊý¾ÝÌî³ä sk_buffs £¬²¢¾­ÓÉ netif_rx ½«Ëü´«Ë͵½ IP Õ»¡£ Linux TCP/IP Ó¦ÓóÌÐò¿ÉÒÔÔÚÇ°ÃæÌ¸µ½µÄÄÚºËÄ£¿éΪ Intersil WLAN CF ¿¨ÌṩµÄÍøÂç½Ó¿ÚÉϲ»¼Ó¸ü¸ÄµØÔËÐС£ Linux Bluetooth Bluetooth ÊÇÓÃÓÚÌæ»»µçÀµĶ̳ÌÎÞÏß¼¼Êõ£¬Ö§³Ö 723 kbps£¨²»¶Ô³Æ£©ºÍ 432 kbps£¨¶Ô³Æ£©µÄËÙ¶È£¬¿ÉÒÔ´«ÊäÊý¾ÝºÍÓïÒô¡£Bluetooth É豸µÄ´«Ê䷶Χ´óÔ¼ 10 Ã×£¨30 Ó¢³ß£©¡££¨¹ØÓÚ Bluetooth ¹æ·¶£¬Çë²ÎÔÄ ²Î¿¼×ÊÁÏ ¡££© BlueZ Êǹٷ½ Linux Bluetooth Õ»£¬ÓÉÖ÷»ú¿ØÖƽӿڣ¨Host Control Interface £¬HCI£©²ã¡¢Bluetooth ЭÒéºËÐÄ¡¢Âß¼­Á´Â·¿ØÖƺÍÊÊÅäЭÒ飨Logical Link Control and Adaptation Protocol£¬L2CAP£©¡¢SCO ÒôƵ²ã¡¢ÆäËû Bluetooth ·þÎñ¡¢Óû§¿Õ¼äºǫ́½ø³ÌÒÔ¼°ÅäÖù¤¾ß×é³É£¨Çë²ÎÔÄ ²Î¿¼×ÊÁÏ £©¡£ Bluetooth ¹æ·¶Ö§³ÖÕë¶Ô Bluetooth HCI Êý¾Ý·Ö×éµÄ UART£¨Í¨ÓÃÒì²½½ÓÊÕÆ÷/´«ËÍÆ÷£©ºÍ USB ´«Êä»úÖÆ¡£BlueZ Õ»¶ÔÕâÁ½¸ö´«Êä»úÖÆ£¨drivers/Bluetooth/£©¶¼Ö§³Ö¡£BlueZ BNEP£¨Bluetooth ÍøÂç·âװЭÒ飩ʵÏÖÁË Bluetooth ÉϵÄÒÔÌ«Íø·ÂÕæ£¬Õâʹ TCP/IP ¿ÉÒÔÖ±½ÓÔËÐÐÓÚ Bluetooth Ö®ÉÏ¡£BNEP Ä£¿é£¨net/bluetooth/bnep/£©ºÍÓû§Ä£Ê½ pand ºǫ́½ø³ÌʵÏÖÁË Bluetooth ¸öÈËÇøÓòÍø£¨PAN£©¡£BNEP ʹÓà register_netdev ½«×Ô¼º×÷ΪÒÔÌ«ÍøÉ豸ע²áµ½ Linux ÍøÂç²ã£¬²¢Ê¹ÓÃÉÏÃæÎª WLAN Çý¶¯³ÌÐòÃèÊöµÄ netif_rx À´Ìî³ä sk_buffs ²¢½«Æä·¢Ë͵½Ð­ÒéÕ»¡£BlueZ RFCOMM(net/bluetooth/rfcomm/) Ìṩ Bluetooth ÉϵĴ®ÐзÂÕæ£¬ÕâʹµÃ´®Ðж˿ÚÓ¦ÓóÌÐò£¨Èç minicom£©ºÍЭÒ飨Èçµã¶ÔµãЭÒ飨PPP£©£©²»¼Ó¸ü¸ÄµØÔÚ Bluetooth ÉÏÔËÐС£RFCOMM Ä£¿éºÍÓû§Ä£Ê½ dund ºǫ́½ø³ÌʵÏÖÁË Bluetooth ²¦ºÅÍøÂç¡£ÏÂÃæµÄÁÐ±í¸ø³öÁËÅäÖà Bluetooth Éϵĸ÷ÖÖЭÒé·þÎñËù±ØÐèµÄ BlueZ Ä£¿é¡¢ÊµÓóÌÐò¡¢ºǫ́½ø³ÌÒÔ¼°ÅäÖÃÎļþ¡£ ÏÂÒ»²½£¬¿¼ÂÇ Bluetooth CF ¿¨¡¢Bluetooth USB ÊÊÅäÆ÷¡¢¾ßÓÐÄÚÖà CSR Bluetooth оƬ×éµÄÉ豸ÒÔ¼° Sony Bluetooth ¶ú»úµÄʾÀý£¬Á˽âËüÃÇÔÚ Linux ÏÂÊÇÈçºÎ¹¤×÷µÄ¡£ Sharp Bluetooth CF ¿¨ Sharp Bluetooth CF ¿¨Ê¹Óà UART ´«ÊäÆ÷À´´«ËÍ HCI Êý¾Ý·Ö×é¡£³ýÁË serial_cs ÊÇÓë Linux PCMCIA ºËÐĽ»»¥µÄ¿¨·þÎñÇý¶¯³ÌÐòÖ®Í⣬Linux PCMCIA/CF ²ãÓë Sharp ¿¨µÄÆäËû²Ù×÷ϵͳµÄ½»»¥ÀàËÆÓÚÕë¶Ô Intersil WLAN CF ¿¨Ëù½âÊ͵Ľ»»¥¡£ serial_cs Çý¶¯³ÌÐò£¨½«ÔÚÏÂÃæµÄ ¡°GSM É쵀 Linux GPRS ºÍÊý¾Ý¡±Ò»½ÚÖÐ×ö½øÒ»²½½âÊÍ£©Ä£ÄâÁË Sharp CF ¿¨ÉϵĴ®Ðж˿ڡ£BlueZ hci_uart Á´½ÓÇý¶¯³ÌÐòÓë Bluetooth UART ͨµÀ½»»¥²¢½«Ä£ÄâµÄ´®Ðж˿ÚÁ¬½Óµ½ BlueZ Õ»¡£ ÏÂÃæµÄÁÐ±í¸ø³öÁ˵±¿¨²åÈëʱ±ØÐë¼ÓÔØµÄÄ£¿é¡£ÆäËûµÄ Bluetooth CF ¿¨£¬ÀýÈç Pretec CompactBT ¿¨ºÍ Socket Bluetooth ¿¨£¬¾ßÓÐ UART ½Ó¿Ú£¬µ«ÊÇÓÖÓи÷×ԵĿ¨·þÎñÇý¶¯³ÌÐò£¨·Ö±ðÊÇ drivers/bluetooth/dtl1_cs.c ºÍ drivers/bluetooth/btuart_cs.c£©¡£ÔÚ±¾ÎĺóÃæ£¬Äú½«·¢ÏÖ¸ü¶à¹ØÓÚ Bluetooth UART ´«ÊäÆ÷µÄÐÅÏ¢¡£ /etc/pcmcia/config ÖÐÕë¶Ô Sharp Bluetooth CF ¿¨µÄÌõÄ¿£º card "SHARP Bluetooth Card" version "SHARP", "Bluetooth Card" bind "serial_cs" ½«Òª¼ÓÔØµÄ±ØÐèµÄÄÚºËÄ£¿é£º insmod serial_cs insmod bluez insmod l2cap insmod hci_uart insmod bnep (for pand) insmod rfcomm (for dund) BlueZ Óû§¿Õ¼äºǫ́½ø³Ì¡¢ÊµÓóÌÐòÒÔ¼°ÅäÖÃÎļþ£º hciattach ttySx any [baud_rate] [flow] hciconfig -a £º¼ì²é HCI ½Ó¿Ú¡£ hcitool -a hci0 scan 'flush £º·¢ÏÖÆäËûÉ豸¡£ hcidump £ºHCI Ðá̽Æ÷¡£ hcid £ºHCI ºǫ́½ø³Ì¡£ /etc/bluetooth/hcid.conf £ºhcid ËùÓÃµÄ HCI ºǫ́½ø³ÌÅäÖÃÎļþ£¬ËüÖ¸¶¨ÁËÁ´½Óģʽ£¨Ö÷»ò´Ó£©¡¢Á´½Ó²ßÂÔ¡¢Ñ¯ÎʺÍɨÃèģʽ£¬µÈµÈ¡£ /etc/bluetooth/pinDB £ºBlueZ PIN Êý¾Ý¿â¡£ hcidump £ºService Discovery Protocol ºǫ́½ø³Ì¡£ pand £ºÔÚ Bluetooth ÉÏÔËÐÐ TCP/IP£¨--listen ÓÃÓÚ·þÎñÆ÷£¬--connect <bluetooth_address> ÓÃÓÚ¿Í»§»ú£©¡£ /etc/bluetooth/pan/dev-up £ºpand ÔÚ¼¤»î TCP/IP ʱµ÷Óô˽ű¾¡£´Ë½Å±¾Äܹ»°üº¬Ò»¸öÀàËÆÓÚ ifconfig bnep0 <ip_address> µÄÃüÁÓÃÒÔΪ Bluetooth ½Ó¿ÚÅäÖà IP µØÖ·¡£ hcidump £ºÔÚ Bluetooth RFCOMM ÉÏÔËÐÐ PPP£¨--listen ÓÃÓÚ·þÎñÆ÷£¬--connect <bluetooth_address> ÓÃÓÚ¿Í»§»ú£©¡£ Belkin Bluetooth USB ÊÊÅäÆ÷ Belkin Bluetooth USB ÊÊÅäÆ÷ÓµÓÐÒ»¸ö Bluetooth CSR оƬ×飬²¢Ê¹Óà USB ´«ÊäÆ÷À´´«Êä HCI Êý¾Ý·Ö×é¡£Òò´Ë£¬Linux USB ²ã¡¢BlueZ USB ´«ÊäÆ÷Çý¶¯³ÌÐòÒÔ¼° BlueZ ЭÒéÕ»ÊÇʹÉ豸¹¤×÷µÄÖ÷ÒªÄں˲㡣ÏÖÔÚ£¬Äú½«Á˽⵽Èý²ãÖ®¼äÈçºÎ½»»¥ÒÔʹ Linux ÍøÂçÓ¦ÓóÌÐòÔÚÕâ¸öÉ豸ÉÏÔËÐС£ Linux USB ×Óϵͳ£¨Çë²ÎÔÄ ²Î¿¼×ÊÁÏ £©ÀàËÆÓÚ PCMCIA ×Óϵͳ£¬ËüÃǶ¼ÓÐÓëÒÆ¶¯É豸½»»¥µÄÖ÷»ú¿ØÖÆÆ÷É豸Çý¶¯³ÌÐò£¬²¢ÇÒ¶¼°üº¬Ò»¸öÏòÖ÷»ú¿ØÖÆÆ÷ºÍµ¥¸öÉ豸µÄÉ豸Çý¶¯³ÌÐòÌṩ·þÎñµÄºËÐIJ㡣USB Ö÷»ú¿ØÖÆÆ÷×ñÑ­Á½¸ö±ê×¼Ö®Ò»£ºUHCI£¨Í¨ÓÃÖ÷»ú¿ØÖÆÆ÷½Ó¿Ú£©»ò OHCI£¨¿ª·ÅʽÖ÷»ú¿ØÖÆÆ÷½Ó¿Ú£©¡£ÓÉÓÚ¾ßÓÐ PCMCIA£¬µ¥¸ö USB É豸µÄ Linux É豸Çý¶¯³ÌÐò²»ÒÀÀµÓÚÖ÷»ú¿ØÖÆÆ÷¡£¾­ÓÉ USB É豸´«ÊäµÄÊý¾Ý·ÖΪËÄÖÖÀàÐÍ£¨»ò¹ÜµÀ£©£º Control Interrupt Bulk Isochronous ǰÁ½¸öͨ³£ÓÃÓÚСÐÍÏûÏ¢¶øºóÁ½¸öÔòÓÃÓڽϴóÐ͵ÄÏûÏ¢¡£ USB É豸²åÈëʱ£¬Ö÷»ú¿ØÖÆÆ÷ʹÓÿØÖƹܵÀÀ´Ã¶¾ÙËü²¢¸øËü·ÖÅäÉ豸µØÖ·£¨1 µ½ 127£©¡£Ö÷»ú¿ØÖÆÆ÷É豸Çý¶¯³ÌÐò¶ÁÈ¡µÄÉ豸ÃèÊö·û°üº¬¹ØÓÚÉ豸µÄÐÅÏ¢£¬ÀýÈç class ¡¢ subclass ºÍ protocol ¡£Linux µÄ usbcore ÄÚºËÄ£¿éÖ§³Ö USB Ö÷»ú¿ØÖÆÆ÷ºÍ USB É豸¡£²¢°üº¬ USB É豸Çý¶¯³ÌÐò¿ÉÒÔʹÓõĺ¯ÊýºÍÊý¾Ý½á¹¹¡£USB Çý¶¯³ÌÐòÀûÓà usbcore ¼°×Ô¼ºµÄ class/subclass/protocol ÐÅÏ¢£¨Çë²ÎÔÄ include/linux/usb.h ÖÐµÄ struct usb_driver £©×¢²áÁËÁ½¸öÈë¿Úµã£ºprobe ºÍ disconnect¡£µ±ÏàÓ¦µÄ USB É豸±»¸½¼Óʱ£¬ usbcore ÓÃö¾ÙÆÚ¼ä´ÓÉ豸ÅäÖÃÃèÊö·ûÖжÁÈ¡µÄ class ÐÅÏ¢À´Æ¥ÅäÒÑ×¢²áµÄ class ÐÅÏ¢£¬²¢½«É豸ÓëÏàÓ¦µÄÇý¶¯³ÌÐò°ó¶¨¡£Õâ¸öºËÐÄʹÓÃÒ»ÖÖ½Ð×ö USB Request Block »ò URB£¨ÔÚ include/linux/usb.h Öж¨Ò壩µÄÊý¾Ý½á¹¹£¬À´Òì²½µØ¹ÜÀíÖ÷»úºÍÉ豸֮¼äµÄÊý¾Ý´«Êä¡£É豸Çý¶¯³ÌÐòʹÓÃÕâЩÀý³ÌÀ´ÇëÇó¸÷ÖÖÀàÐ͵ÄÊý¾Ý´«Ê䣨control¡¢interrupt¡¢bulk »ò isochronous£©¡£´«ËÍÇëÇóÍê³Éºó£¬ºËÐÄ»áʹÓÃÒÔǰע²áµÄ»Øµ÷º¯ÊýÀ´Í¨ÖªÇý¶¯³ÌÐò¡£ Õë¶Ô Bluetooth USB É豸¶øÑÔ£¬HCI ÃüÁîʹÓà Control ¹ÜµÀ´«Ê䣬HCI ʼþʹÓà Interrupt ¹ÜµÀ£¬Asynchronous (ACL) Êý¾ÝʹÓà Bulk ¹ÜµÀ£¬¶ø Synchronous (SCO) ÒôƵÊý¾ÝʹÓà Isochronous ¹ÜµÀ¡£Bluetooth ¹æ·¶Îª Bluetooth USB É豸¶¨ÒåÁË class/subclass/protocol ´úÂë 0xE/0x01/0x01 ¡£BlueZ USB ´«ÊäÇý¶¯³ÌÐò£¨drivers/bluetooth/hci_usb.c£©½«¸Ã class/subclass/protocol ÐÅÏ¢×¢²áµ½ Linux USB ºËÐÄ¡£Belkin USB ÊÊÅäÆ÷²åÈëʱ£¬Ö÷»ú¿ØÖÆÆ÷É豸Çý¶¯³ÌÐò»áö¾ÙËü¡£ÒòΪÔÚö¾ÙÆÚ¼ä´ÓÊÊÅäÆ÷¶ÁÈ¡µÄÉ豸ÃèÊö·ûÓë hci_usb Çý¶¯³ÌÐò×¢²áµ½ USB ºËÐĵÄÐÅÏ¢ÏàÆ¥Å䣬ËùÒÔÕâ¸öÇý¶¯³ÌÐò¿É¸½¼Óµ½ Belkin USB É豸¡£ÓÉ hci_usb Çý¶¯³ÌÐò´ÓÒÔÉÏÃèÊöµÄ¸÷¸ö¶Ëµã¶ÁÈ¡µÄ HCI¡¢ACL ºÍ SCO Êý¾Ý±»Í¸Ã÷´«Ë͵½ BlueZ ЭÒéÕ»¡£Ò»µ©×öÍêÕâЩ£¬Í¨¹ýʹÓÃÒÔÉÏÃèÊöµÄ BlueZ ·þÎñºÍ¹¤¾ß£¬Linux TCP/IP Ó¦ÓóÌÐò¾Í¿ÉÒÔÔËÐÐÔÚ BlueZ BNEP ÉÏ£¬¶ø´®ÐÐÓ¦ÓóÌÐòÔò¿ÉÒÔÔËÐÐÔÚ BlueZ RFCOMM ÉÏ¡£ ¾ßÓÐÄÚÖà CSR Bluetooth оƬ×éµÄĸ°å ÏÖÔÚ£¬¹Ø×¢Ò»Ï¾ßÓÐÄÚÖà Bluetooth оƬ×éµÄÉ豸É쵀 Bluetooth ÍøÂçÊý¾ÝÁ÷¡£¿¼ÂÇÒ»ÖÖÓµÓÐÄÚÖà CSR Bluetooth оƬ×éµÄÊÖ³ÖÉ豸ÓëʹÓà UART ½Ó¿ÚµÄϵͳµÄÁ¬½Ó¡£Õë¶Ô UART ½Ó¿Ú¶øÑÔ£¬ÔÚ Bluetooth É豸ºÍϵͳ֮¼ä´«Êä HCI Êý¾Ý·Ö×éµÄ¿ÉÓÃЭÒéÓÐ BlueCore Serial Protocol (BCSP)¡¢H4/UART ºÍ H3/RS232¡£¶ø H4 ³äµ±Í¨¹ý UART ´«Êä Bluetooth Êý¾ÝµÄ±ê×¼·½·¨¡£UART ÊÇÔڹ淶Öж¨ÒåµÄÀ´×Ô CSR µÄרÓÐ BCSP ЭÒ飬֧³Ö´íÎóУÑéºÍÖØ´«¡£BCSP ÓÃÔÚ»ùÓÚ CSR BlueCore оƬµÄ·Ç USB É豸ÉÏ£¬°üÀ¨ PCMCIA ºÍ CF ¿¨¡£BlueZ Ö§³Ö BCSP ºÍ H4¡£ Õâ¸öĸ°åµÄ UART ͨµÀʹÓõĴ«Í³´®ÐÐÇý¶¯³ÌÐò¿ÉÒÔ´Ó BlueZ UART ´«ÊäÇý¶¯³ÌÐòÉÏÊÕ·¢Êý¾Ý¡£Èç¹ûʹÓà BSCP ЭÒ齫 CSR оƬÉè¼ÆÎª·â×° HCI Êý¾Ý·Ö×飬Äú±ØÐëʹÓà hciattach ( hciattach ttySx bcsp ) ֪ͨ BlueZ Á´½ÓÇý¶¯³ÌÐò£¬ÔÚÕâÀï x ÊÇÁ¬½Óµ½ CSR оƬ×éµÄ UART ͨµÀºÅ¡£ÏÖÔÚ hci_uart Óë CSR оƬ½»»¥²¢ÇÒ´«ËÍ Bluetooth Êý¾ÝÍù·µÓÚ BlueZ Õ»¡£ Sony HBH-30 Bluetooth ¶ú»ú Ç°ÃæµÄ Bluetooth É豸ʾÀýչʾÁËÍøÂçÊý¾ÝÁ÷¡£ÏÖÔÚ£¬Í¨¹ý²é¿´ Sony Ericsson Bluetooth ¶ú»úÀ´¿¼ÂÇ Bluetooth ÒôƵ (SCO) Êý¾ÝµÄ´«Êä¡£ÔÚ¶ú»ú¿ÉÒÔ¿ªÊ¼Óë Linux É豸ͨÐÅÒÔǰ£¬Ëü±ØÐë±» Linux É豸É쵀 Bluetooth Á´Â·²ã¼ì²â³öÀ´¡£Òò´Ë£¬Äú±ØÐ뽫¶ú»úÖÃÓÚ·¢ÏÖģʽ£¨Í¨¹ý°´Ï¶ú»úÉϵÄÒ»¸ö°´Å¥£©¡£ÁíÍ⣬ÄúÐèҪͨ¹ý Linux É豸É쵀 BlueZ ÅäÖöú»úµÄ PIN¡£Linux Bluetooth É豸ÉÏʹÓà BlueZ SCO API µÄÓ¦ÓóÌÐòÏÖÔÚ¿ÉÒÔ·¢ËÍÒôƵÊý¾Ýµ½¶ú»úÉÏ¡£ÒôƵÊý¾ÝÓ¦µ±ÊǶú»ú ¿ÉÒÔÀí½âµÄ¸ñʽ£¨ÀýÈ磬Sony ¶ú»úµÄ A-law PCM [Pulse Code Modulation] ¸ñʽ£©¡£ÓÐЩ¹«¹²Ö÷ÓòʵÓóÌÐò¿ÉÒÔ½«ÒôƵ£¨ÉõÖÁÎı¾Îļþ£©×ª»»Îª¸÷ÖÖ PCM ¸ñʽ¡£ Bluetooth оƬ×é³ýÓµÓÐ HCI ´«Êä½Ó¿ÚÒÔÍ⻹ÓÐ PCM ½Ó¿Ú PIN¡£ÀýÈ磬Èç¹ûÉ豸ͬʱ֧³Ö GSM ºÍ Bluetooth£¬GSM оƬ×éµÄ PCM Ïß·¿ÉÒÔÖ±½ÓÓë Bluetooth оƬµÄ PCM ÒôƵÏß·Á¬½Ó¡£È»ºó£¬Äú¿ÉÄܲ»µÃ²»ÔÚ Linux É豸ÉÏÅäÖà Bluetooth оƬ×飬ÒÔͨ¹ý HCI ´«Êä½Ó¿Ú¶ø²»ÊÇ PCM ½Ó¿ÚÊÕ·¢ SCO ÒôƵÊý¾Ý·Ö×é¡£ GSM É쵀 Linux GPRS ºÍÊý¾Ý GPRS ÊÇÒ»¸öÓÃÓÚͨ¹ý GSM ´«ÊäÊý¾ÝµÄÊý¾Ý·Ö×é·þÎñ£¬ÊÇÒ»ÖÖ׿ԽµÄÊý×Ö·äÎѱê×¼¡£¾¡¹Ü GSM ÉϵÄÊý¾ÝÊÇÏß·½»»»µÄ²¢ÇÒ²»¹ÜÔõÑù¶¼Õ¼ÓÃÒ»¸öͨµÀ£¬µ«ÊÇ GPRS ÉϵÄÊý¾ÝÊÇÒ»Ö±Á¬½ÓµÄ£¨always-on£©¡¢·Ö×é½»»»£¨packet-switched£©µÄÊý¾ÝÁ÷£¬Óû§¸ù¾ÝʹÓø¶·Ñ¡£GSM µÄ´«ÊäËÙ¶ÈÒ»°ãÊÇ 9.6 kbps£¬¶ø GPRS Äܹ»ÔËÐеÄËÙ¶ÈΪ 56 kbps µ½ 170 kbps¡£ GPRS ºÍ GSM оƬͨ³£ÓÐÒ»¸öµ½ÏµÍ³µÄ UART ½Ó¿Ú¡£¶ÔÓÚÄÚÖà GSM/GPRS Ö§³ÖµÄĸ°å£¨ÀýÈ磬һ¸ö´øÓÐÁ¬½Óµ½ UART ͨµÀµÄ Siemen MC-45 Ä£¿éµÄĸ°å£©£¬´«Í³µÄ´®ÐÐÇý¶¯³ÌÐò¾ÍÄÜÇý¶¯Õâ¸öÁ´½Ó¡£¿¼ÂÇ PCMCIA/CF µÄÐγÉÒòËØ£¨ÀýÈçÒ»ÕÅ¿ÉÑ¡ GPRS ¿¨£©£¬ serial_cs £¨ÊÇÓÃÓÚ·ÃÎÊ PCMCIA ´®ÐÐÉ豸µÄÆÕͨ¿¨·þÎñÇý¶¯³ÌÐò£©Äܹ»ÔÊÐíÆäËû²Ù×÷ϵͳ°Ñ´Ë¿¨µ±×÷Ò»¸ö´®ÐÐÉ豸¡£µÚÒ»¸öδʹÓõĴ®ÐÐÉ豸£¨/dev/ttySx£©±»·ÖÅ䏸´Ë¿¨£¬È»ºó´Ë¿¨¾Í¿ÉÒÔ±»µ±³É´®ÐÐÉ豸·ÃÎÊ¡£ serial_cs Ò²¿ÉÒÔͨ¹ýÈ«Çò¶¨Î»ÏµÍ³ (GPS) PCMCIA ºÍ CF ¿¨Ä£Äâ´®Ðж˿ڡ£Õë¶Ô USB GPRS µ÷ÖÆ½âµ÷Æ÷¶øÑÔ£¬USB-to-serial ת»»Æ÷Ò»°ã USB ¶Ë¿Úת»»ÎªÐéÄâ´®Ðж˿ڣ¬Òò´ËϵͳÆäËû²¿·Ö¾Í»á½«Ëü¿´×÷´®ÐÐÉ豸¡£ GPRS ÍøÂçʹÓà GGSN£¨GPRS Íø¹ØÖ§³Ö½Úµã£© Á¬½Óµ½Ò»¸öÍâ²¿ÍøÂ磨ÀýÈç Internet£©¡£GPRS É豸ÀàËÆÓÚÓµÓÐÀ©Õ¹ AT ÃüÁµÄµ÷ÖÆ½âµ÷Æ÷£¬ÔÚ½øÈëÊý¾Ýģʽ֮ǰ±ØÐëʹÓà AT ÃüÁÒåÒ»¸öÉÏÏÂÎÄ¡£ÉÏÏÂÎÄ×Ö·û´®¿´ÆðÀ´ÀàËÆÓÚÇåµ¥ 3 Öиø³öµÄʾÀý¡£ Çåµ¥ 3. ÉÏÏÂÎÄ×Ö·û´® 'AT+CGDCONT=1,"IP","internet.voicestream.com","0.0.0.0",0,0' ÔÚÕâ¸öʾÀýÖУ¬ 1 ´ú±íÉÏÏÂÎıàºÅ£¬ IP ÊÇÊý¾Ý·Ö×éÀàÐÍ£¬ internet.voicestream.com ÊǽÓÈëµãÃû³Æ(APN) ×Ö·û´®£¬ 0.0.0.0 Òâζ×Å·þÎñÌṩÕßÑ¡Ôñ IP µØÖ·£¬ÆäËû²ÎÊýÓëÊý¾ÝºÍ±¨Í·Ñ¹ËõÓйء£APN ×Ö·û´®È¡¾öÓÚ·þÎñÌṩÕß¡£Ò»°ã²»ÐèÒªÓû§ÃûºÍ¿ÚÁî¡£ PPP ÔÊÐíÍøÂçЭÒ飨±ÈÈç TCP/IP£©ÔÚ´®ÐÐÁ´Â·ÉÏÔËÐС£ÔÚÎÞÏßÍøÂçµÄÉÏÏÂÎÄÖУ¬PPP ¿ÉÒÔʹ TCP/IP ÔËÐÐÓÚ GPRS ÉÏ£¬Êý¾Ýͨ¹ý GSM¡¢Bluetooth RFCOMM ÒÔ¼° IrDa COMM ½øÐд«Êä¡£Çåµ¥ 4 ¸ø³öÁËÒ»ÖÖµ÷Óà PPP ºǫ́½ø³Ì pppd µÄ¹«¹²Óï·¨¡£ Çåµ¥ 4. µ÷Óà PPP ºǫ́½ø³Ì pppd µÄ¹«¹²Óï·¨ pppd ttySx call connection-script ÔÚÕâ¸öʾÀýÖУ¬ ttySx ÊÇÎïÀí»òÐéÄâµÄ´®ÐÐÉ豸£¨PPP ÔËÐÐÆäÉÏ£©£¬ connection-script ÊÇ /etc/ppp/peers/ Ŀ¼ÖеÄÒ»¸öÎļþ£¬Õâ¸öĿ¼°üº¬ÔÚ pppd ºÍ·þÎñÌṩÕßÖ®¼ä½»»»µÄÓÃÓÚ½¨Á¢Á´½ÓµÄ AT ÃüÁîÐòÁС£½¨Á¢Á´½Ó²¢Íê³ÉÉí·ÝÑéÖ¤ÒÔºó£¬PPP ½«Æô¶¯ÍøÂç¿ØÖÆÐ­Ò飨Network Control Protocol£¬NCP£©¡£IPCP (Internet Protocol Control Protocol£¬Internet ЭÒé¿ØÖÆÐ­Òé) ÊÇÓÃÓÚÔËÐÐ IP µÄ NCP¡£Ò»µ© IPCP ³É¹¦Í¨¹ý IP µØÖ·£¬PPP ¾Í¿ªÊ¼Óë TCP/IP Õ»½»»¥¡£ Çåµ¥ 5 ¸ø³öÁËÓÃÓÚÁ¬½Óµ½ GPRS ·þÎñÌṩÕßµÄ PPP Á´½Ó½Å±¾Ê¾Àý£¬¶øÇåµ¥ 6 ¸ø³öµÄÊÇÓÃÓÚµ½ GSM ·þÎñÌṩÕßµÄÊý¾ÝÁ¬½ÓµÄÁ¬½Ó½Å±¾Ê¾Àý¡£ Çåµ¥ 5. Õë¶Ô GPRS µÄ pppd Á´½Ó½Å±¾Ê¾Àý£¨/etc/ppp/peer/gprs-script£© 115200 connect "/usr/sbin/chat -s -v "" AT+CGDCONT=1,"IP", "internet2.voicestream.com","0.0.0.0",0,0 OK AT+CGDATA="PPP",1" crtscts noipdefault modem usepeerdns defaultroute connect-delay 5000 ´Ó²Ù×÷ϵͳµÄ½Ç¶È³ö·¢£¬GSM ÉϵÄÊý¾ÝÀàËÆÓÚͨ¹ý²¦ºÅµ÷ÊÔ½âµ÷Æ÷Á¬½ÓÊÕ·¢µÄÊý¾Ý¡£»¥ÁªÍø·þÎñÌṩÉÌ£¨ISP£©µÄµç»°ºÅÂëÊÇʹÓà GSM ²¦ÈëµÄ£¬²¢ÇһὨÁ¢Ò»¸ö²¦ºÅÁ¬½Ó¡£ÀûÓÃÓû§ÃûºÍ¿ÚÁî½øÐÐÉí·ÝÑéÖ¤¡£ Ò»µ© PPP ½¨Á¢ÁËÓë·þÎñÌṩÕßµÄ IP Á¬½Ó£¬TCP Ó¦ÓóÌÐòÀýÈç Web ä¯ÀÀÆ÷¾Í¿ÉÒÔ²»¼Ó¸ü¸ÄµØÔÚ GSM/GPRS É豸ÉÏÔËÐС£ gsmlib ÏîĿΪͨ¹ý GSM ·¢ËÍÓïÒôºÍ SMS£¨Short Messaging Service£¬¶ÌÐÅ·þÎñ£©ÌṩÁËʵÓóÌÐò£¨Çë²ÎÔÄ ²Î¿¼×ÊÁÏ Á˽â¸ü¶à¹ØÓÚ gsmlib µÄÐÅÏ¢£©¡£Ëü°üÀ¨ÓÃÓÚ´æÈ¡ Subscriber Identity Module (SIM)¿¨Öеĵ绰²¾¡¢ÊÕ·¢ SMS ÏûÏ¢µÈ¹¦ÄܵÄʵÓóÌÐò¡£ Çåµ¥ 6. ÓÃÓÚͨ¹ý GSM ´«ÊäÊý¾ÝµÄ pppd Á¬½Ó½Å±¾Ê¾Àý£¨/etc/ppp/peer/gsm-script£© 115200 connect '/usr/sbin/chat -s -v ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "BUSY" "" AT OK ATDT<phone_number> CONNECT' crtscts noipdefault modem user "linux" usepeerdns defaultroute connect-delay 5000 Linux Infrared Data Infrared Data (IrDa) ÊÇÒ»ÖÖÓúìÍâÏßÎÞÏß´«ÊäÊý¾ÝµÄ¹æ·¶¡£Ö÷ÒªÓÃÓÚÁ¬½ÓÏ¥ÉϵçÄÔ»òÕß½«Â¼Ïñ»ú»òÕÕÏà»úÕâÑùµÄÉ豸Á¬½Óµ½¼ÆËã»úϵͳ¡£ IrDa µÄËÙ¶È´Ó Serial Infrared (SIR) µÄ 115 kbps µ½ Very Fast Infrared (VFIR) µÄ 16 Mbps¡£´ó¶àÊý´¦ÓÚ SIR ģʽµÄ IrDa оƬÊÇ UART 16650 ¼æÈݵģ¨16650 ÊÇÒ»ÖÖ¹«¹² PC UART£©£¬Òò´Ë´«Í³ Linux ´®¿ÚÇý¶¯³ÌÐò¿ÉÒԳ䵱Á´Â·¼¶±ðµÄÇý¶¯³ÌÐò¡£IrDa ÐеĹ淶ʵÏÖ ¡ª¡ª IrTTY (drivers/net/irda/irtty.c)£¬Ê¹´®ÐÐÇý¶¯³ÌÐòÇý¶¯ SIR¡£IrPORT Çý¶¯³ÌÐò£¨drivers/net/irda/irport.c£©´úÌæÁË IrTTY ºÍ´®ÐÐÇý¶¯³ÌÐò£¬²¢Ìṩ¸üºÃµÄÉ豸¿ØÖÆ¡£Óë´®ÐÐÇý¶¯Æ÷²»¼æÈÝµÄ IrDa оƬÓÐ×Ô¼ºµÄÉ豸Çý¶¯³ÌÐò¡£ÀýÈ磬NSC PC87108 оƬ×é¾ÍʹÓÃ×Ô¼ºµÄÇý¶¯³ÌÐò£¨nsc-ircc.c£©¡£ÓëÉÏÃæÌÖÂÛµ½µÄÓÃÓÚ USB Bluetooth É豸µÄ hci-usb Çý¶¯³ÌÐòÀàËÆ£¬irda-usb.c É豸Çý¶¯³ÌÐòÖ§³Ö USB IrDa FIR Èí¼þ¹·¡£ IrLAP ÊǸºÔð IrDa É豸·¢ÏÖ¡¢ÖØ´«ÒÔ¼°Á÷¿ØÖƵÄÁ´Â·´æÈ¡Ð­Òé²ã¡£IrLMP Á´Â·¹ÜÀí²ãºÍ Tiny ´«ÊäЭÒé²ã£¨TinyTP£©×¤ÁôÓÚ IrLAP Ö®ÉÏ¡£¶øËüÃÇÖ®ÉÏÊÇ IrCOMM ºÍ IrLAN ²ã¡£IrCOMM£¨ÔÚ net/irda/ircomm/ ÖÐʵÏÖ£©Ìṩ´®ÐÐÄ£Ä⣬ʹÔËÐÐÓÚ´®Ðж˿ڣ¨±ÈÈçÖÕ¶Ë·ÂÕæÆ÷£©ÉϵÄÓ¦ÓóÌÐò²»¼Ó¸ü¸ÄµØÔÚ IrDa Õ»ÉÏÔËÐС£IrLAN£¨ÔÚ net/irda/irlan/ ÖÐʵÏÖ£©Ìṩʹ TCP/IP Ö±½ÓÔËÐÐÓÚ IrDa Õ»Ö®ÉϵÄÐéÄâÍøÂç½Ó¿Ú¡£IrLAN ´úÂëʹÓà register_netdev ½«Ì«ÍøÉ豸ע²áµ½ Linux ÍøÂç²ã£¬Ê¹Óà netif_rx Ïò Linux IP Õ»·¢ËÍÊý¾Ý£¨Óë¶Ô WLAN Çý¶¯³ÌÐòºÍ Bluetooth BNEPµÄ½âÊÍÀàËÆ£©¡£IrCOMM Óë Bluetooth RFCOMM ÏàËÆ£¬¶ø IrLAN ÔòÀàËÆÓÚ Bluetooth BNEP¡£ IrOBEX Êǽ¨Á¢ÔÚ TinyTP Ö®ÉϵÄÒ»¸ö¼òµ¥Ð­Ò飬ËüÔÊÐí´«Êä¶þ½øÖÆÊý¾Ý¡£IrOBEX µÄÀ©Õ¹¶¨ÒåÁ˲»Í¬Êý¾Ý¶ÔÏóµÄ´«Êä¡£ ΪÁËÔÚ Linux ÉÏÓ¦Óà IrDa ЭÒ飬±ØÐë°²×° IrDa ʵÓóÌÐò£¨Èç irattach£©£¬ËüÊÇ×÷Ϊ Linux IrDa ÏîÄ¿µÄÒ»²¿·Ö¿ª·¢µÄ¡£ ÐÔÄÜÎÊÌâ ÍøÂçÐÔÄÜÈ¡¾öÓÚÌØ¶¨ÔØÌåÍøÂçµÄÌØÕ÷¡£ÀýÈ磬GPRS µÄ´ø¿íÈ¡¾öÓÚʹÓõĴúÂëģʽ£¬¶ø Bluetooth µÄÐÔÄÜÊÜ L2CAP ²ãµÄÍø¶ÎµÄÓ°Ïì¡£¶ÔÓÚ WLAN ¹¤×÷Õ¾Óë½ÓÈëµãÖ®¼äµÄͨÐÅ£¬Ö¡È·ÈϻήµÍ´ø¿í, ʹÓÃͬһ½ÓÈëµãµÄÆäËû¹¤×÷Õ¾µÄÊýÁ¿Ò²»á´øÀ´Í¬ÑùÓ°Ïì¡£ ÎÞÏßÍøÂçµÄÌØÕ÷£¨±ÈÈçµÍÇÒ²¨¶¯µÄ´ø¿íºÍ¸ßÑÓ³Ù£©»áÍáÇú TCP ¶ÈÁ¿ºÍ´«Êä²ßÂÔ¡£¾¡¹ÜÎÞÏßÍøÂçÖеĴó¶àÊýËðºÄÀ´×ÔÐźÅË¥ÍË¡¢¸ÉÈÅÒÔ¼°Á¬½ÓÖжϵÈÒòËØ£¬µ«ÊÇ TCP ¼Ù¶¨ÕâЩËðºÄÓëÓµÈûÓйأ¬ Òò´ËËüÞðÆúÁ˽µµÍÍøÂçÁ÷Á¿µÄËã·¨¡£ÓжàÖÖÏîÄ¿ÓÃÀ´µ÷Õû TCP ºÍ Web ä¯ÀÀÆ÷µÄÐÐΪÒÔÊÊÓ¦ÎÞÏßÍøÂç¡£ ½áÊøÓï ÔÚ±¾ÎÄÖУ¬Äúä¯ÀÀÁËÊÇÕë¶Ô°üÀ¨ WLAN¡¢Bluetooth¡¢GPRS¡¢GSM ºÍ IrDA ÔÚÄÚµÄÁ÷ÐеÄÎÞÏß¼¼ÊõµÄ Linux É豸Çý¶¯³ÌÐòºÍÍøÂçЭÒé²ã¡£»¹Í¨¹ý¸ú×ÙÏàÓ¦µÄ´úÂë·¾¶ºÍÌÖÂÛÏà¹ØµÄÓû§¿Õ¼ä¹¤¾ß£¬Á˽⵽²»Í¬µÄÎÞÏßÉ豸ÈçºÎÔÚ Linux Öй¤×÷¡£ ÏÖÔÚ£¬ÓÐÁË¶Ô Linux ÉÏÌṩµÄ¶Ô¸÷ÖÖÎÞÏß¼¼Êõ¡¢ÍøÂç¼¼ÊõÒÔ¼°×ÜÏß¼¼ÊõµÄºËÐÄÖ§³ÖµÄÀí½â£¬Äú¿ÉÒÔÐÞ²¹¶àÖÖ¾ßÓв»Í¬ÐγÉÒòËØµÄÎÞÏßÉ豸,¿ª·¢ÆôÓò»±»Ö§³ÖµÄÉ豸ËùÐèµÄ Linux Äں˴úÂë¡£ ²Î¿¼×ÊÁÏ ÔĶÁ Linux Wireless Extensions ÏîÄ¿Ò³Ãæ ¡£ ÕÒµ½¸ü¶à¹ØÓÚ linux-wlan ÏîÄ¿µÄÐÅÏ¢¡£ Á˽â¸ü¶à¹ØÓÚ Linux Orinoco WLAN Çý¶¯³ÌÐòµÄÐÅÏ¢£¬Çëµ½¡° MPL/GPL drivers for the Wavelan IEEE/Orinoco and others ¡±¡£ Á˽â¸ü¶à¹ØÓÚ Intersil WLAN ¿¨µÄ Host AP Çý¶¯³ÌÐòµÄÐÅÏ¢£¬ÇëÔĶÁ¡° Host AP driver for Intersil Prism2/2.5/3 ¡±¡£ Õâ¸öÍøÒ³°üº¬ Spectrum-based WLAN ¿¨ £¨Socket¡¢Intel Wireless/PRO ÒÔ¼°ÆäËû£©µÄ Linux É豸Çý¶¯³ÌÐò¡£ »ùÓÚAtmel µÄ USB WLAN É豸 µÄ Linux Çý¶¯³ÌÐò¡£ ÇëÔĶÁ Linux PCMCIA Programmer's Guide ¡£ Alan Cox µÄ¡° Network Buffers ¡±ÌṩÁ˺ܺõĹØÓÚ Linux ÍøÂ绺³åÆ÷£¨sk_buffs£©¹ÜÀíµÄÐÅÏ¢¡£ Bluetooth Web Õ¾µãÌṩ¹ØÓÚ Bluetooth ¹æ·¶µÄÐÅÏ¢¡£ Äú˵Äúϲ»¶ÔÚ Linux Ϲ¤×÷Â𣿸à Linux µÄÎÞÏßÁ¬½Ó ½Ì³Ì»á½Ì¸øÄúÈçºÎÔÚ Linux ÏÂÅäÖÃÎÞÏßÍø¿¨£¨ developerWorks £¬2003 Ä꣩¡£ Linux BlueZ Ö÷Ò³ÌṩÁË BlueZ µÄ×îÐÂÐÅÏ¢¡£ ÇëÔĶÁ Detlef Fliegl µÄ¡° Programming Guide for Linux USB Device Drivers ¡±£¨2000 Ä꣩¡£ ¡° ÔÚ Linux ÉϹ¹½¨ÎÞÏß½ÓÈëµã ¡±£¨ developerWorks £¬2003 Ä꣩ÕâÆªÎÄÕ½éÉÜÁËÓà Linux ¹¹½¨Ò»¸öÎÞÏßÍøÇÅËùÉæ¼°µ½µÄÄÚÈÝ£¬°üÀ¨Èí¼þºÍÓ²¼þ·½ÃæµÄ¿¼ÂÇ¡£ ²é¿´ Joshua Drake ºÍ Corwin Light Williams µÄ¡° Linux PPP How-to ¡±£¨Linux Online! 2000 Ä꣩¡£ ÔÚ ¡° Open source wireless tools emerge ¡±£¨ developerWorks £¬2003 Ä꣩һÎÄÖУ¬Á˽⿪·ÅÔ´´úÂ빤¾ßÕýÔÚÐËÆð¡£ gsmlib µÄÖ÷Ò³ÌṩÁËÔÚ GSM ÉϹ¤×÷µÄÒ»×é¿âºÍÓ¦ÓóÌÐò¡£ Çë²ÎÔÄ Tips and Tricks £¨ developerWorks £¬2002 Ä꣩ÕâÆªÎÄÕ£¬Ñ§Ï°ÈçºÎ¹ÜÀí¿ÉÒÆ¶¯ÅäÖÃÎļþ¡£ ÓйØÔÚ Linux ÉÏʹÓúìÍâͨÐŵĸü¶àÐÅÏ¢£¬ÇëÔÚ Linux IrDa ÉϲéÕÒ¡£ ¹ØÓÚ×÷Õß Sreekrishnan Venkateswaran ÓµÓÐÓ¡¶È¿²ÆÕ¶ûÊÐÓ¡¶È¿Æ¼¼Ñ§ÔºµÄ¼ÆËã»ú¿ÆÑ§Ë¶Ê¿Ñ§Î»¡£Ëû´Ó 1996 Äê 2 Ô¿ªÊ¼Îª IBM India ¹¤×÷¡£ ËûµÄÐËȤ°üÀ¨Éè¼ÆÉ豸Çý¶¯³ÌÐòºÍÍøÂçЭÒé¡£¿ÉÒÔͨ¹ý s_krishna@in.ibm.com Óë Sreekrishnan ÁªÏµ¡£ carol ·¢±íÓÚ 04/04/21 18:53 ÒýÓÃ(Trackback0) ÆÀÂÛ IR ÊÇÏÖÔÚ¹¤×÷ÖнӴ¥µ½µÄ£¬µ«ÊÇÁ˽âµÃ²¢²»ÉîÈ룬ֻÊǵ÷ÓöøÒÑ¡£ À¶ÑÀ¼¼ÊõÔÚpalm¿ª·¢ÉÏÔËÓõ½ÁË£¬ÆäʵҲ»¹Ö»Êǵ÷ÓÃÏֳɵÄAPI£¬Á˽â»ù±¾µÄÀ¶ÑÀ´«Êä¹ý³ÌºÍÔ­Àí¾Í¿ÉÒÔÁË¡£ ֮ǰÀ´¹«Ë¾ÊµÏ°µÄСÀÏÍ⣬×öµÄ¾ÍÊÇ 802.11 µÄЭÒ飬¹À¼ÆÒ²ÊÇÎÒÃÇÏÂÒ»´ú²úÆ·ÖÐÒªÓõ½µÄÖ÷Òª½Ó¿Ú ÕâÆªÎÄÕ½²µÄ»¹ÊǺÜÓÐÌõÀíµÄ£¬¿ÉÒÔͳ¿´Ò»¸ö´ó¸Å¡£ carol ( carol.blogbus.com ) ·¢±íÓÚ 04/04/23 14:21 ÎÒҲϲ»¶ÕâЩ¶«¶«¡£Óлú»á½»Á÷һϠpear ( ) ·¢±íÓÚ 04/05/07 19:52 ¸ß¡«¡« zhou ( zhouxiaohu.blogbus.com ) ·¢±íÓÚ 04/05/08 20:11 ·¢±íÆÀÂÛ ×îºó¸üР[תÌù]ÕæµÄÁ˽âtelnetÂ𣿠[ͼ]Introduction to Bluetooth Record - June 15th~ [WIN CE] Ô¶³Ì¿ØÖÆ£¬Ê°빦±¶ ´Ó¿ª·¢½Ç¶È¿´ smartphone palm ÉÏÎå·N²»Í¬µÄ reset [ת] ·¨Óï The 11 Truths of Debugging [תÌù]΢ÈíSmartphoneÓ¦ÓóÌÐòÉè¼ÆÈëÃÅ smartphone Ò»ÀÀ