找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7388|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

討論一下51單片機(jī)的IIC通信的應(yīng)答信號(hào)與非應(yīng)答信號(hào)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:135253 發(fā)表于 2018-8-16 14:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
按照多數(shù)教材的理解,應(yīng)答信號(hào)應(yīng)該是這樣:當(dāng)發(fā)送器發(fā)送8位數(shù)據(jù)以后,要發(fā)送一個(gè)應(yīng)答信號(hào),個(gè)人理解:此處應(yīng)該是發(fā)送一個(gè)“要求接收器回復(fù)一個(gè)應(yīng)答信號(hào)的信號(hào)”,有點(diǎn)拗口,可能更加準(zhǔn)確些!也就是發(fā)送器拉高SDA,然后等待接收器能否拉低SDA信號(hào),能夠拉低SDA,就是回復(fù)發(fā)生器的應(yīng)答信號(hào),發(fā)送器收到此信號(hào)后,繼續(xù)發(fā)送;如果接收器不能拉低SDA,那發(fā)送器就認(rèn)為是無(wú)應(yīng)答信號(hào),停止工作,也就是釋放總線。發(fā)生器等待應(yīng)答信號(hào)期間,SCL應(yīng)該是高電平!雖然單片機(jī)模擬對(duì)應(yīng)答信號(hào)要求不是很高,一般都可以工作,但是看了不少程序,總覺得不太符合。不知道上面理解的對(duì)不對(duì),歡迎指正!

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

來(lái)自 8#
ID:401564 發(fā)表于 2018-9-23 15:19 | 只看該作者
IIC其實(shí)很簡(jiǎn)單的,讓我這個(gè)小白來(lái)告訴你吧
IIC的主要信號(hào)就是三個(gè):啟動(dòng)信號(hào),停止信號(hào),應(yīng)該信號(hào)
啟動(dòng)和停止信號(hào):在任何時(shí)候都可以產(chǎn)生
應(yīng)該信號(hào):在發(fā)送或者接收完成8個(gè)位之后的第9個(gè)位來(lái)產(chǎn)生.0為應(yīng)答,1為不應(yīng)答,向器件寫入數(shù)據(jù)時(shí),應(yīng)答信號(hào)由接收器產(chǎn)生,從器件讀出數(shù)據(jù)時(shí),應(yīng)答信號(hào)由單片機(jī)產(chǎn)生
以51讀寫24C01為例:
向24C01寫入時(shí),先寫入啟動(dòng)信號(hào),然后寫入地址(8個(gè)位),在第9個(gè)位的時(shí)候,SDA線要為高電平(釋放SDA線),接下來(lái),單片機(jī)要不斷的讀取SDA線,當(dāng)寫入完成時(shí),24C01會(huì)把SDA線拉低,就表示已經(jīng)寫入完成了.
讀出數(shù)據(jù)時(shí):先是一個(gè)啟動(dòng)信號(hào),然后寫入要讀取的地址,再寫入一個(gè)啟動(dòng)信號(hào),然后單片機(jī)就開始讀取SDA的電平數(shù)據(jù)了,在讀取完8個(gè)位之后,在第9個(gè)位的時(shí)候,單片機(jī)要把SDA拉低(0),再給24C01一個(gè)時(shí)候,等于是告訴24C01已經(jīng)接收到完整的8個(gè)位了

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:174087 發(fā)表于 2018-8-16 15:16 | 只看該作者
最近剛學(xué)完iic,如果不糾結(jié)概念的話應(yīng)該就是,發(fā)送完數(shù)據(jù)等待應(yīng)答信號(hào),接收到應(yīng)答就繼續(xù)執(zhí)行,非應(yīng)答就結(jié)束,樓主不說的話還真沒有細(xì)細(xì)研究

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:135253 發(fā)表于 2018-8-16 15:28 | 只看該作者
woshige 發(fā)表于 2018-8-16 15:16
最近剛學(xué)完iic,如果不糾結(jié)概念的話應(yīng)該就是,發(fā)送完數(shù)據(jù)等待應(yīng)答信號(hào),接收到應(yīng)答就繼續(xù)執(zhí)行,非應(yīng)答就結(jié) ...

如果只看參考程序,有時(shí)候還真的沒有在意
回復(fù)

使用道具 舉報(bào)

地板
ID:381818 發(fā)表于 2018-8-16 17:43 | 只看該作者
最近用軟件模擬過IIC通信,寫應(yīng)答信號(hào)庫(kù)函數(shù)的時(shí)候,主機(jī)釋放SDA總線也就是把電平拉高,在下一個(gè)時(shí)鐘周期讀SDA總線然后返回SDA的值就行了,并沒有發(fā)送“要求接收器回復(fù)一個(gè)應(yīng)答信號(hào)的信號(hào)”。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:98526 發(fā)表于 2018-8-17 10:32 | 只看該作者
我一般都是主機(jī)模擬應(yīng)答信號(hào),不管從機(jī)。只要從機(jī)沒壞,都能工作

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:135253 發(fā)表于 2018-9-15 08:17 | 只看該作者
我們編寫程序,利用proteus仿真,一般都是主機(jī)拉低SDA,代替從機(jī)回復(fù)的應(yīng)答信號(hào),實(shí)際硬件這個(gè)SDA的拉低應(yīng)該由從機(jī)完成,所以在這個(gè)問題上,大家容易混淆,到底這個(gè)應(yīng)答信號(hào)是誰(shuí)發(fā)出的!

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

7#
ID:397686 發(fā)表于 2018-9-15 10:11 | 只看該作者
感覺沒必要這么復(fù)雜吧!單片機(jī)向I2C發(fā)送數(shù)據(jù)完成后,接收器產(chǎn)生一個(gè)應(yīng)答動(dòng)作,并且通過I2C總線發(fā)送一個(gè)應(yīng)答信號(hào)給單片機(jī)

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表