![SPI接口的出錯分析及其改進_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/2/773b8f78-ed5e-447c-b185-ec5372e178c0/773b8f78-ed5e-447c-b185-ec5372e178c01.gif)
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、spi接口的出錯分析及其改進()系統(tǒng)為了與spi標準外圍接口器件舉行通信,必需用法spi( serial peripheral interface,串行外設接口)。spi總線系統(tǒng)是motorola提出的一種同步串行外設接口,有信號線少、協(xié)議容易、傳輸速度快的特點,因此有不少外圍器件都采納spi總線,如flash ram、a/ d轉(zhuǎn)換器、mcu以及計算機網(wǎng)絡等。mcu中的spi接口通過配置可與各個廠家生產(chǎn)的多種標準外圍器件挺直銜接。對于那些沒有spi接口功能的mcu來說,spi接口的功能靠軟件控制mcu的i/o口的辦法來模擬。不過,用軟件來模擬spi接口的功能,工作速度十分慢,并且需要主從器件的
2、軟件之間協(xié)作得十分好。假如在單片機芯片內(nèi)部用硬件來完成spi接口功能,在硬件增強不多的狀況下,能夠極大地提高傳輸速度(最高頻率可達主器件的頻率的1/4),減輕軟件的負擔,用法極為便利。spi接口工作的時候,沒有應答信號,并且數(shù)據(jù)在發(fā)送的時候無需校驗位,所以,要求主從器件的軟件必需徹低符合spi的時序要求,否則數(shù)據(jù)傳輸很簡單浮現(xiàn)錯誤。本文通過mcu中spi接口模塊的設計,分析數(shù)據(jù)傳輸?shù)母鞣N出錯狀況,并針對各種狀況,增加spi接口的錯誤處理能力。1 spr設定錯誤在從器件時鐘頻率小于主器件時鐘頻率時,假如sck的速率設得太快,將導致接收到的數(shù)據(jù)不正確(spi接口本身難以推斷收到的數(shù)據(jù)是否正確,要在
3、軟件中處理)。囫圇系統(tǒng)的速度受三個因素影響:主器件時鐘clk主、從器件時鐘clk從和同步串行時鐘sck,其中sck是對clk主的分頻,clk從和clk主是異步的。要使sck無差錯無遺漏地被從器件所檢測到,從器件的時鐘clk從必需要足夠快。下面以sck設置為clk主的4分頻的波形為例,分析同步串行時鐘、主時鐘和從時鐘之間的關系。圖1主從時鐘和sck的關系1所示,當t從圖2中,當t從tsck/22t主時,在clk_s的兩個升高沿都檢測不到sck的低電平,這樣從器件就會漏掉一個sck。在某些相位條件下,即使clk從僥幸能檢測到sck的低電平,也不能保證可以繼續(xù)檢測到下一個sck。只要遺漏了一個sck
4、,就相當于串行數(shù)據(jù)漏掉了一個位,后面繼續(xù)接收/發(fā)送的數(shù)據(jù)就都是錯誤的了。圖2主從時鐘和sck的關系按照以上的分析,spr和主從時鐘比的關系如表1所列。在發(fā)送數(shù)據(jù)之前根據(jù)表1對spr舉行設置,spr設定錯誤可以徹低避開。2 模式錯誤(modf)模式錯誤表示的是主從模式挑選的設置和引腳ss的銜接不全都。器件工作在主模式的時候(mstr=1),它的片選信號ss引腳必需接高電平。在發(fā)送數(shù)據(jù)的過程中,假如它的ss從高電平跳至低電平,在ss的下降沿,spi模塊將檢測到模式錯誤,對modf位置1,強制器件從主模式轉(zhuǎn)入從模式(即令mstr0),清空內(nèi)部計數(shù)器counter,并結(jié)束正在舉行的數(shù)據(jù)傳輸,3(a)所
5、示。對從模式(mstr=0),在沒有數(shù)據(jù)傳送的時候,ss高電平表示從器件未被選中,從器件不工作,miso輸出高阻;在數(shù)據(jù)傳輸過程中,片選信號ss必需接低電平,且ss不允許跳變。假如ss從低電平跳到高電平,在ss的上跳沿,spi模塊也將檢測到模式錯誤,清空內(nèi)部計數(shù)器counter,并結(jié)束正在舉行的數(shù)據(jù)傳輸。直到ss復原為低電平,重新使spen1時,才重新開頭工作,3(b)所示。圖3模式錯誤的檢測3 溢出錯誤(ovr)溢出錯誤表示延續(xù)傳輸多個數(shù)據(jù)時,后一個數(shù)據(jù)籠罩了前一個數(shù)據(jù)而產(chǎn)生的錯誤。狀態(tài)標記spif表示的是數(shù)據(jù)傳輸正在舉行中,它對數(shù)據(jù)的傳輸有較大的影響。主器件的spif有效由數(shù)據(jù)寄存器的空標
6、記spte0產(chǎn)生,而從器件的spif有效則只能由收到的第一個sck的跳變產(chǎn)生,且又因為從器件的spif和主器件發(fā)出的sck是異步的,因此從器件的傳輸標記spif從相對于主器件的傳輸標記spif主有一定的滯后。4所示,在主器件延續(xù)發(fā)送兩個數(shù)據(jù)的時候?qū)⒂锌赡軐е聫钠骷膫鬏敇擞浐椭髌骷乱粋€數(shù)據(jù)的傳輸標記相重疊(圖4中虛線和陰影部分),第一個收到的數(shù)據(jù)必定被籠罩,其次個數(shù)據(jù)的收/發(fā)也必定出錯,產(chǎn)生溢出錯誤。圖4溢出錯誤通過對從器件的波形分析發(fā)覺,counter8后的第一個時鐘周期,數(shù)據(jù)最后一位的傳輸已經(jīng)完成。在數(shù)據(jù)已經(jīng)收/發(fā)完畢的狀況下,counter8狀態(tài)的長短對數(shù)據(jù)的正確性沒有影響,因此可以縮
7、短counter8的狀態(tài),以避開前一個spif和后一個spif相重疊。這樣,從硬件上避開了這一階段的溢出錯誤。但是,假如從器件工作速度不夠快或者軟件正在處理其他事情,在spi接口接收到的數(shù)據(jù)尚未被讀取的狀況下,又接收到一個新的數(shù)據(jù),溢出錯誤還是會發(fā)生的。此時,spi接口庇護前一個數(shù)據(jù)不被籠罩,舍棄新收到的數(shù)據(jù),置溢出標記ovr1;另外發(fā)出中斷信號(假如該中斷允許),通知從器件準時讀取數(shù)據(jù)。4 偏移錯誤(ofst)spi接口普通要求從器件先工作,然后主器件才開頭發(fā)送數(shù)據(jù)。有時在主器件往外發(fā)送數(shù)據(jù)的過程中,從器件才開頭工作,或者sck受到外界干擾,從器件未能精確地接收到8個sck。5所示,從器件接
8、收到的8個sck其實是屬于主器件發(fā)送相鄰的兩個數(shù)據(jù)的sck主。這時,主器件的spif和從器件的spif會發(fā)生重疊,數(shù)據(jù)發(fā)生了錯位,從器件假如不對此舉行訂正的話,數(shù)據(jù)的接收/發(fā)送便向來地錯下去。圖5偏移錯誤在一個數(shù)據(jù)的傳輸過程中,spr是不允許轉(zhuǎn)變的,即sck是勻稱的,而從圖5可以看出,從器件接收到的8個sck并不勻稱,它們是分離屬于兩個數(shù)據(jù)的,因此可以計算sck的占空時光來推斷是否發(fā)生了偏移錯誤。經(jīng)分析,正常時候sck1時的時鐘周期數(shù)n的取值滿足如下關系:但因為主從時鐘之間是異步的,并且經(jīng)過了取整,所以正常時候sck1時的時鐘周期計數(shù)值count應滿足:比如在圖5中,count的最大值coun
9、t(max)2或者1,都可認為是正常的。但當浮現(xiàn)count(max)8時,可以判定浮現(xiàn)了偏移錯誤。在實際設計中,先記錄下第一個count(max)的值,假如后面又浮現(xiàn)與記錄值相差1以上的count(max)浮現(xiàn),可知有偏移錯誤ofst發(fā)生。spi接口在“不勻稱”的地方令spif1,然后預備等待下一個數(shù)據(jù)的第一個sck。其中count的位數(shù)固定為8位,為了避開溢出時重新從00h開頭計數(shù),當計數(shù)達到ffh時停止計數(shù)。5 其他錯誤設定不當,或者受到外界干擾,數(shù)據(jù)傳輸難免會發(fā)生錯誤,或者有時軟件對錯誤的種類推斷不清,必需要有一種辦法強制spi接口從錯誤狀態(tài)中復原過來。在spi不工作,即spen0的時候,清除spi模塊內(nèi)部幾乎全部的狀態(tài)(專用寄存器除外)。假如軟件在接收數(shù)據(jù)的時候,能夠發(fā)覺數(shù)據(jù)有錯誤,無論是什么錯誤,都可以強制停止spi的工作,重新舉行數(shù)據(jù)傳輸。例如,在偏移錯誤(ofst)中,假如spr2、spr1和spr0的設置適當,也可以使sck顯得比較“勻稱”。spi接口硬件本身不行能檢測到有錯誤,若用戶軟件能夠發(fā)覺錯誤,這時就可以強制停止spi的傳輸工作,這樣就可以避開錯誤向來持續(xù)下去。結(jié)語本文對spi接口之間數(shù)據(jù)傳輸中各種出錯狀況舉行分析,并
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個人房屋借款合同格式版(2篇)
- 2025年二手辦公家具轉(zhuǎn)讓協(xié)議(2篇)
- 2025年個人平房租賃合同標準版本(三篇)
- 2025年產(chǎn)品購銷合同范例(2篇)
- 2025年五年級品德與社會教學總結(jié)模版(三篇)
- 2025年鄉(xiāng)村所有制企業(yè)職工勞動合同(2篇)
- 2025年主債權轉(zhuǎn)讓協(xié)議范文(2篇)
- 早教中心裝修合同模板-@-1
- 工業(yè)園區(qū)裝修分包合同樣本
- 汽車維修配件物流合同模板
- 中醫(yī)外治法課件
- 2025屆山東省濱州市三校聯(lián)考語文高三第一學期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 第15屆-17屆全國中學生物理競賽預賽試卷含答案
- 道路運輸企業(yè)主要負責人和安全生產(chǎn)管理人員安全考核題(公共部分題+專業(yè)部分題)及答案
- 外研版小學英語(三起點)六年級上冊期末測試題及答案(共3套)
- 月結(jié)合同模板
- 上海市黃浦區(qū)2024年數(shù)學六年級第一學期期末監(jiān)測試題含解析
- 2023電化學儲能電站消防安全標準鉛炭電池(鉛酸電池)
- 青島版五四制四年級數(shù)學上冊豎式計算100道
- DB11T 1322.94-2024安全生產(chǎn)等級評定技術規(guī)范 第94部分:救助管理機構
- 新教材-外研版高中英語選擇性必修第二冊全冊教學課件(按單元排序-)
評論
0/150
提交評論