• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種提高軟件方式SPI通信速率的方法技術

    技術編號:7428793 閱讀:898 留言:0更新日期:2012-06-13 23:10
    一種提高軟件方式SPI通信速率的方法,基于DMA操作,在不通過CPU干預的方式下,將數據直接從存儲器寫到GPIO數據寄存器。通信速率不再取決于CPU性能,而是由DMA搬運數據的速度和GPIO的翻轉速度決定。因此,軟件SPI的通信速率可大大提高,系統工作效率也得到提高。

    【技術實現步驟摘要】

    本專利技術涉及一種提高軟件方式SPI通信速率的方法,尤其適用于時鐘速率有上限或產品芯片已經選定,電路結構不易改變的系統。
    技術介紹
    SPI接口的全稱是‘、erial Peripheral Interface”,意為串行外圍接口,是一種高速、全雙工、同步的通信總線,并且連線簡單,節省電路空間,近年來得到了非常廣泛的應用。目前SPI通信中,有很大一部分應用是主機采用軟件的方式(即通過GPI0(通用輸入輸出)端口產生高低電平)模擬SPI通信協議與從設備進行通信。尤其是一些比較低端的通用單片機控制器芯片MCU中常常不集成SPI模塊,主機用軟件方式模擬SPI端口的應用方式就更為普遍。圖1是目前普遍采用的軟件方式SPI方法的示意圖,目前普遍采用的軟件方式SPI 通信是首先將待發送SPI通信數據通過CPU逐位比較的方式轉換成串行數據(0/1),然后根據串行數據在GPIO端口產生SPI通信需要的時鐘驅動和數據驅動(GPI0端口翻轉),這整個過程需要在CPU控制下完成,占用了大量CPU資源。這種方法方便可行,省去了對控制器集成SPI模塊的要求也降低了硬件成本,縮短了開發周期。但是由于通過軟件方式模擬SPI通信在GPIO端口上產生翻轉需要花費大量的CPU處理時間,系統最快通信速率受限于系統工作頻率和CPU處理性能,通信速度很難提高,成為這種應用方式的瓶頸。
    技術實現思路
    本專利技術提供了一種提高軟件方式SPI通信速率的方法,大大提高了軟件方式SPI 通信速率和系統的工作效率。為了達到上述目的,本專利技術提供一種提高軟件方式SPI通信速率的方法,包含以下步驟步驟1、對單片機MCU系統進行初始化; 步驟2、設定SPI通訊協議;步驟3、建立用于將待發送SPI數據解析成GPIO端口驅動數據的解析數組; 步驟4、將待發送的SPI數據通過步驟3中的解析數組解析成用于驅動GPIO端口的驅動數組;步驟5、為DMA傳輸創建連續的存儲區; 步驟6、對DMA模塊進行正確配置,為SPI數據發送做好準備; 步驟7、啟動DMA傳輸,在GPIO端口上產生軟件模擬的SPI數據通信波形; 步驟8、檢查待發送數據是否已經全部發送完成,如果發送完成則程序退出,否則返回步驟4準備開始下一次數據傳輸。所述的步驟1中,初始化包括配置堆載、配置時鐘頻率、中斷設置、配置外設接口 GPIO和DMA模塊。所述的步驟2中,設定為在系統時鐘CLK的上升沿或者下降沿讀取SPI數據線 MOSI線上的數據,設定發送的數據是LSB低位在先或者是MSB高位在先。所述的步驟3中,解析數組是專門用于將待發送的SPI數據變換成GPIO端口驅動數據的一個映射方法。所述的步驟5中,存儲區創建于靜態隨機存儲器SRAM中。所述的步驟6中,使能DMA模塊及DMA中斷,每發送一個字節可產生一個完成中斷,然后再通過查步驟3中的解析數組表發送另一個字節。本專利技術大大提高了軟件方式SPI通信速率和系統的工作效率。附圖說明圖1是
    技術介紹
    中軟件方式SPI方法的示意圖; 圖2是通用單片機控制器芯片MCU的模塊框圖3是本專利技術的功能示意圖; 圖4是本專利技術的流程圖; 圖5是對本專利技術進行驗證的波形圖。具體實施例方式以下根據圖2 圖5,具體說明本專利技術的較佳實施例。其中圖2給出了一個通用 MCU的模塊框圖,包括CPU、只讀存儲器ROM、靜態隨機存儲器SRAM、閃存Flash、通用輸入輸出接口 GPI0、通用異步收發器UART、串行外圍接口 SPI、直接訪問存儲器DMA、計時器TIMER 和看門狗電路Watchdog等。在很多應用中,除了使用單片機MCU自帶的SPI接口模塊,也會通過GPIO來模擬其他串行總線,如SPI接口來實現某些功能。通常MCU中的模擬串行總線,如SPI,采用CPU控制GPIO方式,效率和性能比較低, 本專利技術提出一種提高軟件方式SPI通信速率的方法,基于DMA操作,在不通過CPU干預的方式下,將數據直接從存儲器寫到GPIO數據寄存器。Direct Memory Access (直接訪問存儲器)是一種高速的數據傳輸操作,允許在外部設備和存儲器之間直接讀寫數據,既不通過CPU,也不需要CPU干預,整個數據傳輸操作在一個稱為"DMA控制器“的模塊控制下進行。CPU除了在數據傳輸開始和結束時做一點處理工作外,在通信過程中CPU可以繼續進行其他的工作。這樣,在大部分時間里,CPU和 DMA、GPIO模塊處于并行操作,通信速率不再取決于系統工作頻率,而是由DMA搬運數據的速度和GPIO的翻轉速度決定。因此,軟件SPI的通信速率可大大提高,系統工作效率也得到提高。圖3是本專利技術在SPI通信應用中所處的位置,即本專利技術是對軟件方式模擬SPI方法的改進,可以代替SPI發送模塊實現高速SPI數據發送,并且可在系統時鐘不變的情況下提高軟件方式SPI發送的通信速率。如圖4所示,本專利技術提供一種提高軟件方式SPI通信速率的方法,包含以下步驟 步驟1、對單片機MCU系統進行初始化;通常MCU系統初始化包括配置堆載、配置時鐘頻率(如48MHz)、中斷設置,及部分外設接口初始化;本專利技術中,外設接口使用了 GPIO和DMA,故需要配置GPIO和DMA模塊; 步驟2、設定SPI通訊協議;系統時鐘CLK的上升沿讀取SPI數據線MOSI線上的數據,低位在先; 本專利技術以SPI模擬為例,SPI接口有4個信號M0SI (主出從入),MIS0 (主入從出),CLK (SPI時鐘),SS (從設備選擇),SPI協議中可以規定為在CLK上升沿或者下降沿讀取MOSI 線上的數據,也可以選擇發送的數據是LSB (低位)在先還是MSB (高位)在先;步驟3、建立用于將待發送SPI數據解析成GPIO端口驅動數據的解析數組; 這個解析數組是專門用于將待發送的SPI數據變換成GPIO端口驅動數據的一個映射方法,是DMA搬運之前對待發送數據進行預處理的一個關鍵步驟,建立這個數組的步驟如下模擬SPI發送4bit數據0000b,GPI0數據寄存器(假設GPIO共8個引腳,本專利技術的實施例中用了 GPIO的第3、4號引腳,分別為時鐘線CCK、數據線M0SI,如果一個0x00表示GPIO 的8個引腳輸出,可以看到本實施例中只有第3、4號信號在翻轉)應該順序寫入的數據為 0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,對于小端 MCU,DMA 源數據區用字方式訪問時應該存儲的源數據為0x04000400,0x04000400,而對于大端MCU,DMA源數據區用字方式訪問時應該存儲的源數據為0x00040004,0x00040004。發送l_f可類推,創建DMA模擬SPI 發送4bit (Ο-f)的解析數組查表如下(OxOO-Oxff可由下表組合而成,下表以小端MCU為例)權利要求1.一種提高軟件方式SPI通信速率的方法,其特征在于,該方法包含以下步驟步驟1、對單片機MCU系統進行初始化;步驟2、設定SPI通訊協議;步驟3、建立用于將待發送SPI數據解析成GPIO端口驅動數據的解析數組;步驟4、將待發送的SPI數據通過步驟3中的解析數組解析成用于驅動GPIO端口的驅動數組;步驟5、為DMA傳輸創建連續的存儲區;步驟6、對DMA模塊進行正確配置,為SPI數據發送做好本文檔來自技高網
    ...

    【技術保護點】

    【技術特征摘要】

    【專利技術屬性】
    技術研發人員:陳誠陳玲
    申請(專利權)人:上海愛信諾航芯電子科技有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    相關領域技術
    主站蜘蛛池模板: 无码人妻久久一区二区三区免费| 亚洲日韩精品无码专区加勒比☆| 人妻无码一区二区三区四区| 日韩AV片无码一区二区不卡| 狠狠躁狠狠躁东京热无码专区| 无码人妻AⅤ一区二区三区| 国产AV无码专区亚洲AV麻豆丫| 亚洲人成无码网站久久99热国产| 久久久久成人精品无码中文字幕 | 九九无码人妻一区二区三区| 国产精品成人无码久久久久久| 欧洲人妻丰满av无码久久不卡| YY111111少妇无码理论片| 91精品日韩人妻无码久久不卡| 精品久久久久久无码人妻蜜桃| 亚洲国产成人精品无码区花野真一| 亚洲欧洲日产国码无码网站 | 久久精品无码一区二区三区不卡| 亚洲AV无码成人专区片在线观看| 韩国无码AV片在线观看网站| 久久久无码精品亚洲日韩按摩 | 中文字幕人妻无码一夲道| 日韩精品无码人妻一区二区三区| 亚洲一区二区三区无码国产| 国产精品无码av在线播放| 亚洲中文字幕伊人久久无码| 无码人妻精品一区二区三区不卡| 无码人妻丰满熟妇啪啪网站| 无码av免费网站| 亚洲一区二区三区无码国产| 人妻丰满熟妇无码区免费 | 中文有码无码人妻在线| 久久老子午夜精品无码怎么打| 国模无码人体一区二区| 亚洲欧洲日产国码无码网站| 亚洲爆乳精品无码一区二区三区 | 亚洲精品无码久久毛片波多野吉衣| 无码无遮挡又大又爽又黄的视频| 国产精品va无码一区二区| 久久国产加勒比精品无码| 无码一区二区三区在线观看 |