《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于LPC2103的SPI總線技術的應用

基于LPC2103的SPI總線技術的應用

2009-06-05
作者:王 瑩

??? 摘 要:介紹了一種基于SPI總線技術的LPC2103對LED數碼管顯示實現控制的方法。采用8位74HC595串并轉換芯片驅動LED數碼管。結合74HC595芯片的特點給出了SPI控制的驅動電路,描述了基于SPI總線主模式的74HC595芯片的數據傳輸過程,給出了相關應用程序流程圖及軟件實現。
??? 關鍵詞: SPI總線;主模式;LPC2103;74HC595

?

??? SPI( Serial Peripheral Interface) 總線是Motorola公司提出的一個同步串行外設接口, 允許MCU與各種外圍器件以串行方式進行通信、數據交換。SPI可以同時發出和接收串行數據, 它只需4條線就可以完成MCU與各種外圍器件的通信。一般使用的4條線為:串行時鐘線SCK、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線SSEL。這些外圍器件可以是簡單的TTL移位寄存器、復雜的LCD顯示驅動器、Flash、RAM、A/D轉換器、網絡控制器及其他MCU等[1]
??? 本文給出了一種基于SPI總線的LPC2103控制外圍LED顯示的設計方法。利用74HC595驅動靜態共陽LED數碼管,使用串轉并的方式實現I/O口的擴展。
1 LPC2103中的SPI功能特性
??? LPC2103是一個基于支持實時仿真的16/32位ARM7 TDMI-S CPU的微控制器,內部具有2個完全獨立的SPI控制器,采用全雙工的數據通信方式,最大數據位速率為外設時鐘Fpclk的1/8。與SPI總線接口有關的專用寄存器有:(1)SPCR控制寄存器。該寄存器包含一些可編程位來控制SPI總線的功能,而且在數據傳輸之前進行設定,主要有時鐘相位控制、時鐘極性控制、主從模式選擇、字節傳輸移動方向及SPI中斷使能;(2)SPSR狀態寄存器(為只讀寄存器)。用于監視SPI功能模塊的狀態,包括一般性功能和異常情況。主要用途是檢測數據傳輸是否完成,通過判斷SPIF位來實現,其他位用于指示異常情況;(3)SPDR數據寄存器。為SPI提供數據的發送和接收,處于主模式時,向該寄存器寫入數據,將啟動SPI數據傳輸。串行數據的發送和接收通過內部移位寄存器來實現;(4)SPCCR時鐘計數器寄存器。用于設置SPI時鐘分頻值,SPI處于主模式時,該寄存器用于控制時鐘速率,即SPI總線速率,寄存器值為1位SCK時鐘所占用的PCLK周期數,并且值為偶數,必須不小于8;(5)SPINT中斷標志寄存器。包含了SPI的中斷標志位,由數據傳輸完成及發生模式錯誤來引發[2]。
1.1 SPI電氣連接
??? 利用SPI總線可在軟件的控制下構成各種系統,如1個主MCU和幾個從MCU、幾個從MCU相互連接構成多主機系統(分布式系統)、1個主MCU和1個或幾個從I/O設備所構成的各種系統等。在大多數應用場合, 可使用1個MCU 作為主機來控制數據,并向1個或幾個從外圍器件傳送該數據。從器件只有在主機發命令時才能接收或發送數據。同一時刻只允許有1個主機操作總線。在數據傳輸過程中,總線上只能有1個主機和1個從機通信。在一次數據傳輸中,主機總是向從機發送1個字節數據,而從機也總是向主機發送1個字節數據[3]。圖1為SPI在主模式下控制2個SPI從機的硬件連接圖。

?

?

1.2 SPI數據傳輸
??? 在SPI數據傳輸中,SPCR控制寄存器的CPHA和CPOL位作用非常關鍵。CPHA為時鐘相位控制,該位決定SPI傳輸時數據和時鐘的關系,并控制從機傳輸的起始和結束,該位為1,時鐘前沿數據輸出,后沿數據采樣;為0,時鐘前沿數據采樣,后沿數據輸出。CPOL為時鐘極性控制,為1時,SCK為低電平有效;為0時,SCK為高電平有效[4]。
??? 圖2為SPI的4種不同數據傳輸格式時序,描述的是8位數據傳輸。該時序圖水平方向分成3部分:(1)描述SCK和SSEL信號;(2)描述CPHA為0時的MOSI和MISO信號;(3)描述CPHA為1時的MOSI和MISO信號。SSEL信號為低電平,說明SPI工作在從模式。其中,MOSI和MISO信號中的bit1~bit8表示傳輸的第幾位數據。

?


2 74HC595擴展I/O接口電路
??? SPI是一個串行輸入輸出的接口,使用串轉并的接口芯片可以實現擴展I/O口。74HC595芯片為一種常用的8位串轉并移位寄存器芯片,本系統利用74HC595來驅動靜態共陽LED數碼管。74HC595的主要優點:具有數據存儲寄存器,在移位過程中,輸出端的數據可以保持不變。這在串行速度慢的場合很有用處,數碼管沒有閃爍感。LPC2103工作在SPI主模式下。
??? 圖3為74HC595邏輯圖。圖中,SI為串行數據輸入引腳,用來連接LPC2103的MOSI功能引腳;SCK為移位寄存器的時鐘輸入,連接LPC2103串行時鐘線SCK;為清移位寄存器引腳;RCK為鎖寄存器鎖存時鐘引腳;即輸出觸發端與SSEL連接;為輸出使能引腳;SQH為串行數據輸出引腳,連接MISO;QA~QH引腳為并行輸出。當為高電平、使能接低時,SCK產生一個上升沿,SI引腳當前電平值將在移位寄存器中左移1位,在下一個上升沿到來時移位寄存器中的所有位都會向左移1位,同時SQH引腳也會串行輸出移位寄存器中的高位的值。當RCK產生上升沿時,移位寄存器的值將會被鎖存到鎖存器里,并從QA~QH引腳輸出。

?


??? 圖4為SPI接口與74HC595的連接原理圖。其中QA~QH分別連接共陽LED數碼管的8個段。在SPI輸出1個字節的數據時,SSEL產生1個低電平,SPI主機串行地發該字節的各個位,各個位都依次被鎖存在74HC595的移位寄存器內,當1個字節的數據傳輸完成后,SSEL由低電平變為高電平,從而使74HC595的移位寄存器的值被鎖存到74HC595的鎖存器并從其QA~QH引腳輸出;在SPI輸出1個字節數據的同時,74HC595移位寄存器之前的值也通過MISO引腳被SPI主機讀回。

?

?

3? 軟件設計[5]
??? 軟件設計包括:進行I/O口初始化,設置SPI引腳連接,啟用LPC2103的SPI 0總線,設置GPIO的P0.4、P0.5、P0.6、P0.7為SPI 0總線的SCK0、MISO0、MOSI0、SSEL0特殊功能,置74HC595片選端的I/O口為輸出功能。其代碼如下:
??? PINSEL0=0x00005500;? //設置SPI引腳連接
??? PINSEL1=0x00000000;
??? IODIR=HC595_CS;? //設置片選端I/O口為輸出
3.1 SPI總線操作初始化
??? 圖5為SPI總線操作流程圖。使用LPC2103的SPI總線主模式下實現對74HC595的數據傳輸,用來驅動外圍LED數碼管。設置SPI時鐘,在SPI主模式下,SPCCR寄存器控制SCK的頻率,SPI速率為Fpclk / SPCCR。通過SPCR控制寄存器設置時鐘相位、時鐘極性、主模式控制、字節移動方向及SPI中斷使能等。代碼實現如下:

?


??? Void MSpiIni(void)
??? {? SPI_SPCCR = 0x52;??//設置SPI時鐘分頻
??? ?? SPI_SPCR? = (0<<3)|??//CPHA=0,數據再從SCK的第一時鐘沿采樣
?????????????? (1<<4)|???//CPOL=1,SCK為低有效
?????????????? (1<<5)|???//MSTR=1,SPI處于主模式
?????????????? (0<<6)|???//LSBF=0,SPI數據傳輸MSB(位7)在先
?????????????? (0<<7);???//SPIE=0,SPI中斷被禁止
??? }
3.2 SPI總線主模式下數據發送過程
??? 首先選擇從機,設置片選。選擇74HC595為從機,置片選端SSEL為低有效。將發送的數據寫入SPDR,發送出去。等待SPIF置位,即數據發送完畢。最后可從SPDR讀取收到的數據。以下為發送函數:
??? uint8 MSendData(uint8 data)
??? {??? IOCLR=HC595_CS;?? //片選端,由LPC2103指定的I/O口置位
??? ???? SPI_SPDR=data;
??? ???? while(0==(SPI_SPSR&0x80));??? //等待SPIF置位,即等待數據發送完畢
??? ???? IOSET=HC595_CS;? //片選置高無效,結束發送
??? ???? return(SPI_SPDR);?? //返回接收到的數據
??? }
3.3 控制LED數碼管主函數
??? 主函數使用LPC2103的SPI接口輸出給74HC595,用來控制LED數碼管顯示。DISP_TAB[ ]為LED顯示0-F字模的16進制碼表。MSendData( )實現每一字節數據的發送。
??? #define?? HC595_CS??? 0x00000100???????? //P0.8口為74HC595的片選
??? uint8 const DISP_TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
??? int main(void)
??? {?? uint8 rcv_data;
??? uint8 i;
??? PINSEL0=0x00005500;??? ?//設置SPI引腳連接
??? PINSEL1=0x00000000;
??? IODIR=HC595_CS;???????????? //設置LPC2103片選I/O口為輸出功能
??? MSpiIni( );???????????????????????? ?//初始化SPI接口
??? while(1)
??? { for (i=0;i<16;i++)
??? ???? {rcv_data=MSendData(DISP_TAB[i]);?? //發送顯示數據
?????? ?? DelayNS(50);??????????????????? ? //延時
 ???????}
??? }
?????? return(0);
 }
??? 基于SPI總線的數據通信技術已經廣泛應用在MCU與各種外圍設備的串行通信中。如存儲系統、A/D轉換系統、網絡控制器和多MCU構成的分布式系統。本文給出了74HC595芯片驅動LED數碼管顯示的電路,采用SPI總線技術實現對LED顯示的數據傳輸,方便快捷、準確性高、速度快,滿足了復雜微控制系統對外圍設備控制的要求。
參考文獻
[1]?廣州周立功單片機發展有限公司.EasyARM2103教材.2007:98-108.
[2]?華卓立,姚若河.一種通用SPI總線接口的FPGA設計與實現[J].微計算機信息,2008, 24(6): 212-213.
[3]?周立功.ARM嵌入式系統基礎教程.北京:北京航空航天大學出版社,2005: 350-354.
[4]?張經愛,許凱華,劉玉華.基于MSP430的模擬SPI串口通信的實現[J].計算機工程與設計,2008, 29(5): 1169-1171.
[5]?蔡堯,崔峰,賀玉成,等.Liunx環境下基于MPC8250的SPI接口驅動程序開發[J].電子元器件應用,2007, 9(11): 12-15.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产欧美综合一区二区三区| 亚洲精品色婷婷福利天堂| 亚洲电影在线看| 欧美在线免费观看视频| 一本色道久久加勒比精品| 欧美日韩天天操| 亚洲欧洲在线播放| 久久影院亚洲| 亚洲国产美国国产综合一区二区| 一本到高清视频免费精品| 国产精品乱码人人做人人爱| 国产一区二区三区高清播放| 日韩亚洲欧美高清| 亚洲麻豆视频| 亚洲高清在线观看一区| 免费成人毛片| 久久一区二区三区国产精品| 欧美chengren| 欧美永久精品| 欧美激情综合亚洲一二区| 亚洲欧美第一页| 国产日韩亚洲欧美精品| 久久五月激情| 国产一区二区三区高清播放| 亚洲精品国产品国语在线app| 欧美日韩成人综合天天影院| 在线视频亚洲一区| 夜夜精品视频一区二区| 欧美日韩成人综合在线一区二区| 欧美国产精品久久| 亚洲欧美精品中文字幕在线| 亚洲黄色毛片| 狠狠久久亚洲欧美专区| 久久精品国产99精品国产亚洲性色| 欧美日韩国产综合在线| 欧美精品粉嫩高潮一区二区| 国产精品视频不卡| 欧美多人爱爱视频网站| 亚洲精品日韩欧美| 亚洲精品久久久久久久久久久| 久久综合色天天久久综合图片| 久久久精品国产一区二区三区| 午夜精品久久久久久久久久久久久| 国产在线视频欧美一区二区三区| 国产精品盗摄一区二区三区| 午夜性色一区二区三区免费视频| 免费不卡欧美自拍视频| 欧美日韩一区二区三区在线视频| 国产精品久久精品日日| 久久高清福利视频| 欧美精品在线观看| 欧美香蕉视频| 亚洲一区二区三区乱码aⅴ| 中文久久乱码一区二区| 欧美电影在线| 欧美韩日一区二区| 亚洲一区二区三区影院| 亚洲黄色尤物视频| 亚洲精品国产欧美| 麻豆九一精品爱看视频在线观看免费| 久久精品2019中文字幕| 亚洲砖区区免费| 国产精品大片wwwwww| 国产日韩欧美二区| 欧美成人免费在线| 国产真实乱子伦精品视频| 国产精品久久久爽爽爽麻豆色哟哟| 国产一区日韩一区| 欧美日韩视频一区二区| 欧美精品日韩一本| 国产精品老女人精品视频| 篠田优中文在线播放第一区| 久久日韩粉嫩一区二区三区| 亚洲激情六月丁香| 国产精品成人在线观看| 国产一区二区三区在线观看免费视频| 一区二区三区日韩精品视频| 欧美另类一区| 国产精品狠色婷| 国产精品免费福利| 午夜精品久久久久久久久久久久久| 欧美视频一区二区三区四区| 亚洲另类一区二区| 国产精品毛片| 午夜亚洲影视| 日韩一级在线观看| 久久综合九色综合久99| 欧美日韩在线视频观看| 国产一区二区三区电影在线观看| 国模私拍视频一区| 欧美一区二区三区另类| 亚洲精品国产精品乱码不99| 亚洲欧美国产精品va在线观看| 亚洲国产精品视频| 国产日韩一区在线| 亚洲国产精品久久久久久女王| 狂野欧美激情性xxxx| 欧美精品国产一区| 久久婷婷亚洲| 91久久线看在观草草青青| 午夜精品久久久久久久久久久| 国产精品va在线| 久久精品国产亚洲精品| 在线亚洲高清视频| 欧美一区二区在线播放| 久久久综合网站| 欧美日韩在线播放| 久久国产高清| 亚洲一区二区影院| 国产亚洲一级高清| 国产精品欧美久久久久无广告| 黑人巨大精品欧美黑白配亚洲| 久久国产手机看片| 国产一区二区中文字幕免费看| 国内一区二区三区| 国产日韩欧美一区二区三区四区| 欧美日韩亚洲综合| 国产乱人伦精品一区二区| 亚洲欧美日韩天堂| 欧美一区1区三区3区公司| 亚洲久色影视| 国产综合色精品一区二区三区| 欧美一区二区福利在线| 黑丝一区二区| 亚洲区一区二| 亚洲欧美一区在线| 国产偷国产偷精品高清尤物| 欧美日韩一区三区四区| 久久超碰97中文字幕| 久久狠狠一本精品综合网| 欧美在线视频免费| 久久久www成人免费毛片麻豆| 亚洲一区二区久久| 亚洲美女在线看| 久久久久久久欧美精品| 久久久伊人欧美| 韩国精品主播一区二区在线观看| 亚洲欧美清纯在线制服| 久久精品系列| 一本一本久久a久久精品综合麻豆| 欧美日韩一卡| 亚洲综合社区| 亚洲视频碰碰| 欧美大片免费看| 欧美片在线观看| 亚洲美女啪啪| 欧美特黄一区| 欧美一区二区视频在线观看2020| 午夜精品久久久久久久久久久| 久久精品日产第一区二区三区| 亚洲午夜电影在线观看| 欧美激情精品久久久久久蜜臀| 精品成人免费| 亚洲欧美日韩精品久久久| 一本色道综合亚洲| 国产伦精品一区二区三| 免费一级欧美在线大片| 韩国美女久久| 亚洲一区二区三区高清| 黄色一区二区三区四区| 亚洲精品久久久一区二区三区| 欧美日韩无遮挡| 亚洲国产裸拍裸体视频在线观看乱了| 欧美成人精品h版在线观看| 激情一区二区| 玉米视频成人免费看| 国产精品久久久久久久久久久久久| 国产一区二区三区在线观看网站| 久久精品二区亚洲w码| 久久免费国产精品| 黄网站色欧美视频| 欧美女同在线视频| 国产一区二区三区在线播放免费观看| 亚洲男女自偷自拍图片另类| 精品va天堂亚洲国产| 欧美视频一区二区三区在线观看| 亚洲欧美日韩人成在线播放| 亚洲一区3d动漫同人无遮挡| 一区二区三区精品| 欧美性久久久| 亚洲欧美日韩精品久久| 欧美一区二区三区男人的天堂| 亚洲专区一区| 国产欧美日韩免费| 欧美另类videos死尸| 欧美日一区二区在线观看| 久久久久一本一区二区青青蜜月| 欧美性大战久久久久久久| 欧美日韩午夜剧场| 性一交一乱一区二区洋洋av| 亚洲美女色禁图| 曰韩精品一区二区| 国产精品一区一区| 国产色产综合色产在线视频| 欧美精品亚洲| 久久久久久国产精品一区| 亚洲一区中文| 午夜欧美大片免费观看| 国产日韩欧美在线观看| 久久精品91久久香蕉加勒比| 1204国产成人精品视频| 久久这里只有| 国产精品v片在线观看不卡| 欧美中文在线观看国产| 欧美国产一区二区三区激情无套| 欧美—级a级欧美特级ar全黄| 国产一区二区三区观看| 亚洲国产高清一区| 韩国精品一区二区三区| 亚洲精品欧美专区| 亚洲欧美一区二区激情| 国产精品嫩草影院av蜜臀| 在线观看三级视频欧美| 日韩一级裸体免费视频| 欧美精品在线播放| 亚洲激情在线激情| 亚洲黄色在线视频| 亚洲新中文字幕| 日韩亚洲精品在线| 国产自产2019最新不卡| 日韩视频第一页| 老**午夜毛片一区二区三区| 国模精品一区二区三区| 亚洲韩国精品一区| 国产精品久久毛片a| 久久婷婷色综合| 黄色小说综合网站| 国产精品香蕉在线观看| 欧美高清在线视频观看不卡| 欧美国产一区二区| 欧美成人性网| 国产精品va在线| 狼狼综合久久久久综合网| 欧美一二三区精品| 欧美日韩国产成人精品| 亚洲小说欧美另类社区| 欧美一区三区二区在线观看| 午夜精品电影| 欧美日韩精品一区二区三区四区| 国内自拍视频一区二区三区| 老牛嫩草一区二区三区日本| 亚洲无线一线二线三线区别av| 欧美一区激情视频在线观看| 欧美激情中文字幕一区二区| 欧美大片网址| 亚洲图片欧美日产| 久久成人18免费网站| 久久伊人精品天天| 久久综合九色综合欧美就去吻| 在线视频亚洲欧美| 欧美一区二区三区在线免费观看| 国内精品视频666| 亚洲激情视频在线观看| 国产精品午夜久久| 欧美夜福利tv在线| 久久精品一区二区三区不卡| 久久久久久69| 亚洲精品国产视频| 亚洲欧洲av一区二区三区久久| 国产女人aaa级久久久级| 欧美日韩精品高清| 尤物精品国产第一福利三区| 欧美激情视频一区二区三区不卡| 欧美日韩国产色综合一二三四| 国产综合色产| 国产女主播一区二区| 一本色道久久综合亚洲精品小说| 噜噜噜91成人网| 开元免费观看欧美电视剧网站| 在线观看久久av| 亚洲欧美色婷婷| 亚洲三级影片| 99在线精品免费视频九九视| 国产精品视频久久一区| 久久电影一区| 亚洲黄页视频免费观看| 亚洲国产一二三| 亚洲人成在线影院| 亚洲高清三级视频| 欧美视频网站| 欧美va亚洲va国产综合| 亚洲尤物在线| 夜夜嗨av一区二区三区网页| 夜夜嗨av一区二区三区网页| 国产精品网站视频| 欧美一区二区女人| 欧美一区二区免费观在线| 久久成人免费视频| 午夜在线电影亚洲一区| 亚洲无线观看| 欧美日韩1区| 国产精品看片你懂得| 国产视频久久| 欧美美女福利视频| 亚洲欧美精品suv| 欧美日韩成人综合在线一区二区| 国产精品视频导航| 99re6这里只有精品视频在线观看| 亚洲美女视频网| 伊人天天综合| 午夜精品一区二区三区电影天堂| 久久不射网站| 亚洲在线视频免费观看| 欧美日韩国产a| 欧美一区二区三区在线观看| 久久婷婷影院| 欧美女同视频| 性欧美videos另类喷潮| 老司机久久99久久精品播放免费| 国产欧美一区二区精品秋霞影院| 亚洲一区二区三区免费观看| 亚洲精品国产系列| 亚洲美女在线国产| 欧美日韩免费观看中文| 亚洲国产中文字幕在线观看| 欧美成人精品激情在线观看| 久久嫩草精品久久久精品一| 欧美在线视频全部完| 亚洲一区观看| 国产精品久久久久久亚洲调教| 国内精品久久久久久久97牛牛| 久久久久国产精品一区| 在线看片欧美| 欧美一区二区高清在线观看| 国产精品午夜在线观看| 免费视频久久| 国产午夜精品麻豆| 亚洲电影网站|