基于LPC2103的SPI總線技術(shù)的應(yīng)用
關(guān)鍵詞: SPI總線;主模式;LPC2103;74HC595本文引用地址:http://www.ex-cimer.com/article/163070.htm
SPI( Serial Peripheral Interface) 總線是Motorola公司提出的一個(gè)同步串行外設(shè)接口, 允許MCU與各種外圍器件以串行方式進(jìn)行通信、數(shù)據(jù)交換。SPI可以同時(shí)發(fā)出和接收串行數(shù)據(jù), 它只需4條線就可以完成MCU與各種外圍器件的通信。一般使用的4條線為:串行時(shí)鐘線SCK、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線SSEL。這些外圍器件可以是簡單的TTL移位寄存器、復(fù)雜的LCD顯示驅(qū)動(dòng)器、Flash、RAM、A/D轉(zhuǎn)換器、網(wǎng)絡(luò)控制器及其他MCU等[1]。
本文給出了一種基于SPI總線的LPC2103控制外圍LED顯示的設(shè)計(jì)方法。利用74HC595驅(qū)動(dòng)靜態(tài)共陽LED數(shù)碼管,使用串轉(zhuǎn)并的方式實(shí)現(xiàn)I/O口的擴(kuò)展。
1 LPC2103中的SPI功能特性
LPC2103是一個(gè)基于支持實(shí)時(shí)仿真的16/32位ARM7 TDMI-S CPU的微控制器,內(nèi)部具有2個(gè)完全獨(dú)立的SPI控制器,采用全雙工的數(shù)據(jù)通信方式,最大數(shù)據(jù)位速率為外設(shè)時(shí)鐘Fpclk的1/8。與SPI總線接口有關(guān)的專用寄存器有:(1)SPCR控制寄存器。該寄存器包含一些可編程位來控制SPI總線的功能,而且在數(shù)據(jù)傳輸之前進(jìn)行設(shè)定,主要有時(shí)鐘相位控制、時(shí)鐘極性控制、主從模式選擇、字節(jié)傳輸移動(dòng)方向及SPI中斷使能;(2)SPSR狀態(tài)寄存器(為只讀寄存器)。用于監(jiān)視SPI功能模塊的狀態(tài),包括一般性功能和異常情況。主要用途是檢測數(shù)據(jù)傳輸是否完成,通過判斷SPIF位來實(shí)現(xiàn),其他位用于指示異常情況;(3)SPDR數(shù)據(jù)寄存器。為SPI提供數(shù)據(jù)的發(fā)送和接收,處于主模式時(shí),向該寄存器寫入數(shù)據(jù),將啟動(dòng)SPI數(shù)據(jù)傳輸。串行數(shù)據(jù)的發(fā)送和接收通過內(nèi)部移位寄存器來實(shí)現(xiàn);(4)SPCCR時(shí)鐘計(jì)數(shù)器寄存器。用于設(shè)置SPI時(shí)鐘分頻值,SPI處于主模式時(shí),該寄存器用于控制時(shí)鐘速率,即SPI總線速率,寄存器值為1位SCK時(shí)鐘所占用的PCLK周期數(shù),并且值為偶數(shù),必須不小于8;(5)SPINT中斷標(biāo)志寄存器。包含了SPI的中斷標(biāo)志位,由數(shù)據(jù)傳輸完成及發(fā)生模式錯(cuò)誤來引發(fā)[2]。
1.1 SPI電氣連接
利用SPI總線可在軟件的控制下構(gòu)成各種系統(tǒng),如1個(gè)主MCU和幾個(gè)從MCU、幾個(gè)從MCU相互連接構(gòu)成多主機(jī)系統(tǒng)(分布式系統(tǒng))、1個(gè)主MCU和1個(gè)或幾個(gè)從I/O設(shè)備所構(gòu)成的各種系統(tǒng)等。在大多數(shù)應(yīng)用場合, 可使用1個(gè)MCU 作為主機(jī)來控制數(shù)據(jù),并向1個(gè)或幾個(gè)從外圍器件傳送該數(shù)據(jù)。從器件只有在主機(jī)發(fā)命令時(shí)才能接收或發(fā)送數(shù)據(jù)。同一時(shí)刻只允許有1個(gè)主機(jī)操作總線。在數(shù)據(jù)傳輸過程中,總線上只能有1個(gè)主機(jī)和1個(gè)從機(jī)通信。在一次數(shù)據(jù)傳輸中,主機(jī)總是向從機(jī)發(fā)送1個(gè)字節(jié)數(shù)據(jù),而從機(jī)也總是向主機(jī)發(fā)送1個(gè)字節(jié)數(shù)據(jù)[3]。圖1為SPI在主模式下控制2個(gè)SPI從機(jī)的硬件連接圖。
1.2 SPI數(shù)據(jù)傳輸
在SPI數(shù)據(jù)傳輸中,SPCR控制寄存器的CPHA和CPOL位作用非常關(guān)鍵。CPHA為時(shí)鐘相位控制,該位決定SPI傳輸時(shí)數(shù)據(jù)和時(shí)鐘的關(guān)系,并控制從機(jī)傳輸?shù)钠鹗己徒Y(jié)束,該位為1,時(shí)鐘前沿?cái)?shù)據(jù)輸出,后沿?cái)?shù)據(jù)采樣;為0,時(shí)鐘前沿?cái)?shù)據(jù)采樣,后沿?cái)?shù)據(jù)輸出。CPOL為時(shí)鐘極性控制,為1時(shí),SCK為低電平有效;為0時(shí),SCK為高電平有效[4]。
評(píng)論