上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 99 下一页
摘要: 2 I2C子系统2.1 LinuxI2C子系统架构在内核中已经提供I2C子系统,所以在做I2C驱动之前,就必须要熟悉该子系统。2.2 三大组成部分1、I2C核心(i2c-core)I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(algorithm)上层的、与具体适配器无关的... 阅读全文
posted @ 2015-12-15 11:16 苍月代表我 阅读(353) 评论(0) 推荐(0)
摘要: 1.几个基本概念1.1.设备模型由总线(bus_type)+设备(device)+驱动(device_driver)组成,在该模型下,所有的设备通过总线连接起来,即使有些设备没有连接到一根物理总线上,linux为其设置了一个内部的、虚拟的platform总线,用以维持总线、驱动、设备的关系。因此,对... 阅读全文
posted @ 2015-12-15 11:15 苍月代表我 阅读(1266) 评论(0) 推荐(0)
摘要: 最近因为工作需要涉及到了I2C总线。虽然我过去用过I2c,但看了 Linux kernel 后才发现,一个 layer 能被做到这样完善。1. Linux的I2C驱动架构Linux中I2C总线的驱动分为两个部分,总线驱动(BUS)和设备驱动(DEVICE)。其中总线驱动的职责,是为系统中每个I2C总... 阅读全文
posted @ 2015-12-14 16:10 苍月代表我 阅读(1577) 评论(0) 推荐(0)
摘要: I2C总线定义 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以... 阅读全文
posted @ 2015-12-14 16:10 苍月代表我 阅读(2054) 评论(0) 推荐(0)
摘要: 最近在看Linux 2.6.21内核的I2C驱动,也在网上查了一下资料,有错也有对,有些心得,记录下来吧。里面认识或许多有不当之处,还恳请指正。1. I2C 协议1.1 I2C总线工作原理 I2C总线是由数据线SDA和时钟SCL构成的串行总线,各种被控制器件均并联在这条总线上,每个器件都有一个唯一的... 阅读全文
posted @ 2015-12-14 16:09 苍月代表我 阅读(648) 评论(0) 推荐(0)
摘要: 1. 工作原理 I2S有5根线,每根线的作用和使用请驱动开发人员参考 《设备驱动程序开发详解》,《嵌入式系统接口设计与LINUX驱动程序开发》,CQ8401 datesheet,相关章节。而且要完成该驱动需要具备DMA,i2s,i2c等相关知识。1.1 原理理解 CQ8401 i2s 于 codec... 阅读全文
posted @ 2015-12-14 16:07 苍月代表我 阅读(774) 评论(0) 推荐(0)
摘要: I2S总线概述 音响数据的采集、处理和传输是多媒体技术的重要组成部分。众多的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。对于设备和生产厂家来说,标准化的信息传输结构可以提高系统的适应性。I2S(Inter—IC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定... 阅读全文
posted @ 2015-12-14 16:06 苍月代表我 阅读(3515) 评论(0) 推荐(0)
摘要: 要写I2S驱动,对于硬件也要了解。I2S是一种常用的数字音频接口。总线值处理音频数据,像编码和控制这样的其他信号被转移分开。I2S接口传输或者接受声音数据来自于外部立体声音频编码器。用于传输和接受数据,包括两个32x16FIFO数据结构。总线特征:2通道I2S总线用于DMA装置的音频接口运作。串行,... 阅读全文
posted @ 2015-12-14 16:03 苍月代表我 阅读(491) 评论(0) 推荐(0)
摘要: 前面, 我们已经讨论了内核所作的在队列中优化请求顺序的工作; 这个工作包括排列请求和, 或许, 甚至延迟队列来允许一个预期的请求到达. 这些技术在处理一个真正的旋转的磁盘驱动器时有助于系统的性能. 但是, 许多面向块的设备, 例如闪存阵列, 用于数字相机的存储卡的读取器、u盘等, 并且 RAM 盘真... 阅读全文
posted @ 2015-12-14 15:48 苍月代表我 阅读(1927) 评论(0) 推荐(0)
摘要: 块设备驱动注册与注销块设备驱动中的第1个工作通常是注册它们自己到内核,完成这个任务的函数是 register_blkdev(),其原型为:int register_blkdev(unsigned int major, const char *name);major 参数是块设备要使用的主设备号,na... 阅读全文
posted @ 2015-12-14 15:47 苍月代表我 阅读(215) 评论(0) 推荐(0)
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 99 下一页