一、SPI協議的原理與應用
- 基本概念
串行外設接口SPI(Serial Peripheral Interface)是由美國摩托羅拉公司最先推出的一種同步串行傳輸規范,也是一種單片機外設芯片串行外設擴展接口。該接口是一種高速、全雙工、同步的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的管腳,為PCB的布局上節省空間。
- 應用場景
SPI接口主要應用在訪問高速設備,如spi flash、2.4G無線傳輸、lcd設備顯示、電阻屏觸控IC等。
- 2.4GHZ無線傳輸
- LCD顯示設備
- 墨水屏設備
- 串行Flash存儲IC
- RFID射頻模塊
- 內部結構
SPI接口采用主從結構,SPI由一個主設備和一個或多個從設備組成,主設備啟動一個與從設備的同步通訊,從而完成數據的交換。SPI接口由MOSI(串行數據輸出)、MISO(串行數據輸入)、SCLK(串行移位時鐘)、/SS(從設備使能信號,/SS亦可為NSS)四種信號構成。
- 工作模式
由于SPI接口采用同步通信,必須在SCK時鐘線生成的脈沖信號期間完成數據的傳輸,對于SPI接口而言采用的是邊沿同步的方式,所以就需要清楚時鐘線SCK到底是哪個邊沿進行同步。
MCU作為主機可以選擇四種工作模式中的任何一種,但是選擇工作模式的時候要以從機支持的模式為主,從機支持的工作模式必須要閱讀從機的數據手冊(大多數都是支持模式0)。
- 串行Flash存儲IC的原理與應用
- 基本概念
由于STM32F407ZET6這顆MCU內部只有512KB的Flash閃存容量,這512KB需要用于存儲固件,剩余的空間可能不足以讓用戶使用了,所以需要額外的拓展存儲IC,在GEC-M4開發板中集成了一顆串行Flash芯片,型號是W25Q128,容量是128Mbit,該存儲IC采用SPI接口進行通信。
- 內存分布
W25Q128是容量為128Mbit的SPI接口NOR Flash的器件,內部是按照Page、Sector、Block的結構來劃分的,一個Page為256個Byte,一個Sector為16個Page也就是4KB,一個Block為16個Sector也就是64KB。相較于EEPROM而言,SPI Flash的存儲空間更大,存取速度更快,廣泛應用于嵌入式系統中數據、代碼的固化。
- 引腳說明
- 工作模式
- 指令分析
- 程序設計
- 讀取廠商/設備ID
- 寫使能
- 讀狀態寄存器
- 寫失能
- 擦除扇區
- 讀數據
- 頁編程
- 驗證結果
- 時序模擬
如果想要提高程序的實時性以及程序的可移植性,則可以選擇使用MCU的某些IO口生成SPI通信所需要的時序,從而擺脫硬件資源的限制。
用戶只需要找到4個IO口作為SPI通信的SCK、MISO、MOSI、CS,可以設置SCK引腳為輸出模式、MISO引腳為輸入模式、MOSI引腳為輸出模式、CS片選為輸出模式即可。
作業:把模式3的時序設計出來,并進行測試,要求把IO口模擬模式0和模式3的函數背下來!
三、RFID射頻模塊的原理與應用
- 基本概念
RFID技術也簡稱為射頻識別技術,是20世紀40年代開始出現的一種自動識別技術。RFID通過無線射頻信號獲取物體的相關數據,并對物體加以識別,RFID技術不需要和被識別物體進行直接接觸就可以完成物體信息的處理,也不需要人工干預,可以實現無接觸式信息傳遞,能應用在各種較為惡劣的環境中。所以說RFID技術是一種快速、高效的采集和處理物體信息的自動識別技術。
隨著計算機和互聯網的發展,物聯網的概念也被提出,而物聯網想要實現的是“萬物互聯”物聯網的核心思想是為全球每一個物品提供唯一的電子標簽,而RFID可以實現無接觸式的信息傳遞達到識別物體的目的。所以RFID技術也是實現物聯網的關鍵技術之一。
- 結構組成
RFID技術的實現離不開軟件與硬件的支持,硬件一般包含應答器、天線和閱讀器。軟件一般包含數據管理系統。
電子標簽也叫作應答器,一般是由集成電路芯片和內置天線組成的,芯片用來存儲物體相關數據,內置天線用來收發無線電波。電子標簽一般附著在物體上用來標識物體,每個標簽具有唯一的電子編碼。電子標簽的種類有很多,比如低頻標簽、高頻標簽等,并且電子標簽的樣式也有多種,比如條型、卡片型、環型、紐扣型等。
而對于識讀器而言,也稱為閱讀器或者讀寫器,是對電子標簽信息讀取和寫入的設備。閱讀器可以和計算機進行聯網,作用一般是作為數據交換的媒介,閱讀器一般由射頻模塊、控制模塊和天線組成。也可以把閱讀器理解為一個特殊的無線通信模塊,它可以和電子標簽通過天線進行無線通信。閱讀器可以工作在一個或多個工作頻段,也可以讀寫一種或多種電子標簽,閱讀器的種類有很多,比如手持式的、固定式的,使用起來非常方便。
- 識別原理
- 通信接口
本次使用的RFID模塊采用的驅動IC型號是MFRC522,對于該芯片支持多種通信接口,比如支持UART、SPI、IIC.....,本次使用SPI接口進行通信。
- 工作模式
可以知道,MFRC522和MCU使用SPI接口通信的時候,采用的SPI工作模式是模式0,所以主機就需要使用模式0。
- 硬件接線
由于打算采用IO口模擬SPI時序的方案實現RFID模塊的控制,所以從MCU中挑選4個引腳來作為SPI通信引腳。
- 程序移植
- 獲取源碼
- 分析源碼
- 拷貝文件
- 添加文件
- 修改源碼
提示:一般移植傳感器的程序時,只需要修改底層代碼(和IO口相關的、和時序相關的),不需要修改應用層代碼。
- 編譯源碼
- 下載源碼
- 查看效果
- 驗證結果
作業:根據SPI的時序完成RFID模塊的程序移植,并實現卡的選卡、讀卡、寫卡的相關功能。