时系统由主模式转成从模式,释放总线,主从模式选择信号复位。这样就可以保证在正确 的时间点使arb lost有效,并可以覆盖发生总线竞争失败的各种情况。 总线竞争失败发生在下列几种情况: ·在放送数据周期和接收数据周期的响应位SDA为低而系统内部的SDA输出为高 ·在总线忙时,试图产生启始信号 ·从模式下,试图产生启始信号 ·主模式没有要求产生停止信号时,检测到了停止信号 如果系统在数据传输过程中失去了总线控制权,SCL状态机将继续产生SCL时钟信号 直到失去总线控制权时正在传送的那个字节传送完成。 4.2.3.2信号输入信号检测子模块 该模块负责监测I℃总线的状态。系统高速采样SDA、SCL输入信号,如果在前后两个 采样点发现SDA从“1”变化到“0”而SCL保持“1”就认为总线上出现启始信号, detect_.start置为有效,同时bus_busy也置为有效.同理,若发现SDA从“0"变化到“1” 而SCL保持“1”,则认为出现停止信号,将detect_stop置为有效,bus_busy置为无效。 Detect_start有效只保持一个状态周期而detect_stop有效只保持一个时钟周期,以避免 误操作。如果发现SCL在前后两个采样点发生跳变(即SCL的上升或和下降沿),则置 detect_rising_.edge或者detect_.falling_edge有效,有效也只保持一个系统时钟周期。 4.2.3.3控制字子模块 该模块高速采样MSTA输入信号(主从模式选择信号,‘0’为从模式,‘1’为主模 式),当检测到MSTA的上升沿,置gen_start有效,指示SCL状态机应该产生启始信号: 当检测到MSTA的下降沿且控制器没有失去总线的控制权,置gen_stop有效,则说明应该 产生停止信号:gen_start和gen_start分别在检测到启始信号和停止信号后失效。当控 制器失去总线控制权,MSTA则自动置0。系统处于何种模式是由master_slave决定,‘1' 表示主模式,‘0’表示从模式,该信号由MSTA决定。 4.2.3.4状态字子模块 该模块产生指示系统状态的输出信号,以便IC控制器和外接的MCU进行握手过程。例 如MCF(指示数据传送完成),MASS(指示系统被其他的master寻址),MBB(指示总线是否占 用),MAL(指示系统是否竞争总线失败),RXAK(收到的响应位)等。 4.2.3.5移位寄存器子模块 该移位寄存器负责数据的串并转换。在HEADER、RCV_DATA、XMIT_DATA状态,当 detect_rising_.edge有效时(即SCL的上升沿)该寄存器进行移位操作,输入SDA上的数 据,并在数据发送时刻输出最高位。在IDLE状态且detect_.start有效时、ACK_HEADER状 态且下一个状态为XMIT_DATA时或者WAIT_ACK状态时,该寄存器装入需要发送的数据等待 发送,在ACK_DATA状态并行输出己经接收的数据。 公 BstU ØÙ ¡AU ²1¡¢% )5àFæ Bâ' y{ûïü ÄÊD)5XYãî°±¬³% °±¬³ãîFÑìò • FAw«?@[x«?@¸ e 9ìÅstÎä e 9÷ • FZB~ïî;7¡¢ • ~ïî;7¡¢ • U ÓÄ-6ïî¡¢Bç¡¢ ÚÛstF«¬7*¬´WX f uvw¥µ¶ïî f B>¡¢ Ó¬´WXBF¬wN·´¬w®Ù% nLkLoLk ¡¢M ¡¢çy z z9[ uv%st÷ø& e < f M¡¢ÚÛFh? &âã e o g po K pÅ f ào g p9I;7¡¢ Õzüzèüïüy{ü $9ÄÊ©B ûNïûN ê$9ÄÊ%©^Vã e o K po g p Å f ào g pOQ9¡¢O¥ Õzüzèüïü $9ÄÊOûNïûN $9GÊ% ezüzèüïüy{ü ÄÊNàuv?@Å Õzüzèüïü ÄÊNàB>?@5°± I%ÚÛã f Fh?&âãî\dY f IÙk[ëñeQ$ Õzüzèüï{õïzÕz k ÕzüzèüïyõïzÕz ÄÊÄÊêNàstB>?@% nLkLoLo WX·y z z÷ø& PI M¡¢ dU ²1¡¢Æ K Ç9 Æ g Ç9U eRç PI IÙñ$ zõïüy{ü ÄÊP f uvwïî;7¡¢5 Rç PI ëñEWX ÓĬ´WX$ zõïü ÄÊQíå ïî¡¢5 zõïüy{ü [ zõïüy{ü åFç;7¡¢[¡¢?¬Ê%RW X ¬´WX PI Q$K%st]Ðü Oyüz{ïy|z ,Æ g Ç PU Æ K ÇP ¡¢ PI ,% nLkLoLn uv·y z zïîPstuv¡¢5Ö WX [ P ] 8^_7%ð Ú P
dP«¬w®Ùe PdPst Oyüz{ §¨e P¹¹dP ¸ e PfdPst °±¬³e %Àêdx¸e¢% nLkLoL Ïáy z Ïá 9«DØð%F dHeH% < % cïeI < ÀPIïeI uvR Õzüzèüï{õïzÕz ÄÊB dY f IÙñeÏá 8 IM e I «DF«ãwBÞ÷%F efH uvE Õzüzèüïüy{ü ÄÊB< êïdHeH% u vEuv9 ÀPIïeI Bk JIï ê uvBÏá `M,-ãw«¢£ ãwF êïeI uvD8"#x«%