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