当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

I2C总线接口电路设计及VLSI实现 Design of a Slave I2C Bus Interface Circuit and Its VLSI Implementation

资源类别:文库,文档格式:PDF,文档页数:24,文件大小:702.13KB,团购合买
点击下载完整版文档(PDF)

I2C总线接口电路设计及VLSI实现 摘要:本文提出了一个从模式的IC总线接口电路设计,该接口电路实现了对变参数ASIC 器芯片的配置。此设计使得可配置的ASIC芯片中参数配置所需要的芯片管脚大大减少。该 方案现以通过行为仿真、综合后门级时序仿真,并且在无锡上华0.6umCM0S工艺上实现。 本文还提出了一个主从模式混合的I℃总线接口控制电路设计,该接口电路即可以配置为主 模式又可以配置为从模式,和微处理器配合可以很好的实现I℃总线协议。该方案现以通过 行为仿真、综合后门级时序仿真 关键词:IC总线接口电路、从模式、主从模式混合、VHDL、VLSI 目录 1前言 2 2I2℃总线的基本原理 4 3从模式的I2C总线接口的电路结构设计 8 3.1系统结构 8 3.2主状态机 9 3.3子模块 10 4主从模式混合的I2℃总线接口的电路结构设计 12 4.1系统结构 -12 4.1.1设计目标 12 4.1.2系统框图 13 4.22℃总线控制器子模块 13 4.2.1总体设计思路 13 4.2.2状态机 -13 4.2.2.1SCL状态机 13 4.2.2.2主状态机 15 4.2.3各子模块 -16 4.3微处理器接口模块 18 5测试验证 -20 5.1从模式的I2℃总线接口电路的测试 20 5.2主从模式混合的I2℃总线接口电路的测试 21 6LSI实现 24 7结论 24 1

         !" #$%&'()#$  !"*#$+,- !"./0012% 3456789:;?@ABC:;DEFGHIJ KLMNO PQ RSI% TU V>  WXY)5#$9U Z)5#$9 [\]^ #>)5_`   ab%34567 89:;?@ABC:;L      pq jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgk ng stpq jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgk nLgLg {| jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgk nLgLk st}~ jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgo nLk  WX y z jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgo nLkLg € jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgo nLkLk uvw jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgo nLkLkLg  f uvw jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgo nLkLkLk Uuvw jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjg nLkLo ‚y z jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgM nLo \]^  z jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjgr  ƒ„…† jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkK Lg    ƒ„ jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkK Lk U V>   ƒ„ jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkg M cf  jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkn ‡ pˆ jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkn

一、前言 I℃总线是一种被广泛应用的芯片间的串行总线,该总线最早是由Philips公司提出并 倡导的。℃总线通过两条信号线实现了连接在总线上的器件之间的软件寻址和同步串行 数据传输,完全避免了器件间的传统的片选寻址方法,节省了大量的数据总线、地址总线、 控制总线所占用的芯片管脚和PCB板的面积。器件之间简单的℃总线互联方式,可以使用 户的硬件系统具有最简单而灵活的扩展方法、简单而有效的系统调试和故障排除方案。并 且在设计基于℃总线的用户系统时,由于功能模块图上的功能模块的互联可以直接对应实 际的℃总线器件的互联,因此可以很方便地把功能模块图转变成电原理图。如果再把常用 的软件模块建库保存,在开发用户系统的软件部分所花费的时间和资源也可以大大减少。 总之,基于℃总线设计用户系统,可以有效降低用户系统的硬件部分和软件部分的研制成 本和生产成本。图1-1为℃总线的一个应用实例。 LINE BURST 接口 MODE 控制器 SDA DTMF 发生器 ADPCM 微控制器 图1-1DECT无绳电话基座 I℃总线的发展简史: ·1992年I℃总线协议的1.0版推出。该版本保留了最高传输速率为100kbt/s的标准模 式和7位寻址方式,并增加了最高传输速率达到400kbit/s的快速模式,具有该种模式的 I℃总线接口的IC器件可以向下兼容,应用在0-100kbit/s的系统中。此外该版本还增加 了对10位地址寻址方式的支持,这样就可以有1024个额外的从地址可以供系统使用。同 时,该版本忽略了对从地址的软件可编程的支持以及低速模式,因为前者的实现过于复杂, 未被实际应用,而后者事实上是整个℃总线协议的一个子集,不需要另外加以描述。 ·1998年℃总线协议的2.0版推出。此时℃总线协议已经成为了事实上的国际标准, 被IC设计生产商广泛采用。该版本增加了高速模式,最高传输速率达到惊人的3.4Mbit/s。 同时,原来对新的器件的固定输出电平的限制被取消,取而代之的是可以输出与总线电源 2

  ‰Š‹ŒŽ !" ‘8’‰ •™š ›œD ž %  67Ÿ ¡¢£FI ¤¥ ¦¤§¨[©ª‘8 «¬­®¯°± ¤ ¬t "²§¨3³´µ0¶ «<·¨< WX+¸ !"./[ • ¹ º »¼% ¤¥½¾  ¿À3 )5' Á ¤stÃĒ½¾ÅÆÇ ÈÉ3³<½¾ÅÄÊ st˄[ÌÍÎÏ34%D EFlÐ   ÁstBÐÑÒ z~I ÑÒ z ¿À)5ÓŽ Ô   ¤ ¿ÀÕ&)5_3Ö·×ÑÒ z~ØÙm^~%ÚÛÜ×ݏ ¦¤ zÞßàáFâãÁst ¦¤äå+æç B[èéê)50012% ¥lÐ  Ást)5ÄÊëìÁst ¤äå[¦¤äå íXÙ [îïÙ%~ gjg 9   Žð%      ãɽñò • gxxk ó  ab gLK ôõ%ôàö’÷¬­øù9 gKKúûüýš |þ [ ‡ §¨3 D’÷¬­øù nKKúûüýš ø ÃÄŠ   ¤)5 ŽF KjgKKúûüýš st*%& ôT  gK ·¨§¨3  )5Ä gKkn  ·¨)5st'%© Bô·¨ ¦¤) 5ìø Õ9h 7Ð ‹ԎÅ?I‰  ab y,- 5 !% • gxxr ó  ab kLK ôõ%&B  ab"#Ù9I $Ô|þ ‹ îï%Œ&%ô÷ø ’÷¬­øù'( oLnPûüýšL ©Bm)* ¤ +,­- .X‹/0/Å1¥ ‰)5­2é            

相关的电平;原来快速模式的输出级在6mA输出0.6V要求被忽略。 ·2000年的2.1版开始允许在高速模式的重复启始信号后,可以延长SCL时钟的低电平周 期,并放宽了高速模式的一些时间参数的要求。 本毕业设计中包含了一个由VLSI实现的从模式的℃总线接口电路和一个既可配置为 主模式又可配置为从模式的℃总线接口电路。 前一个设计电路可作为一个成熟的IP核嵌入到参数可配置的ASIC芯片中,这样通过 该接口电路只需两个管脚就可实现系统配置参数的输入和系统配置参数的输出验证,如图 1-2所示。而完成相应功能的并行总线接口电路则需要相当多的管脚,比如一个8位总线接 口至少需要8条数据总线、若干条地址总线、读写控制线和片选线。 后一个设计电路的功能更为强大,用途也更为广泛,不仅可以作为主模式℃总线器件 配合从模式的I℃总线接口电路完成对参数可配置的ASIC器件的系统配置参数的输入和参 数的输出验证的任务,还可以直接和微处理器的IP核连接,使微处理器芯片直接具有℃ 总线接口,这样不需要再采用软件模拟的方式实现℃总线功能,因而大大节省了微处理器 的硬件资源和运算资源,提高了微处理器的编程效率。 SDA SCL AO CS cs ASIC I2C总 SDA CORE R/W R/W 线接口sCL DO D7 传统的总线接口 图1-2I℃总线接口示意图 3

34 -5m)ø ­AF MO ­ KLMc -6‹% • kKKK ó kLg ôâ789F÷ø :;7¡¢?)5 ì-? @DAB÷ø CB -6% DE*FG cf    [H)#$9 U Z)#$9  % h)I9ÙJ • KLM)#$  !"* 67 N,Ÿ./)st#$ ­M[st#$ ­…†OÚ~ gjk +P%Å®Ù3ŽÑÒ D8Q,-3RS ./TÚ r  U2,- r  «  ®Ù)#$  ¤ st#$ ­M[  ­…† ^_T)5Ó[\]^ • K£'\]^ !"ÓÃÄ   ,-Ü&¦¤ ` 3   ÑÒÕÅ00´µ\]^ ¤èé[abèéO÷\]^ Êù%                          

二、I℃总线的基本原理 I℃总线是通过两条双向线(时钟线SCL,数据线SDA)在器件之间传递信息的。SDA、 $CL的输出级必须是开漏或者开集电极输出,并外接上拉电阻,以实现“线与”功能,如图 2-1所示。当总线空闲时,SDA、SCL均为高电平。总线上的每个器件都有一个唯一的地址, 既作为数据的发送者或接收者,也可以配置成master或slave。master可以控制总线, 开始数据传输,产生传输所需的SCL时钟脉冲。其他被寻址的器件只能处于slave模式。 可以联入总线的器件数取决于总线的最大负载能力400P℉。 +VDD 电 SDA串行数据线 SCL串行时钟线 SCLK SCLK SCLKNI DATANI SCLKN2 DATAN2 OUT OUT OUT OUT 777 77 77 DATA SCLK DATA IN IN IN 器件1 器件2 图2-1I℃总线器件输出级示意图 I℃总线上的数据传输由起始状态启动,由停止状态结束。SDA线上的数据在SCL时钟 高时必须稳定。SDA上的高低电平状态的变化只能在SCL时钟为低时进行变化。在SCL为 高时,SDA由高到低的变化表示起始状态,SDA由低到高的变化则表示停止状态。这样的 定义可以避免把起始状态和停止状态误认作是普通的数据。 ℃总线是一个允许有多个主控制器的总线,它定义了一个仲裁过程,用来保证当一个 以上的master同时试图控制总线时,只有一个master可以控制总线,并且总线上传送的 数据不被其他master破坏。由于SDA上的数据只有在SCL为高时有效,而所有的master 在总线上传信息时都会在SCL上产生自己的时钟信号,所以当有两个或两个以上的主控制 器同时企图控制总线时,就需要用一个己经同步好的SCL时钟来进行以位为单位的仲裁过 程。SCL总线时钟同步是利用了I℃总线接口的线与功能,只要一个器件的SCL输出低电 平,SCL时钟总线就会被成低电平。SCL时钟总线的拉低会使相关器件开始对自己的SCL 低电平周期进行计数,只有当所有的器件对自己的SCL低电平周期计数结束回到SCL高电 平周期时,SCL总线才会被重新拉高。具有较短的SCL低电平周期的器件在计数结束后会 释放自己的SCL输出同时进入等待状态,直到SCL总线被拉高。SCL总线拉高又会使相关 器件对自己的SCL高电平周期计数,最先完成计数的器件会将SCL再次拉低。这样SCL的 高电平周期是由拥有最短的$CL高电平周期的器件决定,而低电平周期则是由拥有最长的 SCL低电平周期的器件决定。如图2-2所示。仲裁过程是当SCL时钟总线为高电平时,在

     ‰67Ÿ cdB>  f « eeF ¤¥¬f¡g % e }~%€‹§¨ ¤NÒ]Ð šy|z % )5ÀM ¤/Ð ’0‚ƒÒ„ nKK•… %       I «¬­†7uv;‡ˆ‰uvpŠ% e I «F  f B> ÷Bhi‹,% e I ÷ì-uv ŒNÒF  f B>9ìB8Œ%F  f 9 ÷B e ÷ì ŒŽP†7uv e ì÷ ŒQŽPˆ‰uv%  ,)5°±×†7uv[ˆ‰uv‘I‰’6 «%  ‰89ÄSUWX ,•7O)à†R 5I Oyšüz{ ©B„~WXBNÄ Oyšüz{ )5WXDEI¬w «‹€ Oyšüz{ %Ð e I «NÄF  f 9÷BÄÊÅ+Ä Oyšüz{ FI¬¡gBuF  f Iï B>¡¢O +5RğkŸ5I UWX ©B›~WXBO,-"#©ª`  f B>)859¾ •7 %  f B>©ª‰œ   2ÑÒN- ¤  f ­ì -  f B>‹Ùì-%  f B> mì'34 ¤â7™š  f ì-?@8NÄR+Ä ¤™š  f ì-?@pŠ  f ÷ -?@B  f ž‹:*m÷%Ãğ   f ì-?@ ¤FpŠ? ¡A™š  f ­©BM¢£uvÓ  f ‹m÷%  f m÷Z'34 ¤™š  f ÷-?@’¤®Ù ¤¥  f ܦmì%   f ÷-?@‰§Ä’   f ÷-?@ ¤,Åì-?@Q‰§Ä’=  f ì-?@ ¤,%Ú~ kjk +P%•7‰R  f B>9÷-BF                              

SDA数据总线上进行的。当一个master的SDA输出为高,而另一个master的SDA输出为低 时,SDA数据总线线被拉低。这时前者发现SDA数据总线上的数据和自己的输出不一致, 它意识到已经丧失了总线控制权,随即它将关闭自己的SDA输出,因此竞争胜利的master 的数据不会被竞争失败的master破坏。如图2-3所示。失去总线控制权的master可以继 续产生SCL时钟脉冲直到它失去总线控制权的字节传送完毕。 开始对高电 wait 平周期计数 state CLK 计数器 CLK 复位 2 SCL 图2-2总线仲裁的时钟同步 ,master】失去总线控制权 (DATA 1=SDA) DATA DATA SDA 图2-3总线仲裁过程 2℃总线上的每个数据包都是由8个数据位和1个响应位构成,传送一个完整的数据字 节就需要9个SCL时钟脉冲传送。发送方先发送数据的最高位,并在响应位释放SDA,接 收方必须在响应位将SDA拉低表示接收到数据。slave接收者不能在响应位将SDA拉低, 表示他不能接收数据,此时master可以产生停止信号中止传送。当master接收方不响应, 表示这是接收的最后一个字节。 I℃总线的标准模式和快速模式的通讯是由4部分组成:起始信号、slave地址、数据 传送、停止信号。本设计支持7位寻址方式。如图2-4所示。起始信号后,7位slave地 址和1个读写控制位被发送。只有当slave的地址和master发送的地址一致时,slave才 会响应。slave被成功寻址之后,数据以字节为单位顺序传送,方向由读写控制位决定 (“1”表示读,“0”表示写),master产生停止信号终止数据传输,释放总线。另外, master也可以产生重复起始信号代替停止信号。 5

 e «I8 %R Oyšüz{ e ­9÷Å Oyšüz{ e ­9ì B e «‹mì% Bhã e «I «[™š ­¨ ©ª"#«¬WX­®Y¥4¯™š e ­Õ&°±²œ Oyšüz{ «‹°±¬³ Oyšüz{ %Ú~ kjo +P%¬´WX­ Oyšüz{ )5µ ¶ïî  f B>}~Ó¬´WX­ ·´¬w®D%    !  " #$  I t«Fu‰ r «[g¸ŽqÙ¬w® «· ´,- x   f B>}~¬w%ãw3¤ãw« ’÷DF¸Ž¡A e  x3hiF¸Ž¥ e mìŽPx«% šy|z xÒF¸Ž¥ e mì ŽP€Òx«&B Oyšüz{ )5ï¡¢*‰¬w%R Oyšüz{ x3¸Ž ŽP ‰x ’?·´%   |þ [ø 6¹‰ n äåºÙò†7¡¢< šy|z ·¨<« ¬w<ˆ‰¡¢% ‡ §¨3 %Ú~ kjn +P%†7¡¢? ‡  šy|z · ¨[ g XYWX‹ãw%NÄR šy|z ·¨[ Oyšüz{ ãw ·¨¨B šy|z ž ¸Ž% šy|z ‹Ùѧ¨¥?«5·´9¾»C¬w3XYWX, ¼o g pŽPXo K pŽPY½ Oyšüz{ ï¡¢¾‰«¬­¡A%  Oyšüz{ ê)5ïî:†7¡¢1¿ˆ‰¡¢%                      

·最高位 slave 接收方 接收方 的响应 的响应 的响应 A凡 .Sr' 起始信号 地址 R/W响 数据 响成 数据 停正倍号/ 重复起始信号 图2-4℃总线上的数据传输-7位寻址方式 ℃总线协议还支持10位寻址方式。该寻址方式利用在7位寻址方式中保留的地址 (11110XX)作为10位寻址的第一个字节,这样可以保证支持7位和10位寻址方式的器件可 以存在于同一个系统中。启始信号后,master发送10位寻址的第一个字节(11110XX+读写 控制位,XX代表slave地址的最高两位:读写控制位为0,则表示主控器向从控制器写信 息,第二个字节将包含寻址地址的最后8位,为1表示主控器向从控制器读数据,第二个字 节包括由从控制器返回的数据)。支持l0位寻址的slave器件收到该寻址字节,就与自己 的10位地址的最高两位进行比较,如果一致,slave就响应master。当读写控制位为‘0' 时,所有响应的slave将继续接收并比较由master发送的寻址的第二个字节,如果地址再 次符合,slave再次响应master,这时master向slave写的寻址过程已经完成。接下来 可以进行slave接收master发送的数据字节的工作,或者master可以发送重复启始信号, 然后再发送读写控制位变为‘1’的l0位寻址的第一个字节,刚才被寻址的slave将响应 master,此时完成了aster向slave读的寻址过程。接下来master可以被寻址的slave 读取数据。10位寻址方式过程如图2-5所示 11110xX 0 s SLAVE ADESS Ist 7 BITS A2 DATA A DATA A/K P aster向slave发送 ▣ slavel向aster发送 (write) MASTER向SLAVE写过程 11110XX 0 11110XX 1 SLAVE ADDRESS SLAVE ADORESS 1st 7 BITS R/T AI SLAVE ADDRESS 2nd BYTE A2 Sr Ist BITS R/F A3 DATA A DITA 7 P (write) read MASTER向SLAVE读过程 A=响应(SDA=0) A没啊应(SDA=1) S=起始信号 P=停止信号 图2-5I℃总线10位寻址方式 由于该设计中的从模式的IC总线接口电路是面向可配置参数的ASIC芯片设计配置所 需要的℃总线接口电路,要求通过软件寻址不仅访问芯片本身,而且还要能访问芯片内部 寄存器组阵列。因此,master和slave在总线上的通讯过程定义如图2-6所示: S SLAVE ADDRESS R/W A SUBADDRESS A DATA A DATA A/A P master向slave发送 slave向caster发送 MASTER向SLAVE写过程 S SLAVE ADDRESS R/W A SUBADDRESS A SF SLAVE ADDRESS R/W A DATA A DATA A P = MASTER向SLAVE读过程 A南应(SDN-0) =没响应(SDA=1) S=起始信号 P=停止信号 图2-6I℃总线通讯过程的定义 6

  %   &'()* +,-./  abT gK §¨3 %§¨3 œF ‡ §¨3 *àö ·¨ dggggKÀÀeI9 gK §¨ Á·´ )5à† ‡ [ gK §¨3 ¤) 5áFЩst*%;7¡¢? Oyšüz{ ãw gK §¨ Á·´dggggKÀÀÂXY WX ÀÀ 1Ž šy|z ·¨ ’÷Ÿ5XYWX9KQŽPUW WX Y¡ gOÁ÷´¥FG§¨·¨ ’? r 9 g ŽPUW WX X«OÁ÷ ´FÄWX ŝ «e% gK §¨ šy|z ¤x§¨·´2™š gK ·¨ ’÷Ÿ8TŸÚÛ¨ šy|z ¸Ž Oyšüz{ %RXYWX9Æ K Ç B+ĸŽ šy|z ¥µ¶xDTŸ Oyšüz{ ãw §¨ Á÷´ÚÛ·¨Ü ¦È> šy|z ܦ¸Ž Oyšüz{  B Oyšüz{  šy|z Y §¨7"#®Ù%) )58 šy|z x Oyšüz{ ãw «·´ RIk Oyšüz{ )5ãw:;7¡¢ É?ÜãwXYWX9Æ g Ç gK §¨ Á·´ʞ‹§¨ šy|z ¥¸Ž Oyšüz{ &B®Ù yšüz{  šy|z X §¨7%) Oyšüz{ )5‹§¨ šy|z X/«% gK §¨3 7Ú~ kj +P  0    1 +,-./ Ð*   ‰»)#$  !"#$+ ,-  O-667¦¤§¨]ËÌ!"ÍÅET-ÒËÌ!"Îä Ïá ºÐÑ%Õ& Oyšüz{ [ šy|z FI 6¹7,Ú~ kjM +Pò          !  !   !  !          !" #$   %   " #$ &    '%( ) %)*         !" #$     #  +* )%,-*.)/0 -*.),+* )%/0 '%( )                                                 !  !  !"# ! $% ! &'"#   %  2   34#$56 SDA SCL                    ! "#$ ! "#$ ! % & % '& &

I℃总线所支持的高速模式向下兼容快速模式和标准模式,其速度最高可达3.4bit/s, 高速模式除了没有仲裁和时钟同步以外,其总线协议、数据格式和快速模式相同。为了达 3.4Mbit/s的速度,高速模式的器件在sda输出端有一个开漏极缓冲器,在SCL瑞有开漏极 下拉电路和电流源上拉电路。电流源电路是为了减少SCL的上升时间,并且只有在高速模 式下,该电路才会起作用。为了加快数据处理速度,每一个master都分配了一个特定的器 件标号,总线仲裁的过程是在快速模式下传输master器件标号时完成的。 高速模式在出现下列条件后才开始 1.起始信号 2.8位master器件标号3.非应答位 在非应答位后,SCL回到高电平,master将转成高速模式并开启电流源上拉电路.如果 slave要延迟数据传输,就必须在特定时刻之前延长SCL信号的低电平周期,当slave释放 SCL以后,master开启电流源上拉电路,减少SCL信号的上升时间。在每一个重复起始信号 和一个应答或非应答信号之后,master将关闭电流源上拉电路,slave这时可以延长SCL 信号的低电平周期从而延迟数据传输。当slave都释放了SCL以后,主控器将开启电流源 上拉电路,从而减少SCL信号的最后部分的上升时间。高速模式只有在出现停止信号后才 被关闭。 8位Master标号00001Xx 2 to 5 快速模式 7位地址 R/i n*8位数据+A 凡凡RAAT 如果是停止信号 高速模式 恢复快速模式 如果是重复起始信号 继线高速模式 =CS电流源上拉电路 图2-7I℃总线高速模式的数据传输 =R即上拉电阻 7

                     !"# $%&'''' ((  ) ) *+,-./& 01 *+,2134/& 56 7       8!9:;:? 8@=>:A  + ÷ø  ø [|þ OøҒ÷) oLnPûüýšO ÷ø ÏÓĕ[B>©ª5 Oab<«Ô [ø 3©%9 oLnPûüýš øÒ÷ø ¤F šÕy ­ÖÄâjl×~ F  f ÖÄâjl m[ØéIm%Øé‰912  f IÙBDENÄF÷ø ž†I%9«]^øÒt Oyšüz{ uå#Ú, ¤|¢• 7‰Fø ¬­ Oyšüz{ ¤|¢B®Ù % ÷ø FÑ ¤?žâ7 gL†7¡¢ kLr  Oyšüz{ ¤|¢ oLێÜ FێÜ?O f ÷-OOyšüz{ ¥ØÙ÷ø Dâ;ØéImLÚÛ šy|z -<Ý«¬­OhiFÚ,BÞ¥h<=  f ¡¢ ì-?@OR šy|z ¡A  f Oyšüz{ â;ØéIm12  f ¡¢ IÙB%Ft:†7¡¢ [ŽÜkێܡ¢¥? Oyšüz{ ¥4¯ØéIm šy|z B)5<=  f ¡¢ ì-?@Å<Ý«¬­%R šy|z u¡A  f 5?UW ¥â;Øé ImÅ12  f ¡¢ ’?äå IÙB%÷ø NÄFˆ‰¡¢?ž ‹4¯%  *   789/'()

三、从模式的I℃总线接口的电路结构设计 3.1系统结构 该接口电路主要用于芯片内部寄存器的读写访问,因此只需要实现从模式即可满足要 求,这样可以避免占用过多的芯片面积资源。 Xin Yout FIR数字滤波器 配置 配置 配置 配置 配置 参数 参数 参数 参数 参数 寄存器 寄存器 寄存器 寄存器 寄存器 SLAVE地址 地址译码/总线接口 Register Array CLK /丽 subaddress data RESET 寄存器地址 起始/停止信号 寄存器 数据寄存器 SCL检测 地址比较 主状态机 移位寄存器 Slave Interface 图3-1系统框图 根据℃总线上数据传输过程的特点,使用状态机控制整个系统的运作,可以使设计思 路清晰明确,程序模块化。系统上电复位后即进入状态机,并在状态机的控制之下,完成 起始/停止信号的自动检测,slave地址、子地址、配置数据的接收及响应,发送数据及检 测响应,对配置寄存器阵列的寻址和连续读写(子地址自动增加)等功能。此外,系统最 高数据传输速度应由系统时钟c1k及寄存器的存取速度决定,以适应100KHZ和400KH忆两 种模式。根据电路的功能,整个系统可分为几部分,如图3-1所示。 8

     ": ; U-Ð!"ÎäÏá XYËÌÕ&N,- Y)ßà- 6 )5°±¸7S !"»¼èé% SCL SDA R/W Slave Interface Register Array CLK subaddress data RESET               !" #$%& '(   )*+ ,-./  " ; èú Ïá á/øҁ,5éŽ gKKêdë [ nKKêdë Ÿ Š %á« ÑÒst)å9ìäåÚ~ ojg +P%

3.2主状态机 各状态说明 Idle 空闲状态 rx address 接收slave地址 rx subaddress 接收子地址 ack rx address 接收slave地址响应 ack rx subaddr 接收子地址响应 tx data 发送数据 rx_data 接收数据 ack_tx_data 发送数据响应 ack rx data 接收数据响应 reset='1'or idle detect stop='1' detect start='1'and (reset='0'and detect stop='0') rx address i<7 shift8(7 downto 1) /=slave address 7 (ack_rx_address shift8(7 downto 1 shift8(7 downto 1) =slave address, =slave address and shift8(0)' and shift8(0)='0' sda='1' tx data i<7 rx_subaddress E7 detect start='1' 7 sda='0' ack_rx_subaddr ack tx_data rx data i=7 and detect start='0' ack_rx_data 图3-2主状态机 9

": @ABC ‚uvíå Õz qruv {îïyÕÕ{zšš x šy|z ·¨ {îïšNûyÕÕ{zšš xy·¨ yèúï{îïyÕÕ{zšš x šy|z ·¨¸Ž yèúï{îïšNûyÕÕ{ xy·¨¸Ž üîïÕyüy ãw« {îïÕyüy x« yèúïüîïÕyüy ãw«¸Ž yèúï{îïÕyüy x«¸Ž  " @ABC     i=7 detect_start='1' and (reset='0' and detect_stop='0') reset='1' or detect_stop='1'   shift8(7 downto 1) =slave_address and shift8(0)='1' shift8(7 downto 1) /=slave_address     i=7    shift8(7 downto 1) =slave_address and shift8(0)='0'   sda='0' i=7 sda='1' detect_start='1' i=7 and detect_start='0'      i<7 i<7 i<7 i<7

状态机的状态转换是在SCL下降沿后第4个时钟周期进行的。但是,停止信号出现后 总线被释放,SCL、SDA均为高电平,除非再出现起始信号进行数据传送,SCL是不会再 出现下降沿的。如果停止信号出现后就把空闲状态赋给next_state,将没有SCL时钟下降 沿做时间基准完成状态转化(即状态机进入到空闲状态)。为了解决矛盾,需要将停止信号 看作复位信号。一旦有停止信号出现,当前状态在下一个CLK脉冲强制进入到空闲状态,而 不能等到SCL下降沿后第4个时钟脉冲。 ack_rx_subaddr状态之后,master既可能发送数据又可能发送重复停止信号或者停 止信号,如何区分是哪种情况成为正确进入相应的状态的关键。最好的办法是 ack_rx_subaddr状态之后无条件紧跟rx_data状态。这样,如果在rx_data状态时检测到 重复起始信号,丢弃已接收的数据,并在$CL时钟下降沿后第4个时钟周期进行状态转化 进入rx_address状态,,否则继续完成接收数据。若发现停止信号,处理如前所述。这样 做既满足设计要求又不会增加多余的状态。 master收到数据后没有响应(SDA=1)表示这是master接收的最后一个字节数据。在 这种情况下,可以在SCL时钟下降沿后第4个时钟周期就直接进入到空闲状态,处理接下 来应该出现的重复起始信号或停止信号。 3.3子模块 3.3.1起始/停止信号、SCL检测 在高速时钟的上升沿采样SDA、SCL,如果在前后两个采样点发现SDA从“1”变化 到“0”而SCL保持“1”则认为master发出起始信号,将detect_.start置为有效。同 理,若发现SDA从“0”变化到“1”而SCL保持“1”,则认为是停止信号,将detect_.stop 置为有效。Detect_start有效保持一个状态周期,detect_stop有效保持一个时钟周期,以 避免误操作。 依靠SCL时钟下降沿进行状态转换以及在SCL时钟上升沿将SDA的数据送入移位寄存 器,时间有些仓促,因此决定推迟若干个c1k时钟周期进行。最简单的实现办法是将SCL 延时若干个时钟周期,再采样检测延时后的SCL的下降沿和上升沿分别作为状态转换和数 据采样时刻。 3.3.2移位寄存器 移位寄存器在rx_address、rx_subaddress、rx_data状态完成在数据采样时刻(SDA 数据有效时)对slave地址、寄存器子地址、数据的移位接收,接收完毕在响应状态将数据 并行送往指定的寄存器:在ack_tx_data状态和ack_rx_address状态且读写控制位为高 (r/w=l)时,并行输入数据,在tx_data状态发送时刻有效时输出最高位,在数据采样时刻 有效时进行移位操作。 3.3.3寄存器子地址寄存器、计数器寄存器 寄存器子地址寄存器实现完成对寄存器一次读写操作后地址自动增加的功能,这样 10

 uvw uvØð‰F  f ëñ?Á n B>?@8 %ò‰ˆ‰¡¢? ‹¡A  f ë ñöBlþ®Ùuv،dYuvwMqruve%9÷øù,-¥ˆ‰¡¢ úI¡¢%ûĈ‰¡¢RhuvF fê }~[XMqruvOÅ Ò¢  f ëñ?Á n B>}~% yèúï{îïšNûyÕÕ{ uv¥? Oyšüz{ H)Òãw«Z)Òãw:ˆ‰¡¢kˆ ‰¡¢Ú üýå‰þ ŠÙ9 æM3Ž uv 4%’` ³ ‰ yèúï{îïšNûyÕÕ{ uv¥?G ¤ {îïÕyüy uv% ÚÛF {îïÕyüy uvBçƒ :†7¡¢"x «DF  f B>ëñ?Á n B>?@8uv، M {îïyÕÕ{zšš uv Qµ¶®Ùx«%V㈉¡¢]^Úh+!%  öHßà-6ZS uv% Oyšüz{ x«?ÓĸŽde ge ŽP ‰ Oyšüz{ x ’?·´«%F Š)5F  f B>ëñ?Á n B>?@ӍMqruv]^ )Ž :†7¡¢kˆ‰¡¢% ":" D9E oLoLg †7ýˆ‰¡¢ IÙñ& e ?@5 °± I%   f B>ëñ8uvØð5F  f B>IÙñ¥ e «wMÏá BÄCÕ&,õÝVW ègú B>?@8%’½¾ ³‰¥  f ?@Ü&çƒ<B?  f ëñ[IÙñåI9uvØð[ «&BÞ% oLoLk Ïá Ïá F {îïyÕÕ{zšš <{îïšNûyÕÕ{zšš <{îïÕyüyuv®ÙF«&BÞde «ÄÊBe šy|z ·¨<Ïá y·¨<« xx®DF¸Žuv¥« D8w, Ïá 5F yèúïüîïÕyüy uv[ yèúï{îïyÕÕ{zšš uvEXYWX9÷ d{ý geBOD8­M«F üîïÕyüy uvãwBÞÄÊB­’÷F«&BÞ ÄÊB8 I% oLoLo Ïáy·¨Ïá< Ïá Ïá y·¨Ïá ®ÙÏá ¦XY I?·¨™‡ ÑÒ  

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共24页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有