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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)中可配置式GPIO模擬SPI總線方法

          嵌入式系統(tǒng)中可配置式GPIO模擬SPI總線方法

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

          處理器中有相當(dāng)一部分處理器不帶接口,但基丁接口的設(shè)備非常豐富,此外,設(shè)備的不同以及處理器對(duì)口位尋址是否支持各處理器各有不同,因而不同處理器中軟件也各不相同。若能提供一種通用可可移植的SPI的驅(qū)動(dòng)則能很方便快捷的訪問(wèn)SPI設(shè)備,從而提高整個(gè)的開(kāi)發(fā)效率。本文針對(duì)GPIO口位尋址與否給出方面,給出了一種可GPIOSPI并詳細(xì)介紹了其設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,且具有代碼小可移植性強(qiáng)使用方便等特點(diǎn)。

          本文引用地址:http://www.ex-cimer.com/article/149407.htm

          1 GPIO規(guī)范

          SPI是一個(gè)全雙工的串行接口。它設(shè)計(jì)成可以在一個(gè)給定上處理多個(gè)互聯(lián)的主機(jī)和從機(jī)。在一定數(shù)據(jù)傳輸過(guò)程中,接口上只能有一個(gè)豐機(jī)和一個(gè)從機(jī)能夠通信。在一次數(shù)據(jù)傳輸中,主機(jī)總是向從機(jī)發(fā)送一個(gè)字節(jié)數(shù)據(jù),而從機(jī)也總是向主要發(fā)送一個(gè)字節(jié)數(shù)據(jù)??梢允筂CU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。由于SPI總線一共只需3~4位數(shù)據(jù)線和控制線即可實(shí)現(xiàn)與具有SPI總線接口功能的各種I/O器件進(jìn)行接口,而擴(kuò)展并行總線則需要8根數(shù)據(jù)線、8~16位地址線、2~3位控制線,岡此,采用SPI總線接口可以簡(jiǎn)化電路設(shè)計(jì),節(jié)省很多常規(guī)電路中的接口器件和I/O口線,提高設(shè)計(jì)的可靠性。在基于SPI總線接口構(gòu)成的通信網(wǎng)絡(luò)中,通信可由主節(jié)點(diǎn)發(fā)起,也可由從節(jié)點(diǎn)發(fā)起。當(dāng)主節(jié)點(diǎn)發(fā)起通信時(shí),它可主動(dòng)對(duì)從節(jié)點(diǎn)進(jìn)行數(shù)據(jù)的讀寫(xiě)操作。工作過(guò)程敘述如下:首先選中要與之通信的從節(jié)點(diǎn)(通常片選端為低有效),而后送出時(shí)鐘信號(hào),讀取數(shù)據(jù)信息的操作將在時(shí)鐘的上升沿(或下降沿)進(jìn)行。每送出八個(gè)時(shí)鐘脈沖,從節(jié)點(diǎn)產(chǎn)生一個(gè)中斷信號(hào),該中斷信號(hào)通知上節(jié)點(diǎn)一個(gè)字節(jié)已完整接收,可發(fā)送下一個(gè)字節(jié)的數(shù)據(jù)。SPI接口網(wǎng)絡(luò)主從點(diǎn)需完成給出片選信號(hào)及時(shí)鐘信號(hào),它可主動(dòng)的與各從節(jié)點(diǎn)進(jìn)行信息的交流;而在從節(jié)點(diǎn)主動(dòng)要求服務(wù)的情況下,它卻是一種半主動(dòng)的形式。由SPI接口技術(shù)構(gòu)成的網(wǎng)絡(luò)接口信號(hào)線(CLK、MOSI、MISO、/SS和INT)如果輔之以相應(yīng)完備的通信協(xié)議,其服務(wù)功能必然會(huì)增強(qiáng),相比于485等主從式分布網(wǎng)絡(luò)而言,其通信速率也應(yīng)有較人的提高。

          2 GPIO模擬SPl

          2.1 SPI硬件結(jié)構(gòu)

          SPI接口在內(nèi)部硬件實(shí)際上足兩個(gè)簡(jiǎn)單的移位寄存器,傳輸?shù)臄?shù)據(jù)為8位,在主器件產(chǎn)生的從器件使能信號(hào)和移位脈沖下,按位傳輸,高位在前,低位在后,SPI內(nèi)部硬件結(jié)構(gòu)如圖1所示。

          2.2 SPI時(shí)序

          在SCLK的下降沿上數(shù)據(jù)改變,同時(shí)一位數(shù)據(jù)被存入移位寄存器,SPI時(shí)序如圖2所示。

          2.3 SPI寫(xiě)過(guò)程模擬

          采用掩碼方式實(shí)現(xiàn)位控制。

          3 可GPIO設(shè)計(jì)與實(shí)現(xiàn)

          GPIO端口可分為支持位尋址和不支持位尋址,需由程序移植人員根據(jù)處理器及編譯器情況定義GPIO對(duì)應(yīng)的SPI接口,相關(guān)文件在SPIHARD.H中。

          3.1 GPIO配置

          3.2 實(shí)現(xiàn)配置的可移植部分

          與GPIO口尋址方式無(wú)關(guān)性代碼的實(shí)現(xiàn)。

          以上實(shí)現(xiàn)在EPSON S1C33L11、AT89C52、SPCE061A及PHILIPS ARM LPC2106上都得到驗(yàn)證。

          linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();