ARM與射頻芯片TRF796x的SPI通信研究
摘要:針對SPI總線接口缺乏標(biāo)準(zhǔn)協(xié)議的特點,提出了SPI器件之間通信的一般方法。論文闡述了ARM芯片內(nèi)置SPI硬件控制器的工作原理和時序,并對射頻芯片TRF7960x的工作模式與讀寫要求進(jìn)行了分析。在此基礎(chǔ)上,根據(jù)TRF796x的時序特性和訪問要求,采用ARM芯片的硬件 SPI方式實現(xiàn)對TRF796x的讀寫訪問與控制,并在RFID門禁系統(tǒng)中驗證了通信結(jié)果。
關(guān)鍵詞:SPI;ARM;TRF796x;時序
引言
SPI(同步串行外圍接口)是由Motorola公司最早提出的,出現(xiàn)在其M68系列單片機(jī)中。它是一種全雙工的同步串行接口,采用主一從模式架構(gòu),支持多Slave模式應(yīng)用,但一般僅支持單Master。由于其簡單實用,又不牽涉到專利問題,因此許多廠家的設(shè)備都支持該接口,被廣泛應(yīng)用于外設(shè)控制領(lǐng)域。 SPI接口是一種事實標(biāo)準(zhǔn),并沒有標(biāo)準(zhǔn)協(xié)議,大部分廠家都是參照Motorola公司的SPI接口定義來設(shè)計的。正因為沒有確切的標(biāo)準(zhǔn)協(xié)議,不同廠家的 SPI器件接口在技術(shù)上存在著一定的差異,有的甚至無法直接互連。本文對SPI器件通信時容易忽略的問題進(jìn)行了分析。
1 S3C2440A內(nèi)置SPI接口與工作時序
S3C2440A是Samsung公司生產(chǎn)的ARM9內(nèi)核芯片,該芯片內(nèi)置了2個SPI硬件控制器,大大簡化了與SPI器件的通信。從 Samsung公司提供的Datasheet中可以看出,其內(nèi)置硬件SPI結(jié)構(gòu)主要由4部分構(gòu)成:時鐘分頻器、8位發(fā)送移位寄存器、8位接收移位寄存器、控制邏輯等。其與SPI接口相關(guān)的寄存器包括控制寄存器(SPCONn)、狀態(tài)寄存器(SPSTAn)、引腳控制寄存器(SPPINn)、預(yù)分頻寄存器 (SPPREn)、發(fā)送數(shù)據(jù)寄存器(SPTDATn)、接收數(shù)據(jù)寄存器(SPRDATn,n=0,1)。其SPI接口共有4根信號線,分別是從設(shè)備選擇線(SS)、時鐘線(SCK)、串行輸出數(shù)據(jù)線(MO-SI)、串行輸入數(shù)據(jù)線(MISO)。當(dāng)S3C2440A作為Master時,SS信號由S3C2440A驅(qū)動輸出,用于選擇激活某從 SPI器件,只有當(dāng)SS信號線為低電平時,對應(yīng)Slave設(shè)備的SPI接口才處于工作狀態(tài)。為了滿足不同SPI器件的通信特性,S3C2440A內(nèi)置的 SPI接口定義了4種數(shù)據(jù)傳輸?shù)墓ぷ鲿r序,這4種時序是由控制寄存器(SPCONn)的時鐘極性控制位(CPOL)和時鐘相位控制位(CPHA)聯(lián)合進(jìn)行配置的。從表1可以看出,SPI的工作時序主要是根據(jù)數(shù)據(jù)采樣的時刻(上升沿或下降沿),以及在沒有數(shù)據(jù)傳輸時SCK信號所保持的狀態(tài)來劃分模式的。
根據(jù)CPOL和CPHA設(shè)置的不同,S3C2440A內(nèi)置SPI接口的4種工作時序如圖1所示。需要注意的是,SPI通信的數(shù)據(jù)傳輸是以字節(jié)為單位進(jìn)行的,且高位在前,低位在后,圖1中的*LSB表示上一個傳輸字節(jié)的最低位,MSB*是指下一個傳輸字節(jié)的最高位。
評論