基于ARM的I2C接口设计.doc
《基于ARM的I2C接口设计.doc》由会员分享,可在线阅读,更多相关《基于ARM的I2C接口设计.doc(17页珍藏版)》请在沃文网上搜索。
1、摘要: 近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。 I2C是一种较为常用的串行接口标准,具有协议完善、支持芯片较多和占用I/O线少等优点,主要在服务器管理中使用,可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,便于管理。目前比较流行的串行扩展总线中,I2C总线以其严格的规范和众多支持I2C接口的外围器件而获得了广泛的应用。 因此,我们对I2C接口进行了必要的探究,通过UART(异步串行接口)发送字节数据,然后利用I2C串行接口对外部存储器24C01进行读写,最后通过显示器LCD1602显示,正
2、确验证了I2C的通讯功能。关键字: I2C串行接口 UART 外部存储器 显示器LCD1602正文:1. 设计原理与总体方案:本设计包含三个部分:UART发送数据部分、I2C读写存储器部分、LCD1602显示部分,下面分别介绍各部分原理。1.1. 异步串行接口UART是异步串行接口,LPC2000系列ARM7包含2个UART:UART0和UART1,UART0只有TXD(串行输出)和RXD(串行输入)两个引脚,只需设置相应的寄存器即可实现基本的数据收发功能。1.2I2C总线基本原理 I2C总线系统是由SCL(串行时钟)和SDA(串行数据)两根总线构成的,该总线有严格的时序要求。总线工作时, 由
3、串行时钟线SCL传送时钟脉冲, 由串行数据线SDA 传送数据。总线协议规定, 各主节点进行通信时都要有起始、结束、发送数据和应答信号,这些信号都是通信过程中的基本单元。总线传送是以帧为单位进行的, 每当发送完1 个字节后, 接收节点就相应给一应答信号。1.2.1. I2C总线数据传输中的接受/发送器I2C总线系统中发送器与接收器来表明数据传输的发送方与接收方。发送器:总线上发送数据的器件。接收器:总线上接收数据的器件。1.2.2. I2C总线上数据的有效性I2C总线数据传输时,在时钟线高电平期间数据线上必须保持有稳定的逻辑电平的状态,高电平为数据1,低电平为数据0。只有在时钟线为低电平时,才允
4、许数据线上的电平状态变化,如图1所示。图1 I2C总线数据位传送1.2.3. I2C总线数据传送的起始、停止与应答 I2C总线可以构成多主数据传送系统,但只有带CPU的器件可以成为主器件。 主器件发送时钟、启动位、数据工作方式,从器件则接收时钟及数据工作方式,接收或发送则根据数据的传送方向决定。I2C总线上数据传送时的启动、结束和有效状态都由SDA、SCL的电平状态决定,在I2C总线规程中启动和停止条件规定如下:启动条件:在SCL为高电平时,SDA出现一个下降沿则启动I2C总线。 停止条件:在SCL为高电平时,SDA出现一个上升沿则停止使用I2C总线。 启动条件后总线为“忙”,在结束信号过后的
5、一定时间总线被认为是“空闲”的。在启动和停止条件之间可转送的数据不受限制,但每个字节必须为8位。首先传送最高位,采用串行传送方式,但在每个字节之后必须跟一个响应位。主器件收发每个字节后产生一个时钟应答脉冲,在这期间,发送器必须保证 SDA为高,由接收器将SDA拉低,称为应答信号(ACK)。主器件为接收器时,在接收了最后一个字节之后不发应答信号,也称为非应答信号(NOT ACK)。 当从器件不能再接收另外的字节时也会出现在种情况。I2C总线的数据传送如图2所示。 图2 I2C总线上的信号 1.2.4. I2C总线数据传送I2C总线上连接的每个器件都有自己唯一确定的地址,启动条件后主机发送的第一个
6、字节就是被读写的从器件地址,其中第8位为方向位,“0”(W)表示主器件发送,“1”(R)表示主器件接收。总线上每个器件在启动条件后都把自己的地址与前7位相比较,如相同则器件被选中, 产生应答,并根据读写位决定在数据传送中是接收还是发送。如图所示为主器件发送和接收数据的过程,无论是主发、主收还是从发、从收都是由主器件控制。图3主器件发送和接收数据的过程在主发送方式下,由主器件先发出启动信号(S),接着发从器件的7 位地址(SLA)和主器件发送的方向位“0”(W),即这个字节为SLA+W。被寻址的从器件在收到这个字节后,返回一个应答信号(A),在确定主从应答正常后,主器件向从器件发送字节数据,从器
7、件每收到一个字节数据后都要返回一个应答信号,直到全部数据都发送完为止。在主接收方式下,主器件先发出启动信号(S),接着发从器件的7位地址(SLA)和表明主器件接收的方向位“1”(R),即这个字节为SLA+R。在发送完这个字节后,SCL继续输出时钟,通过SDA接收从器件发来的串行数据。主器件每接收到一个字节后都要发送一个应答信号(A),当全部数据都发送或接收完毕后,主器件应发出停止信号(P)。1.3LCD1602液晶显示驱动原理1.3.1. LCD1602的引脚功能LCD1602液晶显示器的引脚如图4所示,其引脚功能如下:(1)RS:数据和指令选择控制端,RS=0命令状态;RS=1数据(2)R/
8、W:读写控制线,R/W=0写操作;R/W=1读操作(3)A:背光控制正电源 (4) K:背光控制地(5)E:数据读写操作控制位,E线向LCD模块发送一个脉冲,LCD模块与单片机间将进行一次数据交换(6)DB0DB7:数据线,可以用8位连接,也可以只用高4位连接,节约单片机资源。(7)VDD:电源端 VEE:亮度控制端(1-5V) VSS:接地端VSS VDD VO RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A KLCD 模 块1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16图4 LCD1602液晶显示器引脚图1.3.2.LCD
9、1602控制命令表1 LCD控制命令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6功能设置00001DLNF*7置字符发生器存储器地址0001字符发生存储器地址8置数据储存器地址001显示数据存储器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数据内容指令3:光标和显示模式设置。I/D:光标移动方向,高电平右移,低电平左移。S:屏幕上所有文字是否左移或者右移,高电平表示有效,低电平则无
10、效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标。B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令 6:功能设置命令。DL:高电平时为4位总线,低电平时为8位总线。N:低电平时为单行显示,高电平时为双行显示。F:低电平时显示57的点阵字符,高电平时显示510的点阵字符。指令9:读忙信号和光标地址。BF:为忙标志,高电平表示忙,此时模块不能接受命令或者数据,如果为低电平表示不忙。2. 软件设计2.1流程图及部分初始化说明开始引脚功能初始化引脚方向确定LCD1602初始化UART初始化I2C初始化U
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM I2C 接口 设计
