




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
網(wǎng)絡空間安全學院網(wǎng)絡安全基礎技術應用第八章SPI總線開發(fā)目錄CONTENT8.1.SPI總線的基本概念8.2.GPIO模擬SPI總線的開發(fā)技術8.3.STC單片機SPI功能模塊開發(fā)技術8.1.SPI總線的基本概念SPI接口是SerialPeripheralInterface的縮寫,顧名思義就是串行外圍設備接口。SPI接口是Motorola公司首先提出的全雙工同步串行接口通信協(xié)議,采用主從模式架構,支持多從設備應用,一般只支持單主設備。SPI總線一般有4根信號線:MOSI,MISO,SCK,SS。在使用的時候,時鐘由主設備控制,數(shù)據(jù)在時鐘脈沖下按位傳輸,高位在前低位在后,SPI接口有2根單向數(shù)據(jù)線,可以實現(xiàn)全雙工通信,數(shù)據(jù)速率可達幾Mbps。8.1.1.SPI總線結構SPI的四根總線分別是串行數(shù)據(jù)輸出線、輸入線、時鐘線、設備選擇線。MOSI:MasterOutputSlaveInput主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入。MISO:MasterInputSlaveOutput主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出。SCK:時鐘信號,由主設備控制發(fā)出。/SS:從設備選擇信號,由主設備控制。有些器件也用“CS”表示。8.1.1.SPI總線結構圖8.1-1展示了主機和從機之間的連接關系。主機(也稱主設備)和從機(也稱從設備)的MOSI、MISO、SCK管腳互相連接,主設備的SS接VCC,從設備的SS接地。因為只有一個從設備,所以從設備的SS接地,意味著從設備始終都處于通信狀態(tài)。因此在只有一個從設備的情況下會省略SS,SPI總線變成三線制。SCK是時鐘脈沖,由主機控制,沿著SCK的上升沿或者下降沿,MOSI、MISO的數(shù)據(jù)串行輸出,實現(xiàn)數(shù)據(jù)交換。
圖8.1-1主機和從機的電路連接8.1.2.SPI總線的傳輸模式根據(jù)時鐘極性(CPOL)及相位(CPHA)不同可以組合成4種工作模式:SPI0,SPI1,SP2,SP3。其中使用的最為廣泛的是SPI0和SPI3方式。(1)SPI0:CPOL=0,CPHA=0(2)SPI1:CPOL=0,CPHA=1(3)SPI2:CPOL=1,CPHA=0(4)SPI3:CPOL=1,CPHA=1時鐘極性(CPOL)定義了時鐘空閑狀態(tài)電平:CPOL=0:時鐘空閑狀態(tài)為低電平。CPOL=1:時鐘空閑狀態(tài)為高電平。時鐘相位(CPHA)定義數(shù)據(jù)的采樣時間:CPHA=0:在時鐘的第一個跳變沿(上升沿或下降沿)進行數(shù)據(jù)采樣。CPHA=1:在時鐘的第二個跳變沿(上升沿或下降沿)進行數(shù)據(jù)采樣。8.1.2.SPI總線的傳輸模式SPI接口有四種不同的數(shù)據(jù)傳輸時序,取決于CPOL和CPHA這兩位的組合。圖8.1-2中表現(xiàn)了這四種時序,從圖中也可以看出CPHA=0與CHPA=1,采樣和輸出先后順序正好相反。。圖8.1-2SPI總線的工作模式8.2.GPIO模擬SPI總線的開發(fā)技術SPI總線把接收和發(fā)送分成了兩根線,通信速度快,和I2C總線一樣,通常用于芯片間通信。很多芯片都具有SPI接口,當MCU沒有SPI功能模塊時,利用通用輸入輸出管腳模擬SPI總線協(xié)議。8.2.1.GPIO模擬SPI總線的驅(qū)動函數(shù)對照圖8.1-2時序圖,書寫SPI總線單字節(jié)讀寫函數(shù),讀寫的時候低位在前,高位在后。以SPI0工作模式為例,SCK默認狀態(tài)是低電平,在上升沿采樣,在下降沿輸出,SPI是全雙工通信,所以發(fā)送和接收是同時進行的。(1)SPI0模式下主機的讀寫函數(shù):主機在MOSI總線上寫數(shù)據(jù),在MISO總線上讀數(shù)據(jù)。unsignedcharSPIMaster_RWByte(unsignedchardata){unsignedchari;for(i=0;i<8;i++){sck=0;MOSI=data&0x01;//數(shù)據(jù)的低位輸出到MOSIdata>>=1;//數(shù)據(jù)右移,高位移到低位8.2.1.GPIO模擬SPI總線的驅(qū)動函數(shù)sck=1;//拉高SCKdata|=(MISO<<8);//讀MISO到data最高位,補充data低位空缺。sck=0;}return(data);//返回讀出的字節(jié)數(shù)據(jù)}(2)SPI0模式下從機的讀寫函數(shù):從機在MOSI總線讀數(shù)據(jù),在MISO總線寫數(shù)據(jù)unsignedcharSPISlave_RWByte(unsignedchardata){unsignedchari;for(i=0;i<8;i++){8.2.1.GPIO模擬SPI總線的驅(qū)動函數(shù)if(sck==0){ MISO=data&0x01;//從機數(shù)據(jù)的低位輸出到MISO}while(sck==0);data<<=1;If(sck==1){data|=(MOSI<<8);//從機讀MOSI到data最高位,補充data高位空缺。while(sck==1);}}return(data);}8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片DS1302是DALLAS公司推出的日歷芯片,內(nèi)含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM,利用簡化的SPI總線與單片機通信。DS1302提供秒、分、時、日、周、月、年的信息,每月的天數(shù)和閏年自動調(diào)整,時鐘可以選擇12小時制或24小時制。DS302有12個寄存器,其中有7個寄存器與日期和時間相關,其余都是控制寄存器。要使用DS1302,首先將日期和時間等初始化數(shù)據(jù)寫入DS1302的寄存器,設置時間格式,然后開啟DS1302計時。當DS1302初始化設置完并開啟計時后,單片機只要讀出DS1302里的日期或時間即可。圖8.2-1是DS1302的DIP封裝圖和管腳說明,圖8.2-2是芯片工作電路圖,圖8.2-3是DS1302應用電路。圖8.2-1中的I/O數(shù)據(jù)線是雙線數(shù)據(jù)線,它將SPI總線的MOSI和MISO兩根線合并成一根線,收發(fā)不能同時進行,是半雙工通信。8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片圖8.2-1DS1302芯片管腳圖圖8.2-3DS1302應用電路圖8.2-2芯片工作電路圖8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片圖8.2-3中SPI的三根線分別和單片機P17、P23、P13連接。DS1302采用雙電源供電模式,可以由VCC電源供電(連接VCC2管腳),也可以由電池供電(連接VCC2管腳),在VCC主電源失效時由電池保持時間和日期數(shù)據(jù)。RST是芯片復位和片選管腳,低電平時,芯片復位,讀寫無效;高電平時,片選有效,開始數(shù)據(jù)傳輸。SCK管腳為芯片提供時鐘脈沖。I/O是數(shù)據(jù)輸入輸出管腳,用于傳輸及接收數(shù)據(jù)。芯片連接32.768KHz外部晶振。表8.2-1列出了DS1302的寄存器。ReadWritebit7bit6bit5bit4bit3bit2bit1bit0說明81h80hCH10SecondsSeconds秒:00-59,CH=1:時鐘暫停83h82h
10MinutesMinutes分:00-5985h84h12/24010Hour時:00-23/01-12AM/PM87h86h0010DateDate日:01-28/29/30/3189h88h00010MonthMonth月:01-128Bh8Ah00000Day星期:1-78Dh8Ch10YearYear年:00-998Fh8EhWP0000000控制寄存器,WP=1:寫保護,不允許器件寫入91h90hTCSDSRS涓流充電選擇表8.2-1DS1302和日期時間有關的寄存器列表8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片訪問DS1302,首先要說明訪問的存儲單元地址,然后在總線上傳送數(shù)據(jù)。因此一個完整的讀或?qū)懼辽儆?個字節(jié)構成。1.讀時序:圖8.2-4是讀時序,對應SPI0工作模式,第1個字節(jié)寫地址,CPU控制I/O線;第2個字節(jié)讀數(shù)據(jù),由DS1302發(fā)送數(shù)據(jù)到I/O線。圖8.2-4單個字節(jié)讀時序8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片2.寫時序:圖8.2-5是寫時序,對應SPI0工作模式,2個字節(jié)都是CPU控制I/O線。圖8.2-5單個字節(jié)寫時序8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片2.寫時序:圖8.2-5是寫時序,對應SPI0工作模式,2個字節(jié)都是CPU控制I/O線。圖8.2-5單個字節(jié)寫時序8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片DS1302的讀寫時序是三線半雙工通信,一個時鐘周期內(nèi)只有一個方向的數(shù)據(jù),主機單個字節(jié)的讀寫函數(shù)如下所示。/*****主機單個字節(jié)的寫過程*****/voidwrite_Ds1302_Byte(unsignedchardata){ unsignedchari; for(i=0;i<8;i++) { SCK=0; SDA=data&0x01;//數(shù)據(jù)低位輸出到IO總線上 data>>=1;//數(shù)據(jù)右移,高位移到低位 SCK=1;
8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片 }}/*****主機單個字節(jié)的讀過程*****/unsignedcharread_Ds1302_Byte(){ unsignedchari,data; for(i=0;i<8;i++) { SCK=0; data>>=1; data|=(SDA)<<8; //讀SDA數(shù)據(jù)到data最高位 SCK=1; 8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片 }return(data);}
/*****圖8.2-4時序DS1302完整的讀過程***/unsignedcharRead_Ds1302(unsignedcharaddress){ unsignedchari,temp=0x00; Write_Ds1302_Byte(address);//寫地址return(read_Ds1302_Byte());}/*****圖8.2-5時序DS1302完整的寫過程***/ 8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片voidWrite_Ds1302(unsignedcharaddress,unsignedchardata){ Write_Ds1302_Byte(address); //寫地址 Write_Ds1302_Byte(data); //寫數(shù)據(jù)}基于GPIO模擬SPI總線,讓單片機與DS1302日歷芯片交換數(shù)據(jù),數(shù)碼管分兩屏顯示日期和時間,圖8.2-6是日歷顯示界面,二維碼8.2-1展示了開發(fā)示范過程。 圖8.2-6日歷顯示界面8.2.2.GPIO模擬SPI總線訪問DS1302日歷芯片二維碼8.2-1GPIO模擬SPI總線讀日歷芯片的程序?qū)崿F(xiàn)8.3.STC單片機SPI功能模塊開發(fā)技術STC單片機從15系列開始就提供SPI總線功能,與SPI相關的寄存器有SPI狀態(tài)寄存器、SPI控制寄存器、SPI數(shù)據(jù)寄存器,通過這三個寄存器就可以完成SPI數(shù)據(jù)的傳輸。8.3.1.SPI管腳切換對于SPI總線端口分配,STC15x、STC8x、STC32x系列單片機提供了切換模式,可將SS、MOSI、MISO、SCLK切換到不同的I/O口上,以方便用戶將靈活應用管腳。(1)P_SW:SPI功能腳切換寄存器名稱地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0P_SW1A2HS1_S[1:0]--SPI_S[1:0]0-SPI_S[1:0]:SPI功能腳選擇位,STC32G12K無P1.2管腳用P5.4代替。SPI_S[1:0]SSMOSIMISOSCLK00P1.2/P5.4P1.3P1.4P1.501P2.2P2.3P2.4P2.510P5.4P4.0P4.1P4.311P3.5P3.4P3.3P3.28.3.2.SPI相關寄存器STC系列單片機集成的SPI接口提供了兩種模式:主模式和從模式。1.SPI狀態(tài)寄存器:寄存器名稱地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SPSTATCDHSPIFWCOL------SPIF:SPI中斷標志位。當發(fā)送/接收完成1字節(jié)的數(shù)據(jù)后,硬件自動將此位置1,并向CPU提出中斷請求。此標志位必須用戶通過軟件方式向此位寫1進行清零。WCOL:SPI寫沖突標志位。當SPI在進行數(shù)據(jù)傳輸?shù)倪^程中寫SPDAT寄存器時,硬件將此位置1.此標志位必須用戶通過軟件方式向此位寫1進行清零。8.3.2.SPI相關寄存器2.SPI控制寄存器寄存器名稱地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SPCTLCEHSSIGSPENDORDMSTRCPOLCPHASPR[1:0]SPCTLSSIG:SS管腳功能控制位。0:SS管腳確定器件是主機還是從機;1:忽略SS管腳功能,使用MSTR確定器件是主機還是從機。SPEN:SPI使能控制位。0:關閉SPI功能;1:使能SPI功能。DORD:SPI數(shù)據(jù)位發(fā)送/接收的順序。0:先發(fā)送/接收數(shù)據(jù)的高位(MSB);1:先發(fā)送/接收數(shù)據(jù)的低位(LSB)。MSTR:器件主/從模式選擇位。設置主機模式:若SSIG=0,需SS管腳為高電平且MSTR為1;若SSIG=1,只需MSTR為1.8.3.2.SPI相關寄存器設置從機模式:若SSIG=0,需SS管腳為低電平(與MSTR位無關);若SSIG=1,MSTR需為0。CPOL:SPI時鐘相位控制。0:SCLK空閑時為低電平,SCLK的前時鐘沿為上升沿,后時鐘沿為下降沿;1:SCLK空閑時為高電平,SCLK的前時鐘沿為下降沿,后時鐘沿為上升沿。CPHA:SPI時鐘相位控制。0:數(shù)據(jù)SS管腳為低電平驅(qū)動第一位數(shù)據(jù)并在SCLK的后時鐘沿改變數(shù)據(jù),前時鐘沿采樣數(shù)據(jù)(SSIG必須為0);1:數(shù)據(jù)在SCLK的前時鐘沿驅(qū)動,后時鐘沿采樣。8.3.2.SPI相關寄存器SPR[1:0]:SPI時鐘頻率選擇,可選擇四種頻率,單片機系統(tǒng)時鐘的分頻系數(shù)分別是1/4、1/8、1/16、1/32。SPR[1:0]SCLK頻率00SYSclk/401SYSclk/8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綠色能源技術研發(fā)合作合同
- 醫(yī)療器械代理注冊合同書
- 正式借款合同
- 城市綠化項目實施與驗收合同
- 節(jié)電小貼士(教學設計)-2023-2024學年四年級下冊綜合實踐活動滬科黔科版
- 第21課《莊子二則-北冥有魚》教學設計 2023-2024學年統(tǒng)編版語文八年級下冊
- 社區(qū)團購倉儲租賃協(xié)議
- 第5課計算機的資源管理 教學設計
- 律師事務所勞動仲裁合同8篇
- 無產(chǎn)權房屋買賣合同范本5篇
- 工程結構質(zhì)量特色介紹
- 超全六年級陰影部分的面積(詳細答案)
- 提高護士對搶救藥品知曉率PDCA案例精編版
- 八字萬能速查表(有圖)
- 清華大學MBA課程——運籌學
- 架橋機安全教育培訓試卷及答案(共3頁)
- 濕法冶金浸出凈化和沉積PPT課件
- 通信桿路工程施工
- 初中物理光學經(jīng)典題(共23頁)
- 化學反應工程流固相非催化反應PPT課件
- 二次回路和電纜編號原則
評論
0/150
提交評論