<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Nios II的AT24C02接口電路設(shè)計(jì)

          基于Nios II的AT24C02接口電路設(shè)計(jì)

          作者: 時(shí)間:2009-12-18 來(lái)源:網(wǎng)絡(luò) 收藏

          2.2 A器件讀寫時(shí)序
          圖2為寫(讀)A器件中指定地址存儲(chǔ)單元的數(shù)據(jù)幀格式,圖2(a)為寫操作的幀格式,(b)為讀操作幀格式。要想把一個(gè)字節(jié)數(shù)據(jù)發(fā)送到器件中(或從器件中讀取一個(gè)字節(jié)數(shù)據(jù))除了給出具體的地址信息之外,還要給出該器件的控制信息:首先由控制器發(fā)出“啟動(dòng)”信號(hào),啟動(dòng)I2C總線的通信,然后發(fā)送一個(gè)控制字節(jié),前7位為器件的片選地址,最后1位為讀寫控制位,“0”表示寫,“1”表示讀。當(dāng)傳完控制字節(jié)之后,掛在I2C總線的所有的器件比較控制字節(jié)片選地址(前7位)是否與自已的物理地址一致,如一致,則發(fā)一個(gè)應(yīng)答信號(hào)。控制器接收到應(yīng)答信號(hào)之后,再發(fā)器件內(nèi)部存儲(chǔ)單元地址和其他的信息。

          3 A讀寫控制設(shè)計(jì)
          3.1 寄存器組定義
          為了實(shí)現(xiàn)ⅡI能與外部設(shè)備進(jìn)行交換數(shù)據(jù),首先要在AT24C08讀寫控制中定義寄存器,包括數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器。表4-1AT24C02A讀寫控制器內(nèi)部寄存器定義的情況:State_Re為此電路的狀態(tài)寄存器,最低位有效,用來(lái)表示接口電路的狀態(tài),“1”表示接口處于“忙”狀態(tài)中,此時(shí)表示接口正處于讀寫外部設(shè)備(AT24C02A)中,不能對(duì)此控制接口進(jìn)行操作,只到接口處于“0”狀態(tài)時(shí)為止;Address_Re為數(shù)據(jù)寄存器,用于存放Ⅱ要訪問(wèn)AT24C02A器件內(nèi)部單元的地址數(shù)據(jù);Control_Re為控制寄存器,控制著接口電路啟動(dòng)或停止,“1”為啟動(dòng),“0”停止;Data_Re為數(shù)據(jù)寄存器,用于存放傳輸?shù)臄?shù)據(jù);Con_r/w_Re為控制寄存器,控制數(shù)據(jù)的傳輸方向,高電平為讀(輸入),低電平為寫(輸出)。

          3.2 邏輯功能模塊設(shè)計(jì)
          在接口電路中,除了定義接口電路的寄存器組之外,還要利用硬件描述語(yǔ)言來(lái)描述接口電路要實(shí)現(xiàn)的功能,即邏輯功能模塊的設(shè)計(jì)。接口電路要完成的主要功能是,用接口電路產(chǎn)生如圖3所示的時(shí)序,成功讀寫外部存儲(chǔ)器件。在本設(shè)計(jì)中,采用了有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn)這一功能,圖4為本設(shè)計(jì)的各個(gè)狀態(tài)之間轉(zhuǎn)換狀態(tài)圖:當(dāng)Ⅱ要交換數(shù)據(jù)時(shí),首先要讀State_Re的值,并判定電路是否為“空閑”狀態(tài),只有狀態(tài)機(jī)處在空閑狀態(tài),才允許進(jìn)行一次讀寫操作,并修改狀態(tài)寄存器的值為“忙”狀態(tài);當(dāng)完成一次讀寫操作時(shí),修改狀態(tài)寄存器的值為“閑”狀態(tài)。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();