


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于單片機(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ù)交換。【關(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接口的器件。解決該
2、問(wèn)題的方法是使用單片機(jī)的普通I/O口通過(guò)軟件模擬的方式實(shí)現(xiàn)SPI串口通信,以滿足應(yīng)用需求。此外,采用標(biāo)準(zhǔn)的SPI接口有很多局限性,在設(shè)備外圍開(kāi)發(fā)和擴(kuò)展增加負(fù)擔(dān),而通過(guò)I/O口模擬實(shí)現(xiàn)SPI通信將不受這些限制,可輕松實(shí)現(xiàn)其外圍開(kāi)發(fā)和擴(kuò)展,靈活性更大;通過(guò)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置于打開(kāi)(高或者低,
3、根據(jù)不同芯片分別對(duì)待)狀態(tài),使從控制器處于可通信狀態(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è)從控制器通信或所選從控制器無(wú)使能控制端時(shí),使能控制線SN可不用,即3線制SPI通信,也可實(shí)現(xiàn)模擬SPI通信。3.SPI通信時(shí)序控制相對(duì)于標(biāo)準(zhǔn)的SPI通信接口,通過(guò)I/O口模擬的SPI通信,其模擬時(shí)序要求很嚴(yán)格,即主控制器模擬的SPI時(shí)序必須與從控制器的SPI通信時(shí)序保持一致,否則會(huì)導(dǎo)致在通信時(shí)出現(xiàn)接收不到數(shù)
4、據(jù)或是接收數(shù)據(jù)錯(cuò)誤的情況。SPI通信的時(shí)序控制是通過(guò)時(shí)鐘控制線SCLK來(lái)模擬完成的。所以說(shuō),嚴(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
5、下降沿時(shí)完成寫操作,即主控制器完成輸入操作。當(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)通過(guò)第二節(jié)對(duì)SPI通信時(shí)序控制的描述,可以非常簡(jiǎn)單的實(shí)現(xiàn)模擬SPI串口通信。筆者將以兩種較有代表性的單片機(jī)與某磁傳感芯片的軟件實(shí)現(xiàn)為例,給出通過(guò)I/O口模擬實(shí)現(xiàn)SPI通信的例子。
6、需說(shuō)明的是,例程中在MSP430例程中的讀操作按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ù)輸出的代碼為:代碼說(shuō)明:循環(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次,
7、即輸入1個(gè)字節(jié);數(shù)據(jù)data按位右移;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)說(shuō)明。DIO_11輸出0,SCLK下降沿,函數(shù)DIO_ONorOFF(DIO_11,1)的意思為將DIO_11輸出1,即置高;DIO_9輸出1;讀所有DIO數(shù)據(jù);取DIO數(shù)據(jù)的第10位
8、的數(shù),即輸入。5.模擬SPI通信時(shí)需注意的問(wèn)題模擬SPI作為一種串行外圍設(shè)備接口用于數(shù)據(jù)交換,在實(shí)際應(yīng)用中,需注意以下幾點(diǎn)。(1)模擬SPI通信必須嚴(yán)格時(shí)序,否則會(huì)出現(xiàn)無(wú)法讀取或是寫入數(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口,通過(guò)軟件模擬的方式實(shí)現(xiàn)的SPI串行通信,其實(shí)現(xiàn)簡(jiǎn)單方便。在廣泛的實(shí)際應(yīng)用中,也驗(yàn)證了其功能的可靠性、穩(wěn)定性。而且,模擬SPI通信在不同的單片機(jī)或是微芯片具有很強(qiáng)的通用性和移植性,可完全取代標(biāo)準(zhǔn)SPI接口。參考文
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售合同預(yù)采購(gòu)合同
- 1 公民基本權(quán)利 議題式公開(kāi)課一等獎(jiǎng)創(chuàng)新教案 統(tǒng)編版道德與法治八年級(jí)下冊(cè)
- 幼兒音樂(lè)舞蹈游戲基礎(chǔ)知識(shí)
- 智能心血管監(jiān)測(cè)管理制度
- 就業(yè)在線系統(tǒng)操作培訓(xùn)-04
- 關(guān)于上海市教育綜合改革方案的報(bào)告-翁鐵慧
- Unit 4 Section B 3a-3b教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版八年級(jí)英語(yǔ)下冊(cè)
- 商業(yè)辦公大樓公共區(qū)域裝修工程合同
- 化工企業(yè)安全評(píng)價(jià)與職業(yè)病防治合同
- 事業(yè)單位員工聘用合同樣本
- 2025山西杏花村旅游開(kāi)發(fā)有限公司招聘50人筆試參考題庫(kù)附帶答案詳解
- 貫徹落實(shí)清理規(guī)范非融資性擔(dān)保方案指導(dǎo)意見(jiàn)
- 工程甩項(xiàng)合同協(xié)議
- 期中模擬卷(新疆專用)-2024-2025學(xué)年八年級(jí)英語(yǔ)下學(xué)期核心素養(yǎng)素質(zhì)調(diào)研模擬練習(xí)試題(考試版)A4
- 2025廣東省深圳市中考數(shù)學(xué)復(fù)習(xí)分類匯編《函數(shù)綜合題》含答案解析
- 金融工程重點(diǎn)總結(jié)
- 2024年四川成都農(nóng)業(yè)科技中心招聘筆試真題
- 胸腔積液課件
- 兒童故事繪本愚公移山課件模板
- 《鋼鐵是怎樣煉成的》讀書分享課件
- 白血病鑒別診斷
評(píng)論
0/150
提交評(píng)論