




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
与I2C总线器件接口电路设计利用模拟I2C总线协议对I2C总线接口器件24C256进行读写操作。利用按键输入读写命令和相应的地址、数据,对芯片进行读写操作,读写的数据用数码管显示。一、I2C总线接口电路设计分析1.I2C总线协议I2C总线的两根通信线,一根是串行数据线,另一根是串行时钟线。多个符合I2C总线标准的器件都可以通过同一条I2C总线进行通信,而不需要额外的地址译码器。每个连接到总线上的器件都有一个唯一的地址作为识别的标志,都可以发送或接收数据。I2C总线通信速率受主机控制,标准模式下可达100。一般具有I2C总线的器件其、引脚都为集电极(或漏极)开路结构。因此实际使用时,和信号线必须加3~10K的上拉电阻。总线空闲时均保持高平。 I2C总线接法如图 1所示。主机从机1 从机2 从机n图1I2C总线连接示意图I2C的主机和从机,发送器和接收器产生I2C总线时钟信号和起始、停止控制信号的器件,称为主机,被主机寻址的器件称为从机。任何将数据传送到 I2C总线的器件称为发送器,任何从 I2C总线接收数据的器件称为接收器。主机和从机都可作为发送数据器件和接收数据器件。I2C总线上数据的有效性:时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号;在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变;数据线的状态只能在低电平期间才能改变。即进行串行传送数据时,在高电平期间传送位数据,低电平期间准备数据。(3)从机地址I2C总线不需要额外的片选信号或地址译码。多个I2C总线接口器件可连接到一条I2C总线上,它们之间通过地址来区分。主机是主控制器件,只有一个主机的不需要地址。其它器件均为从机,均有器件地址,但必须保证同一条I2C总线上的器件地址不能重复。一般从机地址由7位地址位和1位读写位组成,地址位为高7位,读写位为最低位。读写位为0时,表示主机将向从机写入数据;读写位为1时,表示主机将要从从机读取数据。I2C总线的通信时序I2C总线的通信时序如图 2所示。应答应答1278912S总线P停止起始暂停条件条件控制图2I2C总线的通信时序①首先主机发送一个起始信号。当时钟线处于高电平期间,数据线电平从高到低的跳变形成I2C总线的起始信号,启动I2C总线。②主机逐位发送7位(高位在前,低位在后)从机地址和1位读写控制信号,共8位。需8个时钟。③与传送地址一致的从机发应答信号()。在第9个时钟周期时将线拉低表示其已收到一个8位数据。若在第9个时钟周期,为高电平时为非应答。④开始传送数据,传送数据数量不限。每个字节(8位)后紧跟1个接收器件发出的应答位。若是主机读取从机数据时,从机发送数据,主机发应答位;若是主机写数据到从机时,主机发送数据,从机发应答位。⑤数据传输结束时,主机发送1个停止信号,当时钟线为高电平时,数据线由低电平变为高电平时形成终止信号,停止I2C总线通信。(5)数据传输基本格式如表 1。表1I2C总线数据传输基本格式SA71D70D70P起7位0:写应8位应答8位应答位停始地址1:读答数据位数据0:应答止位位1:非应答位其中S、A71、、P总是由主机产生;写数据时,由从机产生,D70由主机产生;读数据时,由主机产生,D70由从机产生。2.I2C总线器件24C25624C256是一个256K位的串行型E2,可存储32768个字节。该器件通过I2C总线接口进行操作,其引脚如图3所示,各引脚功能见表2。图324C256引脚图表224C256引脚功能说明管脚名称 功能说明24C256串行时钟输入管脚。用于产生器件所有数据发送或接收的时钟,是输入管脚。双向串行数据/地址管脚。用于器件所有数据的发送或接收, 是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或。写保护。当 脚连接到 ,所有内存变成写保护只能读;当 引脚连接到 或悬空,允许器件进行读/写操作。器件地址输入。这些管脚为硬连线或者不连接, 对于单总线系统最多可寻址 4个24C256A0A1器件。当这些引脚没有连接时其默认值为 0。电源地1.8~6V空脚作为带有I2C总线接口的器件,每个24C256都有一个7位的从机地址,其高5位固定为“10100”,接下来的2位由24C256的引脚A1A0硬连线输入决定(A1、A0直接接电源或),同一I2C总线上最多可以连接4个24C256器件。24C256除了有作为从机的地址,其内部还有作为存储单元的编码子地址,其子地址为双字节(16位),从00007。本设计中只有1个24C256,可将24C256的引脚A1、A0直接接地,其硬件电路如图4所示。则该24C256作为从机的7位地址为“”。图4单个24C256连接电路图对24C256的读写过程(1)向24C256某一存储单元写入1个字节数据,过程如下:①主机(这里为控制器)发送一个起始信号,启动发送过程;②主机发送7位从机地址(这里为)和1位写控制位(为0);③从机(这里为24C256)发应答位。在主机发送起始信号和从机地址字节后,24C256监视总线并当其地址与发送的从地址相符时,响应一个应答信号。在第9个时钟,将线拉为低电平;④主机接收到应答位后,发从机子地址高8位(为24C256某一存储单元地址)。⑤从机接收完高8位子地址后,发应答位;⑥主机接收到应答位后,发从机子地址低8位;⑦从机接收完低8位子地址后,发应答位;⑧主机接收到应答位后,发送待8位写入数据;⑨从机接收完8数据后,发应答位,并开始内部数据的擦写;⑩主机接收到应答位后,发停止位,结束传送,总线挂起。上数据传输格式见表3,数据传送时序如图5所示。表3向24C256写1个数据时总线上数据传输格式S A71 0 0 158 0 70 0 D70 0/1 P起7位写应高8位应低8位应写入应停始器件答指针答指针答8位答止位地址位地址位地址位数据位位主机发送从主机发送从主机发送从主机发送从机主机机机发送机发发发发送送送送图5向24C256写一个数据时序(2)从24C256某一存储单元读出1个字节数据,过程如下:①主机发送一个起始信号,启动发送过程,接着发送7位从机地址()和1位写控制位(0);;②从机检测到起始信号及本身从地址相符时的从机地址后,发应答位。③主机接收到应答位后,发从机子地址高8位(为24C256某一存储单元地址)。④从机接收完高8位子地址后,发应答位;⑤主机接收到应答位后,发从机子地址低8位;⑥从机接收完低8位子地址后,发应答位;⑦主机接收到应答位后,再发送一个起始信号(称为重复起始信号),接着再发送7位从机地址()和1位读控制位(为1);从机检测到重复起始信号及从机地址后,发应答位,并将子地址对应的存储单元数据发送到总线上。⑨主机接收到应答位后,接着准备从总线接收数据,从总线接收完8数据后。发非应答位和发停止位,结束传送,总线挂起。上数据传输格式见表4所示,数据传送时序如图6所示。表4从24C256上读1个数据时总线上数据传输格式A7157A7D7S~00~0~0~10~0/1PA180A1D0起7位应高8位应低8位应重复7位应读出非停始器件答指针答指针答起始器件读答8位应止写位地址位地址位地址位位地址位数据答位从主从主从从从主主主机机机机机机主机发送机机机机发送发发发发发发发发发送送送送送送送送送图6从24C256读一个数据时序内部电路模拟I2C总线对24C256的读写控制电路基本结构框图如图7所示。命令寄存器位24C2字节传输总线56传送寄存器传输控制端口读写控制电路电路控制接收寄存器电路接口标志寄存器移位寄存器图7模拟I2C总线对24C256的读写控制框图I2C总线端口I2C总线端口为三态输出,当使能端有效时,总线输出为低电平;当使能端无效时三态门输出为高阻,但由于I2C总线上有上拉电阻,总线保持在高电平或由总线上从机输出数据决定。总线数据始终能被读入。其结构示意图如图 8所示。图8I2C总线端口示意图(2)位传输控制模块位传输模块以“位”为单位产生各种I2C协议命令(开始、停止和重复开始)以及进行位数据读写。为了读写到稳定的“位”数据,读写1位数据分为4到5个阶段完成。1位数据传输时序要求如图9所示。这样内部读写时钟频率一般采用5倍于时钟总线频率。A B C开始重复开始停止写读图9I2C 协议命令和位数据传输的执行时序位传输控制电路根据输入的控制命令,将来自字控制模块的一位待写入的数据送到总线上,或从总线上读入一位数据给字控制模块。当完成1位数据传输时产生读写完成标志,并根据数据传输情况产生忙标志和总线仲裁丢失标志。字传输控制模块字节传输模块以字节为单位控制 I2C总线的数据传输。该模块根据输入控制命令,将存放在发送寄存器中的数据加载到一个移位寄存器, 然后逐位发送到位传输模块, 再控制位传输模块将数据发送到 I2C总线上。或控制位传输模块从总线上逐位接收位数据,暂存到移位寄存器,再转换成字节数据送给数据输出。同时给出相关传输标志。24C256读写控制根据输入控制信号和来自位传输模块的反馈标志,将控制信号加到命令寄存器,给字节传输模块提供控制信号;将输入数据或指定单元地址加载到数据传送寄存器;将从字节模块读取的数据回送到数据接收寄存器。二、硬件系统电路设计(略)三、I2C总线接口电路设计I2C总线端口名称:功能:I2C总线双向端口电路描述端口说明方向 端口名 宽度 说明1 数据线三态使能控制端,来自位传输控制模块输入1 时钟线三态使能控制端,来自位传输控制模块1回送的数据线信号,给位传输控制模块输出1回送的时钟线信号,给位传输控制模块1I2C的数据线,外接I2C器件双向I2C的时钟线,外接I2C器件1描述;1164;(;;);;<;<;<='0' '0' 'Z';<='0' '0' 'Z';;位传输控制模块(1)名称:(2)功能:实现位数据或协议命令的传输(3)端口说明方向 端口名 宽度 说明复位信号,低电平复位系统时钟系统使能信号,高电平有效输入 4 控制命令,由字节传输模块给出待写入总线的1位数据总线时钟输入总线数据输入总线时钟输出使能总线数据输出使能1 完成1位读写的标志, 1为完成,0为未完成输出总线忙标志,1为忙,0为闲总线仲裁丢失标志,1为出错,0为正确1 从总线读出的 1位数据描述;1164;;;(48)分频系数(:::
(3
;;0);:;;;);;(,,,,,,,);:;48;产生500的分频系数500k:500时钟使能信号同步和中间信号的边沿信号:总线使能信号写数据时,检查总线信号时钟延迟等待的信号启动、停止标志位忙标志、丢失标志信号停止命令信号()同步和的输入信号'0'<='1';<='1';<='1';<='1';() 暂存、的值<=;<=;<=;<=;;;()检测时钟上升沿()产生数据输出信号,在上升沿时锁存上的数据值()'1'<;;;;从节点未准备好时,下拉延迟周期;当给出的使能为
1时,检测总线为
0时,则节点未准备就绪,产生等待信号。()()<;;;();()将24M系统时钟分频产生 500时钟使能控制信号01时钟分频计数器'0'=0;500k<='1';()<1 为分频系数'1'1;500k<='0';;'0' 从节点准备好,给出时钟使能0;500k<='1';从节点未准备好,延迟等待;500k<='0';;;;;生成启动标志和停止标志在高电平时,检测的下降沿(起始信号) ,产生启动标志在高电平时,检测的上升沿(停止信号) ,产生停止标志()'0'<='0'启动标志复位<='0'停止标志复位()<=( ) 生成启动标志< ( ) ;生成停止标志;;生成总线忙标志检测到启动信号发生,但无停止信号发生时表示总线处于忙状态()'0'<='0';()<=( ) ();;;<忙标志输出产生仲裁丢失标志,当没有停止请求时,检测到停止信号,产生仲裁丢失标志当驱动总线为高时,但检测一直为低,产生仲裁丢失标志()'0'<='0'停止命令信号<='0';<='0';()<="0010" 有停止命令<='1';<='0';;<=;<=( ( ))( )丢失标志;;<;位传输状态机<;<;()'0'<初始准备状态<='0';1位信号发送或接收完成标志<='1'时钟输出使能<='1'数据输出使能<='0'不检查输出()'1' 数据传输信号丢失<;<='0';<='1';<='1';<='0';<='0';'1'准备状态<保持在同一状态<;保持在同一状态<='0';状态命令字"0001"=><发送起始信号状态"0010"=>< 发送停止信号状态"0100"=><写入1位数据"1000"=><; 读出1位数据><;;启动I2C状态,分 5个时钟段产生起始信号><;<;保持<='1';处于高<='0';不检查输出><;<='1';<='1';<='0';><;<='1';<='0';<='0';><;<='1';<='0';<='0';开始状态5<回到等待状态<='1'起始信号传送完成,给出标志<='0';<='0';<='0';停止I2C状态,分 4个时钟段产生停止信号><;<='0';<='0';<='0';><;<='1';<='0';<='0';><;<='1';<='0';<='0';><;<='1'停止信号传送完成,给出标志<='1';<='1';<='0';读状态,分 4个时钟段读 1位信号><=;<='0'; 处于低<='1';由从器件决定<='0';><=;<='1';<='1';<='0';><=;<='1';<='1';<='0';><;<='1'读完1位数据,给出标志<='0';<='1';<='0';写状态,分 4个时钟段写 1位信号><=;<='0'; 处于低<;输入数据<='0';><=;<='1';<;<='1'写状态3<=;<='1';<=;<='1';写状态4<;<='1'写完1位信号,给出标志<='0';<=;<='0';>;;;;;;;字传输控制模块(1)名称:(2)功能:实现字节数据的传输控制。(3)端口说明方向 端口名 宽度 说明复位信号,外接按钮开关,低电平复位系统时钟启动命令停止命令输入读命令写命令应答输入信号8 待发送的 8位输入数据或地址,由发送寄存器提供从位模块接收的1位数据总线仲裁丢失标志来自位模块的1位传送完成标志输出命令向位模块发送的数据输出 8 接收到的 8位数据,送给接收寄存器,应答完成标志从总线上读出的应答信号描述;1164;;;(::
;;;:(70);;: ;从位控制模块读入的一位数据1位传送完成标志(30);待写出的位数据;(70));;(,);:;完成1字节数据传输标志使能信号加载数据使能、移位数据使能(70)数据移位寄存器(20)移位次数计数器完成1个字节数据移位完成标志<;<=( ) ()操作使能()生成移位寄存器内容'0'<=(>'0');()'1' 写数据时<待发送数据加载到移位寄存器'1'读数据时<(6 0)& 移位读入数据;;;()进行读写位计数'0'<="000";()'1' 加载新数据时<="111"设置计数初值为 8次'1' 移位1次<1减1计数;;;<='1'
"000"
'0'读写完
1个字节(计数
8次),给出标志字节传送状态控制()'0'<="0000"2C总线处于空闲状态命令<='0';待写出的位数据<='0'禁止加载数据<='0'禁止移位<初始准备状态<='0'应答完成标志置 0<='0'应答输出置 0()'1' 数据传输信号丢失<="0000";<='0';<='0';<='0';<;<='0';<='0';<(7); 取移位寄存器的最高位作为待写出位<='0'禁止移位<='0'禁止加载<='0'; 应答完成标志置 0>空闲状态'1'发生读/写/停止命令且无应答完成标志<='1';重新加载写入数据初值,复位传送计数器'1'<起始状态<="0001"启动位模块发送起始位'1'<读状态<="1000"; 启动位模块读取 1位数据'1'<写状态<="0100"; 启动位模块写入 1位数据停止状态<="0010"; 启动位模块发送停止位<='1'产生传送完成标志;;>'1' 起始位发送完成标志<='1'; 重新加载初值'1'<;<="1000";<;<="0100";;;>='1' 写完1位标志'1'写完8位标志<;读应答状态<="1000" 准备读应答位<保持写状态<="0100"准备继续写下
1位<='1';
移位,准备下
1位数据;;>='1' 读完1位标志<='1'; 移位,存储新读入的'1'读完8位标志
1位数据<;写应答状态<="0100" 准备写应答位<给出待发送的应答信号<保持读状态<="1000" 准备继续读下 1位;;>读应答状态='1' 应答位读完成标志<输出应答信号<='1'; 给出应答完成标志<;'1'<;<="0010"发停止位<;空闲状态<="0000"等待;;>写应答状态='1' 应答位写完成标志<='1'待写入的位信号为高<='1'; 给出应答完成标志'1'<;<="0010"发停止位<;空闲状态<="0000"等待;<;;>停止状态'1' 停止位发送完成标志<;<="0000"等待;;;;;;4.24C256 读写控制名称:24C256功能:通过I2C总线对端口说明方向 端口名输入输出
24C256指定单元进行读写。宽度 说明复位信号,外接按钮开关,低电平复位系统时钟接口使能信号时钟使能信号读写控制应答值完成一个字节传输标志从机地址,送给传输寄存器从机子地址,送给传输寄存器从从机读入的数据,送给接收寄存器输入数据,送给传输寄存器待写出值,来自传输寄存器输出数据,来自接收寄存器传输完成标志启动命令,来自命令寄存器停止命令,来自命令寄存器读命令,来自命令寄存器写命令,来自命令寄存器描述;1164;;;24C256(: 24系统时钟,: 复位,使能信号: ;:(6 0);(15 0);: (7 0);;:(70);:(70);;:(70););24C256;24C256(S0123456);;(30)命令寄存器(70)数据发送寄存器(70)数据接收寄存器<(0);<(1);<(2);<(3);<;<;()'0'<="0000"命令寄存器清零<="00000000"数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西工商职业学院《遥感原理与方法》2023-2024学年第二学期期末试卷
- 陕西旬阳中学2025届招生全国统一考试历史试题模拟试卷(一)含解析
- 陕西省周至县第五中学2024-2025学年高三下学期(开学)考试语文试题试卷含解析
- 陕西省咸阳市渭城区2025年四年级数学第二学期期末统考试题含解析
- 陕西省安康市重点中学2024-2025学年高三(下)第三次月考历史试题试卷含解析
- 教师工作法律风险防范
- 陕西省洛南县永丰中学2024-2025学年招生全国统一考试广东省数学试题模拟试卷(一)含解析
- 我最敬佩的创业者
- 陕西省西安电子科技大附中2025届高三数学试题第一周周末练习含解析
- 陕西科技大学镐京学院《职业生涯规划与就业指导》2023-2024学年第二学期期末试卷
- DBJ61_T 179-2021 房屋建筑与市政基础设施工程专业人员配备标准
- 毕业设计三交河煤矿2煤层开采初步设计
- 美能达bizhub presc8000快速操作指南
- 食品流通许可证食品经营操作流程图
- 风电场工作安全培训
- 压缩机课程设计(共28页)
- 某煤矿万吨矿井初步设计设计
- 四方公司机组扭振监测、控制和保护新技术---1105 17
- 不随行父母同意函(父母双方不随行)
- 案例——温泉度假村ppt课件
- SLT804-2020 淤地坝技术规范_(高清-有效)
评论
0/150
提交评论