亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ARM與射頻芯片TRF796x的SPI通信研究

        2010-03-20 02:31:44方杰曾碧
        單片機與嵌入式系統應用 2010年11期

        方杰,曾碧

        (廣東工業(yè)大學,廣州510006)

        引 言

        SPI(同步串行外圍接口)是由Motorola公司最早提出的,出現在其M 68系列單片機中。它是一種全雙工的同步串行接口,采用主-從模式架構,支持多Slave模式應用,但一般僅支持單Master[1]。由于其簡單實用,又不牽涉到專利問題,因此許多廠家的設備都支持該接口,被廣泛應用于外設控制領域。SPI接口是一種事實標準,并沒有標準協議,大部分廠家都是參照Motorola公司的SPI接口定義來設計的。正因為沒有確切的標準協議,不同廠家的SPI器件接口在技術上存在著一定的差異,有的甚至無法直接互連。本文對SPI器件通信時容易忽略的問題進行了分析。

        1 S3C2440A內置SPI接口與工作時序

        S3C2440A是Samsung公司生產的ARM 9內核芯片,該芯片內置了2個SPI硬件控制器,大大簡化了與SPI器件的通信[2]。從Samsung公司提供的Datasheet中可以看出,其內置硬件SPI結構主要由4部分構成:時鐘分頻器、8位發(fā)送移位寄存器、8位接收移位寄存器、控制邏輯等。其與SPI接口相關的寄存器包括控制寄存器(SPCONn)、狀態(tài)寄存器(SPSTAn)、引腳控制寄存器(SPPINn)、預分頻寄存器(SPPREn)、發(fā)送數據寄存器(SPTDATn)、接收數據寄存器(SPRDATn,n=0,1)。其SPI接口共有4根信號線,分別是從設備選擇線(SS)、時鐘線(SCK)、串行輸出數據線(MOSI)、串行輸入數據線(MISO)。當S3C2440A作為M aster時,SS信號由S3C2440A驅動輸出,用于選擇激活某從SPI器件,只有當SS信號線為低電平時,對應Slave設備的SPI接口才處于工作狀態(tài)。為了滿足不同SPI器件的通信特性,S3C2440A內置的SPI接口定義了4種數據傳輸的工作時序,這4種時序是由控制寄存器(SPCONn)的時鐘極性控制位(CPOL)和時鐘相位控制位(CPHA)聯合進行配置的。從表1可以看出,SPI的工作時序主要是根據數據采樣的時刻(上升沿或下降沿),以及在沒有數據傳輸時SCK信號所保持的狀態(tài)來劃分模式的。

        根據CPOL和CPHA設置的不同,S3C2440A內置SPI接口的4種工作時序如圖1所示。需要注意的是,SPI通信的數據傳輸是以字節(jié)為單位進行的,且高位在前,低位在后,圖1中的*LSB表示上一個傳輸字節(jié)的最低位,MSB*是指下一個傳輸字節(jié)的最高位。

        表1 CPOL和CPHA對SPI時序的影響

        圖1 SPI通信的工作時序

        2 射頻芯片TRF796x

        TRF796x是德州儀器(TI)公司生產的射頻讀寫器芯片,是一個13.56 MH z集成模擬前端和數據幀RFID閱讀系統[3]。其內部可編程配置,外部控制器可直接訪問其內部寄存器來調整讀寫器的各種參數,該芯片被廣泛應用于近距離RFID系統。

        TRF796x芯片與處理器之間的通信既可以通過8位并行口也可以通過SPI接口。當采用SPI接口時,TRF796x芯片總是以從設備運行。如果內部的硬件編/解碼器被使用,TRF796x將啟動12個字節(jié)的數據緩沖器FIFO來完成數據的傳送和接收。有時候為了使處理器(如MCU)能實時的處理數據,TRF796x會旁路掉硬件編/解碼器,采用直接傳送和接收功能。TRF796x芯片的兩種通信模式是相互排斥的,在應用中的某個時刻只能有一種通信方式被使用。表2中列出了TRF796x的通信方式,可以看出,要實現其SPI通信就必須先對引腳I/O0~I/O2配置成不同的電平。當芯片被使能工作時就會檢測這3個引腳的電平,從而進入相應的通信方式。

        當選擇了SPI帶SS通信方式,SS信號為高時SPI處于復位狀態(tài)。只有SS信號為低時,時鐘信號才開始工作,串行數據輸入(MOSI)在上升沿采樣,在下降沿確認生效,當SS信號變?yōu)楦唠娖綍r,通信終止。TRF796x的寫操作通信如圖2所示。

        表2 TRF796x的通信模式

        圖2 TRF796x的SPI接口通信(寫)

        TRF796x的單個寄存器讀操作包括一個寫周期和一個讀周期,在寫周期過程中,M ISO引腳上是無效的數據,其時序與寫操作相同,也是上升沿采樣,下降沿確認生效。在寫周期和讀周期之間,需要有半個時鐘周期的極性轉換時間。注意:對于任何讀操作(單個讀、連續(xù)讀)來說,該時鐘極性跳變必須被執(zhí)行,否則不能夠讀到TRF796x寄存器的正確值。在讀周期過程中,數據在下降沿采樣,上升沿時確認生效,而MOSI引腳不應該有任何的跳變,就是說要始終保持高電平或低電平(即0x00或0xFF)。圖3是TRF796x的讀操作時序。

        圖3 TRF796x的SPI接口通信(讀)

        3 ARM與TRF796x通信的實現

        S3C2440A的SPI接口傳輸方式有查詢、中斷、DMA三種,由于TRF796x有專門的IRQ中斷引腳,所以本文選擇ARM芯片SPI接口的查詢方式。S3C2440A作為Master,時鐘頻率通過SPPREn寄存器設置,其頻率f=PCLK/[2(SPPREn的值+1)],f≤25 MHz??刂萍拇嫫鱏PCONn應該根據具體的通信要求來設置。

        對TRF796x的訪問需要區(qū)分是寫地址還是寫命令[4],字節(jié)的最高位(MSB)決定了該指令是用于命令還是地址。具體的地址/命令字節(jié)位描述如表3所列。

        表3 地址/命令字節(jié)描述

        從表3可以看出,如果是單個寫寄存器操作,則發(fā)送字節(jié)最高3位為000;如果是連續(xù)寫寄存器操作,則最高3位001;如果是讀單個寄存器操作,則最高3位010;如果是寫命令,則最高3位100;其他操作不再詳述。

        本文采用S3C2440A的SPI0接口與TRF796x通信,其連接圖如圖4所示。從I/O_0~I/O_2的引腳電平可以看出選擇的是SPI帶SS通信方式。其中,EN腳是TRF796x的工作使能引腳,I/O_4是SS腳。當SS置為低且查詢到狀態(tài)寄存器SPSTA0的最低位為1(說明SPI發(fā)送接收準備好),待發(fā)送的數據一旦寫入到發(fā)送移位寄存器SPTDAT0中,SPI通信的發(fā)送和接收就會同時開始,一般是上升沿發(fā)送,下降沿接收。如果只想發(fā)送不想接收數據,可以不讀取接收寄存器的內容;值得注意的是,如果只想接收數據,應該寫數據0xFF或0x00到發(fā)送移位寄存器,然后才能從接收移位寄存器中讀取數據。

        圖4 SPI接口連接圖

        下面通過非連續(xù)寄存器讀操作來具體說明ARM與TRF796x是如何進行SPI通信的。圖5是對TRF796x的非連續(xù)寄存器讀操作的流程。

        整個讀操作流程是:

        ①初始化操作,置EN腳為高電平使能TRF796x工作,將GPE11~GPE13配置成SPI功能,配置S3C2440A作為Master,且選擇查詢工作方式,寫SPPREN 0寄存器來配置通信時鐘頻率。

        ②寫地址,從圖1和圖3的時序可以看出,要讀

        圖5 SPI非連續(xù)讀操作流程

        TRF796x的寄存器值,必須包含一個寫地址周期和一個讀數據周期。在寫TRF796x的地址之前,必須先設置SPCON0的CPOL和CPHA都為0,這樣通信雙方的時序才能保持一致,而且要將地址字節(jié)的最高3位設為010,然后將地址字節(jié)寫入發(fā)送移位寄存器SPTDAT0中,一旦地址字節(jié)發(fā)送完,TRF796x就會把相應地址的內容送到M ISO腳上。

        ③讀數據,在地址字節(jié)寫入后,讀數據之前,必須轉換SCK的時鐘極性,從圖1可以看出,需要設置CPOL為0,CPHA為1,這樣就滿足了TRF796x的讀時序要求。寫數據0x00或0xFF到SPTDAT0中,接著就可以從SPRDAT0中讀取數據。

        非連續(xù)讀操作的實現代碼如下:

        //把GPE13設為普通GPIO,并輸出高電平

        為了驗證上述的程序,在按照圖4連接電路后,可以選擇讀取TRF7960的09h、0Ah、0Bh寄存器單元的內容,這3個寄存器在系統上電時,分別默認內容為0x11、0x40、0x87。定義一個數組Operation[0]=0x09;Operation[1]=0x0A;Operation[2]=0x0B;調用函數Sing leRead(Operation,3);即可得到3個寄存器的內容并存放在Operation數組中。在RFID門禁系統的開發(fā)中,就是采用了這種SPI通信方式實現了ARM對RFID閱讀器芯片的訪問控制。

        結 語

        本文通過介紹ARM芯片與TRF796x之間的硬件SPI通信方式,說明了在進行SPI器件之間通信時應該注意的問題,強調工作時序在通信時的重要性,最后給出的程序在RFID門禁系統中得到了運用。論文研究對ARM與其他SPI器件之間的通信有一定的參考意義,只要根據SPI器件的工作時序進行稍加修改就能融會貫通。

        [1]沈建華.ARM嵌入式系統開發(fā)-軟件設計與優(yōu)化[M].北京:北京航空航天大學出版社,2005.

        [2]杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003.

        [3]凌陽教育.SPI原理與控制器[OL].[2010-06].http://www.51C51.net.

        [4]Samsung Electronics.S3C2440A User Manual,2004.

        [5]Texas Instruments.TRF796x Datasheet.

        [6]朱臣元,俞暉,徐友云.多協議多標簽RFID讀寫器設計[J].微計算機信息,2009(8).

        中美日韩在线一区黄色大片| 中字亚洲国产精品一区二区| 国产后入内射在线观看| 久久这里只精品国产2| 亚洲av永久青草无码精品| 一区二区三区熟妇人妻18| 青青草成人免费在线视频| 国产成人a在线观看视频免费| 国产乱沈阳女人高潮乱叫老| 日本老年人精品久久中文字幕| 白白色视频这里只有精品| 人妻精品久久久久中文字幕69| 亚洲成a v人片在线观看| 亚洲AV无码专区一级婬片毛片| 初尝人妻少妇中文字幕在线| 日韩极品视频免费观看| 夜夜爽日日澡人人添| 久久婷婷香蕉热狠狠综合| 亚州精品无码人妻久久| 精品亚洲乱码一区二区三区| 狠狠躁夜夜躁av网站中文字幕| 国产麻豆成人精品av| 伊人久久一区二区三区无码| 日韩精品久久伊人中文字幕| 女人天堂av人禽交在线观看| 亚洲av综合永久无码精品天堂| 精品人妻无码视频中文字幕一区二区三区| 国产麻豆剧传媒精品国产av蜜桃| 国产免费人成视频网站在线18| 熟女无套内射线观56| 亚洲午夜无码久久yy6080| 日韩在线精品视频观看 | 在线视频观看国产色网| 成人免费看吃奶视频网站| 丰满人妻无套中出中文字幕| 亚洲av熟女传媒国产一区二区| 亚洲国产一区二区三区在线观看| chinesefreexxxx国产麻豆| 国产一区二区三区视频了| 国产无套内射又大又猛又粗又爽| 精品无码国产自产拍在线观看蜜 |