基于單片機(jī)I/O口模擬的SPI串行通信實(shí)現(xiàn)_第1頁
基于單片機(jī)I/O口模擬的SPI串行通信實(shí)現(xiàn)_第2頁
基于單片機(jī)I/O口模擬的SPI串行通信實(shí)現(xiàn)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于單片機(jī)IO口模擬的SPI串行通信實(shí)現(xiàn)【摘要】基于單片機(jī)或ARM芯片的普通I/O口,模擬實(shí)現(xiàn)SPI串行通信。模擬SPI通信需嚴(yán)格時(shí)鐘時(shí)序,只有當(dāng)主器件模擬的SPI時(shí)序與從器件的SPI時(shí)序完全一致時(shí),才能實(shí)現(xiàn)SPI通信的正常數(shù)據(jù)交換?!娟P(guān)鍵詞】I/O口;SPI時(shí)序;主器件;從器件1.引言SPI(SeIial Peripheral Interfa即串行外圍設(shè)備接口)總線技術(shù)是一種高效率的串行接口技術(shù),主要用于擴(kuò)展外設(shè)和進(jìn)行數(shù)據(jù)交換。在許多單片機(jī)中,已經(jīng)作為一種標(biāo)準(zhǔn)配置。但某些應(yīng)用非常廣泛的單片機(jī)并不帶標(biāo)準(zhǔn)SPI接口,這樣就限制了在這些系統(tǒng)中使用帶SPI接口的器件。解決該問題的方法是使用單片機(jī)的普

2、通I/O口通過軟件模擬的方式實(shí)現(xiàn)SPI串口通信,以滿足應(yīng)用需求。此外,采用標(biāo)準(zhǔn)的SPI接口有很多局限性,在設(shè)備外圍開發(fā)和擴(kuò)展增加負(fù)擔(dān),而通過I/O口模擬實(shí)現(xiàn)SPI通信將不受這些限制,可輕松實(shí)現(xiàn)其外圍開發(fā)和擴(kuò)展,靈活性更大;通過I/O口模擬SPI通信,其通用性和可移植性強(qiáng),實(shí)現(xiàn)簡(jiǎn)單、方便。2.SPI總線概述SPI通信的總線形式一般采用4線制,即為使能控制線SN、始終控制線SCLK、主出從入線MOSI和主入從出線MISO??蓪?shí)現(xiàn)一個(gè)主控制器掛接多個(gè)從控制器,如圖1所示,為SPI總線框圖。使能控制線SN完成對(duì)從控制器的片選,當(dāng)需要與某個(gè)控制通信時(shí),將SN置于打開(高或者低,根據(jù)不同芯片分別對(duì)待)狀態(tài)

3、,使從控制器處于可通信狀態(tài),同時(shí)時(shí)鐘控制線SCLK用于控制SPI通信的時(shí)序,該時(shí)序需與從控制器的SPI時(shí)序保持完全一致,這樣才能保證SPI通信的實(shí)現(xiàn)。主出從入線MOSI為SPI串口通信數(shù)據(jù)輸出線,主入從出線MISO為SPI串口通信數(shù)據(jù)輸入線。當(dāng)主控制器MCU只與一個(gè)從控制器通信或所選從控制器無使能控制端時(shí),使能控制線SN可不用,即3線制SPI通信,也可實(shí)現(xiàn)模擬SPI通信。3.SPI通信時(shí)序控制相對(duì)于標(biāo)準(zhǔn)的SPI通信接口,通過I/O口模擬的SPI通信,其模擬時(shí)序要求很嚴(yán)格,即主控制器模擬的SPI時(shí)序必須與從控制器的SPI通信時(shí)序保持一致,否則會(huì)導(dǎo)致在通信時(shí)出現(xiàn)接收不到數(shù)據(jù)或是接收數(shù)據(jù)錯(cuò)誤的情況。

4、SPI通信的時(shí)序控制是通過時(shí)鐘控制線SCLK來模擬完成的。所以說,嚴(yán)格、標(biāo)準(zhǔn)的SPI時(shí)序是完成SPI通信的關(guān)鍵。時(shí)鐘控制線SCLK可以是高電平觸發(fā)也可以是低電平觸發(fā),該模式由從控制器的觸發(fā)時(shí)鐘決定,不可隨意改變。SCLK觸發(fā)1次,在對(duì)應(yīng)的MOSI或是MISO輸出或是輸入1次,即1位(bit),其以移位寄存器的方式進(jìn)行操作,完成1個(gè)字節(jié)(byte)的讀或?qū)懶柩h(huán)進(jìn)行8次。數(shù)據(jù)傳輸時(shí)是高位在前,低位在后。假如某芯片即從控制器的工作時(shí)序如圖2所示。由圖可知,將其使能置低時(shí)有效,即片選成功可進(jìn)行SPI通信。該芯片在SLCK上升沿是完成讀操作,即主控制器完成輸出操作,在SCLK下降沿時(shí)完成寫操作,即主控

5、制器完成輸入操作。當(dāng)SCLK制造第1個(gè)上升沿時(shí),主控制器輸出數(shù)據(jù)的最高位即Bit7;當(dāng)SCLK制造第2個(gè)上升沿時(shí),主控制器輸出數(shù)據(jù)的Bit6,依此類推,8次上升沿觸發(fā)后就完成了1個(gè)字節(jié)的輸出。同樣的原理,當(dāng)SCLK制造第1個(gè)下降沿時(shí),主控制器讀取數(shù)據(jù)的最高位即Bit7;當(dāng)SCLK制造第2個(gè)下降沿時(shí),主控制器讀取數(shù)據(jù)的Bit6,依此類推,8次下降沿觸發(fā)后就完成了1個(gè)字節(jié)的讀取。4.SPI通信實(shí)現(xiàn)通過第二節(jié)對(duì)SPI通信時(shí)序控制的描述,可以非常簡(jiǎn)單的實(shí)現(xiàn)模擬SPI串口通信。筆者將以兩種較有代表性的單片機(jī)與某磁傳感芯片的軟件實(shí)現(xiàn)為例,給出通過I/O口模擬實(shí)現(xiàn)SPI通信的例子。需說明的是,例程中在MSP

6、430例程中的讀操作按1次讀1個(gè)字節(jié)完成;而在JN5148例程中的讀操作按1次讀2個(gè)字節(jié)完成。以下2個(gè)例程全部已用于實(shí)際產(chǎn)品研制中,通信可靠,完全滿足實(shí)際應(yīng)用要求。4.1 基于MSP430單片機(jī)首先,我們先定義模擬SPI接口所需的I/O口,定義P4.4為輸出MOSI,P5.0為輸入MISO,P4.5為SCLK信號(hào),軟件實(shí)現(xiàn)如下。數(shù)據(jù)輸出的代碼為:代碼說明:循環(huán)8次,即輸出1個(gè)字節(jié);P4.5輸出0,SCLK下降沿;data為輸出的字節(jié),若其高位為1,則輸出1,否則輸出0;P4.4輸出1;否則P4.4輸出0;P4.5輸出1,SCLK上升沿;數(shù)據(jù)data按位右移;循環(huán)8次,即輸入1個(gè)字節(jié);數(shù)據(jù)dat

7、a按位右移;P4.5輸出0,SCLK下降沿;讀P5.0端口,若其高位為1,則輸入為1,否則輸入為0;讀取數(shù)為1;讀取數(shù)為0;P4.5輸出1,SCLK上升沿。4.2 基于JN5148模塊與上節(jié)類似,我們先對(duì)I/O進(jìn)行初始化。定義DIO_9為輸出MOSI,DIO_10為輸入MISO,DIO_11為SCLK信號(hào)。軟件實(shí)現(xiàn)如下。數(shù)據(jù)輸出的代碼為:此處與3.1節(jié)中類似的代碼將不再詳細(xì)解釋,只擇重點(diǎn)說明。DIO_11輸出0,SCLK下降沿,函數(shù)DIO_ONorOFF(DIO_11,1)的意思為將DIO_11輸出1,即置高;DIO_9輸出1;讀所有DIO數(shù)據(jù);取DIO數(shù)據(jù)的第10位的數(shù),即輸入。5.模擬SP

8、I通信時(shí)需注意的問題模擬SPI作為一種串行外圍設(shè)備接口用于數(shù)據(jù)交換,在實(shí)際應(yīng)用中,需注意以下幾點(diǎn)。(1)模擬SPI通信必須嚴(yán)格時(shí)序,否則會(huì)出現(xiàn)無法讀取或是寫入數(shù)據(jù),不能完成數(shù)據(jù)交換;或是出現(xiàn)讀取數(shù)據(jù)不完全,即數(shù)據(jù)錯(cuò)誤等情況;(2)SPI接口芯片數(shù)據(jù)的讀寫發(fā)生在時(shí)鐘信號(hào)的上升沿或是下降沿。在進(jìn)行編程時(shí)應(yīng)保證數(shù)據(jù)足夠的處理時(shí)間,即數(shù)據(jù)處理穩(wěn)定后再進(jìn)行數(shù)據(jù)的讀寫操作,以免出現(xiàn)數(shù)據(jù)讀寫不完全而出錯(cuò);(3)在進(jìn)行數(shù)據(jù)交換時(shí),應(yīng)注意通信字節(jié)位發(fā)出的順序,即是高位在前,低位在后還是高位在后,低位在前。6.總結(jié)基于單片機(jī)的普通I/O口,通過軟件模擬的方式實(shí)現(xiàn)的SPI串行通信,其實(shí)現(xiàn)簡(jiǎn)單方便。在廣泛的實(shí)際應(yīng)用中,也驗(yàn)證了其功能的可靠性、穩(wěn)定性。而且,模擬SPI通信在不同的單片機(jī)或是微芯片具有很強(qiáng)的通用性和移植性,可完全取代

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論