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

QQ登錄

只需一步,快速開始

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

FPGA IIC驅(qū)動(dòng)設(shè)計(jì)資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
黑金動(dòng)力開發(fā)板IIC設(shè)計(jì)驅(qū)動(dòng)

IIC 儲(chǔ)存模塊
IIC 儲(chǔ)存器是筆者用來練習(xí)精密控時(shí)的經(jīng)典例子!墩掀分H,IIC 儲(chǔ)存器的解釋,筆者也自認(rèn)變態(tài)。如今筆者回頭望去,筆者也不知道自己當(dāng)初到底發(fā)什么神經(jīng),既然將IIC 的時(shí)序都解釋一番。由于開發(fā)上板也嵌著 IIC 儲(chǔ)存器(24LC04),筆者還得循例地介紹一下。

IIC 儲(chǔ)存器是應(yīng)用 IIC 總線的儲(chǔ)存器,時(shí)序本身并不是很復(fù)雜不過缺有一大堆時(shí)序參數(shù),而且官方提供的時(shí)序也不利于描述,所以許多時(shí)序都必須自行繪制,真是麻煩死人。麻煩歸麻煩,筆者終究還要吃飯,為了肚子,再麻煩的事情也要硬著頭皮捱過去  ...  這也是白駱駝的惡作劇!



圖 16.1 是 IIC 總線與 IIC 設(shè)備常見的示意圖。理想上,一條 IIC 總線允許千萬 IIC 設(shè)備占據(jù)在上  ...  物理下,一條 IIC 總監(jiān)究竟允許多少 IIC 設(shè)備占據(jù)其中必須根據(jù)設(shè)備地址的長(zhǎng)度。默認(rèn)下,設(shè)備地址為八位寬,因此設(shè)備地址也稱為設(shè)備字節(jié)。設(shè)備地址的高四位,即[7..4]記錄硬件 ID,接續(xù)三位即  [3..1]  則記錄硬件地址,最后一位則是設(shè)備的訪問方向。結(jié)果如表 16.1 所示:

所謂硬件 ID 就是 IIC 設(shè)備的辨識(shí) ID,硬件 ID 會(huì)隨著廠商還有設(shè)備的種類而有所改變。開發(fā)板上的 IIC 設(shè)備是某廠商的 IIC 儲(chǔ)存器,即 24LC04,硬件 ID 為  4’b1010。至于硬件地址就是 IIC 設(shè)備在總線上辨識(shí)地址,默認(rèn)下為 3 位,即同類的 IIC 設(shè)備在同一條 IIC總線上僅允許占據(jù) 8 個(gè)而已。然而,開發(fā)板上的  24LC04  為 3’b000。最后的訪問方向位則是主機(jī)用來通知從機(jī),此刻的訪問目的是讀還是寫。

總結(jié)來說,設(shè)備地址除了訪問方向以外,前七位一般都是固定的,例如開發(fā)板的 IIC 儲(chǔ)存器 24LC04,設(shè)備地址就是  8’b1010_000_×。


IIC 總線的時(shí)序,感覺上一組完成的操作宛如是一堆拼圖。如圖 16.2 所示,那是 24LC04的寫操作,時(shí)序先填上為起始位,再來是設(shè)備地址,余下是應(yīng)答位,隨之是數(shù)據(jù)地址,然后又是應(yīng)答位,接著是寫如數(shù)據(jù),再一次應(yīng)答位,最后掛上結(jié)束位以示一次性的寫操作已經(jīng)完成。那么,寫操作的經(jīng)過如下所示:

(一)主機(jī)發(fā)送起始位;
(二)主機(jī)發(fā)送設(shè)備地址(寫);
(三)等待從機(jī)應(yīng)答;
(四)主機(jī)發(fā)送數(shù)據(jù)地址;
(五)等待從機(jī)應(yīng)答;
(六)主機(jī)發(fā)送數(shù)據(jù);
(七)等待從機(jī)應(yīng)答;
(八)主機(jī)發(fā)送結(jié)束位。

讀者稍微注意一下設(shè)備地址的最低位,筆者稍微用藍(lán)色將其高亮。由于此刻是寫操作,所以設(shè)備地址的訪問方向是“寫”,所以訪問方向位設(shè)置為 0。



圖 16.3是 24LC04 的讀時(shí)序,同樣它也是由一堆“拼圖”組合而成。相較寫操作,讀操作不僅多了許多“拼圖”,而且途中也改變?cè)L問方向。那么,讀操作的經(jīng)過如下所示:

(一)主機(jī)發(fā)送起始位;
(二)主機(jī)發(fā)送設(shè)備地址(寫);
(三)等待從機(jī)應(yīng)答;
(四)主機(jī)發(fā)送數(shù)據(jù)地址;
(五)主機(jī)發(fā)送起始位;
(六)主機(jī)發(fā)送設(shè)備地址(讀);
(七)等待從機(jī)應(yīng)答;
(八)主機(jī)讀取數(shù)據(jù);
(九)從機(jī)沒有應(yīng)答(主機(jī)無視應(yīng)答);
(十)主機(jī)發(fā)送結(jié)束位。
未進(jìn)入正題之前,請(qǐng)?jiān)试S筆者加入一些小插曲。IIC 總線是一種低速的總線,不過 IIC總線有  100Khz  還有  400Khz  兩種速率提供我們選擇,要么 100Khz,要么 400Khz,要么兩者兼施,不管哪一種《整合篇》都曾實(shí)驗(yàn)過。在此,實(shí)驗(yàn)十六會(huì)以 400Khz 的速率作為標(biāo)準(zhǔn)。

筆者曾在前面說過,IIC 總線之所以麻煩,因?yàn)?IIC 總線有大小不同的時(shí)序參數(shù)(時(shí)間參數(shù))。一般而言,時(shí)間參數(shù)都都被順序語(yǔ)言一笑而過,那是因?yàn)轫樞蛘Z(yǔ)言無法實(shí)現(xiàn)精密控時(shí)。雖然描述語(yǔ)言也可以一笑而過,但是語(yǔ)言的本質(zhì)卻不允我們這么作,如果我們選擇無視時(shí)序參數(shù)  ...  那么,打從一開始我們還是不學(xué)為好。

此外,描述 IIC 的總線時(shí)序有各種各樣的方法,但是筆者會(huì)選擇表達(dá)能力更高,控制能力更細(xì)的描述手段。我們知道 IIC 的總線時(shí)序是由一塊又一塊的拼圖拼湊而成,當(dāng)我們?cè)诮5臅r(shí)候,我們會(huì)針對(duì)各個(gè)拼圖作出局部性的描述。期間,我們也必須考慮各種時(shí)序參數(shù),如表 16.2 所示:

完整的pdf格式文檔51黑下載地址:
驅(qū)動(dòng)篇I-實(shí)驗(yàn)16.pdf (1.33 MB, 下載次數(shù): 21)



評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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