0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

可配置GPIO模擬SPI總線的設計和實現過程分析

牽手一起夢 ? 來源:電子技術 ? 作者:鄧彬偉 ? 2020-10-04 14:10 ? 次閱讀

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

1 GPIO規(guī)范

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

2 GPIO模擬SPl

2.1 SPI硬件結構

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

可配置GPIO模擬SPI總線的設計和實現過程分析

2.2 SPI時序

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

2.3 SPI寫過程模擬

采用掩碼方式實現位控制。

3 可配置GPIO設計與實現

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

3.1 GPIO配置

3.2 實現配置的可移植部分

與GPIO口尋址方式無關性代碼的實現。

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

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19047

    瀏覽量

    228511
  • 接口
    +關注

    關注

    33

    文章

    8366

    瀏覽量

    150554
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1684

    瀏覽量

    91068
收藏 人收藏

    評論

    相關推薦

    基于GPIO模擬SPI接口驅動設計與實現

    SPI總線是我們常用的串行設備接口,一般情況下我們都會適應硬件SPI接口,但有些時候當硬件端口不足時,我們也希望可以使用軟件來模擬SPI硬件
    發(fā)表于 12-07 16:21 ?6083次閱讀
    基于<b class='flag-5'>GPIO</b><b class='flag-5'>模擬</b>的<b class='flag-5'>SPI</b>接口驅動設計與<b class='flag-5'>實現</b>

    GPIO模擬I2C總線的驅動設計與實現

    I2C總線簡單方便,是我們經常使用的一種總線。但有時候我們的MCU沒有足夠多的I2C控制器來實現我們的應用,所幸我可以使用普通的GPIO引腳來模擬
    發(fā)表于 12-14 14:19 ?5246次閱讀
    <b class='flag-5'>GPIO</b><b class='flag-5'>模擬</b>I2C<b class='flag-5'>總線</b>的驅動設計與<b class='flag-5'>實現</b>

    SPI通信模式的配置過程分析

    SPI通信分析許久不更,想你們了。SPI 模式的配置SPI通信配置STM官方的芯片手冊中對于
    發(fā)表于 02-17 07:57

    SPI總線實現DSP和MCU之間的高速通信

    簡述了SPI總線協議工作時序和配置要求,通過一個成功的實例詳細介紹了使用SPI總線實現DSP與M
    發(fā)表于 11-27 15:10 ?58次下載

    基于Avalon總線可配置LCD控制器IP核的設計

    基于Avalon總線可配置LCD 控制器IP核的設計 本文討論了基于Avalon 總線流傳輸的配置LCD 顯示控制器IP 核的設計,根據自頂向下的設計思想,將IP 核進行層次功能
    發(fā)表于 02-09 09:34 ?27次下載

    一種高速可配置實時總線的開發(fā)及其應用

    一種高速可配置實時總線的開發(fā)及其應用:為滿足工業(yè)生產中對現場總線柔性可重構以及高速實時傳輸要求,討論了一種可在線配置高速實時總線的設計與
    發(fā)表于 03-18 15:56 ?20次下載

    兼容I2C總線可配置模擬輸出的PAC192

    視頻簡介:本視頻為大家介紹Microchip的上橋臂電流傳感器PAC1921,它具有兼容I2C的總線可配置模擬輸出。
    的頭像 發(fā)表于 03-26 06:17 ?4254次閱讀

    STM32F0xx_ GPIO配置詳細過程

    STM32F0xx_GPIO配置詳細過程
    的頭像 發(fā)表于 04-08 09:31 ?4515次閱讀
    STM32F0xx_ <b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>詳細<b class='flag-5'>過程</b>

    STM32的SPI接口、cubeMX軟件配置SPI接口和分析SPI相關代碼

    本文主要介紹STM32的SPI接口、cubeMX軟件配置SPI接口和分析SPI相關代碼。 STM32之S
    的頭像 發(fā)表于 09-24 14:09 ?1.6w次閱讀
    STM32的<b class='flag-5'>SPI</b>接口、cubeMX軟件<b class='flag-5'>配置</b><b class='flag-5'>SPI</b>接口和<b class='flag-5'>分析</b><b class='flag-5'>SPI</b>相關代碼

    UG-753:使用片上基準電壓源和SPI接口評估8通道、12位、可配置的ADC/DAC/GPIO AD5592R

    UG-753:使用片上基準電壓源和SPI接口評估8通道、12位、可配置的ADC/DAC/GPIO AD5592R
    發(fā)表于 05-24 13:28 ?6次下載
    UG-753:使用片上基準電壓源和<b class='flag-5'>SPI</b>接口評估8通道、12位、<b class='flag-5'>可配置</b>的ADC/DAC/<b class='flag-5'>GPIO</b> AD5592R

    stm32使用gpio模擬spi

    本文介紹如何使用STM32標準外設庫的GPIO端口模擬SPI,本例程使用PA5、PA6和PA7模擬一路SPI。
    發(fā)表于 11-23 18:21 ?64次下載
    stm32使用<b class='flag-5'>gpio</b><b class='flag-5'>模擬</b><b class='flag-5'>spi</b>

    STM32 SPI配置及深入解析

    SPI分析平時會使用硬件SPI,但是只用于應用沒有具體深入了解SPI的執(zhí)行流程,此處我采用抓取波形的方式對SPI進行了一下深入了解。STM3
    發(fā)表于 12-22 19:16 ?4次下載
    STM32 <b class='flag-5'>SPI</b><b class='flag-5'>配置</b>及深入解析

    STM32F103+TM1638 SPI驅動,非GPIO模擬SPI

    STM32F103+TM1638 SPI驅動,非GPIO模擬SPI由于最近的項目需要用到數碼管顯示。本想……廢話少說,由于種種原因(偷懶)選用了一片TM1638。現成的開發(fā)板,貌似好多
    發(fā)表于 12-22 19:22 ?13次下載
    STM32F103+TM1638 <b class='flag-5'>SPI</b>驅動,非<b class='flag-5'>GPIO</b><b class='flag-5'>模擬</b><b class='flag-5'>SPI</b>

    GPIO可配置為幾種模式 請簡述GPIO的工作模式

    GPIO可配置為三種模式:Output模式、Input模式和Analog模式
    發(fā)表于 07-24 11:27 ?5867次閱讀
    <b class='flag-5'>GPIO</b><b class='flag-5'>可配置</b>為幾種模式 請簡述<b class='flag-5'>GPIO</b>的工作模式

    軟件可配置模擬 I/O 的設計理念

    作者: Kenton Williston 曾幾何時,模擬 I/O 就是最專業(yè)、功能最固定的硬件。例如,電流驅動器和電壓傳感器是完全不同的零件,試圖顛倒其角色可謂是荒謬至極。 軟件可配置模擬 I/O
    的頭像 發(fā)表于 05-05 11:10 ?668次閱讀
    軟件<b class='flag-5'>可配置</b><b class='flag-5'>模擬</b> I/O 的設計理念