4.2℃总线接口控制器子模块 4.2.1总体设计思路 在设计支持主从模式混合的I℃总线接口电路时,有两种设计思路可供选择。 第一种,用两个相对独立的两个状态机分别描述系统的主模式和从模式的运作。这两 个状态机同时运行,分别产生自己的SCL、SDA输出。它们的SCL、SDA输出信号经过主 从模式选择信号的选择后输出。主从模式选择信号是由外接的处理器决定的,当控制器失 去总线控制权之后,主从模式选择信号可以自动由主模式转为从模式而不另外需要外接处 理器的命令。这样就可以保证该接口控制器既可以被配置为主模式又可以被配置为从模 式,而且当控制器在主模式的寻址阶段失去总线控制权时,能够立即转入从模式并且被其 他竞争胜利的master寻址。 第二种思路也采用双状态机进行描述。所不同的是第一个状态机虽然也负责产生主模 式下的SCL、SDA输出,但其SDA的输出除了在总线空闲状态、产生启始信号和停止信号 时由本状态机决定以外,其余过程的SDA主模式输出将由另外一个状态机即主状态机决定。 主状态机将主模式和从模式的系统过程比如SDA信号输入输出过程合并在了同一个状态机 中,这是因为主模式和从模式下的寻址或被寻址过程及数据传送过程所使用的状态和操作 几乎完全相同。该状态机是由SCL时钟信号进行驱动,完成状态转换的。SCL时钟信号既 可以是第一个状态机产生的SCL时钟信号(主模式下)又可以是另外的master产生的SCL时 钟信号(从模式下).这样的设计实际上是将整个设计的行为级进行了分层,下层产生的信号 驱动上层状态机的运作,而上层不管驱动信号的来源,这样上层的驱动信号的产生不需要 只限于同一个器件。这样的分层设计也同样可以保证实现所有的目标功能,因为主从模式 也同样是在同时运行的,其输出的SDA信号经过主从模式选择信号的选择进行输出。 这两种设计思路是从不同的角度对系统进行行为级描述的,前者是横向上将主从模式 进行简单的组合,后者则在纵向的两个层次上对系统进行描述的。相比较而言,后者的设 计思路相对更为先进一些,这样的设计思路有些和计算机网络的分层协议类似,思路清晰, 每一层只需要完成特定的功能,易于实现,而且只要层次间的接口明确,就可以用其他的 电路实现模块来替代原来的模块,这样功能易于扩展。因此如果采用后一种设计思路,在进 行主从模式混合设计时,就不需要考虑到底层SCL信号的来源和具体产生过程,这样很容 易在高层将主从模式混合,达到比较满意的效果。本设计即采用后者的设计思路。 4.2.2状态机 4.2.2.1SCL状态机 该状态机产生主模式下的SDA、SCL输出和起始、停止信号。 13 %: HID9E %:: FU V> BÄ)²1% Á32-uvwå !stU [ aI% uvw©Ba8åïî f < e %3 f < e ¡¢#7U ²1¡¢²1?%U ²1¡¢ ]^ ,RWX ¬ ´WX¥?U ²1¡¢)5U Ø9 Å ,- ] ^ 4.% )5àWX H)5#$9U Z)5#$9 ÅERWX FU §¨56¬´WXBÒ7-YØM DE °±² Oyüz{ §¨% ÁÃê&cuvw8 !%+©Áuvw8Éê9ïîU f < e ò e ÏFqruv<ïî;7¡¢[¡¢ Buvw,5 7 e U ¥ uvwYUuvw,% Uuvw¥U [ st7TÚ e ¡¢M7>DF©uvw * Õ9U [ §¨k§¨7«¬w7+'uv[ I ì:®¯3©%uvw f B>¡¢8;®ÙuvØð% f B>¡¢H )5Áuvwïî f B>¡¢dU eZ)5 Oyüz{ ïî f B >¡¢d eL ÔI¥89A8å<<ïî¡¢ ;I<uvwaIÅI<.;¡¢)é I<;¡¢ïî,- N.Щ ¤% å<ê©)5à+Ä{|ÑÒÕ9U ê©F©Ba8 e ¡¢#7U ²1¡¢²18% ©=Òst889A !h>I¥U 8½¾º>?QF?<¦Ist8 !%3TÅi? 3Z9¤C ÄC[bw@Aå<abBCãä t<N,-®ÙÚ,ÑÒDÐÅEN-<¦åæ)5 z)¿1m) zO ÑÒDÐÈÉ%Õ&ÚÛ&?F 8U V>B,-EFG< f ¡¢)é[Ãïî7 _ DF÷<¥U V>Tß©ÊÛ%Y&?% %:: ABC nLkLkLg f uvw uvwïîU e < f [7<¡¢%