Android电话系统之-rildRild是Init进程启动的一个本地服务,这个本地服务并没有使用Binder之类的通讯手段,而是采用了socket通讯这种方式。RIL(Radio Interface Layer)Android给出了一个ril实现框架。由于Android开发者使用的Modem是不一样的,各种指令格式,初始化序列都可能不一样,GSM和CDMA就差别更大了,所以为了消除这些差别,An
转载 2024-02-06 07:12:39
27阅读
# Android 新增 I2C 设备驱动的实现 在Android操作系统中,I2C (Inter-Integrated Circuit) 是一种广泛使用的串行总线协议,用于连接多个低速设备。在嵌入式系统和移动设备中,I2C常用于传感器、显示器等外部设备的通信。如果你希望在Android平台上实现一个I2C设备的驱动程序,以下将为你提供一个完整的步骤,包括示例代码,流程图和甘特图。 ## 1.
原创 9月前
74阅读
一、简介 两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。二、技术性能 工作速率有100Kbit/s、400Kbi
一种是利用系统提供的i2c-dev.c来实现一个i2c适配器的设备文件,然后通过在应用层操作I2C适配器来控制I2C设备;另一种是为I2C从设备独立编写一个设备驱动,不需要i2c-dev.c文件。由于前者比较简单通用性强,我们采用前者来展开。     根据android层次划分,我们照例对开发分为如下几步:     1. 添加HAL层接口
转载 2023-11-18 14:50:54
408阅读
由于I2C很重要,应用很广,所以认为有必要将I2C驱动的设计细节给一一“拎出来”,防止自己以后漏掉细节而导致通信失败!以下主要是基于I.MX6ULL的主机I2C驱动来总结的。 1.使用如下8个函数即可实现I2C通信  2.与I2C相关的5个16位寄存器如下图按照驱动中对I2C寄存器的“动作频率”来排序,“动作”包含对寄存器置位、清零与判断。①I2SR和I2CR是最常要
转载 2024-02-05 02:53:41
341阅读
1、I2C总线简介  I2C总线是一种由PHILIPS公司开发的两线串行通讯总线,用于连接为控制器及其外围设备。  I2C串行通讯总线由两条线组成:  时钟线SCL。  数据线SDA。  时钟线SCL用来同步数据的传输,数据线SDA用来传输或读取数据。  I2C总线通信设备之间常用连接方式如下:  总线一般是指多个设备共用的信号线,比如上图中的SCL总线和SDA总线,这两个总线组成了I2C通讯总线
7-bit寻址数据传输常见的传输方向及格式有如下两种:主机写数据-从机接收,传输方向不变要进行数据写入从机,首先主机发送START条件+从机地址+R/W=0(写操作,设置为0),从机读取到该地址后回应ACK,主机将继续发送需要操作的寄存器地址,从机继续回应ACK,表示从机准备完毕。之后主机发送寄存器的数据(可能是1byte也可能是多个byte),每个byte从机都会回应ACK,发送完成后,主机发送
以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除 。参考博客I2C通信 - 知乎三大通信协议(二):IIC通信协议-腾讯云开发者社区-腾讯云I2C通信协议 - 知乎一文搞懂I2C通信 - 知乎一、I2C通信的简介 I2C通信,指两个设备之间通过I2C总线进行通信,遵循I2C通信的协议。1、I2C总线简介I2C(Inter-Integrated Circuit),中文应该叫内部
# Android如何测试I2C ## 1. 概述 I2C(Inter-Integrated Circuit,又称IIC)是一种串行通信总线协议,广泛应用于各种电子设备的通信中。在Android开发中,我们经常需要与外部硬件设备进行通信,而很多设备都采用了I2C通信协议。本文将介绍如何Android中进行I2C通信的测试,并提供一个实际问题的解决方案。 ## 2. I2C基本原理 I2C
原创 2023-11-01 09:12:58
334阅读
开发环境使用ubuntu 12.04 64bit,代码位于/home/cloverbox,本文档对全志A20 CLOVER BOX开发板适用 1.cloverbox_A20源码编译    a)安装jdk,jdk版本为1.6.0_43;    b)编译lichee源码  首先解压:tar -jxv
二、 使用JNI在应用程序框架层添加服务访问接口       APP应用不能直接访问HAL层,需要JNI层访问HAL模块并向上提供API接口。可以直接提供接口,但建议最好使用服务的方式提供访问。       我们先看JNI如何访问刚才的HAL模块。       进入源码根目录下的
转载 2023-09-24 10:41:01
284阅读
Android开发>–内核驱动开发-- I2C设备驱动前言:本次驱动开发是基于高通平台开发的,目的是基于I2C总线,去读取器件的相关信息,然后设置设备的属性值,以备后续的开发使用。开发步骤如下:1、添加设备树节点 1)打开dts文件"LINUX/android/kernel/msm-4.4/arch/arm64/boot/dts/qcom/xxx.dts"具体文件名以实际使用为准。作者这里用到的
转载 2023-08-17 11:49:10
231阅读
写在开始,因工作需要,对I2C的spec文档进行研读,主要工作就是将规范翻译为中文并补充自己的理解,根据每个章节内容进行划分,便于以后查阅,如有错误和疑问欢迎指正交流。目录1.规范介绍:INTRODUCTION TO THE I2C-BUS SPECIFICATION2.基本概念:THE I2C-BUS CONCEPT3.一般特征:GENERAL CHARACTERISTICS4.位传输:BIT
这几天在学的i2c总线,总结的一些。第一次写博客,如果有错,欢迎指出一、I2C系统总体架构   1、I2C系统架构由三个部分组成I2C核心(i2c-core):I2C总线驱动(adapter)和设备驱动的注册、注销方法,i2c_client和i2c_adapter的匹配I2C总线驱动(i2c_adapter,i2c_algorithm):i2c核心对硬件的交流。操作从
转载 2023-08-31 11:33:39
269阅读
本文基于i2c总线,简述了设备树的使用方式 @目录博客说明开发环境1. 如何使用设备树1.1 u-boot支持设备树1.2 Linux内核支持设备树1.3 如何在开发板中使用设备树2. 设备树介绍2.1 设备树中的设备驱动节点2.2 设备树匹配流程2.2.1 以i2c匹配为例2.2.2 设备树匹配下的程序模板2.3 设备树中的设备节点转换附录参考资料博客
转载 2023-07-16 22:05:28
430阅读
.Android I2C精析基于linux内核开发的arm系统,会用到很多components。要让这些components正常的工作,我们必须了解它们的接口,懂得如何去注册总线,初始化芯片,进而让芯片正常的工作。下面我会介绍在arm开发过程中使用最频繁的一些接口和总线的原理,以及如何在开发的过程中去使用它们。1 I2C总线与接口I2C总线具有结构简单,使用方便的特点。下面我会
I2C是一种总线式结构,它只需要SCL时钟信号线与SDA数据线,两根线就能将连接与总线上的设备实现数据通信,由于它的简便的构造设计,于是成为一种较为常用的通信方式。   由于I2C采用的是主从式通信方式,所以,通信的过程完全由主设备仲裁。在通信之前,必须由主设备发送一个起始信号,决定数据是否可以开始传送,并且在结束通信时,必须再由主设备发送一个结束信号,以表示通信已经结束。&n
转载 2023-07-19 14:42:03
303阅读
什么是I2C通信物理接口:SCL + SDA(1)SCL(serial clock):时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道(2)SDA(serial data):数据线,I2C通信的通信数据都通过SDA线来传输通信特征:串行、同步、非差分、低速率(1)I2C属于串行通信,所有的数据以位为单位在SDA上串行传输(2)同步通信就是通信双方工作在同一个时钟下面,一般是通信的A
转载 2023-10-16 12:48:52
183阅读
I2C驱动框架Linux的I2C体系结构分为3个组成部分,分别是I2C核心、I2C总线驱动和I2C设备驱动。 I2C控制器的驱动程序称为总线驱动(包含两部分,硬件相关、硬件无关),将I2C设备的驱动程序称为设备驱动(包含两部分,I2C设备匹配相关、I2C设备操作方法集)。I2C驱动设计过程简述:I2C设备注册: 首先要向I2C核心层注册一个I2C设备,I2C总线会将其添加到总线的设备链表中,然后遍
文章目录一、前言二、系列文章三、准备工作3.1 挑选I2C引脚3.2 测试设备:QMI8658C四、编写设备树节点4.1 查找MUX4.2 修改i2c1引脚配置4.2.1 修改前4.2.2 修改后五、编译、烧录dt.img5.1 烧录后效果六、编写test程序6.1 创建文件6.2 源码:Android.mk6.3 源码:i2c-slaver.c6.4 编译test程序七、测试7.1 部署 i2
  • 1
  • 2
  • 3
  • 4
  • 5