版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、典型的典型的I2C总线系统结构总线系统结构 AT24C08的引脚结构的引脚结构 AT24C01AT24C01:128128字节(字节(1281288 8位);位);AT24C02AT24C02:256256字节(字节(2562568 8位);位);AT24C04AT24C04:512512字节(字节(5125128 8位)位)AT24C08AT24C08:1K1K字节字节 (1K1K8 8位);位);AT24C16AT24C16:2K2K字节字节 (2K2K8 8位);位);AT24C32 4KAT24C32 4K字节字节 (4KX84KX8位)位)起始信号时序起始信号时序 起始信号用于开始起
2、始信号用于开始I2CI2C总线通信。其中,起始信号是在时钟线总线通信。其中,起始信号是在时钟线SCLSCL为高电平为高电平 期间,数据期间,数据SDASDA上高电平向低电平变化的下降沿信号。起始信号出现以后,上高电平向低电平变化的下降沿信号。起始信号出现以后, 才可以进行后续的才可以进行后续的I2CI2C总线寻址或数据传输等总线寻址或数据传输等 终止信号时序终止信号时序 应答信号时序应答信号时序 I2C总线的传送格式为主从式,对系统中的某一器件来说有总线的传送格式为主从式,对系统中的某一器件来说有四种工作方式:主发送方式、从发送方式、主接收方式、从接四种工作方式:主发送方式、从发送方式、主接收
3、方式、从接收方式。收方式。 只讲只讲主发送从接收(单片机发送主发送从接收(单片机发送 24C08接收)接收) 主器件产生开始信号以后,发送的第一个字节为控制字节。前主器件产生开始信号以后,发送的第一个字节为控制字节。前七位为从器件的地址片选信号。最低位为数据传送方向位(高七位为从器件的地址片选信号。最低位为数据传送方向位(高电平表示读从器件,低电平表示写从器件),然后发送一个选电平表示读从器件,低电平表示写从器件),然后发送一个选择从器件片内地址的字节,来决定开始读写数据的起始地址。择从器件片内地址的字节,来决定开始读写数据的起始地址。接着再发送数据字节,可以是单字节数据,也可以是一组数据,接
4、着再发送数据字节,可以是单字节数据,也可以是一组数据,由主器件来决定。从器件每接收到一个字节以后,都要返回一由主器件来决定。从器件每接收到一个字节以后,都要返回一个应答信号(个应答信号(ASK=0)。主器件在应答时钟周期高电平期间释)。主器件在应答时钟周期高电平期间释放放SDA线,转由从器件控制,从器件在这个时钟周期的高电平线,转由从器件控制,从器件在这个时钟周期的高电平期间必须拉低期间必须拉低SDA线,并使之为稳定的低电平,作为有效的应线,并使之为稳定的低电平,作为有效的应答信号。答信号。控制字节控制字节 在起始条件之后,必须是器件的控制字节,其中,高四位在起始条件之后,必须是器件的控制字节
5、,其中,高四位为器件类型识别符(不同的芯片类型有不同的定义,为器件类型识别符(不同的芯片类型有不同的定义,E2PROM为为1010),接着三位为片选,最低位为读写控制位,为),接着三位为片选,最低位为读写控制位,为“1”时时为读操作,为为读操作,为“0”时为写操作。如下图所示。时为写操作。如下图所示。 写操作写操作 写操作分为字节写和页面写两种操作,对于页面写,根据写操作分为字节写和页面写两种操作,对于页面写,根据芯片的一次装载的字节不同有所不同。页面写的地址、应答和芯片的一次装载的字节不同有所不同。页面写的地址、应答和数据传送的时序如下图所示。数据传送的时序如下图所示。 读操作读操作 读操作
6、有三种基本操作:当前地址读、随机读和顺序读。读操作有三种基本操作:当前地址读、随机读和顺序读。下图给出的是顺序读的时序图。应当注意的是,为了结束读操下图给出的是顺序读的时序图。应当注意的是,为了结束读操作,主机必须在第作,主机必须在第9个周期间发出停止条件或者在第个周期间发出停止条件或者在第9个时钟周个时钟周期内保持期内保持SDA为高电平,然后发出停止条件为高电平,然后发出停止条件。 起始信号时序起始信号时序 起始信号用于开始起始信号用于开始I2CI2C总线通信。其中,起始信号是在时钟线总线通信。其中,起始信号是在时钟线SCLSCL为高电平为高电平 期间,数据期间,数据SDASDA上高电平向低
7、电平变化的下降沿信号。起始信号出现以后,上高电平向低电平变化的下降沿信号。起始信号出现以后, 才可以进行后续的才可以进行后续的I2CI2C总线寻址或数据传输等总线寻址或数据传输等void start()/ void start()/ 开始位开始位 SDA = 1; /SDA SDA = 1; /SDA初始化为高电平初始化为高电平“1”1” SCL = 1; / SCL = 1; /开始数据传送时,要求开始数据传送时,要求SCLSCL为高电平为高电平“1”1”_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机
8、器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期SDA = 0; /SDASDA = 0; /SDA的下降沿被认为是开始信号的下降沿被认为是开始信号_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一
9、个机器周期 _nop_nop_(); /_(); /等待一个等待一个机器周期机器周期SCL = 0; /SCLSCL = 0; /SCL为低电平时,为低电平时,SDASDA上数据才允许变上数据才允许变化化( (即允许以后的数据传递)即允许以后的数据传递) 终止信号时序终止信号时序 void stop()/ void stop()/ 停止位停止位 SDA = 0; /SDASDA = 0; /SDA初始化为低电平初始化为低电平“0”0”SCL = 1; /SCL = 1; /结束数据传送时,要求结束数据传送时,要求SCLSCL为高电平为高电平“1”1”_nop_nop_(); /_(); /等待
10、一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期SDA = 1; /SDASDA = 1; /SDA的上升沿被认为是结束信号的上升沿被认为是结束信号_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /
11、等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期SDA=0;SDA=0;SCL=0;SCL=0; 应答信号时序应答信号时序 bit Ask() /bit Ask() /检测应答检测应答 bit ack_bit bit ack_bit; /; /储存应答位储存应答位 SDA = 1;SDA = 1; / / 发送设备(主机)发送设备(主机)/应在时钟脉冲的高电平期间应在时钟脉冲的高电平期间(SCL=1)(SCL=1)释放释放SDASDA线,线,/以让以让SDASDA线转
12、由接收设备线转由接收设备(AT24Cxx)(AT24Cxx)控制控制_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期 _nop_nop_(); /_(); /等待一个机器周期等待一个机器周期 SCL = 1; /SCL = 1; /根据上述规定,根据上述规定,SCLSCL应为高电平应为高电平_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期 _nop_nop_(); /_(); /等待一个机器周期等待一个机器周期 _nop_nop_(); /_(); /等待一个机器周期等待一个机器周期 _nop_nop_(); /_(); /等待一个机器周期等待一
13、个机器周期_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期 ack_bitack_bit = SDA; / = SDA; /接受设备(接受设备(AT24Cxx)AT24Cxx)向向SDASDA送低电平,送低电平,/表示已经接收到一个字节表示已经接收到一个字节/若送高电平,表示没有接收到,传送异常若送高电平,表示没有接收到,传送异常 结束发送结束发送SCL = 0; /SCLSCL = 0; /SCL为低电平时,为低电平时, /SDA/SDA上数据才允许变化上数据才允许变化( (即允许以后的数据传递)即允许以后的数据传递)return ack_bitreturn ack_
14、bit; / ; / 返回返回AT24CxxAT24Cxx应答位应答位 写操作写操作 写操作分为字节写和页面写两种操作,写操作分为字节写和页面写两种操作, 在字节写模式下在字节写模式下 主器件发送起始命令和从器件地址信息主器件发送起始命令和从器件地址信息 R/WR/W位置零位置零 给从器件给从器件 在从器件产生在从器件产生应答信号后应答信号后 主器件发送主器件发送1616的字节地址的字节地址 主器件在收到从器件的另一个应答信号后主器件在收到从器件的另一个应答信号后 再发送数据到被寻址的存再发送数据到被寻址的存储单元储单元 再次应答再次应答 并在主器件产生停止信号后并在主器件产生停止信号后开始内
15、部数据的擦写开始内部数据的擦写 在内部擦写过程中在内部擦写过程中 从器件不再应答主器件的任何请求从器件不再应答主器件的任何请求 void WriteCurrent(unsignedvoid WriteCurrent(unsigned char y) char y) start start();();unsigned char i;unsigned char i;for(ifor(i = 0; i 8; i+) = 0; i 8; i+)/ / 循环移入循环移入8 8个位个位 SDA = (bit)(y&0 x80); /SDA = (bit)(y&0 x80); /通过按位通过
16、按位“与与”运算将最高位数据送到运算将最高位数据送到S/S/因为传送时高位在前,低位在后因为传送时高位在前,低位在后_nop_nop_(); /_(); /等待一个机器周期等待一个机器周期 SCL = 1; /SCL = 1; /在在SCLSCL的上升沿将数据写入的上升沿将数据写入AT24Cxx AT24Cxx _nop_nop_(); /_(); /等待一个机器周期等待一个机器周期 _nop_nop_(); /_(); /等待一个机器周期等待一个机器周期 SCL = 0; /SCL = 0; /将将SCLSCL重新置为低电平,以在重新置为低电平,以在SCSC线形成传送数据所需的个脉冲线形成传
17、送数据所需的个脉冲y = 1; /y = 1; /将将y y中的各二进位向左移一位中的各二进位向左移一位 读操作有三种基本操作:当前地址读、随机读和顺序读。下图给出的是顺序读的时序图。应当注意的是,读操作有三种基本操作:当前地址读、随机读和顺序读。下图给出的是顺序读的时序图。应当注意的是,为了结束读操作,主机必须在第为了结束读操作,主机必须在第9个周期间发出停止条件或者在第个周期间发出停止条件或者在第9个时钟周期内保持个时钟周期内保持SDA为高电平,然后为高电平,然后发出停止条件发出停止条件。 unsigned char ReadDataunsigned char ReadData() / (
18、) / 从从AT24CxxAT24Cxx移入数据到移入数据到MCUMCU unsigned char i; unsigned char i;unsigned char x; /unsigned char x; /储存从储存从AT24CxxAT24Cxx中读出的数据中读出的数据for(ifor(i = 0; i 8; i+) = 0; i 8; i+) SCL = 1; /SCL SCL = 1; /SCL置为高电平置为高电平x=1; /x=1; /将将x x中的各二进位向左移一位中的各二进位向左移一位x|=(unsigned char)SDAx|=(unsigned char)SDA; /; /将将SDASDA上的数据通过按位上的数据通过按位“或或“运算存入运算存入x x中中SCL = 0; /SCL = 0; /在在SCLSCL的下降沿读出数据的下降沿读出数据 return(x return(x); /); /将读取的数据返回将读取的数据返回 unsigned char ReadCurrentunsigned char ReadCurrent
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年版:未婚同居分手协议书
- 2024年版项目部与施工班组安全生产责任协议版B版
- 2024年示范性夫妻离异协议范本版B版
- 二零二五年企业办公设备采购与优化升级合同
- 2025版空场地租赁合同范本-环境友好型租赁83篇
- 2023年数控超精密磨床项目融资计划书
- 课题申报书:大学生积极心理品质的数智化识别与精准化培育研究
- 2025版带司机租车车辆租赁、代驾及保险服务合同样本3篇
- 二零二五年度27项教育培训项目投资合同范本3篇
- 2024年货柜购销合同范本
- T∕ZSQX 008-2020 建设工程全过程质量行为导则
- ISO-IEC17025-2017实验室管理体系全套程序文件
- 业务员手册内容
- pH值的测定方法
- 深圳智能水表项目商业计划书_参考模板
- 输出轴的机械加工工艺规程及夹具设计
- 元旦文艺汇演校长致辞
- 国家开放大学电大本科《管理案例分析》2023-2024期末试题及答案试卷编号:1304
- 离合器接合叉机械工艺说明书
- PWM脉宽直流调速系统设计及 matlab仿真验证
- 蜂窝煤成型机设计方案.doc
评论
0/150
提交评论