IIC总线驱动基础知识

由于JZ2440开发板没有接iic总线,所以本节实验是根据fl2440开发板来做的!

首先来看一下原理图:
IIC总线驱动基础知识 - 小白 - 小白的博客

我们看到它有两根线:数据线和时钟线,他们用于数据传输。
A0、A1、A2是设备地址,它是已经固化在硬件层的。

再来看看AT24c02与2440连接图:
IIC总线驱动基础知识 - 小白 - 小白的博客 
 我们要知道2440与at24c02之间属于主从连接,也就是说所有的会话必须由主设备发起,这里的主设备自然是2440。那么当2440的iic总线上挂载了多个存储设备时,2440如何去找到自己想要访问的存储设备呢?这就需要设备地址,那么当访问到具体的设备后,想要读写特定的存储空间,还需要知道存储地址!那么这些地址是如何组织的呢?我们可以看看下面这幅图:
IIC总线驱动基础知识 - 小白 - 小白的博客
 
由于我们用到的是at24c02,也就是2k的存储设备,所以只需要看第一行:
这里就是设备地址了,高4位是固化的,不用管,A2、A1、A0可以根据硬件连接来设置。fl2440开发板原理图可知A2、A1、A0都是0,所以从设备地址是:1010000
我们再来看看4k,8k,16k的情况:我们知道设备地址发出之后在发出的是存储地址,而存储地址都是8位的,那么对4k,8k,16k的情况怎么办呢?他们可不是8位地址就可以寻址的。8位地址只能寻址一页数据,4k是2页,8k是4页,16k是8页,我们看到上面图片p0可以代表2页,p1、p0可以代表4页,p2、p1、p0可以代表8页,这下明白了!
至于存储地址,当然可以根据自己的需要来设置了。

那么通过iic总线与2440连接的存储设备如何读写呢?我们来看一看时序图,不过因为读写都分为好几种,我们分别只选其中一种来分析:
首先我们来分析一下随机读时序:
IIC总线驱动基础知识 - 小白 - 小白的博客
一开始SDA、SCL信号都是高电平,然后SDA出现一个下降沿,表示开始发送数据。然后会发出设备地址,就是我们上面提到过的,它是7位的,第8位是读写标识位。由于只有一根数据线,显然数据是一位一位发送的。当SCL是低电平的时候,SDA上的数据可以变化,当SCL为高电平的时候,SDA上的数据被读走。那么要发送完这8位的数据,需要8个时钟周期。在第九个时钟周期,2440会交出总线的控制权,由从机来驱动,从机会向2440发送ack应答信号。
好下面我们略去比较细节的东西来分析这个随机读时序:
首先发送设备地址并附带写信号,这样就找到了设备并告诉设备下一次是2440向设备发送
2440向设备发送要读的地址
发送设备地址并附带读信号,表示下一次是设备向2440发送数据
然后是设备向2440发送数据
 
再来看字节写时序:
IIC总线驱动基础知识 - 小白 - 小白的博客
首先发出地址信号并附加些标识,这样就找到了要写的设备并告诉设备下一次是2440向设备发送
然后发出要写的存储地址
之后开始写入数据

关于裸板程序暑假里面会花一部分时间好好研究的,在这里就先放一放了!
第1 章 MagicARM2410 实验箱硬件结构 1.1 功能特点...............................6 1.1.1 硬件资源.......................6 1.1.2 软件资源.......................7 1.1.3 可选硬件.......................8 1.2 S3C2410A 芯片简介 ............8 1.3 硬件原理............................. 11 1.3.1 DeviceARM2410核心板........ 11 1.3.2 实验箱主板....................................24 1.3.3 构建ARM7 教学实验开发平台...45 1.4 硬件结构................................................46 1.4.1 跳线器说明....................................47 1.4.2 连接器说明....................................50 1.5 硬件资源分配情况................................51 1.6 温馨提示................................................53 第2 章 基础实验................................54 2.1 ADS 1.2 集成开发环境练习 .................54 2.2 汇编指令实验1.....................................59 2.3 汇编指令实验2.....................................62 2.4 汇编指令实验3.....................................65 2.5 ARM 处理器工作模式实验 ..................68 2.6 C 语言程序实验 ....................................72 2.7 C 语言调用汇编程序实验 ....................74 2.8 GPIO 输出控制实验.............................76 2.9 GPIO 输入实验.....................................82 2.10 外部中断实验........................................85 2.11 UART 通讯实验....................................90 2.12 I 2 C 接口实验..................................................95 2.13 定时器实验...................................................104 2.14 PWM DAC 实验...........................................107 2.15 ADC实验..................................................... 111 2.16 RTC 实验...................................................... 114 2.17 步进电机控制实验.......................................120 2.18 直流电机控制实验.......................................123 第3 章 基于µC/OS-II 基础实验 ..............127 3.1 µ C/OS-II移植实验.......................................127 3.2 蜂鸣器实验...................................................136 3.3 串行通信实验...............................................140 3.4 图形液晶控制实验.......................................144 3.5 Modbus RTU 主从通讯实验 ......................147 第4 章 构建嵌入式Linux 开发平台.......................................159 4.1 基础知识....................................159 4.1.1 交叉编译..................................159 4.1.2 宿主机要求................................159 4.2 构建交叉开发环境...............................160 4.2.1 安装交叉编译器...........................160 4.2.2 安装ARM Linux 内核.................161 4.2.3 安装NFS 根文件系统.................162 4.3 构建嵌入式Linux 目标平台 ...............166 4.3.1 相关文件.......................................166 4.3.2 下载Bootloader ............................168 4.3.3 下载Linux 内核和文件系统.......168 4.3.4 启动Linux 操作系统...................170 4.4 Linux 启动参数的设定方法 ................171 4.4.1 ZLG/BOOT 的运行过程..............171 4.4.2 Linux 启动参数的含义 ................172 4.4.3 Linux 启动参数文件的制作 ........173 第5 章 Linux 应用程序编写............175 5.1 HelloWorld 程序实验...........................175 5.2 Linux 定时器实验 ................................178 5.3 多进程实验...........................................180 5.4 多线程实验...........................................183 5.5 文件和目录操作实验...........................187 5.6 UDP 实验..............................................189 5.7 TCP 实验..............................................194 5.8 Webserver 实验 .....................................200 第6 章 Linux 高级实验....................205 6.1 Linux 内核编译实验 ............................205 6.2 Linux 根文件系统实验 ........................206 6.3 CAT1025 读/写实验.............................207 6.4 ZLG7290 键盘读取 ..............................213 6.5 USB-E 2 PROM 编程器实验 ..................218 6.6 SD/MMC卡实验 ..................................230 6.7 触摸屏实验...........................................235 6.8 PCMCIA 接口CF卡实验....................239 6.9 IDE 硬盘实验.......................................245 6.10 USB 主机驱动编译与加载实验..........250 6.11 U 盘驱动程序编译与使用实验...........253 6.12 USB 键盘与鼠标应程序实验..............256 6.13 FrameBuffer模块应用实验.................261 6.14 video4linux 模块应用实验...................268 6.15 USB 摄像头实验..................................274 6.16 无线网络实验.......................................280 6.17 CAN接收实验.....................................284 6.18 CAN发送实验.....................................292 6.19 CAN通信参数设置实验.....................294 6.20 busybox 移植实验 ................................298 6.21 boa 移植实验........................................299 6.22 Madplay 移植实验.............................301 第7 章 嵌入式Linux 驱动开发....305 7.1 Linux 驱动编写概述 .........................305 7.1.1 设备号........................................305 7.1.2 文件层接口................................305 7.1.3 驱动层接口................................307 7.1.4 中断............................................308 7.1.5 I/O 操作.....................................310 7.1.6 设备注册和注销........................ 311 7.1.7 模块化........................................312 7.1.8 初始化........................................313 7.1.9 编译............................................313 7.2 Devfs 驱动程序编写.........................314 7.2.1 设备的注册和注销....................315 7.2.2 加载驱动....................................316 7.3 LED 驱动程序...................................316 7.3.1 LED 驱动程序编写...................316 7.3.2 LED 驱动测试程序...................321 7.4 按键驱动程序....................................323 7.4.1 按键驱动程序编写....................323 7.4.2 按键驱动测试程序....................328 第8 章 嵌入式图形用户界面-Qt/Embedded .....331 8.1 Qt 介绍.........................................331 8.1.1 全面的Qt............................331 8.1.2 跨平台的Qt.........................331 8.1.3 深入了解Qt........................332 8.2 Qt/Embedded 介绍.......................332 8.3 Qtopia 介绍..................................333 8.3.1 简介......................................333 8.3.2 Qtopia 平台的核心特征 ......334 8.3.3 Qtopia PDA 版本简介.........335 8.4 Qt/Embedded 和Qtopia 开发模式 ............................336 8.5 建立宿主机Qt/Embedded 与Qtopia 开发环境 .......337 8.5.1 安装tmake ................337 8.5.2 安装Qt/X11 ..............337 8.5.3 解压Qtopia...............340 8.5.4 安装Qt/Embedded....340 8.5.5 编译安装Qtopia .......341 8.5.6 运行Qtopia...............341 8.5.7 在PC上运行Hello程序..................................344 8.6 建立交叉编译的Qt/Embedded 开发环境 ................345 8.6.1 安装开发环境...............................345 8.6.2 在ARM中运行 Hello程序.........346 第9 章 Qt/Embedded 编程实战.......348 9.1 Hello程序...............348 9.2 按钮.........................350 9.3 Qt 信号和插槽........352 9.4 对话框.....................354 9.5 Qt 布局....................357 9.6 进度条.....................360 9.7 文本输入.................364 9.8 菜单.........................367 9.9 Qt 绘图....................371 9.10 国际化.....................374 9.11 往Qtopia 中安装应用程序 .........381 9.12 Designer 设计器 ...............................................382 第10章 MiniGUI 图形界面实验 ...................386 10.1 MiniGUI 移植实验...........386 10.2 对话框应用编程实验.......398 10.3 简易编辑器实验...............402 10.4 位图显示实验...................405 10.5 GDI 绘图实验...................407 附录 A USB 分析仪USB Analyst-I 简介....409 附录 B LA1032逻辑分析仪简介................ 411
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值