<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式系統中可配置式GPIO模擬SPI總線(xiàn)方法

嵌入式系統中可配置式GPIO模擬SPI總線(xiàn)方法

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

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

本文引用地址:http://dyxdggzs.com/article/149407.htm

1 GPIO規范

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

2 GPIO模擬SPl

2.1 SPI硬件結構

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

2.2 SPI時(shí)序

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

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

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

3 可GPIO設計與實(shí)現

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

3.1 GPIO配置

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

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

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

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


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>