Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB
ÈÈÃűêÇ©£º c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 ×îÐÂÎÄÕ : c

ͨ¹ý#pragma pack(n)¸Ä±äC±àÒëÆ÷µÄ×Ö½Ú¶ÔÆë·½Ê½

Ô­ÎĵØÖ·£ºhttp://blog.csdn.net/yc0188/archive/2005/02/26/303190.aspx
ÔÚCÓïÑÔÖУ¬½á¹¹ÊÇÒ»ÖÖ¸´ºÏÊý¾ÝÀàÐÍ£¬Æä¹¹³ÉÔªËØ¼È¿ÉÒÔÊÇ»ù±¾Êý¾ÝÀàÐÍ£¨Èçint¡¢long¡¢floatµÈ£©µÄ±äÁ¿£¬Ò²¿ÉÒÔÊÇһЩ¸´ºÏÊý¾ÝÀàÐÍ£¨ÈçÊý×é¡¢½á¹¹¡¢ÁªºÏµÈ£©µÄÊý¾Ýµ¥Ôª¡£ÔڽṹÖУ¬±àÒëÆ÷Ϊ½á¹¹µÄÿ¸ö³ÉÔ±°´Æä×ÔÈ»¶Ô½ç£¨alignment£©Ìõ¼þ·ÖÅä¿Õ¼ä¡£¸÷¸ö³ÉÔ±°´ÕÕËüÃDZ»ÉùÃ÷µÄ˳ÐòÔÚÄÚ´æÖÐ˳Ðò´æ´¢£¬µÚÒ»¸ö³ÉÔ±µÄµØÖ·ºÍÕû¸ö½á¹¹µÄµØÖ·Ïàͬ¡£
ÀýÈ磬ÏÂÃæµÄ½á¹¹¸÷³ÉÔ±¿Õ¼ä·ÖÅäÇé¿ö£º
struct test
{
     char x1;
     short x2;
     float x3;
     char x4;
};
½á¹¹µÄµÚÒ»¸ö³ÉÔ±x1£¬ÆäÆ«ÒÆµØÖ·Îª0£¬Õ¼¾ÝÁ˵Ú1¸ö×Ö½Ú¡£µÚ¶þ¸ö³ÉÔ±x2ΪshortÀàÐÍ£¬ÆäÆðʼµØÖ·±ØÐë2×ֽڶԽ磬Òò´Ë£¬±àÒëÆ÷ÔÚx2ºÍx1Ö®¼äÌî³äÁËÒ»¸ö¿Õ×Ö½Ú¡£½á¹¹µÄµÚÈý¸ö³ÉÔ±x3ºÍµÚËĸö³ÉÔ±x4Ç¡ºÃÂäÔÚÆä×ÔÈ»¶Ô½çµØÖ·ÉÏ£¬ÔÚËüÃÇÇ°Ãæ²»ÐèÒª¶îÍâµÄÌî³ä×Ö½Ú¡£ÔÚtest½á¹¹ÖУ¬³ÉÔ±x3ÒªÇó4×ֽڶԽ磬ÊǸýṹËùÓгÉÔ±ÖÐÒªÇóµÄ×î´ó¶Ô½çµ¥Ôª£¬Òò¶øtest½á¹¹µÄ×ÔÈ»¶Ô½çÌõ¼þΪ4×Ö½Ú£¬±àÒëÆ÷ÔÚ³ÉÔ±x4ºóÃæÌî³äÁË3¸ö¿Õ×Ö½Ú¡£Õû¸ö½á¹¹ËùÕ¼¾Ý¿Õ¼äΪ12×Ö½Ú¡£¸ü¸ÄC±àÒëÆ ......

LinuxÏÂI2CÉ豸Çý¶¯¿ª·¢ºÍʵÏÖ

¡¡I2C×ÜÏß¾ßÓнṹ¼òµ¥Ê¹Ó÷½±ãµÄÌØµã¡£±¾ÎÄÃèÊöÁËlinuxÏÂI2CÇý¶¯µÄ½á¹¹£¬²¢ÔÚ´Ë»ù´¡Éϸø³öÁËI2CÉ豸Çý¶¯ºÍÓ¦ÓõÄʵÏÖ¡£
¡¡¡¡1  ÒýÑÔ
¡¡¡¡I2C (Inter£­Integrated Circuit)×ÜÏßÊÇÒ»ÖÖÓÉPHILIPS¹«Ë¾¿ª·¢µÄÁ½Ïßʽ´®ÐÐ×ÜÏߣ¬ÓÃÓÚÁ¬½Ó΢¿ØÖÆÆ÷¼°ÆäÍâΧÉ豸¡£I2C×ÜÏß×îÖ÷ÒªµÄÓŵãÊÇÆä¼òµ¥ÐÔºÍÓÐЧÐÔ¡£ÓÉÓÚ½Ó¿ÚÖ±½ÓÔÚ×é¼þÖ®ÉÏ£¬Òò´ËI2C×ÜÏßÕ¼ÓõĿռä·Ç³£Ð¡£¬¼õÉÙÁ˵ç·°åµÄ¿Õ¼äºÍоƬ¹Ü½ÅµÄÊýÁ¿£¬½µµÍÁË»¥Áª³É±¾¡£I2C×ÜÏß×î³õΪÒôƵºÍÊÓÆµÉ豸¿ª·¢£¬ÏÖÒÑÓ¦ÓÃÓÚ¸÷ÖÖ·þÎñÓë¹ÜÀí³¡ºÏ£¬À´ÊµÏÖÅäÖûòÕÆÎÕ×é¼þµÄ¹¦ÄÜ״̬£¬ÈçµçÔ´¡¢ÏµÍ³·çÉÈ¡¢ÏµÍ³Î¶ȵȲÎÊý£¬Ôö¼ÓÁËϵͳµÄ°²È«ÐÔ£¬·½±ãÁ˹ÜÀí¡£
¡¡¡¡2  I2C×ÜÏ߸ÅÊö
¡¡¡¡I2C×ÜÏßÊÇÓÉÊý¾ÝÏßSDAºÍʱÖÓSCL¹¹³ÉµÄ´®ÐÐ×ÜÏߣ¬¿É·¢ËͺͽÓÊÕÊý¾Ý£¬Ã¿¸öÆ÷¼þ¶¼ÓÐÒ»¸öΩһµÄµØÖ·Ê¶±ð¡£I2C ¹æ³ÌÔËÓÃÖ÷/´ÓË«ÏòͨѶ¡£Æ÷¼þ·¢ËÍÊý¾Ýµ½×ÜÏßÉÏ£¬Ôò¶¨ÒåΪ·¢ËÍÆ÷£¬Æ÷¼þ½ÓÊÕÊý¾ÝÔò¶¨ÒåΪ½ÓÊÕÆ÷¡£Ö÷Æ÷¼þºÍ´ÓÆ÷¼þ¶¼¿ÉÒÔ¹¤×÷ÓÚ½ÓÊպͷ¢ËÍ״̬¡£×ÜÏß±ØÐëÓÉÖ÷Æ÷¼þ£¨Í¨³£ÎªÎ¢¿ØÖÆÆ÷£©¿ØÖÆ£¬Ö÷Æ÷¼þ²úÉú´®ÐÐʱÖÓ£¨SCL£©¿ØÖÆ×ÜÏߵĴ«Êä·½Ïò£¬²¢²úÉúÆðʼºÍÍ£Ö¹Ìõ¼þ¡£SDAÏßÉϵÄÊý¾Ý״̬½öÔÚSCLΪµÍµçƽµÄÆÚ¼ä²ÅÄܸı䣬SCLΪ¸ßµçƽµÄÆÚ¼ä£¬SDA״̬µÄ¸Ä±ä±»ÓÃÀ ......

LinuxÏÂI2CÉ豸Çý¶¯¿ª·¢ºÍʵÏÖ

¡¡I2C×ÜÏß¾ßÓнṹ¼òµ¥Ê¹Ó÷½±ãµÄÌØµã¡£±¾ÎÄÃèÊöÁËlinuxÏÂI2CÇý¶¯µÄ½á¹¹£¬²¢ÔÚ´Ë»ù´¡Éϸø³öÁËI2CÉ豸Çý¶¯ºÍÓ¦ÓõÄʵÏÖ¡£
¡¡¡¡1  ÒýÑÔ
¡¡¡¡I2C (Inter£­Integrated Circuit)×ÜÏßÊÇÒ»ÖÖÓÉPHILIPS¹«Ë¾¿ª·¢µÄÁ½Ïßʽ´®ÐÐ×ÜÏߣ¬ÓÃÓÚÁ¬½Ó΢¿ØÖÆÆ÷¼°ÆäÍâΧÉ豸¡£I2C×ÜÏß×îÖ÷ÒªµÄÓŵãÊÇÆä¼òµ¥ÐÔºÍÓÐЧÐÔ¡£ÓÉÓÚ½Ó¿ÚÖ±½ÓÔÚ×é¼þÖ®ÉÏ£¬Òò´ËI2C×ÜÏßÕ¼ÓõĿռä·Ç³£Ð¡£¬¼õÉÙÁ˵ç·°åµÄ¿Õ¼äºÍоƬ¹Ü½ÅµÄÊýÁ¿£¬½µµÍÁË»¥Áª³É±¾¡£I2C×ÜÏß×î³õΪÒôƵºÍÊÓÆµÉ豸¿ª·¢£¬ÏÖÒÑÓ¦ÓÃÓÚ¸÷ÖÖ·þÎñÓë¹ÜÀí³¡ºÏ£¬À´ÊµÏÖÅäÖûòÕÆÎÕ×é¼þµÄ¹¦ÄÜ״̬£¬ÈçµçÔ´¡¢ÏµÍ³·çÉÈ¡¢ÏµÍ³Î¶ȵȲÎÊý£¬Ôö¼ÓÁËϵͳµÄ°²È«ÐÔ£¬·½±ãÁ˹ÜÀí¡£
¡¡¡¡2  I2C×ÜÏ߸ÅÊö
¡¡¡¡I2C×ÜÏßÊÇÓÉÊý¾ÝÏßSDAºÍʱÖÓSCL¹¹³ÉµÄ´®ÐÐ×ÜÏߣ¬¿É·¢ËͺͽÓÊÕÊý¾Ý£¬Ã¿¸öÆ÷¼þ¶¼ÓÐÒ»¸öΩһµÄµØÖ·Ê¶±ð¡£I2C ¹æ³ÌÔËÓÃÖ÷/´ÓË«ÏòͨѶ¡£Æ÷¼þ·¢ËÍÊý¾Ýµ½×ÜÏßÉÏ£¬Ôò¶¨ÒåΪ·¢ËÍÆ÷£¬Æ÷¼þ½ÓÊÕÊý¾ÝÔò¶¨ÒåΪ½ÓÊÕÆ÷¡£Ö÷Æ÷¼þºÍ´ÓÆ÷¼þ¶¼¿ÉÒÔ¹¤×÷ÓÚ½ÓÊպͷ¢ËÍ״̬¡£×ÜÏß±ØÐëÓÉÖ÷Æ÷¼þ£¨Í¨³£ÎªÎ¢¿ØÖÆÆ÷£©¿ØÖÆ£¬Ö÷Æ÷¼þ²úÉú´®ÐÐʱÖÓ£¨SCL£©¿ØÖÆ×ÜÏߵĴ«Êä·½Ïò£¬²¢²úÉúÆðʼºÍÍ£Ö¹Ìõ¼þ¡£SDAÏßÉϵÄÊý¾Ý״̬½öÔÚSCLΪµÍµçƽµÄÆÚ¼ä²ÅÄܸı䣬SCLΪ¸ßµçƽµÄÆÚ¼ä£¬SDA״̬µÄ¸Ä±ä±»ÓÃÀ ......

LinuxÏÂI2CÉ豸Çý¶¯¿ª·¢ºÍʵÏÖ

¡¡I2C×ÜÏß¾ßÓнṹ¼òµ¥Ê¹Ó÷½±ãµÄÌØµã¡£±¾ÎÄÃèÊöÁËlinuxÏÂI2CÇý¶¯µÄ½á¹¹£¬²¢ÔÚ´Ë»ù´¡Éϸø³öÁËI2CÉ豸Çý¶¯ºÍÓ¦ÓõÄʵÏÖ¡£
¡¡¡¡1  ÒýÑÔ
¡¡¡¡I2C (Inter£­Integrated Circuit)×ÜÏßÊÇÒ»ÖÖÓÉPHILIPS¹«Ë¾¿ª·¢µÄÁ½Ïßʽ´®ÐÐ×ÜÏߣ¬ÓÃÓÚÁ¬½Ó΢¿ØÖÆÆ÷¼°ÆäÍâΧÉ豸¡£I2C×ÜÏß×îÖ÷ÒªµÄÓŵãÊÇÆä¼òµ¥ÐÔºÍÓÐЧÐÔ¡£ÓÉÓÚ½Ó¿ÚÖ±½ÓÔÚ×é¼þÖ®ÉÏ£¬Òò´ËI2C×ÜÏßÕ¼ÓõĿռä·Ç³£Ð¡£¬¼õÉÙÁ˵ç·°åµÄ¿Õ¼äºÍоƬ¹Ü½ÅµÄÊýÁ¿£¬½µµÍÁË»¥Áª³É±¾¡£I2C×ÜÏß×î³õΪÒôƵºÍÊÓÆµÉ豸¿ª·¢£¬ÏÖÒÑÓ¦ÓÃÓÚ¸÷ÖÖ·þÎñÓë¹ÜÀí³¡ºÏ£¬À´ÊµÏÖÅäÖûòÕÆÎÕ×é¼þµÄ¹¦ÄÜ״̬£¬ÈçµçÔ´¡¢ÏµÍ³·çÉÈ¡¢ÏµÍ³Î¶ȵȲÎÊý£¬Ôö¼ÓÁËϵͳµÄ°²È«ÐÔ£¬·½±ãÁ˹ÜÀí¡£
¡¡¡¡2  I2C×ÜÏ߸ÅÊö
¡¡¡¡I2C×ÜÏßÊÇÓÉÊý¾ÝÏßSDAºÍʱÖÓSCL¹¹³ÉµÄ´®ÐÐ×ÜÏߣ¬¿É·¢ËͺͽÓÊÕÊý¾Ý£¬Ã¿¸öÆ÷¼þ¶¼ÓÐÒ»¸öΩһµÄµØÖ·Ê¶±ð¡£I2C ¹æ³ÌÔËÓÃÖ÷/´ÓË«ÏòͨѶ¡£Æ÷¼þ·¢ËÍÊý¾Ýµ½×ÜÏßÉÏ£¬Ôò¶¨ÒåΪ·¢ËÍÆ÷£¬Æ÷¼þ½ÓÊÕÊý¾ÝÔò¶¨ÒåΪ½ÓÊÕÆ÷¡£Ö÷Æ÷¼þºÍ´ÓÆ÷¼þ¶¼¿ÉÒÔ¹¤×÷ÓÚ½ÓÊպͷ¢ËÍ״̬¡£×ÜÏß±ØÐëÓÉÖ÷Æ÷¼þ£¨Í¨³£ÎªÎ¢¿ØÖÆÆ÷£©¿ØÖÆ£¬Ö÷Æ÷¼þ²úÉú´®ÐÐʱÖÓ£¨SCL£©¿ØÖÆ×ÜÏߵĴ«Êä·½Ïò£¬²¢²úÉúÆðʼºÍÍ£Ö¹Ìõ¼þ¡£SDAÏßÉϵÄÊý¾Ý״̬½öÔÚSCLΪµÍµçƽµÄÆÚ¼ä²ÅÄܸı䣬SCLΪ¸ßµçƽµÄÆÚ¼ä£¬SDA״̬µÄ¸Ä±ä±»ÓÃÀ ......

LinuxÏÂI2CÉ豸Çý¶¯¿ª·¢ºÍʵÏÖ

¡¡I2C×ÜÏß¾ßÓнṹ¼òµ¥Ê¹Ó÷½±ãµÄÌØµã¡£±¾ÎÄÃèÊöÁËlinuxÏÂI2CÇý¶¯µÄ½á¹¹£¬²¢ÔÚ´Ë»ù´¡Éϸø³öÁËI2CÉ豸Çý¶¯ºÍÓ¦ÓõÄʵÏÖ¡£
¡¡¡¡1  ÒýÑÔ
¡¡¡¡I2C (Inter£­Integrated Circuit)×ÜÏßÊÇÒ»ÖÖÓÉPHILIPS¹«Ë¾¿ª·¢µÄÁ½Ïßʽ´®ÐÐ×ÜÏߣ¬ÓÃÓÚÁ¬½Ó΢¿ØÖÆÆ÷¼°ÆäÍâΧÉ豸¡£I2C×ÜÏß×îÖ÷ÒªµÄÓŵãÊÇÆä¼òµ¥ÐÔºÍÓÐЧÐÔ¡£ÓÉÓÚ½Ó¿ÚÖ±½ÓÔÚ×é¼þÖ®ÉÏ£¬Òò´ËI2C×ÜÏßÕ¼ÓõĿռä·Ç³£Ð¡£¬¼õÉÙÁ˵ç·°åµÄ¿Õ¼äºÍоƬ¹Ü½ÅµÄÊýÁ¿£¬½µµÍÁË»¥Áª³É±¾¡£I2C×ÜÏß×î³õΪÒôƵºÍÊÓÆµÉ豸¿ª·¢£¬ÏÖÒÑÓ¦ÓÃÓÚ¸÷ÖÖ·þÎñÓë¹ÜÀí³¡ºÏ£¬À´ÊµÏÖÅäÖûòÕÆÎÕ×é¼þµÄ¹¦ÄÜ״̬£¬ÈçµçÔ´¡¢ÏµÍ³·çÉÈ¡¢ÏµÍ³Î¶ȵȲÎÊý£¬Ôö¼ÓÁËϵͳµÄ°²È«ÐÔ£¬·½±ãÁ˹ÜÀí¡£
¡¡¡¡2  I2C×ÜÏ߸ÅÊö
¡¡¡¡I2C×ÜÏßÊÇÓÉÊý¾ÝÏßSDAºÍʱÖÓSCL¹¹³ÉµÄ´®ÐÐ×ÜÏߣ¬¿É·¢ËͺͽÓÊÕÊý¾Ý£¬Ã¿¸öÆ÷¼þ¶¼ÓÐÒ»¸öΩһµÄµØÖ·Ê¶±ð¡£I2C ¹æ³ÌÔËÓÃÖ÷/´ÓË«ÏòͨѶ¡£Æ÷¼þ·¢ËÍÊý¾Ýµ½×ÜÏßÉÏ£¬Ôò¶¨ÒåΪ·¢ËÍÆ÷£¬Æ÷¼þ½ÓÊÕÊý¾ÝÔò¶¨ÒåΪ½ÓÊÕÆ÷¡£Ö÷Æ÷¼þºÍ´ÓÆ÷¼þ¶¼¿ÉÒÔ¹¤×÷ÓÚ½ÓÊպͷ¢ËÍ״̬¡£×ÜÏß±ØÐëÓÉÖ÷Æ÷¼þ£¨Í¨³£ÎªÎ¢¿ØÖÆÆ÷£©¿ØÖÆ£¬Ö÷Æ÷¼þ²úÉú´®ÐÐʱÖÓ£¨SCL£©¿ØÖÆ×ÜÏߵĴ«Êä·½Ïò£¬²¢²úÉúÆðʼºÍÍ£Ö¹Ìõ¼þ¡£SDAÏßÉϵÄÊý¾Ý״̬½öÔÚSCLΪµÍµçƽµÄÆÚ¼ä²ÅÄܸı䣬SCLΪ¸ßµçƽµÄÆÚ¼ä£¬SDA״̬µÄ¸Ä±ä±»ÓÃÀ ......

linux I2CÇý¶¯·ÖÎö

I2CÊÇPhillips¿ª·¢µÄ2ÏߵĴ®ÐÐ×ÜÏßЭÒ顣ͨ³£Ó¦ÓÃÔÚǶÈëʽϵͳÖÐÈò»Í¬µÄ×é¼þͨÐÅ£¬PCÖ÷°å¿ÉÒÔͨ¹ýI2CÀ´Ó벻ͬµÄ´«¸ÐÆ÷ͨÐÅ¡£ÕâЩ´«¸ÐÆ÷ͨ³£±¨¸æ·çÉÈËÙ¶È£¬´¦ÀíÆ÷ζȺÍÕû¸öÓ²¼þϵͳµÄÐÅÏ¢£¬Õâ¸öЭÒéÒ²¿ÉÒÔÓÃÔÚRAM chipsÉÏ£¬Ïò²Ù×÷ϵͳÌṩDIMMµÄÐÅÏ¢¡£
ÔÚ2.0ʱI2CµÄkernelÔ´Âë²»ÔÚÄÚºËÀïµÄ£¬2.4Äں˰üÀ¨ÁËÒ»µã¶ÔI2CµÄÖ§³Ö£¬Ö÷ÒªÊÇÊÓÆµÇý¶¯¡£
ÔÚ2.6ÄÚºËÀ´óÁ¿µÄI2C´úÂë¼ÓÈëµ½ÁËÄÚºËÀï¡£¸ÐлºÜ¶àÄں˿ª·¢ÕßµÄŬÁ¦£¬ËûÃÇÈýӿڸüÈÝÒ×±»ÄÚºËÉçÇø½ÓÊÜ¡£ÓÐЩÇý¶¯ÈÔÔÚÍⲿµÄCVSÊ÷ÀûÓзÅÈëkernel.orgÀµ«ÊÇËûÃDZ»ÒÆÖ²Ö»ÊÇʱ¼äµÄÎÊÌâ¡£
I2CµÄkernelÔ´Âë±»·Ö³É¼¸¸ö²¿·Ö£ºthe I2C core, I2C bus drivers£¬I2C algorithm drivers and I2C chip drivers¡£ÎÒÃǽ«ºöÂÔI2C core²¿·Ö£¬¶øÊǹØ×¢ÈçºÎ±àдa bus and algorithm Çý¶¯¡£
I2C Bus Drivers ×ÜÏßÇý¶¯
I2C×ÜÏßÇý¶¯ÓÃÒ»¸ö½á¹¹i2c_adapterÀ´ÃèÊö£¬¸Ã½á¹¹ÔÚÎļþinclude/linux/i2c.hÀﶨÒå¡£
ÒÔϵÄ×Ö¶ÎÐèÒªÔÚ×ÜÏßÇý¶¯ÀïÉèÖãº
      struct module *owner; -set to the value (THIS_MODULE) that allows the proper module reference counting.
      unsigned int clas ......

linux I2CÇý¶¯·ÖÎö

I2CÊÇPhillips¿ª·¢µÄ2ÏߵĴ®ÐÐ×ÜÏßЭÒ顣ͨ³£Ó¦ÓÃÔÚǶÈëʽϵͳÖÐÈò»Í¬µÄ×é¼þͨÐÅ£¬PCÖ÷°å¿ÉÒÔͨ¹ýI2CÀ´Ó벻ͬµÄ´«¸ÐÆ÷ͨÐÅ¡£ÕâЩ´«¸ÐÆ÷ͨ³£±¨¸æ·çÉÈËÙ¶È£¬´¦ÀíÆ÷ζȺÍÕû¸öÓ²¼þϵͳµÄÐÅÏ¢£¬Õâ¸öЭÒéÒ²¿ÉÒÔÓÃÔÚRAM chipsÉÏ£¬Ïò²Ù×÷ϵͳÌṩDIMMµÄÐÅÏ¢¡£
ÔÚ2.0ʱI2CµÄkernelÔ´Âë²»ÔÚÄÚºËÀïµÄ£¬2.4Äں˰üÀ¨ÁËÒ»µã¶ÔI2CµÄÖ§³Ö£¬Ö÷ÒªÊÇÊÓÆµÇý¶¯¡£
ÔÚ2.6ÄÚºËÀ´óÁ¿µÄI2C´úÂë¼ÓÈëµ½ÁËÄÚºËÀï¡£¸ÐлºÜ¶àÄں˿ª·¢ÕßµÄŬÁ¦£¬ËûÃÇÈýӿڸüÈÝÒ×±»ÄÚºËÉçÇø½ÓÊÜ¡£ÓÐЩÇý¶¯ÈÔÔÚÍⲿµÄCVSÊ÷ÀûÓзÅÈëkernel.orgÀµ«ÊÇËûÃDZ»ÒÆÖ²Ö»ÊÇʱ¼äµÄÎÊÌâ¡£
I2CµÄkernelÔ´Âë±»·Ö³É¼¸¸ö²¿·Ö£ºthe I2C core, I2C bus drivers£¬I2C algorithm drivers and I2C chip drivers¡£ÎÒÃǽ«ºöÂÔI2C core²¿·Ö£¬¶øÊǹØ×¢ÈçºÎ±àдa bus and algorithm Çý¶¯¡£
I2C Bus Drivers ×ÜÏßÇý¶¯
I2C×ÜÏßÇý¶¯ÓÃÒ»¸ö½á¹¹i2c_adapterÀ´ÃèÊö£¬¸Ã½á¹¹ÔÚÎļþinclude/linux/i2c.hÀﶨÒå¡£
ÒÔϵÄ×Ö¶ÎÐèÒªÔÚ×ÜÏßÇý¶¯ÀïÉèÖãº
      struct module *owner; -set to the value (THIS_MODULE) that allows the proper module reference counting.
      unsigned int clas ......

LinuxÖÐI2C×ÜÏßÇý¶¯Ìåϵ½á¹¹

×î½üÔÚ¿´Linux 2.6.21Äں˵ÄI2CÇý¶¯£¬Ò²ÔÚÍøÉϲéÁËÒ»ÏÂ×ÊÁÏ£¬ÓдíÒ²Óжԣ¬ÓÐЩÐĵ㬼ǼÏÂÀ´°É¡£ÀïÃæÈÏʶ»òÐí¶àÓв»µ±Ö®´¦£¬»¹¿ÒÇëÖ¸Õý¡£
 
1. I2C ЭÒé
 
 1.1  I2C×ÜÏß¹¤×÷Ô­Àí
      I2C×ÜÏßÊÇÓÉÊý¾ÝÏßSDAºÍʱÖÓSCL¹¹³ÉµÄ´®ÐÐ×ÜÏߣ¬¸÷ÖÖ±»¿ØÖÆÆ÷¼þ¾ù²¢ÁªÔÚÕâÌõ×ÜÏßÉÏ£¬Ã¿¸öÆ÷¼þ¶¼ÓÐÒ»¸öΨһµÄµØÖ·Ê¶±ð£¬¿ÉÒÔ×÷Ϊ×ÜÏßÉϵÄÒ»¸ö·¢ËÍÆ÷¼þ»ò½ÓÊÕÆ÷¼þ(¾ßÌåÓÉÆ÷¼þµÄ¹¦Äܾö¶¨)
1.2  I2C×ÜÏߵļ¸ÖÖÐźÅ״̬
      1.  ¿ÕÏÐ״̬£ºSDAºÍSCL¶¼Îª¸ßµçƽ¡£
      2.  ¿ªÊ¼Ìõ¼þ(S)£ºSCLΪ¸ßµçƽʱ£¬SDAÓÉ¸ßµçÆ½ÏòµÍµçÆ½Ìø±ä£¬¿ªÊ¼´«ËÍÊý¾Ý¡£
      3.  ½áÊøÌõ¼þ(P)£ºSCLΪµÍµçƽʱ£¬SDAÓÉµÍµçÆ½Ïò¸ßµçÆ½Ìø±ä£¬½áÊø´«ËÍÊý¾Ý¡£
      4.  Êý¾ÝÓÐЧ£ºÔÚSCLµÄ¸ßµçƽÆÚ¼ä£¬ SDA±£³ÖÎȶ¨£¬Êý¾ÝÓÐЧ¡£SDAµÄ¸Ä±äÖ»ÄÜ·¢ÉúÔÚSCLµÄµ×µçƽÆÚ¼ä¡£ 
      5.  ACKÐźÅ: Êý¾Ý´«ÊäµÄ¹ý³ÌÖУ¬½ÓÊÕÆ÷¼þÿ½ÓÊÕÒ»¸ö×Ö½ÚÊý¾ÝÒª²úÉúÒ»¸öACKÐźţ¬Ïò·¢ËÍÆ÷¼þ·¢³öÌØ¶¨µÄµÍµç ......

LinuxÖÐI2C×ÜÏßÇý¶¯Ìåϵ½á¹¹

×î½üÔÚ¿´Linux 2.6.21Äں˵ÄI2CÇý¶¯£¬Ò²ÔÚÍøÉϲéÁËÒ»ÏÂ×ÊÁÏ£¬ÓдíÒ²Óжԣ¬ÓÐЩÐĵ㬼ǼÏÂÀ´°É¡£ÀïÃæÈÏʶ»òÐí¶àÓв»µ±Ö®´¦£¬»¹¿ÒÇëÖ¸Õý¡£
 
1. I2C ЭÒé
 
 1.1  I2C×ÜÏß¹¤×÷Ô­Àí
      I2C×ÜÏßÊÇÓÉÊý¾ÝÏßSDAºÍʱÖÓSCL¹¹³ÉµÄ´®ÐÐ×ÜÏߣ¬¸÷ÖÖ±»¿ØÖÆÆ÷¼þ¾ù²¢ÁªÔÚÕâÌõ×ÜÏßÉÏ£¬Ã¿¸öÆ÷¼þ¶¼ÓÐÒ»¸öΨһµÄµØÖ·Ê¶±ð£¬¿ÉÒÔ×÷Ϊ×ÜÏßÉϵÄÒ»¸ö·¢ËÍÆ÷¼þ»ò½ÓÊÕÆ÷¼þ(¾ßÌåÓÉÆ÷¼þµÄ¹¦Äܾö¶¨)
1.2  I2C×ÜÏߵļ¸ÖÖÐźÅ״̬
      1.  ¿ÕÏÐ״̬£ºSDAºÍSCL¶¼Îª¸ßµçƽ¡£
      2.  ¿ªÊ¼Ìõ¼þ(S)£ºSCLΪ¸ßµçƽʱ£¬SDAÓÉ¸ßµçÆ½ÏòµÍµçÆ½Ìø±ä£¬¿ªÊ¼´«ËÍÊý¾Ý¡£
      3.  ½áÊøÌõ¼þ(P)£ºSCLΪµÍµçƽʱ£¬SDAÓÉµÍµçÆ½Ïò¸ßµçÆ½Ìø±ä£¬½áÊø´«ËÍÊý¾Ý¡£
      4.  Êý¾ÝÓÐЧ£ºÔÚSCLµÄ¸ßµçƽÆÚ¼ä£¬ SDA±£³ÖÎȶ¨£¬Êý¾ÝÓÐЧ¡£SDAµÄ¸Ä±äÖ»ÄÜ·¢ÉúÔÚSCLµÄµ×µçƽÆÚ¼ä¡£ 
      5.  ACKÐźÅ: Êý¾Ý´«ÊäµÄ¹ý³ÌÖУ¬½ÓÊÕÆ÷¼þÿ½ÓÊÕÒ»¸ö×Ö½ÚÊý¾ÝÒª²úÉúÒ»¸öACKÐźţ¬Ïò·¢ËÍÆ÷¼þ·¢³öÌØ¶¨µÄµÍµç ......

I2C×ÜÏßÔÚLinuxϵͳÖеÄÇý¶¯Éè¼Æ

1 ÒýÑÔ
¡¡¡¡Linux²Ù×÷ϵͳÒò¾ßÓÐÔ´´úÂ빫¿ª¡¢±ãÓڲüõ¡¢Óй㷺µÄ´¦ÀíÆ÷Ö§³ÖµÈÓŵ㣬³ÉΪµ±Ç°Ç¶ÈëʽϵͳµÄÈÈÃÅÑ¡Ôñ¡£»ùÓÚI2C×ÜÏߵļüÅÌÀ©Õ¹É豸Ö÷ÒªÓÃÓÚÂú×ãǶÈëʽÉ豸ÖжԶఴ¼üµÄÐèÇó£¬Çý¶¯³ÌÐòÔÚϵͳÆô¶¯Ê±¶ÔÓ²¼þ½øÐгõʼ»¯¡£ÔÚϵͳÆô¶¯ºóʵÏÖÓ²¼þºÍÓ¦ÓóÌÐòÖ®¼äµÄÊý¾Ý½»»¥¡£Õë¶ÔS3C2410΢´¦ÀíÆ÷ºÍ¼üÅÌɨÃè¹ÜÀíÆ÷¼þ£¬ÉîÈëÌÖÂÛÈçºÎÔÚǶÈëʽ²Ù×÷ϵͳarm LinuxÖÐʵÏÖZLG7290µÄÇý¶¯¡£
¡¡¡¡2 I2C×ÜÏß
¡¡¡¡I2C×ÜÏßÊÇÆ÷¼þ¼ä´®Ðд«Êä×ÜÏߣ¬ÒÔÆä¹æ·¶ºÍ´øI2C½Ó¿ÚµÄÍâΧÆ÷¼þ»ñµÃ¹ã·ºÓ¦Óá£S3C2410´¦ÀíÆ÷ÄÚÖÃÓÐI2C×ÜÏß½Ó¿Ú¡£I2C×ÜÏßÊÇÓÉÊý¾ÝÏßSDAºÍʱÖÓSCL¹¹³ÉµÄ´®ÐÐ×ÜÏߣ¬¿É·¢ËͺͽÓÊÕÊý¾Ý£¬Ã¿¸öÆ÷¼þ¶¼ÓÐÒ»¸öΨһµÄµØÖ·Ê¶±ð¡£I2C×ÜÏßÔÚ´«ËÍÊý¾Ý¹ý³ÌÖй²ÓÐ3ÖÖÐźţº(1)¿ªÊ¼ÐźţºSCLΪ¸ßµçƽʱ£¬SDAÓÉ¸ßµçÆ½ÏòµÍµçÆ½Ìø±ä£¬¿ªÊ¼´«ËÍÊý¾Ý¡£(2)½áÊøÐźţºSCLΪµÍµçƽʱ£¬SDAÓÉµÍµçÆ½Ïò¸ßµçÆ½Ìø±ä£¬½áÊø´«ËÍÊý¾Ý¡£(3)Ó¦´ðÐźţº½ÓÊÕÊý¾ÝµÄIC½ÓÊÕµ½8 bitÊý¾Ýºó£¬Ïò·¢ËÍÊý¾ÝµÄIC·¢³öÌØ¶¨µÄµÍµçƽÂö³å£¬±íʾÒÑÊÕµ½Êý¾Ý¡£CPUÏòÊܿص¥Ôª·¢³öÒ»¸öÐźź󣬵ȴýÊܿص¥Ôª·¢³öÓ¦´ðÐźţ¬CPU½ÓÊÕµ½Ó¦´ðÐźź󣬸ù¾Ýʵ¼ÊÇé¿ö×ö³öÊÇ·ñ¼ÌÐø´«µÝÐźŵÄÅжϡ£ÈôδÊÕµ½Ó¦´ðÐźţ¬ÔòÅжÏΪÊܿص¥Ôª³öÏÖ¹ÊÕÏ¡ ......

I2C×ÜÏßÔÚLinuxϵͳÖеÄÇý¶¯Éè¼Æ

1 ÒýÑÔ
¡¡¡¡Linux²Ù×÷ϵͳÒò¾ßÓÐÔ´´úÂ빫¿ª¡¢±ãÓڲüõ¡¢Óй㷺µÄ´¦ÀíÆ÷Ö§³ÖµÈÓŵ㣬³ÉΪµ±Ç°Ç¶ÈëʽϵͳµÄÈÈÃÅÑ¡Ôñ¡£»ùÓÚI2C×ÜÏߵļüÅÌÀ©Õ¹É豸Ö÷ÒªÓÃÓÚÂú×ãǶÈëʽÉ豸ÖжԶఴ¼üµÄÐèÇó£¬Çý¶¯³ÌÐòÔÚϵͳÆô¶¯Ê±¶ÔÓ²¼þ½øÐгõʼ»¯¡£ÔÚϵͳÆô¶¯ºóʵÏÖÓ²¼þºÍÓ¦ÓóÌÐòÖ®¼äµÄÊý¾Ý½»»¥¡£Õë¶ÔS3C2410΢´¦ÀíÆ÷ºÍ¼üÅÌɨÃè¹ÜÀíÆ÷¼þ£¬ÉîÈëÌÖÂÛÈçºÎÔÚǶÈëʽ²Ù×÷ϵͳarm LinuxÖÐʵÏÖZLG7290µÄÇý¶¯¡£
¡¡¡¡2 I2C×ÜÏß
¡¡¡¡I2C×ÜÏßÊÇÆ÷¼þ¼ä´®Ðд«Êä×ÜÏߣ¬ÒÔÆä¹æ·¶ºÍ´øI2C½Ó¿ÚµÄÍâΧÆ÷¼þ»ñµÃ¹ã·ºÓ¦Óá£S3C2410´¦ÀíÆ÷ÄÚÖÃÓÐI2C×ÜÏß½Ó¿Ú¡£I2C×ÜÏßÊÇÓÉÊý¾ÝÏßSDAºÍʱÖÓSCL¹¹³ÉµÄ´®ÐÐ×ÜÏߣ¬¿É·¢ËͺͽÓÊÕÊý¾Ý£¬Ã¿¸öÆ÷¼þ¶¼ÓÐÒ»¸öΨһµÄµØÖ·Ê¶±ð¡£I2C×ÜÏßÔÚ´«ËÍÊý¾Ý¹ý³ÌÖй²ÓÐ3ÖÖÐźţº(1)¿ªÊ¼ÐźţºSCLΪ¸ßµçƽʱ£¬SDAÓÉ¸ßµçÆ½ÏòµÍµçÆ½Ìø±ä£¬¿ªÊ¼´«ËÍÊý¾Ý¡£(2)½áÊøÐźţºSCLΪµÍµçƽʱ£¬SDAÓÉµÍµçÆ½Ïò¸ßµçÆ½Ìø±ä£¬½áÊø´«ËÍÊý¾Ý¡£(3)Ó¦´ðÐźţº½ÓÊÕÊý¾ÝµÄIC½ÓÊÕµ½8 bitÊý¾Ýºó£¬Ïò·¢ËÍÊý¾ÝµÄIC·¢³öÌØ¶¨µÄµÍµçƽÂö³å£¬±íʾÒÑÊÕµ½Êý¾Ý¡£CPUÏòÊܿص¥Ôª·¢³öÒ»¸öÐźź󣬵ȴýÊܿص¥Ôª·¢³öÓ¦´ðÐźţ¬CPU½ÓÊÕµ½Ó¦´ðÐźź󣬸ù¾Ýʵ¼ÊÇé¿ö×ö³öÊÇ·ñ¼ÌÐø´«µÝÐźŵÄÅжϡ£ÈôδÊÕµ½Ó¦´ðÐźţ¬ÔòÅжÏΪÊܿص¥Ôª³öÏÖ¹ÊÕÏ¡ ......
×ܼǼÊý:2015; ×ÜÒ³Êý:336; ÿҳ6 Ìõ; Ê×Ò³ ÉÏÒ»Ò³ [60] [61] [62] [63] 64 [65] [66] [67] [68] [69]  ÏÂÒ»Ò³ βҳ
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ