欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

支持主從模式的spi接口的制作方法

文檔序號:8395828閱讀:1025來源:國知局
支持主從模式的spi接口的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及SPI (Serial Peripheral interface串行外圍設(shè)備接口)接口領(lǐng)域,特別是涉及一種支持主從模式的SPI接口。
【背景技術(shù)】
[0002]SPI總線是Motorola公司推出的一種高速的,全雙工,同步的通信總線。由于簡單易用的特性,如今越來越多的芯片集成了這種通信協(xié)議,廣泛的應(yīng)用于通信電子、計算機技術(shù)領(lǐng)域。SPI接口主要應(yīng)用在外圍設(shè)置FLASHRAM (閃速存儲器)、網(wǎng)絡(luò)控制器、IXD (液晶屏幕)顯示驅(qū)動器、A/D轉(zhuǎn)換器和MCU (微控制器)等。
[0003]SPI模塊使用4條線:串行時鐘線(SCLK)、主設(shè)備輸入/從設(shè)備輸出數(shù)據(jù)線(MIS0)、主設(shè)備輸出/從設(shè)備輸入數(shù)據(jù)線(MOSI)和低電平有效的從設(shè)備選擇線(NSS)。在主設(shè)備輸出時鐘信號的驅(qū)動下,數(shù)據(jù)按位傳輸,MISO與MOSI同時傳輸,為全雙工通信。
[0004]SPI模塊為了和外設(shè)進(jìn)行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進(jìn)行配置,時鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果CPOL=O,串行同步時鐘的空閑狀態(tài)為低電平;如果CPOL=I,串行同步時鐘的空閑狀態(tài)為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進(jìn)行數(shù)據(jù)傳輸。如果CPHA=O,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=I,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI主模塊和與之通信的外接設(shè)備時鐘相位和極性應(yīng)該—致。
[0005]目前市場上主流SPI設(shè)備,傳輸速度一般為幾Mbps(兆位/秒)。

【發(fā)明內(nèi)容】

[0006]本發(fā)明要解決的技術(shù)問題是提供一種支持主從模式的SPI接口,能夠?qū)崿F(xiàn)芯片與外部設(shè)備間全雙工的,同步串行數(shù)據(jù)傳送功能。
[0007]為解決上述技術(shù)問題,本發(fā)明的支持主從模式的SPI接口,包括:
[0008]—鏈路層,用于數(shù)據(jù)輸入和輸出的傳輸;
[0009]一控制寄存器,與所述鏈路層相連接,用于配置收發(fā)數(shù)據(jù)字節(jié)數(shù)、中斷使能、從設(shè)備16字節(jié)使能、輸出全零使能和主模式傳輸啟動;
[0010]一配置寄存器,與所述鏈路層相連接,用于配置主從模式選擇、MSB/LSB (最高有效位/最低有效位)選擇、極性、相位和主模式時鐘分頻;
[0011]一狀態(tài)寄存器,與所述鏈路層相連接,用于寄存操作完成標(biāo)志和中斷標(biāo)志;
[0012]—從模式握手寄存器,其輸入端與一串轉(zhuǎn)并接口的輸出端相連接,其輸出端與一并轉(zhuǎn)串接口的輸入端相連接,僅在從模式下可見;同時作為一個字節(jié)的數(shù)據(jù)寄存器,用于寄存發(fā)送和接收從模式下,每次收發(fā)的首字節(jié);
[0013]一 16字節(jié)數(shù)據(jù)寄存器,其輸入端與所述串轉(zhuǎn)并接口的輸出端相連接,其輸出端與所述并轉(zhuǎn)串接口的輸入端相連接,為16個可尋址數(shù)據(jù)寄存器,發(fā)送和接收共用,每次發(fā)送數(shù)據(jù)的同時,接收新的數(shù)據(jù);
[0014]所述并轉(zhuǎn)串接口,與所述鏈路層相連接,用于將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù);
[0015]所述串轉(zhuǎn)并接口用于將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。
[0016]所述配置寄存器在上電初始化過程中完成配置,在下電前不會二次更改。
[0017]所述從模式握手寄存器用于存放上一筆數(shù)據(jù)收發(fā)完成標(biāo)志。
[0018]本發(fā)明能夠?qū)崿F(xiàn)MCU接口到SPI接口設(shè)備的數(shù)據(jù),地址和控制信號的轉(zhuǎn)化;實現(xiàn)芯片與外部設(shè)備間全雙工的,同步串行數(shù)據(jù)傳送功能;能夠兼容市場上主流SPI產(chǎn)品,并且,在主從設(shè)備都是采用本發(fā)明SPI接口設(shè)計的前提下,主從對接,能夠達(dá)到幾十Mbps的傳輸速率。
[0019]本發(fā)明支持SPI主從模式,串口時鐘頻率可調(diào),串口時鐘極性和相位可調(diào),串口MSB/LSB 可調(diào)。
【附圖說明】
[0020]下面結(jié)合附圖與【具體實施方式】對本發(fā)明作進(jìn)一步詳細(xì)的說明:
[0021]附圖是所述支持主從模式的SPI接口結(jié)構(gòu)框圖。
【具體實施方式】
[0022]SPI接口通過4個引腳與外部器件相連:
[0023]MIS0,主設(shè)備輸入/從設(shè)備輸出引腳。該引腳在從模式下發(fā)送數(shù)據(jù),在主模式下接收數(shù)據(jù)。
[0024]M0SI,主設(shè)備輸出/從設(shè)備輸入引腳。該引腳在主模式下發(fā)送數(shù)據(jù),在從模式下接收數(shù)據(jù)。
[0025]SCK,串口時鐘,作為主設(shè)備的輸出,從設(shè)備的輸入。
[0026]SSn,從設(shè)備選擇。這是一個可選的引腳,用來選擇主/從設(shè)備。它的功能是用來作為“片選引腳”,用來選中從設(shè)備。從設(shè)備只有在被選中的前提下,才能夠接收主設(shè)備發(fā)送過來的時鐘和數(shù)據(jù)。
[0027]傳輸格式:
[0028]SPI接口無論主從模式,均支持可配置的時鐘極性(CPOL)和相位(CPHA)。CPOL決定端口時鐘是正相還是反相;CPHA決定第一個還是第二個時鐘沿采數(shù)據(jù)。主設(shè)備和從設(shè)備進(jìn)行通信,時鐘極性(CPOL)和相位(CPHA)必須保持一致。
[0029]CPHA=O 傳輸:
[0030]SCK的第一個邊沿用于對MISO和MOSI的數(shù)據(jù)進(jìn)行采樣。對有些設(shè)備而言,當(dāng)從設(shè)備被選中時,第一個數(shù)據(jù)比特立刻有效。在這種模式下,第一個SCK邊沿在SSn變低后半個時鐘周期后發(fā)出。半個時鐘周期后,SCK第二個邊沿出現(xiàn),第二個比特位傳輸?shù)綌?shù)據(jù)線上。同時第一個SCK周期采樣到的比特移位到移位寄存器中。SCK重復(fù)8個周期發(fā)送一個字節(jié)數(shù)據(jù)。
[0031]CPHA=I 傳輸:
[0032]有些設(shè)備要求第一個SCK邊沿傳輸?shù)谝粋€數(shù)據(jù)位到數(shù)據(jù)線上,第二個時鐘邊沿采樣數(shù)據(jù)。這種模式下,需要在開始傳輸操作之前設(shè)置CPHA為I。
[0033]第一個SCK邊沿在SSn為低的半個SCK時鐘周期后出現(xiàn)。第一個時鐘邊沿使從SPI設(shè)備傳輸?shù)谝粋€數(shù)據(jù)位到數(shù)據(jù)線上。半個SCK周期之后,第二個SCK邊沿出現(xiàn),此邊沿用于主設(shè)備和從設(shè)備鎖存數(shù)據(jù)。當(dāng)?shù)谌齻€邊沿發(fā)生時,上一個收到的數(shù)據(jù)位移位到SPI移位寄存器(即16字節(jié)數(shù)據(jù)寄存器)。同時,下一位數(shù)據(jù)被發(fā)送到SPI數(shù)據(jù)線上。
[0034]SPI接口主模式的波特率由所述配置模塊(SPICFG)的CLK (時鐘)控制分頻系數(shù),將CPU時鐘分頻后產(chǎn)生。SPI接口從模式的波特率由外接的主模式控制,最快可支持兩倍系統(tǒng)時鐘頻率。
[0035]結(jié)合附圖所不,所述支持主從模式的SPI接口,包括:一鏈路層,一控制寄存器,一配置寄存器,一狀態(tài)寄存器,一從模式握手寄存器,一 16字節(jié)數(shù)據(jù)寄存器,一并轉(zhuǎn)串接口,一串轉(zhuǎn)并接口。
[0036]所述鏈路層,從模式的時鐘為SCKs,從模式的片選輸入為SSnS ;主模式的時鐘為SCKm,主模式的片選輸出為SSnm。
[0037]所述控制寄存器(SPICTRL),共8個bit (比特),從高到低依次是:DBC[2:0],IRQEN, BULKOP, SL_DBC_16, TXb, SCGO0
[0038]DBC [3:0], Data數(shù)據(jù)計數(shù)器,用于指示一個SPI接口周期發(fā)送接收的數(shù)據(jù)數(shù)量。數(shù)值范圍O到15。傳輸?shù)淖止?jié)數(shù)等于所述控制寄存器設(shè)置的數(shù)值加I。
[0039]IRQEN,SPI中斷允許。O:不允許SPI中斷;1:允許SPI中斷。
[0040]BULKOP, BULK (塊操作)模式允許。BULKOP=O,傳輸結(jié)束后 SPI_S 無效;BULK0P=1,SSn將保持直到BULKOP=O操作完成。BULK僅支持主(Master)模式。
[0041]SL_DBC_16,從模式下有效,傳輸最大字節(jié)數(shù)為17個,包括16個數(shù)據(jù)字節(jié)和一個握手子節(jié)。
[0042]TXb,當(dāng)SPI接口工作于半雙工模式,只接收,將輸出數(shù)據(jù)線置為零。
[0043]SCGO, SPI傳輸啟動。SCG0=0,SPI接口傳輸未啟動;SCGO=I,啟動SPI接口傳輸。SPI接口傳輸過程中對此位的寫入操作無效。所述控制寄存器的其他位在傳輸中可以被修改。
[0044]所述配置寄存器,共6個bit,從高到低依次是:SLAVE,LSB,CPHA,CPOL,CLKDIV[I:
O] O
[0045]SLAVE,為主從模式選擇。SLAVE=O:選擇SPI接口主模式;SLAVE=1,選擇SPI從模式。
[0046]LSB,為 MSB/LSB 選擇。LSB=O, MSB (Most Significant Bit)先發(fā)送;LSB=1,LSB(LeastSignificant Bit)先發(fā)送。
[0047]CPHA,為時鐘相位。
[0048]CP0L,為時鐘極性,控制沒有數(shù)據(jù)傳輸時空閑狀態(tài)電平。CPOL=O,為空閑時,時鐘低電平;CP0L=1,為空閑時,時鐘高電平。
[0049]CLKDIV,為SPI接口主模式時鐘分頻系數(shù)。其中,
[0050]OOB 為 CPU 時鐘;
[0051 ]OlB為CPU時鐘2分頻;
[0052]1B為CPU時鐘4分
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
台北市| 黔西| 论坛| 郴州市| 罗定市| 祁东县| 陵水| 北安市| 华亭县| 麻阳| 宾川县| 乃东县| 临清市| 靖安县| 平乡县| 习水县| 将乐县| 南木林县| 黄浦区| 凤冈县| 汕尾市| 吴忠市| 栾城县| 榆社县| 江永县| 夏邑县| 玉山县| 西安市| 磐石市| 虹口区| 荔浦县| 和田市| 西青区| 玛多县| 桂东县| 阆中市| 来凤县| 镇平县| 和龙市| 龙泉市| 肇源县|