98国产精品综合一区二区三区,国产福利视频,男人添女人囗交做爰视频,日本免费一区二区三区视频观看

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> SPI接口的出錯(cuò)分析及其改進(jìn)

SPI接口的出錯(cuò)分析及其改進(jìn)

關(guān)鍵字:SPI 接口 分析 作者:admin 來源:不詳 發(fā)布時(shí)間:2018-05-19  瀏覽:20

單片機(jī)(MCU)系統(tǒng)為了與SPI標(biāo)準(zhǔn)外圍接口器件進(jìn)行通信,必須使用SPI( Serial Peripheral Interface,串行外設(shè)接口)總線。SPI總線系統(tǒng)是Motorola提出的一種同步串行外設(shè)接口,有信號(hào)線少、協(xié)議簡(jiǎn)單、傳輸速度快的特點(diǎn),因此有不少外圍器件都采用SPI總線,如Flash RAM、A/ D轉(zhuǎn)換器、LED顯示器、MCU以及計(jì)算機(jī)網(wǎng)絡(luò)等。MCU中的SPI接口通過配置可與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接連接。

對(duì)于那些沒有SPI接口功能的MCU來說,SPI接口的功能靠軟件控制MCU的I/O口的方法來模擬。不過,用軟件來模擬SPI接口的功能,工作速度非常慢,并且需要主從器件的軟件之間配合得非常好。如果在單片機(jī)芯片內(nèi)部用硬件電路來完成SPI接口功能,在硬件增加不多的情況下,能夠極大地提高傳輸速度(最高頻率可達(dá)主器件的頻率的1/4),減輕軟件的負(fù)擔(dān),使用極為方便。

SPI接口工作的時(shí)候,沒有應(yīng)答信號(hào),并且數(shù)據(jù)在發(fā)送的時(shí)候無需校驗(yàn)位,所以,要求主從器件的軟件必須完全符合SPI的時(shí)序要求,否則數(shù)據(jù)傳輸很容易出現(xiàn)錯(cuò)誤。本文通過MCU中SPI接口模塊的設(shè)計(jì),分析數(shù)據(jù)傳輸?shù)母鞣N出錯(cuò)情況,并針對(duì)各種情況,增強(qiáng)SPI接口的錯(cuò)誤處理能力。

1 SPR設(shè)定錯(cuò)誤

在從器件時(shí)鐘頻率小于主器件時(shí)鐘頻率時(shí),如果SCK的速率設(shè)得太快,將導(dǎo)致接收到的數(shù)據(jù)不正確(SPI接口本身難以判斷收到的數(shù)據(jù)是否正確,要在軟件中處理)。

整個(gè)系統(tǒng)的速度受三個(gè)因素影響:主器件時(shí)鐘CLK主、從器件時(shí)鐘CLK從和同步串行時(shí)鐘SCK,其中SCK是對(duì)CLK主的分頻,CLK從和CLK主是異步的。要使SCK無差錯(cuò)無遺漏地被從器件所檢測(cè)到,從器件的時(shí)鐘CLK從必須要足夠快。下面以SCK設(shè)置為CLK主的4分頻的波形為例,分析同步串行時(shí)鐘、主時(shí)鐘和從時(shí)鐘之間的關(guān)系。

圖1主從時(shí)鐘和SCK的關(guān)系

如圖1所示,當(dāng)T從

圖2中,當(dāng)T從≥TSCK/2=2T主時(shí),在clk_s的兩個(gè)上升沿都檢測(cè)不到SCK的低電平,這樣從器件就會(huì)漏掉一個(gè)SCK。在某些相位條件下,即使CLK從僥幸能檢測(cè)到SCK的低電平,也不能保證可以繼續(xù)檢測(cè)到下一個(gè)SCK。只要遺漏了一個(gè)SCK,就相當(dāng)于串行數(shù)據(jù)漏掉了一個(gè)位,后面繼續(xù)接收/發(fā)送的數(shù)據(jù)就都是錯(cuò)誤的了。

圖2主從時(shí)鐘和SCK的關(guān)系

根據(jù)以上的分析,SPR和主從時(shí)鐘比的關(guān)系如表1所列。

表1SPR的設(shè)置和主從時(shí)鐘周期比值之間的關(guān)系

在發(fā)送數(shù)據(jù)之前按照表1對(duì)SPR進(jìn)行設(shè)置,SPR設(shè)定錯(cuò)誤可以完全避免。

2 模式錯(cuò)誤(MODF)

模式錯(cuò)誤表示的是主從模式選擇的設(shè)置和引腳SS的連接不一致。

器件工作在主模式的時(shí)候(MSTR=1),它的片選信號(hào)SS引腳必須接高電平。在發(fā)送數(shù)據(jù)的過程中,如果它的SS從高電平跳至低電平,在SS的下降沿,SPI模塊將檢測(cè)到模式錯(cuò)誤,對(duì)MODF位置1,強(qiáng)制器件從主模式轉(zhuǎn)入從模式(即令MSTR=0),清空內(nèi)部計(jì)數(shù)器counter,并結(jié)束正在進(jìn)行的數(shù)據(jù)傳輸,如圖3(a)所示。

對(duì)從模式(MSTR=0),在沒有數(shù)據(jù)傳送的時(shí)候,SS高電平表示從器件未被選中,從器件不工作,MISO輸出高阻;在數(shù)據(jù)傳輸過程中,片選信號(hào)SS必須接低電平,且SS不允許跳變。如果SS從低電平跳到高電平,在SS的上跳沿,SPI模塊也將檢測(cè)到模式錯(cuò)誤,清空內(nèi)部計(jì)數(shù)器counter,并結(jié)束正在進(jìn)行的數(shù)據(jù)傳輸。直到SS恢復(fù)為低電平,重新使SPEN=1時(shí),才重新開始工作,如圖3(b)所示。

圖3模式錯(cuò)誤的檢測(cè)

3 溢出錯(cuò)誤(OVR)

溢出錯(cuò)誤表示連續(xù)傳輸多個(gè)數(shù)據(jù)時(shí),后一個(gè)數(shù)據(jù)覆蓋了前一個(gè)數(shù)據(jù)而產(chǎn)生的錯(cuò)誤。

狀態(tài)標(biāo)志SPIF表示的是數(shù)據(jù)傳輸正在進(jìn)行中,它對(duì)數(shù)據(jù)的傳輸有較大的影響。主器件的SPIF有效由數(shù)據(jù)寄存器的空標(biāo)志SPTE=0產(chǎn)生,而從器件的SPIF有效則只能由收到的第一個(gè)SCK的跳變產(chǎn)生,且又由于從器件的SPIF和主器件發(fā)出的SCK是異步的,因此從器件的傳輸標(biāo)志SPIF從相對(duì)于主器件的傳輸標(biāo)志SPIF主有一定的滯后。如圖4所示,在主器件連續(xù)發(fā)送兩個(gè)數(shù)據(jù)的時(shí)候?qū)⒂锌赡軐?dǎo)致從器件的傳輸標(biāo)志和主器件下一個(gè)數(shù)據(jù)的傳輸標(biāo)志相重疊(圖4中虛線和陰影部分),第一個(gè)收到的數(shù)據(jù)必然被覆蓋,第二個(gè)數(shù)據(jù)的收/發(fā)也必然出錯(cuò),產(chǎn)生溢出錯(cuò)誤。

圖4溢出錯(cuò)誤

通過對(duì)從器件的波形分析發(fā)現(xiàn),counter=8后的第一個(gè)時(shí)鐘周期,數(shù)據(jù)最后一位的傳輸已經(jīng)完成。在數(shù)據(jù)已經(jīng)收/發(fā)完畢的情況下,counter=8狀態(tài)的長(zhǎng)短對(duì)數(shù)據(jù)的正確性沒有影響,因此可以縮短counter=8的狀態(tài),以避免前一個(gè)SPIF和后一個(gè)SPIF相重疊。這樣,從硬件上避免了這一階段的溢出錯(cuò)誤。

但是,如果從器件工作速度不夠快或者軟件正在處理其他事情,在SPI接口接收到的數(shù)據(jù)尚未被讀取的情況下,又接收到一個(gè)新的數(shù)據(jù),溢出錯(cuò)誤還是會(huì)發(fā)生的。此時(shí),SPI接口保護(hù)前一個(gè)數(shù)據(jù)不被覆蓋,舍棄新收到的數(shù)據(jù),置溢出標(biāo)志OVR=1;另外發(fā)出中斷信號(hào)(如果該中斷允許),通知從器件及時(shí)讀取數(shù)據(jù)。

4 偏移錯(cuò)誤(OFST)

SPI接口一般要求從器件先工作,然后主器件才開始發(fā)送數(shù)據(jù)。有時(shí)在主器件往外發(fā)送數(shù)據(jù)的過程中,從器件才開始工作,或者SCK受到外界干擾,從器件未能準(zhǔn)確地接收到8個(gè)SCK。如圖5所示,從器件接收到的8個(gè)SCK其實(shí)是屬于主器件發(fā)送相鄰的兩個(gè)數(shù)據(jù)的SCK主。這時(shí),主器件的SPIF和從器件的SPIF會(huì)發(fā)生重疊,數(shù)據(jù)發(fā)生了錯(cuò)位,從器件如果不對(duì)此進(jìn)行糾正的話,數(shù)據(jù)的接收/發(fā)送便一直地錯(cuò)下去。

圖5偏移錯(cuò)誤

在一個(gè)數(shù)據(jù)的傳輸過程中,SPR是不允許改變的,即SCK是均勻的,而從圖5可以看出,從器件接收到的8個(gè)SCK并不均勻,它們是分別屬于兩個(gè)數(shù)據(jù)的,因此可以計(jì)算SCK的占空時(shí)間來判斷是否發(fā)生了偏移錯(cuò)誤。經(jīng)分析,正常時(shí)候SCK=1時(shí)的時(shí)鐘周期數(shù)n的取值滿足如下關(guān)系:

但由于主從時(shí)鐘之間是異步的,并且經(jīng)過了取整,所以正常時(shí)候SCK=1時(shí)的時(shí)鐘周期計(jì)數(shù)值COUNT應(yīng)滿足:

比如在圖5中,COUNT的最大值COUNT(max)=2或者1,都可認(rèn)為是正常的。但當(dāng)出現(xiàn)COUNT(max)=8時(shí),可以判定出現(xiàn)了偏移錯(cuò)誤。在實(shí)際設(shè)計(jì)中,先記錄下第一個(gè)COUNT(max)的值,如果后面又出現(xiàn)與記錄值相差1以上的COUNT(max)出現(xiàn),可知有偏移錯(cuò)誤OFST

發(fā)生。SPI接口在“不均勻”的地方令SPIF=1,然后準(zhǔn)備等待下一個(gè)數(shù)據(jù)的第一個(gè)SCK。其中COUNT的位數(shù)固定為8位,為了避免溢出時(shí)重新從00H開始計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到ffH時(shí)停止計(jì)數(shù)。

5 其他錯(cuò)誤

設(shè)定不當(dāng),或者受到外界干擾,數(shù)據(jù)傳輸難免會(huì)發(fā)生錯(cuò)誤,或者有時(shí)軟件對(duì)錯(cuò)誤的種類判斷不清,必須要有一種方法強(qiáng)制SPI接口從錯(cuò)誤狀態(tài)中恢復(fù)過來。在SPI不工作,即SPEN=0的時(shí)候,清除SPI模塊內(nèi)部幾乎所有的狀態(tài)(專用寄存器除外)。如果軟件在接收數(shù)據(jù)的時(shí)候,能夠發(fā)現(xiàn)數(shù)據(jù)有錯(cuò)誤,無論是什么錯(cuò)誤,都可以強(qiáng)制停止SPI的工作,重新進(jìn)行數(shù)據(jù)傳輸。例如,在偏移錯(cuò)誤(OFST)中,如果SPR2、SPR1和SPR0的設(shè)置適當(dāng),也可以使SCK顯得比較“均勻”。SPI接口硬件本身不可能檢測(cè)到有錯(cuò)誤,若用戶軟件能夠發(fā)現(xiàn)錯(cuò)誤,這時(shí)就可以強(qiáng)制停止SPI的傳輸工作,這樣就可以避免錯(cuò)誤一直持續(xù)下去。

結(jié)語

本文對(duì)SPI接口之間數(shù)據(jù)傳輸中各種出錯(cuò)情況進(jìn)行分析,并對(duì)SPI接口處理錯(cuò)誤的能力進(jìn)行增強(qiáng)。對(duì)一些傳輸錯(cuò)誤,SPI接口可以檢測(cè)出來,通過對(duì)各種錯(cuò)誤狀態(tài)寄存器進(jìn)行置位,并做相應(yīng)的處理解決。但是有些錯(cuò)誤由硬件本身造成,是檢測(cè)不到的。因此,在應(yīng)用中,如果對(duì)數(shù)據(jù)的正確性要求較高,除了要在軟件上滿足SPI接口的時(shí)序要求外,還需要在軟件上作適當(dāng)?shù)奶幚怼?/p>

擴(kuò)展閱讀:?jiǎn)纹瑱C(jī)常見故障及處理方法

編輯:admin  最后修改時(shí)間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

丰满少妇a级毛片露出偷拍| 中国女人做爰a片| 国产下药迷倒白嫩美女| 国产人与zoxxxx另类| 97成人无码免费一区二区中文| 欧美性xxxxx极品少妇| 岳两片蚌肉缓缓张开| 与上司出轨的人妻| 久久妇女高潮喷水多长时间| 国产精品免费视频| 雯雯被四个男人拖进工地| 《善良的小峓子在钱完整版韩剧》| 国产精品日日做人人爱| 图片 小说 校园 激情 都市| 无码AV人妻一区二区三区四区| 国产精品沙发午睡系列| 欧美肥妇bwbwbwbxx小说| 金鸽源赛鸽公棚春棚| 韩国电影妈妈的朋友| 人人妻人人澡人人爽人人精品| 日本三级吃奶头添泬无码苍井空| 交换娇妻系列38部分阅读| 狠狠色婷婷久久一区二区三区| 欧美狠狠入鲁的视频777色| 性大毛片视频| 亚洲av无码乱码精品国产福利| 亚洲制服师生 中文字幕| 14表妺好紧没带套18分钟| 老师洗澡时让我进去摸她那个| 无码人妻丰满熟妇区五十路百度| 狠狠cao日日穞夜夜穞| 京东app下载安装官网免费下载| 国产真实乱人偷精品视频免费| you jizz jizz japan日本| 国产精品人妻一区夜夜爱| 涩涩av视频一区二区三区| 激情 小说 亚洲 图片 伦| 免费看又黄又无码的网站| 亚洲av无码一区二区三区性色| 成人性爱视频在线观看| 不许穿内裤随时挨c|