LinuxϵÄÓ²¼þÇý¶¯——USBÉ豸£¨×ª£©
from£ºhttp://www.ibm.com/developerworks/cn/linux/l-usb/index1.html
¼¶±ð£º ³õ¼¶
ÕÔÃ÷ (carl__zhao@163.com), ÁªÏëÈí¼þÉè¼ÆÖÐÐÄǶÈëʽÑз¢´¦ÏµÍ³Éè¼Æ¹¤³Ìʦ
2003 Äê 7 ÔÂ 01 ÈÕ
USBÉ豸ԽÀ´Ô½¶à£¬¶øLinuxÔÚÓ²¼þÅäÖÃÉÏÈÔȻûÓÐ×öµ½ÍêÈ«¼´²å¼´Ó㬶ÔÓÚLinuxÔõÑùÅäÖúÍʹÓÃËûÃÇ£¬Ò²Ô½À´Ô½³ÉΪÀ§ÈÅÎÒÃǵÄÒ»´óÎÊÌâ¡£±¾ÎÄ×ÅÁ¦´ÓLinuxϵͳÏÂÉ豸Çý¶¯µÄ¼Ü¹¹£¬È¥²ûÊöÔõÑùȥʹÓúÍÅäÖÃÒÔ¼°ÔõÑù±àÖÆUSBÉ豸Çý¶¯¡£¶ÔÓÚÒ»°ãÓû§£¬¿ÉÒÔʹÎÒÃÇÃ÷ÎúLinuxÉ豸Çý¶¯·½Ê½£¬Îª¸üºÃµØÅäÖúÍʹÓÃUSBÉ豸ÌṩÁË·½±ã£»¶ø¶ÔÓÚÏ£Íû¿ª·¢LinuxϵͳÏÂUSBÉ豸Çý¶¯µÄ³ÌÐòÔ±£¬ÌṩÁ˳õ²½Ñ§Ï°USBÇý¶¯¼Ü¹¹µÄ»ú»á¡£
Ç°ÑÔ
USBÊÇÓ¢ÎÄ"Universal Serial Bus"µÄËõд£¬ÒâΪ"ͨÓô®ÐÐ×ÜÏß"¡£ÊÇÓÉCompaq(¿µ°Ø)¡¢DEC¡¢IBM¡¢Intel¡¢NEC¡¢Î¢ÈíÒÔ¼°Northern Telecom£¨±±·½µçѶ£©µÈ¹«Ë¾ÓÚ1994Äê11Ô¹²Í¬Ìá³öµÄ£¬Ö÷ҪĿµÄ¾ÍÊÇΪÁ˽â¾ö½Ó¿Ú±ê׼̫¶àµÄ±×¶Ë¡£USBʹÓÃÒ»¸ö4Õë²åÍ·×÷Ϊ±ê×¼²åÍ·£¬²¢Í¨¹ýÕâ¸ö±ê×¼½ÓÍ·£¬²ÉÓþջ¨°êÐÎʽ°ÑËùÓÐÍâÉèÁ¬½ÓÆðÀ´£¬Ëü²ÉÓô®Ðз½Ê½´«ÊäÊý¾Ý£¬Ä¿Ç°×î´óÊý¾Ý´«ÊäÂÊΪ12Mbps, Ö§³Ö¶àÊý¾ÝÁ÷ºÍ¶à¸öÉ豸²¢ÐвÙ×÷£¬ÔÊÐíÍâÉèÈȲå°Î¡£
Ä¿Ç°USB½Ó¿ÚËäȻֻ·¢Õ¹ÁË2´ú£¨USB1.0/1.1£¬USB2.0£©£¬µ«ÊÇUSB×ÛºÏÁËÒ»¸ö¶àƽ̨±ê×¼µÄËùÓÐÓŵã -- °üÀ¨½µµÍ³É±¾£¬Ôö¼Ó¼æÈÝÐÔ£¬¿ÉÁ¬½Ó´óÁ¿µÄÍⲿÉ豸£¬ÈÚºÏÏȽøµÄ¹¦ÄܺÍÆ·ÖÊ¡£Ê¹ÆäÖð²½³ÉΪPC½Ó¿Ú±ê×¼£¬½øÈëÁ˸ßËÙ·¢Õ¹ÆÚ¡£
ÄÇô¶ÔÓÚʹÓÃLinuxϵͳ£¬ÕýÈ·Ö§³ÖºÍÅäÖó£¼ûµÄUSBÉ豸£¬¾ÍÊÇÆäʹÓñز»¿ÉÉٵĹؼüÒ»²½¡£
»ØÒ³Ê×
Ïà¹Ø¼¼Êõ»ù´¡
Ä£¿é£¨Çý¶¯³ÌÐò£©
Ä£¿é£¨module£©ÊÇÔÚÄں˿ռäÔËÐеijÌÐò£¬Êµ¼ÊÉÏÊÇÒ»ÖÖÄ¿±ê¶ÔÏóÎļþ£¬Ã»ÓÐÁ´½Ó£¬²»ÄܶÀÁ¢ÔËÐУ¬µ«ÊÇ¿ÉÒÔ×°Ôص½ÏµÍ³ÖÐ×÷ΪÄں˵ÄÒ»²¿·ÖÔËÐУ¬´Ó¶ø¿ÉÒÔ¶¯Ì¬À©³äÄں˵ŦÄÜ¡£Ä£¿é×îÖ÷ÒªµÄÓô¦¾ÍÊÇÓÃÀ´ÊµÏÖÉ豸Çý¶¯³ÌÐò¡£
Linux϶ÔÓÚÒ»¸öÓ²¼þµÄÇý¶¯£¬¿ÉÒÔÓÐÁ½ÖÖ·½Ê½£ºÖ±½Ó¼ÓÔص½Äں˴úÂëÖУ¬Æô¶¯ÄÚºËʱ¾Í»áÇý¶¯´ËÓ²¼þÉ豸¡£ÁíÒ»ÖÖ¾ÍÊÇÒÔÄ£¿é·½Ê½£¬±àÒëÉú³ÉÒ»¸ö.oÎļþ¡£µ±Ó¦ÓóÌÐòÐèҪʱÔÙ¼ÓÔؽøÄں˿ռäÔËÐС£ËùÒÔÎÒÃÇËù˵µÄÒ»¸öÓ²¼þµÄÇý¶¯³ÌÐò£¬Í¨³£Ö¸µÄ¾ÍÊÇÒ»¸öÇý¶¯Ä£¿é¡£
É豸Îļþ
¶ÔÓÚÒ»¸öÉ豸£¬Ëü¿ÉÒÔÔÚ/devÏÂÃæ´æÔÚÒ»¸ö¶ÔÓ¦µÄÂß¼É豸½Úµã£¬Õâ¸ö½ÚµãÒÔÎļþµÄÐÎʽ´æÔÚ£¬µ«Ëü²»ÊÇÆÕͨÒâÒåÉϵÄÎļþ£¬ËüÊÇÉ豸Îļþ£¬¸üÈ·ÇеÄ˵£¬ËüÊÇÉ豸½Úµã¡£Õâ¸ö½ÚµãÊÇͨ¹ýmknodÃüÁÁ¢µÄ£¬ÆäÖÐÖ¸¶¨ÁËÖ÷É豸ºÅºÍ´ÎÉ豸ºÅ¡£Ö÷É豸ºÅ±íÃ÷ÁËijһÀàÉ豸£¬Ò»°ã¶ÔÓ¦×ÅÈ·¶¨µÄÇý¶¯³ÌÐò£»´ÎÉ豸ºÅÒ»°ãÊÇÇø
Ïà¹ØÎĵµ£º
¾ÀúÁËÒ»´Îϵͳ±ÀÀ£ÖÕÓÚ°ÑlinuxϵͳϵĿª·¢»·¾³ÍêÕûµÄ¿ª·¢Á˳öÀ´ÁË¡£
Õâ´Î²ÉÈ¡µÄÊÇubuntu9.10(RC)+JDK1.5+Mysql5.1Íâ´øÒ»¸öeclipse×÷ΪIDE¡£
ÓÉÓڱʼDZ¾µÄ¹âÇýËãÊÇÎþÉüÁË£¬ËùÒÔµ±Õâ´Îubuntu·¢Æ¢ÆødownµôµÄʱºò¼¸ºõ×¥¿ñ¡£Ã»ÓйâÅÌ£¬Ôõô°²×°ÏµÍ³£¿
ÍøÉÏÒ»ËÑ£¬×îºó²ÉÈ¡µÄ°ì·¨ÊÇÓÃuÅÌÆô¶¯ISO¾µÏñÎļþÀ´½øÐа²×°µÄ¡£Æð³õ·Å½ ......
Ç°Ãæ½²ÁËʹÓà ioctl·¢ËÍHCI CommandµÄ·½·¨¡£µ«HCI protocol»¹ÓÐһЩCommand£¬±ÈÈçInquiryµÈ£¬ËûÃÇÔò²»ÐèҪʹÓÃioctlÀ´·¢ËÍ¡£blueZ Ö±½ÓÌṩÁËÖ§³Ö£¬ËäÈ»ËûÃǵÄ×îÖÕ¶¼ÊÇÓÃͬÑù°ì·¨ÊµÏֵġ£
ÔÚÓ¦ÓóÌÐòÖУº
hci_inquiry(dev_id, length, num_rsp, NULL, &info, flags);
ÕâÑùÐèÒª°üº¬blueZ Í·ÎļþÈçÏ£º
#include //BT ......
SamÒ»ÄêÇ°ÔÚLinuxÏÂдÁËÒ»¸öÀàËÆWindowsÏÂBTWµÄ¿â--BTX¡£ÏÖÔÚÐèÒªÌí¼Óй¦ÄÜʱ·¢Ïֺܶà֪ʶµã¶¼Íü¼ÇÁË¡£ËùÒÔ¾ö¶¨ÔÚÕâ´ÎѧϰÖУ¬°ÑһЩbluez API¼Ç¼ÏÂÀ´¡£Õ⼸ÌìÓÖÏ룬ÕâÑù»¹²»¹»£¬²»Èç°ÑLinuxϵÄBluetooth±à³Ì»ù´¡¸ø¼Ç¼ÏÂÀ´°É¡£
Ç°ÑÔ£ºËæ×ÅǶÈëʽϵͳµÄ·ÉËÙ·¢Õ¹£¬ºÜ¶àǶÈëʽƽ̨ÉÏÐèÒªBluetoothÉ豸ºÍÓ¦Óᣵ«ÔÚLinuxÏ ......
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
À´Ô´£ºhttp://www.armjishu.com/index.php
´ó²¿·ÖÈ˶¼²»Ì«ÇåÎúµÄÒÉ»ó-----LinuxÖеĵØÖ·¿Õ¼ä
ÓÐÕâôһϵÁеÄÎÊÌ⣬ÊÇ·ñÔÚÀ§ÈÅ×ÅÄ㣺Óû§³ÌÐò±àÒëÁ¬½ÓÐγɵĵØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Äں˱àÒëºóµØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Òª¶ÔÍâÉè½øÐзÃÎÊ£¬I/OµÄµØÖ·¿Õ¼äÓÖÊÇʲôÑùµÄ£¿
ÏȻشðµÚÒ»¸öÎÊÌâ¡£Linux×î³£¼ûµÄ¿ÉÖ´ÐÐÎļþ¸ñʽΪelf(E ......