專(zhuān)利名稱(chēng):串行外圍接口主設(shè)備的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及一種控制數(shù)據(jù)傳輸?shù)脑O(shè)備,尤其涉及一種 串行外圍接口主設(shè)備。
背景技術(shù):
計(jì)算機(jī)系統(tǒng)常需連接多種外圍設(shè)備,然而各外圍設(shè)備的規(guī) 格或有所異,為控制多種相異的外圍設(shè)備,需有一接口居中管 理外圍設(shè)備與計(jì)算機(jī)系統(tǒng)間的數(shù)據(jù)傳輸,其中較常用者如串行
外圍接口 (Serial Peripheral interface, SPI)。相較于其它傳輸規(guī) 格,SPI具有較佳的傳輸效率,可支持全雙工數(shù)據(jù)通信方式,且 較易實(shí)現(xiàn)。SPI主要應(yīng)用在EEPROM, FLASH, AD轉(zhuǎn)換器,還 有數(shù)字信號(hào)處理器和數(shù)字信號(hào)譯碼器之間。
SPI接口是以主從方式工作的,這種模式通常有一個(gè)主設(shè)備 和一個(gè)或多個(gè)從設(shè)備,其接口包括以下四種信號(hào)時(shí)鐘信號(hào) (SCK)、主出/從入信號(hào)(Master Output/Slave Input, MOSI)、主 入/從出信號(hào)(Master Input/ Slave Output, MISO)與從設(shè)備選擇 信號(hào)(Slave Select, SS)。其中,時(shí)鐘信號(hào)SCK由主設(shè)備提供并 發(fā)送至從設(shè)備。主出/從入信號(hào)MOSI和主入/從出信號(hào)MISO則基 于此時(shí)鐘信號(hào)SCK完成數(shù)據(jù)的雙向傳輸。數(shù)據(jù)透過(guò)主出/從入信 號(hào)MOSI線由主設(shè)備輸出至從設(shè)備,數(shù)據(jù)在時(shí)鐘信號(hào)SCK上沿或 下沿時(shí)改變,在緊接著的下沿或上沿被讀取,輸入也使用同樣 原理。這樣,在至少8次時(shí)鐘信號(hào)的改變(上沿和下沿為一次),
就可以完成8位數(shù)據(jù)的傳輸。從設(shè)備選擇信號(hào)SS是控制從設(shè)備 是否被選中的,也就是說(shuō)只有從設(shè)備選擇信號(hào)SS為預(yù)先規(guī)定的 使能信號(hào)時(shí)(高電位或低電位),對(duì)此從設(shè)備的操作才有效。這
就允許在同 一總線上連接多個(gè)SPI設(shè)備成為可能。
SPI通常用于連接內(nèi)存,如閃存(Flash ROM)、電可擦除可 編程只讀存儲(chǔ)器(EEPROM)等,因此其SPI主設(shè)備的數(shù)據(jù)傳輸多 配合內(nèi)存的規(guī)格來(lái)設(shè)計(jì)。圖l所示為現(xiàn)有技術(shù)的一 串行外圍接口 (SPI)主設(shè)備與 一 充當(dāng)SPI從設(shè)備的SPI內(nèi)存進(jìn)行數(shù)據(jù)傳輸?shù)氖?意圖。SPI主設(shè)備210及SPI內(nèi)存220各包括一移位寄存器216, 226 以及一數(shù)據(jù)緩存器215, 225。 SPI主設(shè)備210還包括一控制模塊 217,其輸出 一從設(shè)備選擇信號(hào)SS和一時(shí)鐘信號(hào)SCK至SPI內(nèi)存 220的控制邏輯227以控制數(shù)據(jù)的傳輸。數(shù)據(jù)緩存器215, 225為 先進(jìn)先出(First In First Out, FIFO)緩沖器,分別存儲(chǔ)SPI主設(shè)備 210和SPI內(nèi)存220將要發(fā)出的數(shù)據(jù)和接收的數(shù)據(jù)。通常,SPI內(nèi) 存2 2 0的數(shù)據(jù)緩存器2 2 5接收的數(shù)據(jù)會(huì)在完成數(shù)據(jù)傳輸后寫(xiě)入 SPI內(nèi)存220的主存(main memory )。移位寄存器216, 226分別 依據(jù)時(shí)鐘信號(hào)SCK將接收的數(shù)據(jù)左移或右移輸出。
圖2所示為SPI主設(shè)備210自SPI內(nèi)存220讀取數(shù)據(jù)的時(shí)序圖。 如圖2所示,SPI主設(shè)備210需要讀取數(shù)據(jù)時(shí),控制模塊217會(huì)首 先拉低從設(shè)備選擇信號(hào)SS,然后依序輸入操作指令字節(jié)及地址 字節(jié)給數(shù)據(jù)緩存器215。移位寄存器216在時(shí)鐘信號(hào)SCK的控制 下將指令字節(jié)及地址字節(jié)由主出/從入信號(hào)線MOSI移入移位寄 存器226中。此時(shí),主入/從出信號(hào)MISO為高阻狀態(tài)。SPI內(nèi)存 220的控制邏輯227隨即啟動(dòng),并依據(jù)接收的指令和地址輸出相 應(yīng)的數(shù)據(jù),該數(shù)據(jù)在時(shí)鐘信號(hào)SCK的控制下通過(guò)移位寄存器226 由主入/從出信號(hào)MISO移入移位寄存器216。由上述的描述可 知,SPI主設(shè)備210與SPI內(nèi)存220之間僅進(jìn)行單向的數(shù)據(jù)傳輸。 然而,SPI主設(shè)備210在更多的應(yīng)用中都需要與常規(guī)SPI從設(shè)備連 接以進(jìn)行數(shù)據(jù)交換。在這種情形下,設(shè)計(jì)者必須另外設(shè)計(jì)出可 以適用于雙向數(shù)據(jù)傳輸?shù)腟PI主設(shè)備,以正常接收常規(guī)SPI設(shè)備
發(fā)出的數(shù)據(jù)。
實(shí)用新型內(nèi)容
本實(shí)用新型的目的在于提供一種串行外圍接口主設(shè)備,其 不但可以與串行外圍接口內(nèi)存建立連接,還可以與串行外圍接 口設(shè)備連接進(jìn)行數(shù)據(jù)交換。
本實(shí)用新型提供一種串行外圍接口主設(shè)備,用以與一從屬
設(shè)備連接以進(jìn)行數(shù)據(jù)傳輸,所述串行外圍接口主設(shè)備包括一 寄存器組,存儲(chǔ)控制串行外圍接口傳輸?shù)膮?shù)與數(shù)據(jù); 一移位 寄存器,用以將數(shù)據(jù)移入或移出所述串行外圍接口主設(shè)備;以 及一控制單元,根據(jù)一設(shè)備識(shí)別信號(hào)判斷所述串行外圍接口主 設(shè)備所連接的從屬設(shè)備是一 串行外圍接口內(nèi)存還是一常規(guī)串行 外圍接口設(shè)備。若所述從屬設(shè)備為常規(guī)串行外圍接口設(shè)備,所 述控制單元依據(jù)所述寄存器組存數(shù)的參數(shù)與數(shù)據(jù)控制移位寄存 器在將數(shù)據(jù)移出所述串行外圍接口主設(shè)備的同時(shí)接收所述常規(guī) 串行外圍接口設(shè)備送出的數(shù)據(jù)。
本實(shí)用新型所述的串行外圍接口主設(shè)備設(shè)有一第一端口與 一第二端口,且所述寄存器組包括一控制寄存器,其定義一端 口選擇位,用以標(biāo)示所述串行外圍接口主設(shè)備是通過(guò)所述第一 端口還是通過(guò)所述第二端口與從屬設(shè)備建立連接,其中,當(dāng)端 口選擇位致能時(shí),標(biāo)示所述串行外圍接口主設(shè)備通過(guò)第一端口 與所述從屬設(shè)備連接,當(dāng)端口選擇位失效時(shí),標(biāo)示串行外圍接 口主設(shè)備通過(guò)第二端口與所述從屬設(shè)備連接。
本實(shí)用新型所述的串行外圍接口主設(shè)備,當(dāng)所述串行外圍 接口主設(shè)備通過(guò)第 一端口與所述從屬設(shè)備連接時(shí),所述控制單 元依據(jù)所述設(shè)備識(shí)別信號(hào)判斷所述從屬設(shè)備是一 串行外圍接口 內(nèi)存還是一常規(guī)串行外圍接口設(shè)備。
本實(shí)用新型所述的串行外圍接口主設(shè)備,當(dāng)所述串行外圍 接口主設(shè)備通過(guò)第二端口與所述從屬設(shè)備連接時(shí),所述控制單
元認(rèn)為所述從屬設(shè)備為 一常規(guī)串行外圍4矣口設(shè)備。
本實(shí)用新型所述的串行外圍接口主設(shè)備,所述移位寄存器
包括 一接收移位寄存器,接收從屬設(shè)備輸出的數(shù)據(jù)并移入所 述寄存器組;以及一輸出移位寄存器,將寄存器組中的數(shù)據(jù)移 出所述串行外圍接口主設(shè)備。
本實(shí)用新型所述的串行外圍接口主設(shè)備,所述寄存器組還 包括 一狀態(tài)寄存器,存儲(chǔ)串行外圍接口傳輸?shù)臓顟B(tài)參數(shù);一 數(shù)據(jù)緩存器,暫存將要傳送給移位寄存器的數(shù)據(jù)及自移位寄存 器接收的數(shù)據(jù); 一指令寄存器,存儲(chǔ)串行外圍接口傳輸數(shù)據(jù)的 指令;以及一地址寄存器,存儲(chǔ)串行外圍接口傳輸數(shù)據(jù)的地址。
本實(shí)用新型所述的串行外圍接口主設(shè)備,所述移位寄存器 與所述數(shù)據(jù)緩存器之間還設(shè)有 一 緩存器。
本實(shí)用新型所述的串行外圍接口主設(shè)備,所述控制寄存器 定義一頻率分割位,所述控制單元依據(jù)所述頻率分割位的值改 變串行外圍接口傳輸?shù)念l率。
本實(shí)用新型提供一種串行外圍接口主設(shè)備,用以與一從屬 設(shè)備連接以進(jìn)行數(shù)據(jù)傳輸,所迷串行外圍接口主設(shè)備包括一 控制寄存器,存儲(chǔ)控制串行外圍接口傳輸?shù)膮?shù)與數(shù)據(jù); 一移 位寄存器,用以將數(shù)據(jù)移入或移出所述串行外圍接口主設(shè)備; 以及一控制單元,根據(jù)一設(shè)備識(shí)別信號(hào)判斷所述串行外圍接口 主設(shè)備所連接的從屬設(shè)備是一 串行外圍接口內(nèi)存還是一全球定 位系統(tǒng)接收機(jī)。若所述從屬設(shè)備為全球定位系統(tǒng)接收機(jī),所述 控制單元依據(jù)控制寄存器中存儲(chǔ)的參數(shù)與數(shù)據(jù)控制移位寄存器 在將數(shù)據(jù)移出所述串行外圍接口主設(shè)備的同時(shí)接收所述全球定 位系統(tǒng)接收機(jī)送出的數(shù)據(jù)。
本實(shí)用新型所述的串行外圍接口主設(shè)備,當(dāng)所述串行外圍 接口主設(shè)備所連接的從屬設(shè)備為一全球定位系統(tǒng)接收機(jī)時(shí),所 述控制單元通過(guò)移位寄存器輸出的數(shù)據(jù)為用于配置所述全球定 位系統(tǒng)接收機(jī)的參數(shù)信息。
由于在本實(shí)用新型的串行外圍接口主設(shè)備在進(jìn)行數(shù)據(jù)傳輸 之前會(huì)通過(guò)端口選擇位及設(shè)備識(shí)別信號(hào)判斷其連接的從屬設(shè)備 的類(lèi)型,并依據(jù)判斷結(jié)果來(lái)控制數(shù)據(jù)的傳輸,因而可兼容支持 多種從屬設(shè)備。
本實(shí)用新型所述的串行外圍接口主設(shè)備,可以解決現(xiàn)有技
術(shù)中能夠支持SPI內(nèi)存的SPI主設(shè)備與常規(guī)SPI設(shè)備連接進(jìn)行數(shù)
據(jù)傳輸時(shí)可能遺失數(shù)據(jù)的問(wèn)題,并且容易實(shí)現(xiàn)。
圖l為傳統(tǒng)串行外圍接口主設(shè)備與串行外圍接口內(nèi)存連接 的示意圖。
圖2為圖l所示的傳統(tǒng)串行外圍接口主設(shè)備進(jìn)行數(shù)據(jù)傳輸時(shí) 的時(shí)序圖。
圖3為本實(shí)用新型串行外圍接口主設(shè)備與從設(shè)備連接的示意圖。
圖4為圖3所示本實(shí)用新型串行外圍接口主設(shè)備進(jìn)行數(shù)據(jù)傳 輸時(shí)的時(shí)序圖。
具體實(shí)施方式
通過(guò)下面結(jié)合示例性地示出 一例的附圖進(jìn)行的描述,本實(shí)
用新型的上述和其他目的和特點(diǎn)將會(huì)變得更加清楚。
本實(shí)用新型提供一種SPI主設(shè)備,如圖3所示,其一端與一 微處理器800連接,另 一端可以與一SPI從設(shè)備建立連接以進(jìn)行 單向或雙向的lt據(jù)傳輸。更進(jìn)一步來(lái)"i兌,本實(shí)用新型的SPI主設(shè) 備4 0在啟動(dòng)數(shù)據(jù)傳輸前會(huì)判斷S PI從設(shè)備的類(lèi)型,并依據(jù)判斷結(jié) 杲調(diào)整數(shù)據(jù)傳輸協(xié)議。
請(qǐng)參閱圖3,于本實(shí)施例中,SPI主設(shè)備40具有5根控制信號(hào) 線時(shí)鐘信號(hào)線(SCK)、主出/從入信號(hào)線(Master Output/Slave Input, MOSI)、主入/從出信號(hào)(Master Input/ Slave Output, MISO) 及低電平有效的第一從設(shè)備選擇信號(hào)線(Slave Select) SS—l和 第二從設(shè)備選擇信號(hào)線SS—2。為方便說(shuō)明,假設(shè)本實(shí)施例SPI 主設(shè)備40可與兩個(gè)從設(shè)備連接,因而SPI主設(shè)備40設(shè)有2個(gè)從設(shè) 備選擇信號(hào)線,然而,如果增加從設(shè)備選擇信號(hào)線,則可以連 接多個(gè)從設(shè)備。于本實(shí)施例中,第一從設(shè)備選擇信號(hào)線SS—l對(duì) 應(yīng)的第 一 端口可以與SPI內(nèi)存50或常規(guī)SPI設(shè)備60耦接,第二從 設(shè)備選擇信號(hào)線對(duì)應(yīng)的第二端口則只能與常規(guī)SPI設(shè)備60耦接, 即當(dāng)?shù)诙脑O(shè)備選擇信號(hào)線SS—2致能時(shí),SPI主設(shè)備40所連接 的從設(shè)備默認(rèn)為常規(guī)S PI設(shè)備6 0 。
本實(shí)施例的SPI主i殳備40包括一控制單元41、 一寄存器組42 以及一移位寄存器43??刂茊卧?1可由一狀態(tài)機(jī)來(lái)實(shí)現(xiàn),用于
輸。本實(shí)施例的寄存器組42包括一數(shù)據(jù)緩存器420、 一狀態(tài)寄存 器422、 一地址寄存器424、 一指令寄存器426以及一控制寄存器 428。數(shù)據(jù)緩存器420可以緩存由移位寄存器43移入SPI主設(shè)備40 的數(shù)據(jù),也可以緩存即將由SPI主設(shè)備40移出的數(shù)據(jù)。當(dāng)數(shù)據(jù)緩 存器420中有數(shù)據(jù),或有數(shù)據(jù)通過(guò)主入/從出信號(hào)線MISO輸入 時(shí),控制單元41啟動(dòng)移位寄存器43,使得移位寄存器43在時(shí)鐘 信號(hào)S C K的控制下將數(shù)據(jù) 一 位 一 位的左移或右移。本實(shí)施例中, 移位寄存器43由一接收移位寄存器432與一輸出移位寄存器430 組成,分別用于將數(shù)據(jù)移入SPI主設(shè)備40以及將數(shù)據(jù)移出SPI主
設(shè)備40,且接收移位寄存器432和輸出移位寄存器430的大小都 是8位(bit)。
通常,在啟動(dòng)SPI數(shù)據(jù)傳輸前,微處理器800會(huì)配置寄存器 組42的各項(xiàng)參數(shù),以使SPI主設(shè)備40的控制單元41依據(jù)寄存器組 42中存儲(chǔ)的參數(shù)來(lái)啟動(dòng)SPI數(shù)據(jù)傳輸。具體來(lái)說(shuō),狀態(tài)寄存器422 存儲(chǔ)狀態(tài)參數(shù),如頻率結(jié)束、頻率進(jìn)行中等,以表示該頻率周 期的傳輸狀態(tài)。地址寄存器424存儲(chǔ)數(shù)據(jù)在內(nèi)存中的相應(yīng)地址。 指令寄存器426存儲(chǔ)SPI主設(shè)備40進(jìn)行何種操作的指令,例如讀 SPI內(nèi)存50存儲(chǔ)的數(shù)據(jù)等??刂萍拇嫫?28儲(chǔ)存控制參數(shù),如傳 輸頻率、數(shù)據(jù)長(zhǎng)度、指令指針與頻率啟動(dòng)等,以設(shè)定此頻率周 期是否有數(shù)據(jù)需要傳輸、數(shù)據(jù)長(zhǎng)度為何、何時(shí)開(kāi)始傳輸?shù)?。?別地,本實(shí)施例的控制寄存器428設(shè)有一端口選擇位4280。由于 本實(shí)施例中假設(shè)SPI主設(shè)備40僅設(shè)有兩個(gè)從屬設(shè)備連接端口 ,即 第一從設(shè)備選擇信號(hào)SS—l對(duì)應(yīng)的第一端口 ,第二從設(shè)備選擇信 號(hào)SS—2對(duì)應(yīng)的第二端口 ,因此控制寄存器428只有一個(gè)端口選 擇位4280。此處假設(shè)端口選擇位4280的值為1時(shí),第一從設(shè)備選 擇信號(hào)線SS—1致能??刂萍拇嫫?28還定義一 頻率分割位(Clock Divider Bit)4281 ,以使控制單元4l依據(jù)頻率分割位4281的值改 變其輸出的時(shí)鐘信號(hào)SCK的頻率,從而達(dá)到改變數(shù)據(jù)傳輸速度 的目的。
請(qǐng)繼續(xù)參閱圖3, SPI內(nèi)存50和常規(guī)SPI設(shè)備60分別包括一移 位寄存器51, 61、 一數(shù)據(jù)緩存器52, 62以及一控制邏輯53, 63。 另外,常規(guī)SPI設(shè)備60與SPI內(nèi)存50均設(shè)有時(shí)鐘信號(hào)引腳SCK、 數(shù)據(jù)輸入引腳SDI、數(shù)據(jù)輸出引腳SDO,分別與SPI主設(shè)備40的
時(shí)鐘信號(hào)線SCK、主出/從入信號(hào)線MOSI、主入/從出信號(hào)線 MISO連接。于本實(shí)施例中,SPI主設(shè)備40的第一從設(shè)備選擇信 號(hào)線SS—1與SPI內(nèi)存50的使能端CS連接,第二從設(shè)備選擇信號(hào)
線SS—2與常規(guī)SPI設(shè)備60的使能端CS連接。
以下將描述SPI主設(shè)備如何判斷SPI從設(shè)備的類(lèi)型,并依據(jù) 判斷結(jié)果調(diào)整數(shù)據(jù)傳輸協(xié)議。
請(qǐng)?jiān)俅螀㈤唸D3 ,假設(shè)微處理器800或其它設(shè)備想要讀取SPI 內(nèi)存50存儲(chǔ)的數(shù)據(jù),微處理器800或?qū)S密浖?huì)配置SPI主設(shè)備 40的控制寄存器428、狀態(tài)寄存器422、地址寄存器424以及指令 寄存器426。寄存器配置完成后,控制單元41讀取寄存器組42 內(nèi)各個(gè)參數(shù)的值,并根據(jù)端口選擇位4280的值來(lái)判斷致能第一 從設(shè)備選擇信號(hào)線SS—1或是第二從設(shè)備選擇信號(hào)線SS一2。舉例 來(lái)說(shuō),由于微處理器800需要讀取SPI內(nèi)存50的數(shù)據(jù),端口選擇 位4280的值在配置時(shí)即會(huì)設(shè)為1,因而控制單元41能夠知道SPI 主設(shè)備40需要通過(guò)第一從設(shè)備選擇信號(hào)SSJ與從設(shè)備連接。此 時(shí),控制單元41需要根據(jù) 一 設(shè)備識(shí)別信號(hào)DEVICE—TYPE來(lái)判 斷第 一從設(shè)備選擇信號(hào)線SS—1所連接的從設(shè)備的型號(hào)。假設(shè)設(shè) 備識(shí)別信號(hào)DEVICE—TYPE為"0"時(shí),表示所連接的從設(shè)備為 常規(guī)SPI設(shè)備60,設(shè)備識(shí)別信號(hào)DEVICE—TYPE被拉高為"1"時(shí), 表示所連接的從設(shè)備為SPI內(nèi)存50 。 設(shè)備識(shí)別信號(hào) DEVICE—TYPE的值是通過(guò) 一 外設(shè)接腳來(lái)控制,通常由芯片生 產(chǎn)廠家預(yù)先置為"l",而用戶(hù)也可通過(guò)跳線的方式將其置為"0。" 于本實(shí)施例中,假設(shè)SPI主設(shè)備40接收到的設(shè)備識(shí)別信號(hào) DEVICE—TYPE被置為"1",因而控制單元41可依據(jù)設(shè)備識(shí)別 信號(hào)DEVICE—TYPE判斷出所連接的從設(shè)備為SPI內(nèi)存50 ,并通 過(guò)第一從設(shè)備選擇信號(hào)線SS—1致能SPI內(nèi)存50的使能端CS以啟 動(dòng)數(shù)據(jù)傳輸。此時(shí),控制單元41依據(jù)讀取的參數(shù)信息致能一控 制信號(hào)410,并依據(jù)控制寄存器428中存儲(chǔ)的參數(shù)將指令寄存器 426中的操作指令及地址寄存器424存儲(chǔ)的地址依序傳送給輸出 移位寄存器430。輸出移位寄存器430在時(shí)鐘信號(hào)SCK以及控制信號(hào)410的控制下將指令與地址一位位的由主出/從入信號(hào)線 MOSI移入SPI內(nèi)存50的移位寄存器51。這樣,SPI內(nèi)存50的控制 邏輯53可以通過(guò)數(shù)據(jù)緩存器52讀取指令及地址,并將該地址所 對(duì)應(yīng)的數(shù)據(jù)放入數(shù)據(jù)緩存器52中,由移位寄存器51順序移出到 SPI主設(shè)備40的接收移位寄存器432。 SPI主設(shè)備40的接收移位寄 存器432隨后將接收的數(shù)據(jù)——存入數(shù)據(jù)緩存器420。待接收移 位寄存器432將SPI內(nèi)存50發(fā)送的數(shù)據(jù)都接收完之后,控制單元 41使第一從設(shè)備選擇信號(hào)SS—l失效,微處理器800可自數(shù)據(jù)緩 存器420中讀取數(shù)據(jù)。
另 一方面,假設(shè)SPI主設(shè)備40需要與常規(guī)SPI設(shè)備交換數(shù)據(jù)。 同樣地,在開(kāi)始SPI傳輸前,微處理器800會(huì)先配置控制寄存器 428、狀態(tài)寄存器422、地址寄存器424以及指令寄存器426的參 數(shù),但參數(shù)值會(huì)稍有不同,以適應(yīng)具體常規(guī)SPI設(shè)備的規(guī)格。微 處理器800還會(huì)將需要傳送的數(shù)據(jù)按序載入SPI主設(shè)備40的數(shù)據(jù) 緩存器420內(nèi)以供傳輸。此時(shí),端口選擇位4280的值可以被微處 理器800設(shè)為0 ,以使控制單元41致能第二從設(shè)備選擇信號(hào) SS—2。如前所述,第二從設(shè)備選擇信號(hào)SS一2所對(duì)應(yīng)的第二端口 僅支持常規(guī)SPI設(shè)備,因而當(dāng)?shù)诙脑O(shè)備選擇信號(hào)SS一2致能時(shí), 控制單元41會(huì)默認(rèn)SPI主設(shè)備40連接的從設(shè)備為常規(guī)SPI設(shè)備 60。需要說(shuō)明的是,當(dāng)端口選擇位4280的值為0時(shí),設(shè)備識(shí)別信 號(hào)DEVICE—TYPE的值不會(huì)對(duì)控制單元41產(chǎn)生影響。因而,控 制單元41會(huì)通過(guò)第二從設(shè)備選擇信號(hào)線SS一2致能常規(guī)SPI設(shè)備 60的使能端CS以啟動(dòng)數(shù)據(jù)傳輸。由于所有需要傳送的數(shù)據(jù)已由 微處理器800預(yù)先存入數(shù)據(jù)緩存器420,控制單元41將忽略地址 寄存器424與指令寄存器426中的參數(shù)信息,僅依據(jù)控制寄存器 428和狀態(tài)寄存器422中的參數(shù)值來(lái)控制數(shù)據(jù)傳輸。
如圖3、圖4所示,當(dāng)從設(shè)備的類(lèi)型為常規(guī)SPI設(shè)備60時(shí),在
控制單元41致能第二從設(shè)備選擇信號(hào)SS一2以及控制信號(hào)410, 輸出移位寄存器430隨即在控制信號(hào)410的控制下將數(shù)據(jù)緩存器 420內(nèi)的數(shù)據(jù)透過(guò)主出/從入信號(hào)線MOSI榆出至常^LSPI設(shè)備60 的移位寄存器61。與此同時(shí),常規(guī)SPI設(shè)備60存儲(chǔ)在數(shù)據(jù)緩存器 62內(nèi)的數(shù)據(jù)由移位寄存器61透過(guò)主入/從出信號(hào)線MIS0傳輸至 SPI主設(shè)備40的接收移位寄存器432,并依序存于數(shù)據(jù)緩存器420 內(nèi)。由于移位寄存器43由相互獨(dú)立的接收移位寄存器432和輸出 移位寄存器430組成,因而移位寄存器43在將數(shù)據(jù)移出SPI主設(shè) 備40的同時(shí)也可以將自主入/從出信號(hào)線MISO上接收的數(shù)據(jù)移 入SPI主設(shè)備40。顯然,與SPI內(nèi)存50不同,常頭見(jiàn)SPI設(shè)備60不一 定必須在接收指令和地址后才輸出數(shù)據(jù)給S PI主設(shè)備,而是可以 依據(jù)預(yù)先設(shè)定的傳輸協(xié)議(由傳輸參數(shù)決定)在接收SPI主設(shè)備 40傳送的數(shù)據(jù)的同時(shí)輸出數(shù)據(jù)給SPI主設(shè)備40,即SPI主設(shè)備40 可以與常規(guī)SPI設(shè)備60進(jìn)行雙向數(shù)據(jù)傳輸。SPI主設(shè)備40與常規(guī) SPI設(shè)備60進(jìn)行傳輸時(shí)所依照的協(xié)議可以是多種多樣的,例如, 可以定義在SPI主設(shè)備40在最開(kāi)始接收到的兩個(gè)字節(jié)是無(wú)效的, 因而微處理器800可以直接從第3個(gè)字節(jié)讀取有效的數(shù)據(jù),且該 傳輸協(xié)議可以由軟件編程設(shè)定也可以由微處理器800預(yù)先配置 冗成。
舉例來(lái)說(shuō),本實(shí)施例中的常規(guī)SPI設(shè)備60可以為一全球定位 系統(tǒng)(GPS)接收機(jī)(Receiver),用于實(shí)時(shí)地將其接收到的地 理位置信息,如經(jīng)度,綷度,海拔高度等回傳給微處理器800 處理。請(qǐng)結(jié)合圖4所示,SPI主設(shè)備40在接收GPS接收機(jī)發(fā)送的 數(shù)據(jù)時(shí),會(huì)通過(guò)主出/從入信號(hào)MOSI傳輸參數(shù)配置數(shù)據(jù)給GPS
接收機(jī),例如,將GPS接收機(jī)配置為實(shí)時(shí)發(fā)送數(shù)據(jù),發(fā)送的數(shù) 據(jù)包括日期、系統(tǒng)時(shí)間、GPS衛(wèi)星數(shù)目、經(jīng)度和緯度等。在GPS 接收機(jī)完成SPI數(shù)據(jù)傳輸后,微處理器800自SPI主設(shè)備40中提取
有效的數(shù)據(jù)進(jìn)行處理即可。
如本領(lǐng)域技術(shù)人員所知,SPI主設(shè)備與SPI從設(shè)備之間的傳 輸協(xié)議,即傳輸指令、地址、數(shù)據(jù)是由微處理器800直接配置數(shù) 據(jù)緩存器420來(lái)實(shí)現(xiàn)的。數(shù)據(jù)緩存器420,移位寄存器43僅負(fù)責(zé) 暫存各種傳輸內(nèi)容,而不區(qū)分傳輸內(nèi)容的種類(lèi)。地址寄存器424 與指令寄存器426所存儲(chǔ)的各項(xiàng)參數(shù)僅用于明確告知SPI內(nèi)存50 需要讀取或者寫(xiě)入數(shù)據(jù),以及數(shù)據(jù)的相應(yīng)內(nèi)存地址,不需與所 連接的設(shè)備直接溝通信息,因而對(duì)使用者而言,任何SPI設(shè)備皆 可透過(guò)SPI接口傳輸數(shù)據(jù),不受限于規(guī)格。此外,若需要傳輸大 量的數(shù)據(jù),可以在移位寄存器4 3與數(shù)據(jù)緩存器4 2之間增設(shè) 一 緩 存器,例如一8位的先進(jìn)先出(First In First Out, FIFO)緩沖器,
以避免時(shí)延等因素影響數(shù)據(jù)的雙向傳輸。
總結(jié)而論,通過(guò)本實(shí)用新型的SPI主設(shè)備可以解決現(xiàn)有技術(shù) 中能夠支持SPI內(nèi)存的SPI主設(shè)備與常規(guī)SPI設(shè)備連接進(jìn)行數(shù)據(jù) 傳輸時(shí)可能遺失數(shù)據(jù)的問(wèn)題,并且容易實(shí)現(xiàn)。
以上所述僅為本實(shí)用新型較佳實(shí)施例,然其并非用以限定 本實(shí)用新型的范圍,任何熟悉本項(xiàng)技術(shù)的人員,在不脫離本實(shí) 用新型的精神和范圍內(nèi),可在此基礎(chǔ)上做進(jìn)一步的改進(jìn)和變化, 因此本實(shí)用新型的保護(hù)范圍當(dāng)以本申請(qǐng)的權(quán)利要求書(shū)所界定的 范圍為準(zhǔn)。
權(quán)利要求1.一種串行外圍接口主設(shè)備,用以與一從屬設(shè)備連接以進(jìn)行數(shù)據(jù)傳輸,其特征在于,所述串行外圍接口主設(shè)備包括一寄存器組,存儲(chǔ)控制串行外圍接口傳輸?shù)膮?shù)與數(shù)據(jù);一移位寄存器,用以將數(shù)據(jù)移入或移出所述串行外圍接口主設(shè)備;以及一控制單元,根據(jù)一設(shè)備識(shí)別信號(hào)判斷所述串行外圍接口主設(shè)備所連接的從屬設(shè)備是一串行外圍接口內(nèi)存還是一常規(guī)串行外圍接口設(shè)備,若所述從屬設(shè)備為常規(guī)串行外圍接口設(shè)備,所述控制單元依據(jù)所述寄存器組中存儲(chǔ)的參數(shù)與數(shù)據(jù)控制移位寄存器在將數(shù)據(jù)移出所述串行外圍接口主設(shè)備的同時(shí)接收所述常規(guī)串行外圍接口設(shè)備送出的數(shù)據(jù)。
2. 根據(jù)權(quán)利要求l所述的串行外圍接口主設(shè)備,其特征在 于,所述串行外圍接口主設(shè)備設(shè)有一第一端口與一第二端口, 且所述寄存器組包括一控制寄存器,其定義一端口選擇位,用 以標(biāo)示所述串行外圍接口主設(shè)備是通過(guò)所述第一端口還是通過(guò) 所述第二端口與從屬設(shè)備建立連接,其中,當(dāng)端口選擇位致能 時(shí),標(biāo)示所述串行外圍接口主設(shè)備通過(guò)第 一端口與所述從屬設(shè) 備連接,當(dāng)端口選擇位失效時(shí),標(biāo)示串行外圍接口主設(shè)備通過(guò) 第二端口與所述從屬設(shè)備連接。
3. 根據(jù)權(quán)利要求2所述的串行外圍接口主設(shè)備,其特征在 于,當(dāng)所述串行外圍接口主設(shè)備通過(guò)第一端口與所述從屬設(shè)備 連接時(shí),所述控制單元依據(jù)所述設(shè)備識(shí)別信號(hào)判斷所述從屬設(shè) 備是一 串行外圍接口內(nèi)存還是一常規(guī)串行外圍接口設(shè)備。
4. 根據(jù)權(quán)利要求2所述的串行外圍接口主設(shè)備,其特征在 于,當(dāng)所迷串行外圍接口主設(shè)備通過(guò)第二端口與所述從屬設(shè)備 連接時(shí),所述控制單元認(rèn)為所速?gòu)膶僭O(shè)備為 一 常規(guī)串行外圍接 口設(shè)備。
5. 根據(jù)權(quán)利要求l所述的串行外圍接口主設(shè)備,其特征在 于,所述移位寄存器包括一接收移位寄存器,接收從屬設(shè)備輸出的數(shù)據(jù)并移入所述 寄存器組;以及一輸出移位寄存器,將寄存器組中的數(shù)據(jù)移出所述串行外 圍接口主設(shè)備。
6. 根據(jù)權(quán)利要求l所述的串行外圍接口主設(shè)備,其特征在 于,所述寄存器組還包括一狀態(tài)寄存器,存儲(chǔ)串行外圍接口傳輸?shù)臓顟B(tài)參數(shù); 一數(shù)據(jù)緩存器,暫存將要傳送給移位寄存器的數(shù)據(jù)及自移 位寄存器接收的數(shù)據(jù);一指令寄存器,存儲(chǔ)串行外圍接口傳輸數(shù)據(jù)的指令;以及 一地址寄存器,存儲(chǔ)串行外圍接口傳輸數(shù)據(jù)的地址。
7. 根據(jù)權(quán)利要求6所述的串行外圍接口主設(shè)備,其特征在 于,所述移位寄存器與所述數(shù)據(jù)緩存器之間還設(shè)有 一 緩存器。
8. 根據(jù)權(quán)利要求l所述的串行外圍接口主設(shè)備,其特征在于,所述控制寄存器定義一頻率分割位,所述控制單元依據(jù)所 述頻率分割位的值改變串行外圍接口傳輸?shù)念l率。
9. 一種串行外圍接口主設(shè)備,用以與一從屬設(shè)備連接以進(jìn) 行數(shù)據(jù)傳輸,其特征在于,所述串行外圍接口主設(shè)備包括一控制寄存器,存儲(chǔ)控制串行外圍接口傳輸?shù)膮?shù)與數(shù)據(jù); 一移位寄存器,用以將數(shù)據(jù)移入或移出所述串行外圍接口 主設(shè)備;以及一控制單元,根據(jù) 一設(shè)備識(shí)別信號(hào)判斷所述串行外圍接口 主設(shè)備所連接的從屬設(shè)備是一 串行外圍接口內(nèi)存還是一全球定 位系統(tǒng)接收機(jī),若所述從屬設(shè)備為全球定位系統(tǒng)接收機(jī),所述 控制單元依據(jù)控制寄存器中存儲(chǔ)的參數(shù)與數(shù)據(jù)控制移位寄存器 在將數(shù)據(jù)移出所述串行外圍接口主設(shè)備的同時(shí)接收所述全球定 位系統(tǒng)接收機(jī)送出的數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的串行外圍接口主設(shè)備,其特征在 于,當(dāng)所述串行外圍接口主設(shè)備所連接的從屬設(shè)備為 一全球定 位系統(tǒng)接收機(jī)時(shí),所述控制單元通過(guò)移位寄存器輸出的數(shù)據(jù)為 用于配置所述全球定位系統(tǒng)接收機(jī)的參數(shù)信息。
專(zhuān)利摘要一種串行外圍接口主設(shè)備,用以與一從屬設(shè)備連接以進(jìn)行數(shù)據(jù)傳輸,其包括一寄存器組,存儲(chǔ)控制串行外圍接口傳輸?shù)膮?shù)與數(shù)據(jù);一移位寄存器,用以將數(shù)據(jù)移入或移出所述串行外圍接口主設(shè)備;以及一控制單元,根據(jù)一設(shè)備識(shí)別信號(hào)判斷所述串行外圍接口主設(shè)備所連接的從屬設(shè)備是一串行外圍接口內(nèi)存還是一常規(guī)串行外圍接口設(shè)備。若所述從屬設(shè)備為常規(guī)串行外圍接口設(shè)備,所述控制單元依據(jù)所述寄存器組存數(shù)的參數(shù)與數(shù)據(jù)控制移位寄存器在將數(shù)據(jù)移出所述串行外圍接口主設(shè)備的同時(shí)接收所述常規(guī)串行外圍接口設(shè)備送出的數(shù)據(jù)。
文檔編號(hào)G06F13/38GK201063161SQ200720154168
公開(kāi)日2008年5月21日 申請(qǐng)日期2007年6月8日 優(yōu)先權(quán)日2007年6月8日
發(fā)明者陽(yáng) 劉 申請(qǐng)人:威盛電子股份有限公司