zoukankan      html  css  js  c++  java
  • I2C(一)框架


    title: I2C(一)框架
    date: 2019/1/28 17:58:42
    toc: true

    I2C(一)框架

    引入

    我们首先从硬件连接的角度来抽象一下

    mark

    整体框架

    整体分为以下几个部分:

    • core描述总线,提供统一管理adapt,I2c_linet,i2c_driver的接口,提供统一传输接口i2c_transfer,i2c_master_send,i2c_master_recv,具体的硬件操作由adapt提供
    • adapt 描述I2c控制器,具体的时序控制
    • i2c_clinet描述外设地址信息等,
    • i2c_driver 描述外设具体的控制逻辑,具体设备驱动
    • i2c_dev这是一个不指定具体设备地址的字符设备驱动程序,提供app直接控制总线时序,主设备号都为89,次设备号为适配器编号

    mark

    数据结构

    linux使用I2C 总线平台来管理,所谓总线,也和我们以前的platform总线一样,左边是dev,右边是driver,这里左侧挂接了适配器devclinet.dev,通过dev.type可以区分

    mark

    总线框架都会有一个匹配后probe的过程,linux2.6linux3.4match并不相同,具体以后分析代码可以看下.

    文件结构

    mark

    流程简述

    1. 将适配器加入链表
    2. clinet加入链表
    3. driver驱动加入链表
    4. 一个adapt上有若干个clinet依附,一个clinet会有一个i2C_driver对应着的

    参考文档

    Linux设备驱动开发详解第2版-宋宝华.pdf

  • 相关阅读:
    Java I/O流
    Java 网络编程
    Java 位运算
    Java高级特性 实用类
    Java高级特性 集合
    Log4j
    DML和DQL以及常用函数
    mysql 初始语句
    jQuery中表单的初始验证
    使用jQuery对DOM中的节点操作
  • 原文地址:https://www.cnblogs.com/zongzi10010/p/10331611.html
Copyright © 2011-2022 走看看