- 相關(guān)推薦
ADμC812的串行外設接口(SPI)及其應用
摘要:ADμC812是一種新型的集成12位數據采集系統。它的串行外設接口SPI(serial peripheral interface)可進(jìn)行主機和多片從外圍器件的信息傳遞,即主機對從機的控制及從機向主機提供各種信息等,從而實(shí)現系統之間的各種控制和操作。概述
ADμC812是一種全集成的12位數據采集系統。它在單個(gè)芯片內包含了高性能的自校準多通道ADC、2個(gè)12位DAC以及可編程的8位MCU(與8051兼容)。為便于MCU與各種外圍設備進(jìn)行通信,ADμC812提供了3種串行I/O端口:UART接口、I2C兼容的串行接口和串行外設接口(SPI)。其中,SPI接口是工業(yè)標準的同步串行接口,是一種全雙工、三線(xiàn)通信的系統。它允許MCU與各種外圍設備以串行方式(8位數據同時(shí)、同步地被發(fā)送和接收)進(jìn)行通信。在SPI接口中,數據的傳輸需要1個(gè)時(shí)鐘信號和兩條數據線(xiàn)。
SPI可工作在主模式或從模式下。在主模式,每一位數據的發(fā)送/接收需要1次時(shí)鐘作用;而在從模式下,每一位數據都是在接收到時(shí)鐘信號之后才發(fā)送/接收。1個(gè)典型的SPI系統包括1個(gè)主MCU和1個(gè)或幾個(gè)從外圍器件。SPI接口可設置成在發(fā)送/接收1個(gè)字節的結束時(shí)產(chǎn)生1次中斷。
主時(shí)鐘可以通過(guò)編程而成為不同的狀態(tài),既可編程為4種不同主波特率的任一種,又可對時(shí)鐘的極性和相位進(jìn)行編程。
SPI也可用于那些需要比微控制器上的并行I/O端口更多輸入或輸出端的場(chǎng)合中。SPI提供了一種擴展I/O功能的最簡(jiǎn)單的辦法,只需使用最少的微控制器引腳。
一、工作原理
1.SPI的信號說(shuō)明
SPI系統使用4條線(xiàn)可與多種標準外圍器件直接接口:串行時(shí)鐘線(xiàn)(SCLOCK)、主機輸入/從機輸出數據線(xiàn)MISO、主機輸出/從機輸入數據線(xiàn)MOSI和低電平有效的從機選擇線(xiàn)SS。
SCLOCK是主機的時(shí)鐘線(xiàn),為MISO數據的發(fā)送和接收提供同步時(shí)鐘信號。每一位數據的傳輸都需要1次時(shí)鐘作用,因而發(fā)送或接收1個(gè)字節的數據需要8個(gè)時(shí)鐘的作用。主機的時(shí)鐘是通過(guò)主機的硬件設置的,并和各個(gè)從機的SCLOCK相連。時(shí)鐘的波特率、極性、相位是由SPICON(SPI控制寄存器)來(lái)設置的。
MISO是主機的輸入/從機的輸出數據線(xiàn)。主機的MISO應與從機的MISO相連進(jìn)行高位在前的數據交換。
MOSI是SPI接口的SPI主機輸出/從機輸入數據引腳。這一引腳應當連接主微控制器的數據輸出和從微控制器的數據輸入端MOSI,進(jìn)行高位在前數據的交換。
SS只在從方式中用于低電平選中從。SS對應的是P1.5,在初始化時(shí)P1口被設置為模擬輸入,因而通過(guò)清除P1.5可將其設置為數據輸入,才可完成主、從機的通信。
2.SPI的寄存器
SPI有2個(gè)相關(guān)寄存器:SPICON和SPIDAT,其中SPICON包含各種標志位、使能位、方式位及時(shí)鐘位。各位都是可尋址的,如表1及表2所列。
表1 SPICON寄存器
表2 SPICON各位功能
位功 能ISPI中斷標志位。當發(fā)送和接收1字節數據完畢時(shí)自動(dòng)置全。該位也可以通過(guò)軟件控制。當于中斷時(shí),應當打開(kāi)中斷EA,將IE2.0置位。當執行中斷服務(wù)程序時(shí),硬件自動(dòng)清除該位WCOL寫(xiě)沖突錯誤標志位。
當SPI正進(jìn)行數據交換時(shí),若向SPIDAT中寫(xiě)數據將產(chǎn)生寫(xiě)沖突錯誤,寫(xiě)入的數據將無(wú)效,原有交換繼續執行。必須由軟件清除SPESPI使能位。
SPE=0,I2C串口使能,SPI串口禁止;
SPE=1,I2C串口禁止,SPI串口使能SPIM主模式選擇位。
SPIM=0,SPI工作于從模式;
SPIM=1,SPI工作于主模式CPOL時(shí)鐘極性選擇位。
CPOL=0,主機時(shí)鐘有高到低的跳變讀取數據,數據字節之間傳輸時(shí),時(shí)鐘處于高電平空閑狀態(tài);
CPOL=1,主機時(shí)鐘有低到高的跳變讀取數據,各數據字節之間傳輸時(shí)時(shí)鐘處于低電平空閑狀態(tài)(見(jiàn)圖1)CPHA時(shí)鐘相位選擇位。
CPHA=0,傳輸數據的高位MSB在SS的降沿出現,在時(shí)鐘第1個(gè)前沿讀入;之后下一數據位在時(shí)鐘后沿出現,在下一個(gè)前沿讀入;直到8位數據讀完。
CPHA=1,數據在時(shí)鐘前沿出現,在同一時(shí)鐘周期的后沿讀入(見(jiàn)圖1)。
讀位還可控制從機的同步方式SPR1
SPR0SPI波行選擇位。
SPR1 SPR0 波特率
0 0 fosc/4
0 1 fosc/8
1 0 fosc/32
1 1 fosc/64
注:從方式下這兩位都清零
另一個(gè)SPI寄存器是SPIDAT。對這一寄存器的寫(xiě)操作會(huì )產(chǎn)生從高位開(kāi)始的一位位的數據發(fā)送。如果寫(xiě)操作發(fā)生在其他數據正在傳遞的過(guò)程中,那么WCOL將置位。如果寫(xiě)操作進(jìn)行時(shí)沒(méi)有其他數據在傳遞,SPIDAT中的數據將自動(dòng)鎖存到移位寄存器中,移位寄存器從高位開(kāi)始發(fā)送數據,發(fā)送結束后輸入的字節將鎖存到SPIDAT中,可進(jìn)行軟件讀出。
3.主模式
【ADμC812的串行外設接口SPI及其應用】相關(guān)文章:
基于串行外設接口(SPI)的CAN總線(xiàn)隔離擴展設計03-18
串行接口鍵盤(pán)控制器SK5278及其在單片機系統中的應用03-18
PCI接口芯片s5935及其應用03-19
基于A(yíng)DμC812的CAN總線(xiàn)智能節點(diǎn)的設計03-19
異步串行通信接口的IP核設計03-18
高精度AD轉換器LTC1606及其應用03-18