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״̬µÄ¸Ä±ä±»ÓÃÀ´±íʾÆðʼºÍÍ£Ö¹Ìõ¼þ¡£
¡¡¡¡I2C×ÜÏßÔÚ´«ËÍÊý¾Ý¹ý³ÌÖй²ÓÐÈýÖÖÀàÐÍÐźţ¬ËüÃÇ·Ö±ðÊÇ£º¿ªÊ¼Ðźš¢½áÊøÐźźÍÓ¦´ðÐźš£
¡¡¡¡¿ªÊ¼ÐźţºSCLΪ¸ßµçƽʱ£¬SDAÓÉ¸ßµçÆ½ÏòµÍµçÆ½Ìø±ä£¬¿ªÊ¼´«ËÍÊý¾Ý¡£
¡¡¡¡½áÊøÐźţºSCLΪµÍµçƽʱ£¬SDAÓÉµÍµçÆ½Ïò¸ßµçÆ½Ìø±ä£¬½áÊø´«ËÍÊý¾Ý¡£
¡¡¡¡Ó¦´ðÐźţº½ÓÊÕÊý¾ÝµÄICÔÚ½ÓÊÕµ½8bitÊý¾Ýºó£¬Ïò·¢ËÍÊý¾ÝµÄIC·¢³öÌØ¶¨µÄµÍµçƽÂö³å£¬±íʾÒÑÊÕµ½Êý¾Ý¡£CPUÏòÊܿص¥Ôª·¢³öÒ»¸öÐźź󣬵ȴýÊܿص¥Ôª·¢³öÒ»¸öÓ¦´ðÐźţ¬CPU½ÓÊÕµ½Ó¦´ðÐźź󣬸ù¾Ýʵ¼ÊÇé¿ö×÷³öÊÇ·ñ¼ÌÐø´«µÝÐźŵÄÅжϡ£ÈôδÊÕµ½Ó¦´ðÐźţ¬ÓÉÅжÏΪÊܿص¥Ôª³öÏÖ¹ÊÕÏ¡£
¡¡¡¡3 LinuxµÄI2CÇý¶¯¼Ü
¡¡¡¡LinuxÖÐI2C×ÜÏßµÄÇý¶¯·ÖΪÁ½¸ö²¿·Ö£¬×ÜÏßÇý¶¯£¨BUS£©ºÍÉ豸Çý¶¯£¨DEVICE£©¡£ÆäÖÐ×ÜÏßÇý¶¯µÄÖ°Ôð£¬ÊÇΪϵͳÖÐÿ¸öI2C×ÜÏßÔö¼ÓÏàÓ¦µÄ¶Áд·½·¨¡£µ«ÊÇ×ÜÏßÇý¶¯±¾Éí²¢²»»á½øÐÐÈκεÄͨѶ£¬ËüÖ»ÊÇ´æÔÚÄÇÀµÈ´ýÉ豸Çý¶¯µ÷ÓÃÆäº¯Êý£¬²Î¼ûͼ1¡£
¡¡¡¡É豸Çý¶¯ÔòÊÇÓë¹ÒÔÚI2C×ÜÏßÉϵľßÌåµÄÉ豸ͨѶµÄÇý¶¯¡£Í¨¹ýI2C×ÜÏßÇý¶¯ÌṩµÄº¯Êý£¬É豸Çý¶¯¿ÉÒÔºöÂÔ²»Í¬×ÜÏß¿ØÖÆÆ÷µÄ²îÒ죬²»¿¼ÂÇÆäʵÏÖϸ½ÚµØÓëÓ²¼þÉ豸ͨѶ¡£
ͼ1 LinuxÄÚºËI2C×ÜÏßÇý¶¯³ÌÐò¹¹¼Ü
¡¡¡¡ÔÚÎÒÃǵÄLinuxÇý¶¯µÄi2cÎļþ¼ÐÏ
Ïà¹ØÎĵµ£º
ÿ¸ö½ø³Ì¶¼ÓÐÒ»¸öΨһµÄ½ø³ÌºÅ¡£ ÿ¸ö½ø³Ì¶¼ÓÐÒ»¸ö¸¸½ø³Ì¡£ ϵͳÖеĽø³ÌÒÔÊ÷µÄÐÎʽ×éÖ¯£¬init½ø³Ì(½ø³ÌºÅΪ1)×÷Ϊ¸ù¡£ ½ø³Ì0Êǵ÷¶È½ø³Ì£¬Ã»ÓгÌÐòÓëÖ®¶ÔÓ¦£¬ÊÇÄں˵ÄÒ»²¿·Ö¡£ ½ø³Ì1ÊÇinit½ø³Ì£¬ÊÇÔÚϵͳÆô¶¯µÄ½×¶ÎÓÉÄÚºËÆô¶¯µÄ£¬¶ÔÓ¦/sbin/ini ......
ת×Ôhttp://blog.chinaunix.net/u3/110321/showart.php?id=2159791
²é¿´ Linux Äں˷Óɱí
ʹÓÃÏÂÃæµÄ route ÃüÁî¿ÉÒԲ鿴 Linux Äں˷ÓÉ±í¡£
# route
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 ......
#include <iostream>
#include <cstdlib>
using namespace std;
class Foo
{
public:
Foo(int ii):i(ii){}
int getInt(){return i;}
private:
int i;
};
class Bar
{
public:
static int FooVal(){c++; return f.getInt();}
int callsFooVal(){return c;}
private:
s ......
ÏëÒªÔÚÐéÄâ»úϵÄlinuxÓëwindows»¥Áª£¬×î¹Ø¼üµÄÖ»ÐèÒª3²½£º
1.Ò»¶¨ÒªÉèÖÃÐéÄâ»úµÄÍø¿¨ÎªÇŽÓģʽ£¬ÕÒ¸öÒ»¶¨²»ÄÜÍü¡£
2.ÉèÖÃlinuxϵÄipµØÖ·£¬ vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #ÍøÂçÃû³Æ
BOOTPROTO=static #¾²Ì¬»ñÈ¡ipµØÖ·
IPADD ......