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