




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
微控制器串行通信歡迎來到微控制器串行通信課程。本課程將深入探討單片機中各種串行通信接口的工作原理、硬件連接、參數(shù)配置及應(yīng)用實例。通過系統(tǒng)學(xué)習(xí),您將掌握UART、SPI、I2C、CAN和USB等主流串行通信接口的開發(fā)技術(shù),為嵌入式系統(tǒng)設(shè)計奠定堅實基礎(chǔ)。課程概述課程目標(biāo)掌握微控制器中常用串行通信接口的工作原理和應(yīng)用方法。通過理論與實踐相結(jié)合的學(xué)習(xí)方式,能夠獨立設(shè)計和開發(fā)基于各種串行通信的嵌入式系統(tǒng)。主要內(nèi)容課程涵蓋串行通信基礎(chǔ)知識,UART、SPI、I2C、CAN和USB等五種主流串行通信接口的原理與應(yīng)用,以及通信協(xié)議設(shè)計、可靠性設(shè)計和實際案例分析。學(xué)習(xí)方法第一章:串行通信基礎(chǔ)1什么是串行通信串行通信是一種數(shù)據(jù)傳輸方式,其特點是數(shù)據(jù)按位順序傳輸。在串行通信中,數(shù)據(jù)位被轉(zhuǎn)換為時序信號,一位接一位地在單一通道上傳輸,是微控制器與外部設(shè)備交換信息的主要方式。2串行通信與并行通信的區(qū)別并行通信同時使用多條數(shù)據(jù)線一次傳輸多位數(shù)據(jù),傳輸速度快但需要更多的硬件資源和物理空間;串行通信僅使用一條或少數(shù)幾條數(shù)據(jù)線,雖然單位時間內(nèi)傳輸?shù)臄?shù)據(jù)量較少,但硬件簡單,成本低,抗干擾能力強。串行通信的優(yōu)勢串行通信的基本概念波特率波特率是指每秒鐘傳輸?shù)拇a元數(shù),通常以bps(bitspersecond)為單位。它決定了數(shù)據(jù)傳輸?shù)乃俣取3R姷牟ㄌ芈视?600、115200等。在通信雙方,必須設(shè)置相同的波特率才能正確傳輸數(shù)據(jù)。數(shù)據(jù)位數(shù)據(jù)位是指每個字符實際包含的二進(jìn)制位數(shù),通常為5、6、7或8位。現(xiàn)代串行通信中,最常用的是8位數(shù)據(jù)位,能夠表示一個完整的ASCII字符或二進(jìn)制數(shù)據(jù)字節(jié)。校驗位校驗位用于錯誤檢測,可以是奇校驗、偶校驗或無校驗。奇校驗使總的1位數(shù)為奇數(shù),偶校驗使總的1位數(shù)為偶數(shù)。校驗位能夠檢測出單比特錯誤,提高通信可靠性。停止位停止位標(biāo)志著一個字符的結(jié)束,可以是1位、1.5位或2位。停止位提供了接收器重新同步的時間,增加了通信的容錯能力,尤其在較低波特率下更為重要。串行通信的工作原理靜止?fàn)顟B(tài)在無數(shù)據(jù)傳輸時,通信線路保持在高電平或低電平(取決于具體協(xié)議)狀態(tài)。這稱為空閑狀態(tài),表示當(dāng)前沒有通信活動。起始信號發(fā)送方通過發(fā)送起始位(通常是一個從高到低的跳變)來通知接收方即將開始傳輸數(shù)據(jù)。這種電平變化使接收方能夠準(zhǔn)備接收數(shù)據(jù)。數(shù)據(jù)傳輸起始位之后,實際的數(shù)據(jù)位按照預(yù)定的順序一位一位地傳輸。數(shù)據(jù)位的數(shù)量取決于通信協(xié)議的設(shè)置,通常為8位,構(gòu)成一個完整字節(jié)。校驗與結(jié)束數(shù)據(jù)位傳輸完成后,可能會有一個校驗位用于錯誤檢測,然后是停止位,表示一個數(shù)據(jù)幀的傳輸完成。系統(tǒng)隨后返回空閑狀態(tài),準(zhǔn)備下一次傳輸。常見的串行通信接口UART/USART通用異步收發(fā)器(UniversalAsynchronousReceiver/Transmitter),是一種全雙工、點對點的異步通信方式。USART在此基礎(chǔ)上增加了同步模式。UART是最基礎(chǔ)的串行通信方式,僅需兩根數(shù)據(jù)線即可實現(xiàn)雙向通信。SPI串行外設(shè)接口(SerialPeripheralInterface),是一種同步、全雙工、主從式的通信總線。采用四線制(MOSI、MISO、SCK、CS),支持高速通信,適合短距離、板內(nèi)設(shè)備間通信。I2C集成電路總線(Inter-IntegratedCircuit),是一種半雙工、多主多從的同步串行總線。僅需兩根線(SCL、SDA),支持總線尋址,適合連接多個低速外圍設(shè)備。CAN控制器局域網(wǎng)絡(luò)(ControllerAreaNetwork),是一種高可靠性的總線標(biāo)準(zhǔn),采用差分信號傳輸,具有優(yōu)秀的抗干擾能力和錯誤處理機制,廣泛應(yīng)用于汽車和工業(yè)控制領(lǐng)域。USB通用串行總線(UniversalSerialBus),是一種高速、即插即用的串行接口標(biāo)準(zhǔn)。支持熱插拔,可為設(shè)備供電,廣泛應(yīng)用于計算機外設(shè)連接和消費電子設(shè)備。第二章:UART通信UART簡介UART(通用異步收發(fā)器)是一種硬件電路,負(fù)責(zé)執(zhí)行計算機與外部設(shè)備之間的串行通信。它將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)發(fā)送,并將接收到的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。幾乎所有的微控制器都內(nèi)置UART接口,使其成為最普遍使用的串行通信接口之一。最簡單的UART通信只需要兩根線:一根用于發(fā)送(TX),另一根用于接收(RX)。UART的特點UART的主要特點包括:異步通信,無需時鐘信號;全雙工,可同時收發(fā)數(shù)據(jù);點對點通信,直接連接兩個設(shè)備;硬件實現(xiàn)簡單,只需少量引腳;通信參數(shù)靈活可配置。由于其簡單性和靈活性,UART廣泛應(yīng)用于設(shè)備間短距離通信,如單片機與計算機通信、模塊間通信等。然而,UART也有一些局限性,如傳輸距離有限、傳輸速率相對較低等。UART通信原理1異步通信UART通信是一種異步通信方式,無需共享時鐘信號。發(fā)送方和接收方各自使用自己的時鐘源,通過預(yù)先約定的波特率進(jìn)行同步。通信雙方都需要配置相同的參數(shù)(波特率、數(shù)據(jù)位、校驗位和停止位)。2起始位UART通信的每個數(shù)據(jù)幀以一個起始位開始,通常是一個從高電平到低電平的跳變。起始位的作用是通知接收方即將有數(shù)據(jù)傳輸,使接收方能夠準(zhǔn)確捕捉后續(xù)的數(shù)據(jù)位。3數(shù)據(jù)位起始位之后是實際的數(shù)據(jù)位,通常為5至9位,最常用的是8位。數(shù)據(jù)位可以按照最低有效位(LSB)優(yōu)先或最高有效位(MSB)優(yōu)先的順序傳輸,但UART通常采用LSB優(yōu)先方式。4校驗位和停止位數(shù)據(jù)位之后可能有一個可選的校驗位用于錯誤檢測,然后是1到2個停止位,標(biāo)志一個數(shù)據(jù)幀的結(jié)束。停止位總是高電平,提供了接收器重新同步的時間窗口。UART硬件連接三線制連接方式UART通信最基本的連接方式是三線制:TX(發(fā)送)、RX(接收)和GND(地)。連接時需要交叉連接,即一個設(shè)備的TX連接到另一個設(shè)備的RX,反之亦然。這種交叉連接使得數(shù)據(jù)能夠雙向流動。接口電平轉(zhuǎn)換不同設(shè)備的UART接口可能使用不同的電平標(biāo)準(zhǔn)。例如,微控制器通常使用3.3V或5V的TTL電平,而PC串口則使用±12V的RS-232電平。在這種情況下,需要使用電平轉(zhuǎn)換芯片(如MAX232)進(jìn)行電平轉(zhuǎn)換,確保通信正常進(jìn)行。硬件流控制在高速通信或數(shù)據(jù)量較大的應(yīng)用中,可能需要使用硬件流控制來防止數(shù)據(jù)丟失。這通常通過增加RTS(請求發(fā)送)和CTS(清除發(fā)送)信號線實現(xiàn),使通信雙方能夠協(xié)調(diào)數(shù)據(jù)傳輸速率,避免接收緩沖區(qū)溢出。UART通信參數(shù)設(shè)置波特率設(shè)置波特率決定了數(shù)據(jù)傳輸?shù)乃俣龋S弥涤?600、19200、38400、57600和115200bps1數(shù)據(jù)位配置數(shù)據(jù)位通常設(shè)置為8位,兼容ASCII編碼和二進(jìn)制數(shù)據(jù)2校驗位選擇可選擇無校驗、奇校驗、偶校驗、標(biāo)志校驗或空格校驗3停止位設(shè)定通常設(shè)置為1位停止位,在低速通信中可設(shè)為2位4波特率設(shè)置需要同時考慮系統(tǒng)時鐘頻率和波特率生成器的分頻比。大多數(shù)微控制器的UART模塊包含一個波特率生成器,通過設(shè)置相應(yīng)的寄存器值來配置所需的波特率。波特率誤差應(yīng)控制在3%以內(nèi),以確保可靠通信。數(shù)據(jù)位、校驗位和停止位的配置通常通過控制寄存器實現(xiàn)。配置時需注意,通信雙方必須使用完全相同的參數(shù)設(shè)置,否則將導(dǎo)致通信錯誤。UART發(fā)送過程1數(shù)據(jù)準(zhǔn)備將待發(fā)送的數(shù)據(jù)寫入發(fā)送數(shù)據(jù)寄存器2狀態(tài)檢查檢查發(fā)送就緒標(biāo)志,確認(rèn)發(fā)送器空閑3數(shù)據(jù)裝載數(shù)據(jù)從發(fā)送寄存器自動加載到發(fā)送移位寄存器4幀傳輸硬件自動添加起始位、校驗位和停止位,完成一幀數(shù)據(jù)發(fā)送在UART發(fā)送過程中,微控制器可以通過輪詢或中斷方式檢測發(fā)送狀態(tài)。輪詢方式簡單直接,但會占用處理器資源;中斷方式更高效,發(fā)送完成后會觸發(fā)中斷,處理器可以執(zhí)行其他任務(wù)。發(fā)送中斷通常在發(fā)送數(shù)據(jù)寄存器為空時觸發(fā),表示可以寫入下一個數(shù)據(jù)。此外,還可以設(shè)置發(fā)送完成中斷,在一個完整數(shù)據(jù)幀發(fā)送完畢后觸發(fā),便于實現(xiàn)更復(fù)雜的通信協(xié)議。UART接收過程起始位檢測UART接收器在空閑狀態(tài)下持續(xù)監(jiān)測RX線上的電平變化。當(dāng)檢測到從高電平到低電平的跳變時,識別為起始位,開始接收過程。接收器會等待半個位時間,再次采樣確認(rèn)起始位有效。數(shù)據(jù)采樣確認(rèn)起始位有效后,接收器開始按照預(yù)設(shè)的波特率對數(shù)據(jù)位進(jìn)行采樣。通常在每個位時間的中點進(jìn)行采樣,以獲取最穩(wěn)定的信號值。采樣得到的數(shù)據(jù)位被依次存入接收移位寄存器。校驗與停止位檢測數(shù)據(jù)位接收完成后,如果配置了校驗位,接收器會對校驗位進(jìn)行驗證。然后檢測停止位,確認(rèn)其為高電平。如果發(fā)現(xiàn)校驗錯誤或停止位不正確,會設(shè)置相應(yīng)的錯誤標(biāo)志。數(shù)據(jù)存儲與中斷一幀數(shù)據(jù)正確接收完成后,接收移位寄存器中的數(shù)據(jù)被傳送到接收數(shù)據(jù)寄存器,并設(shè)置接收完成標(biāo)志,可選擇觸發(fā)接收中斷。通過讀取接收數(shù)據(jù)寄存器可獲取接收到的數(shù)據(jù)。UART通信實例在這個實例中,我們將實現(xiàn)單片機與PC之間的UART通信。單片機端使用內(nèi)置的UART模塊,PC端通過USB轉(zhuǎn)串口適配器和串口調(diào)試軟件參與通信。單片機可以發(fā)送傳感器數(shù)據(jù)給PC進(jìn)行顯示和分析,同時接收PC發(fā)送的控制命令。硬件連接方面,單片機的TX引腳連接到USB轉(zhuǎn)串口適配器的RX引腳,單片機的RX引腳連接到適配器的TX引腳,同時兩者需要共地。軟件部分需要正確配置單片機的UART參數(shù),并在PC端使用串口調(diào)試助手,設(shè)置相同的通信參數(shù)(如波特率115200,8數(shù)據(jù)位,無校驗,1停止位)。UART通信常見問題及解決方案波特率誤差問題:由于時鐘頻率限制,設(shè)置的波特率可能與理想值存在偏差,導(dǎo)致通信錯誤。解決方案:選擇合適的系統(tǒng)時鐘頻率;使用波特率誤差計算公式驗證實際誤差,確保在3%以內(nèi);對于特殊波特率,可調(diào)整系統(tǒng)時鐘或使用分頻器獲得更精確的波特率。數(shù)據(jù)丟失問題:接收數(shù)據(jù)過快而處理不及時,導(dǎo)致接收緩沖區(qū)溢出,丟失數(shù)據(jù)。解決方案:增加接收緩沖區(qū)大小;使用中斷方式及時處理接收到的數(shù)據(jù);實現(xiàn)軟件或硬件流控制,控制發(fā)送方的發(fā)送速率;在協(xié)議層添加數(shù)據(jù)包序號和確認(rèn)機制。電平不匹配問題:不同設(shè)備的電平標(biāo)準(zhǔn)不同,如TTL和RS-232電平不兼容。解決方案:使用電平轉(zhuǎn)換芯片(如MAX232系列)進(jìn)行電平轉(zhuǎn)換;使用兼容的USB轉(zhuǎn)串口適配器,自動處理電平轉(zhuǎn)換;確保所有設(shè)備共地,防止漂移電壓影響。第三章:SPI通信SPI簡介SPI(SerialPeripheralInterface,串行外設(shè)接口)是一種由摩托羅拉公司開發(fā)的同步串行通信總線。作為一種廣泛應(yīng)用的短距離通信接口,SPI被大量用于微控制器與各種外圍設(shè)備(如存儲器、傳感器、顯示器等)之間的高速數(shù)據(jù)交換。SPI接口在嵌入式系統(tǒng)中占據(jù)重要位置,主要用于芯片間通信,尤其適合要求高速數(shù)據(jù)傳輸?shù)膱龊稀TS多常見的外設(shè)如Flash存儲器、SD卡、觸摸屏控制器、A/D轉(zhuǎn)換器等都支持SPI接口。SPI的特點SPI通信的主要特點包括:采用同步通信方式,由主機提供時鐘信號;支持全雙工通信,可同時發(fā)送和接收數(shù)據(jù);主從式結(jié)構(gòu),由主機控制通信進(jìn)程;數(shù)據(jù)傳輸速率高,可達(dá)幾十Mbps;硬件實現(xiàn)簡單,接口信號定義明確。與其他串行接口相比,SPI的優(yōu)勢在于高速、簡單和靈活性,但缺點是需要較多的信號線,且沒有內(nèi)置的應(yīng)答機制。在多從機系統(tǒng)中,隨著設(shè)備數(shù)量增加,需要更多的片選線,增加了系統(tǒng)復(fù)雜性。SPI通信原理1234同步通信SPI是一種同步通信協(xié)議,通信雙方共用一個時鐘信號(SCK)。數(shù)據(jù)傳輸以時鐘信號為基準(zhǔn),在時鐘的上升沿或下降沿進(jìn)行數(shù)據(jù)采樣,確保數(shù)據(jù)傳輸?shù)目煽啃院透咚傩浴Hp工傳輸SPI支持全雙工通信,主機和從機可以同時發(fā)送和接收數(shù)據(jù)。數(shù)據(jù)通過兩條獨立的數(shù)據(jù)線MOSI(主機輸出,從機輸入)和MISO(主機輸入,從機輸出)進(jìn)行傳輸。主從架構(gòu)SPI采用主從架構(gòu),通信由主機發(fā)起和控制。主機生成時鐘信號和片選信號,決定與哪個從機通信。一個系統(tǒng)中只能有一個主機,但可以有多個從機。移位寄存器原理SPI通信基于移位寄存器原理。主機和從機各有一個8位移位寄存器,通信時兩個寄存器形成一個虛擬的環(huán)形結(jié)構(gòu)。每傳輸一個位,兩個寄存器同時移位,實現(xiàn)數(shù)據(jù)交換。SPI硬件連接四線制連接方式SPI接口標(biāo)準(zhǔn)配置為四線制,包括:SCLK(時鐘信號,由主機產(chǎn)生)、MOSI(主機輸出,從機輸入)、MISO(主機輸入,從機輸出)和SS/CS(片選信號,用于選擇特定的從機)。這四條信號線構(gòu)成了SPI通信的基本硬件連接。多從機連接方式在多從機系統(tǒng)中,所有從機的SCLK、MOSI和MISO引腳并聯(lián)連接到主機相應(yīng)引腳,而每個從機的CS引腳由主機的不同GPIO引腳單獨控制。通過控制各從機的CS信號,主機可以選擇與特定的從機通信,避免數(shù)據(jù)沖突。菊花鏈連接對于某些支持菊花鏈模式的SPI設(shè)備,可以采用級聯(lián)連接方式。前一個設(shè)備的數(shù)據(jù)輸出連接到后一個設(shè)備的數(shù)據(jù)輸入,形成一個鏈?zhǔn)浇Y(jié)構(gòu)。這種方式只需要一個CS信號就可以控制多個設(shè)備,但需要特殊的軟件協(xié)議支持。SPI通信參數(shù)設(shè)置參數(shù)選項說明時鐘極性(CPOL)CPOL=0空閑狀態(tài)下,時鐘信號為低電平CPOL=1空閑狀態(tài)下,時鐘信號為高電平時鐘相位(CPHA)CPHA=0在時鐘信號第一個跳變沿采樣數(shù)據(jù)CPHA=1在時鐘信號第二個跳變沿采樣數(shù)據(jù)時鐘頻率可變根據(jù)從設(shè)備支持的最大頻率設(shè)置,通常不超過主頻的1/2數(shù)據(jù)位序MSB先傳/LSB先傳大多數(shù)設(shè)備采用MSB(最高有效位)先傳輸CPOL和CPHA的組合形成了SPI的四種工作模式(Mode0-3)。不同的外設(shè)可能要求不同的SPI模式,配置時必須查閱設(shè)備數(shù)據(jù)手冊確定正確的模式。在多從機系統(tǒng)中,如果不同從機需要不同的模式,主機需要在切換從機時重新配置SPI參數(shù)。SPI數(shù)據(jù)傳輸過程1傳輸準(zhǔn)備主機首先拉低目標(biāo)從機的CS信號,表示要與其進(jìn)行通信。從機檢測到CS信號變?yōu)榈碗娖胶螅せ钇銼PI接口,準(zhǔn)備進(jìn)行數(shù)據(jù)交換。主機和從機都將數(shù)據(jù)裝載到各自的發(fā)送移位寄存器中。2時鐘激活主機開始產(chǎn)生時鐘信號(SCLK),頻率在之前的配置中已經(jīng)設(shè)定。時鐘信號的起始極性取決于CPOL設(shè)置。時鐘信號將驅(qū)動后續(xù)的數(shù)據(jù)傳輸過程。3數(shù)據(jù)交換隨著時鐘信號的跳變,主機和從機同時通過MOSI和MISO線交換數(shù)據(jù)。每個時鐘周期傳輸一位數(shù)據(jù)。根據(jù)CPHA設(shè)置,數(shù)據(jù)采樣發(fā)生在時鐘的上升沿或下降沿。8個時鐘周期后,完成一個字節(jié)的數(shù)據(jù)交換。4傳輸結(jié)束數(shù)據(jù)交換完成后,主機停止時鐘信號,并將CS信號拉高,結(jié)束本次通信。此時,主機和從機都可以從各自的接收移位寄存器中讀取接收到的數(shù)據(jù),并進(jìn)行后續(xù)處理。SPI主機模式配置1SPI控制寄存器配置配置SPI控制寄存器,設(shè)置工作模式、時鐘極性、時鐘相位、數(shù)據(jù)位序和傳輸位寬。在大多數(shù)微控制器中,這些參數(shù)通過設(shè)置專門的SPI控制寄存器來實現(xiàn)。通常需要關(guān)注的寄存器包括SPIx_CR1、SPIx_CR2等。2波特率分頻器設(shè)置根據(jù)目標(biāo)從設(shè)備的要求,設(shè)置合適的SPI時鐘頻率。這通常通過配置波特率分頻器來實現(xiàn),將系統(tǒng)時鐘分頻到所需的SPI時鐘頻率。需要注意的是,SPI時鐘頻率不應(yīng)超過從設(shè)備支持的最大值,以確保可靠通信。3GPIO引腳配置將相關(guān)GPIO引腳配置為SPI功能。這包括SCLK、MOSI、MISO引腳的復(fù)用功能設(shè)置,以及用作片選信號的GPIO引腳的輸出模式配置。根據(jù)微控制器的不同,這可能涉及GPIO復(fù)用寄存器、備用功能寄存器等的設(shè)置。4SPI使能最后,通過設(shè)置SPI控制寄存器中的使能位,啟動SPI模塊。在某些微控制器中,還需要設(shè)置其他相關(guān)參數(shù),如DMA請求使能、中斷使能等,以滿足特定的應(yīng)用需求。SPI從機模式配置從機模式選擇在SPI控制寄存器中設(shè)置從機模式標(biāo)志位1SPI參數(shù)配置配置與主機匹配的時鐘極性、相位和數(shù)據(jù)格式2中斷配置設(shè)置數(shù)據(jù)接收中斷,及時處理接收到的數(shù)據(jù)3片選響應(yīng)設(shè)置配置CS引腳為輸入模式,用于檢測主機的選擇信號4在從機模式下,微控制器被動等待主機發(fā)起通信。CS信號被拉低后,從機才激活SPI模塊并準(zhǔn)備數(shù)據(jù)交換。從機不產(chǎn)生時鐘信號,而是使用主機提供的時鐘進(jìn)行數(shù)據(jù)采樣和移位。從機需要及時響應(yīng)主機的數(shù)據(jù)請求。為此,通常采用中斷方式處理接收到的數(shù)據(jù)。當(dāng)完整接收一個字節(jié)后觸發(fā)中斷,在中斷服務(wù)程序中讀取數(shù)據(jù)并準(zhǔn)備下一個要發(fā)送的數(shù)據(jù)。對于高速SPI通信,可以考慮使用DMA方式進(jìn)行數(shù)據(jù)傳輸,減輕CPU負(fù)擔(dān)。SPI通信實例在這個實例中,我們將實現(xiàn)單片機通過SPI接口與外部Flash存儲器(如W25Q64)進(jìn)行通信。這種Flash芯片常用于存儲程序代碼、配置參數(shù)或大量數(shù)據(jù)。通信過程包括發(fā)送命令字節(jié)(如讀取、寫入或擦除命令)和數(shù)據(jù)的讀寫操作。硬件連接方面,單片機的SPI引腳(SCK、MOSI、MISO)連接到Flash芯片相應(yīng)引腳,一個GPIO引腳連接到Flash的CS引腳用于片選控制。軟件部分需實現(xiàn)Flash的初始化、讀ID、扇區(qū)擦除、頁編程和數(shù)據(jù)讀取等功能。通過封裝這些基本操作,可以實現(xiàn)更高層次的文件系統(tǒng)功能,如FAT文件系統(tǒng)或自定義數(shù)據(jù)存儲結(jié)構(gòu)。第四章:I2C通信I2C簡介I2C(Inter-IntegratedCircuit,集成電路總線)是由飛利浦公司(現(xiàn)恩智浦半導(dǎo)體)在1980年代初開發(fā)的一種串行通信總線。它最初設(shè)計用于連接電視機內(nèi)部的不同芯片,如微控制器、音頻處理器和遙控接收器等。I2C總線以其簡單的雙線制設(shè)計和支持多設(shè)備連接的能力而廣受歡迎,被廣泛應(yīng)用于各種嵌入式系統(tǒng)中。目前,幾乎所有的微控制器都支持I2C接口,使其成為芯片間通信的標(biāo)準(zhǔn)選擇之一。I2C的特點I2C總線的主要特點包括:僅需兩根信號線(SCL時鐘線和SDA數(shù)據(jù)線);支持多主機和多從機;基于地址尋址,可連接多達(dá)127個不同地址的設(shè)備;采用開漏輸出結(jié)構(gòu),允許多設(shè)備共享總線;內(nèi)置沖突檢測和仲裁機制。與SPI相比,I2C需要較少的信號線,更適合連接多個外設(shè),但傳輸速率較低。標(biāo)準(zhǔn)模式下速率為100kbps,快速模式為400kbps,高速模式可達(dá)3.4Mbps。此外,I2C具有內(nèi)置的應(yīng)答機制,提高了通信可靠性。I2C通信原理半雙工通信I2C采用半雙工通信方式,即在任一時刻,總線上只能有一個設(shè)備發(fā)送數(shù)據(jù),其他設(shè)備接收。數(shù)據(jù)通過SDA線傳輸,始終以字節(jié)為單位,每個字節(jié)后跟一個應(yīng)答位。發(fā)送和接收角色可以在通信過程中切換,實現(xiàn)雙向數(shù)據(jù)交換。7位地址尋址I2C使用7位地址標(biāo)識不同的從設(shè)備(有些特殊設(shè)備使用10位地址)。通信開始時,主機首先發(fā)送目標(biāo)從機的地址和讀/寫標(biāo)志位。只有地址匹配的從機會響應(yīng),其他設(shè)備則忽略后續(xù)數(shù)據(jù),從而實現(xiàn)點對點通信。開漏輸出結(jié)構(gòu)I2C總線的SCL和SDA線都采用開漏輸出結(jié)構(gòu),需要外部上拉電阻。設(shè)備只能主動拉低總線,不能主動拉高。這種結(jié)構(gòu)避免了總線沖突,并且允許不同電壓等級的設(shè)備共享總線,只要低電壓設(shè)備能夠容忍高電壓輸入。時鐘同步與總線仲裁I2C支持時鐘同步機制,允許從機通過拉低SCL線來延長時鐘周期,實現(xiàn)速度匹配。在多主機系統(tǒng)中,當(dāng)多個主機同時嘗試控制總線時,通過監(jiān)測SDA線狀態(tài)進(jìn)行仲裁,避免數(shù)據(jù)沖突。I2C硬件連接兩線制連接方式I2C總線采用兩線制連接方式,包括SCL(串行時鐘線)和SDA(串行數(shù)據(jù)線)。所有設(shè)備的SCL引腳相連,SDA引腳相連,形成一個共享的總線結(jié)構(gòu)。這種簡單的連接方式是I2C總線的主要優(yōu)勢之一,大大簡化了電路設(shè)計和PCB布局。上拉電阻的作用I2C總線需要在SCL和SDA線上各接一個上拉電阻,典型值為4.7kΩ或10kΩ。上拉電阻的作用是在設(shè)備釋放總線控制權(quán)時將信號線拉高至高電平。上拉電阻值的選擇需要綜合考慮總線速率、負(fù)載電容和噪聲抑制能力。總線速率越高,電阻值應(yīng)越小。電平轉(zhuǎn)換在混合電壓系統(tǒng)中,如3.3V和5V設(shè)備共存的情況,需要考慮I2C總線的電平轉(zhuǎn)換問題。常用的解決方案包括使用專用的I2C電平轉(zhuǎn)換芯片、雙向電平轉(zhuǎn)換電路或采用特殊的雙電源上拉電阻網(wǎng)絡(luò)。這些方法確保不同電壓等級的設(shè)備可以安全地共享I2C總線。I2C通信協(xié)議起始條件I2C通信以起始條件開始,表示主機要發(fā)起新的通信。起始條件定義為:在SCL為高電平期間,SDA從高電平跳變到低電平。起始條件會使所有連接到總線的設(shè)備重置其接口邏輯,準(zhǔn)備接收數(shù)據(jù)。地址傳輸起始條件之后,主機發(fā)送7位從機地址和1位讀/寫標(biāo)志位(0表示寫操作,1表示讀操作)。只有地址匹配的從機會繼續(xù)參與通信,其他設(shè)備將忽略后續(xù)數(shù)據(jù)。如果總線上不存在匹配地址的設(shè)備,則不會產(chǎn)生應(yīng)答信號。數(shù)據(jù)傳輸?shù)刂反_認(rèn)后,主機或從機(取決于讀/寫操作)開始發(fā)送數(shù)據(jù)。數(shù)據(jù)傳輸始終以字節(jié)為單位,高位先傳。在時鐘的高電平期間,SDA線上的數(shù)據(jù)必須保持穩(wěn)定。每傳輸完一個字節(jié),接收方需要產(chǎn)生一個應(yīng)答信號(ACK)。停止條件通信結(jié)束時,主機發(fā)送停止條件,釋放總線控制權(quán)。停止條件定義為:在SCL為高電平期間,SDA從低電平跳變到高電平。如果主機需要繼續(xù)保持總線控制權(quán),可以不發(fā)送停止條件,而是發(fā)送重復(fù)起始條件,開始新的通信。I2C主機模式配置時鐘配置配置I2C模塊的時鐘源和分頻系數(shù),設(shè)置所需的I2C總線速率。標(biāo)準(zhǔn)模式下,速率為100kbps;快速模式下可達(dá)400kbps。需要注意的是,實際總線速率還受總線電容和上拉電阻值的影響。引腳配置將相應(yīng)的GPIO引腳配置為I2C功能,通常需要設(shè)置為開漏輸出模式。根據(jù)微控制器的不同,這可能涉及復(fù)用寄存器、備用功能寄存器等的配置。確保外部已連接適當(dāng)?shù)纳侠娮琛DK初始化配置I2C控制寄存器,設(shè)置主機模式、使能應(yīng)答、使能時鐘延展等參數(shù)。根據(jù)需要,配置I2C中斷使能寄存器,以便在特定事件(如傳輸完成、地址匹配等)發(fā)生時觸發(fā)中斷。通信使能最后,通過設(shè)置I2C控制寄存器中的使能位,啟動I2C模塊。許多微控制器的I2C模塊還提供了DMA支持,對于大量數(shù)據(jù)傳輸,可以配置DMA通道減輕CPU負(fù)擔(dān)。I2C主機模式配置(續(xù))1數(shù)據(jù)寫入過程在主機寫入模式下,通信流程為:生成起始條件;發(fā)送7位從機地址和寫標(biāo)志位(0);接收從機的應(yīng)答;發(fā)送數(shù)據(jù)字節(jié);接收應(yīng)答;可重復(fù)發(fā)送多個數(shù)據(jù)字節(jié);最后生成停止條件。整個過程中主機都是數(shù)據(jù)發(fā)送方,從機是接收方。2單字節(jié)讀取過程在主機讀取模式下,通信流程為:生成起始條件;發(fā)送7位從機地址和讀標(biāo)志位(1);接收從機的應(yīng)答;主機接收從機發(fā)送的數(shù)據(jù)字節(jié);主機發(fā)送非應(yīng)答(NACK)表示讀取結(jié)束;生成停止條件。讀取過程中,主機成為接收方,從機成為發(fā)送方。3多字節(jié)讀取過程多字節(jié)讀取類似于單字節(jié)讀取,但在接收每個字節(jié)后(最后一個字節(jié)除外),主機需要發(fā)送應(yīng)答(ACK)表示繼續(xù)讀取。只有在接收最后一個字節(jié)后,才發(fā)送非應(yīng)答(NACK)表示讀取結(jié)束。這種機制允許主機控制數(shù)據(jù)傳輸?shù)拈L度。4寄存器尋址讀取許多I2C設(shè)備內(nèi)部有多個寄存器,需要先指定寄存器地址再讀取數(shù)據(jù)。這種情況下,通信流程為:寫操作發(fā)送寄存器地址;不發(fā)送停止條件而是發(fā)送重復(fù)起始條件;開始讀操作獲取指定寄存器的數(shù)據(jù)。這種組合讀寫操作非常常見。I2C從機模式配置從機地址設(shè)置配置I2C從機地址寄存器,設(shè)置設(shè)備的7位地址。地址可以是固定的,也可以通過外部硬件引腳或軟件配置來設(shè)定。在多從機系統(tǒng)中,每個設(shè)備必須有唯一的地址,以避免地址沖突。某些特殊應(yīng)用可能需要配置10位地址格式。中斷配置從機模式下,通常通過中斷方式響應(yīng)主機的通信請求。配置地址匹配中斷、數(shù)據(jù)接收中斷、數(shù)據(jù)請求中斷等,使CPU能夠及時處理各類I2C事件。中斷服務(wù)程序需要根據(jù)不同的事件類型執(zhí)行相應(yīng)的處理操作。時鐘延展如果從機處理速度較慢,無法及時響應(yīng)主機的數(shù)據(jù)請求,可以使用時鐘延展功能。通過拉低SCL線,從機可以強制主機等待,直到從機準(zhǔn)備好繼續(xù)通信。這是I2C協(xié)議的一個重要特性,確保不同速度的設(shè)備可以協(xié)同工作。數(shù)據(jù)處理從機需要實現(xiàn)數(shù)據(jù)接收和發(fā)送的處理邏輯。當(dāng)主機寫入數(shù)據(jù)時,從機需要從數(shù)據(jù)寄存器讀取數(shù)據(jù)并進(jìn)行處理;當(dāng)主機請求讀取數(shù)據(jù)時,從機需要及時將數(shù)據(jù)寫入發(fā)送寄存器。數(shù)據(jù)處理通常在中斷服務(wù)程序中完成。I2C通信實例在這個實例中,我們將實現(xiàn)單片機通過I2C接口與EEPROM存儲器(如AT24C系列)進(jìn)行通信。EEPROM常用于存儲系統(tǒng)配置、校準(zhǔn)參數(shù)等需要在掉電后保持的數(shù)據(jù)。通信過程包括寫入數(shù)據(jù)到特定地址和從特定地址讀取數(shù)據(jù)。硬件連接方面,單片機的I2C引腳(SCL、SDA)連接到EEPROM相應(yīng)引腳,同時在SCL和SDA線上各接一個4.7kΩ上拉電阻。軟件部分需實現(xiàn)EEPROM的初始化、字節(jié)寫入、頁寫入、隨機讀取和順序讀取等功能。特別注意的是,EEPROM寫入操作后需要一定的時間(通常為幾毫秒)完成內(nèi)部寫周期,在此期間不響應(yīng)新的寫入請求。第五章:CAN通信CAN簡介CAN(ControllerAreaNetwork,控制器局域網(wǎng)絡(luò))是一種面向信息的網(wǎng)絡(luò)協(xié)議,最初由德國博世公司(Bosch)在1980年代開發(fā),用于汽車內(nèi)部各電子控制單元(ECU)之間的通信。CAN總線采用差分信號傳輸,具有較強的抗干擾能力和錯誤處理機制,適合在惡劣環(huán)境下可靠工作。其多主機、廣播式的通信方式和基于優(yōu)先級的仲裁機制,使其成為工業(yè)控制和汽車電子領(lǐng)域的標(biāo)準(zhǔn)通信協(xié)議。CAN的特點和應(yīng)用領(lǐng)域CAN總線的主要特點包括:多主機通信,無需中央控制器;基于消息內(nèi)容尋址,而非設(shè)備地址;基于優(yōu)先級的總線仲裁機制;傳輸距離遠(yuǎn)(高速CAN可達(dá)40m,低速CAN可達(dá)1km);可靠的錯誤檢測和處理機制。CAN總線廣泛應(yīng)用于汽車電子系統(tǒng)(如發(fā)動機管理、ABS、安全氣囊等子系統(tǒng))、工業(yè)自動化(如PLC、傳感器、執(zhí)行器等設(shè)備間通信)、醫(yī)療設(shè)備、智能建筑和航空航天等領(lǐng)域,已成為這些領(lǐng)域的標(biāo)準(zhǔn)通信接口。CAN通信原理總線拓?fù)浣Y(jié)構(gòu)CAN網(wǎng)絡(luò)采用總線型拓?fù)浣Y(jié)構(gòu),所有節(jié)點并聯(lián)連接到同一條總線上。每個節(jié)點都是對等的,可以在任何時刻發(fā)起通信。總線兩端需要接終端電阻(通常為120Ω),形成匹配阻抗,減少信號反射,提高通信可靠性。總線仲裁機制當(dāng)多個節(jié)點同時嘗試發(fā)送消息時,通過無損仲裁機制確定優(yōu)先級。消息標(biāo)識符(ID)越小,優(yōu)先級越高。發(fā)送過程中,節(jié)點同時監(jiān)測總線狀態(tài),如果檢測到優(yōu)先級更高的消息,低優(yōu)先級節(jié)點會自動退出發(fā)送,稍后重試。消息幀格式CAN協(xié)議定義了四種幀類型:數(shù)據(jù)幀(用于傳輸數(shù)據(jù))、遠(yuǎn)程幀(請求特定ID的數(shù)據(jù))、錯誤幀(指示檢測到錯誤)和過載幀(請求延遲)。標(biāo)準(zhǔn)CAN使用11位標(biāo)識符,擴展CAN使用29位標(biāo)識符,提供更大的地址空間。錯誤處理機制CAN具有強大的錯誤處理機制,包括位監(jiān)測、CRC校驗、幀檢查等多重錯誤檢測方法。檢測到錯誤的節(jié)點發(fā)送錯誤幀,迫使其他節(jié)點丟棄當(dāng)前消息。每個節(jié)點維護(hù)錯誤計數(shù)器,根據(jù)錯誤狀態(tài)可進(jìn)入錯誤被動或總線關(guān)閉狀態(tài),防止故障節(jié)點干擾整個網(wǎng)絡(luò)。CAN硬件連接差分信號傳輸CAN總線使用兩根信號線CANH和CANL進(jìn)行差分信號傳輸。差分信號提高了抗共模干擾能力,使CAN總線能夠在強電磁干擾環(huán)境中可靠工作。顯性狀態(tài)(邏輯0)時,CANH約為3.5V,CANL約為1.5V,差值為2V;隱性狀態(tài)(邏輯1)時,CANH和CANL均約為2.5V,差值為0V。終端電阻的作用為了抑制信號反射,CAN總線兩端需要連接120Ω終端電阻。終端電阻應(yīng)盡量靠近總線物理端點,確保阻抗匹配。在高速應(yīng)用中,終端電阻是必需的;而低速CAN可以不用終端電阻,但傳輸距離和抗干擾能力會降低。某些系統(tǒng)使用分布式終端電阻或可開關(guān)的終端電阻,以適應(yīng)不同的網(wǎng)絡(luò)配置。收發(fā)器連接微控制器的CAN控制器無法直接驅(qū)動CAN總線,需要通過CAN收發(fā)器(如TJA1050或MCP2551)連接到物理總線。收發(fā)器負(fù)責(zé)將CAN控制器的TX/RX信號轉(zhuǎn)換為差分信號,并提供電氣隔離和保護(hù)功能。收發(fā)器的TXD和RXD引腳連接到微控制器,CANH和CANL引腳連接到CAN總線。CAN通信參數(shù)設(shè)置1波特率設(shè)置CAN波特率通過設(shè)置時間量化單元(TimeQuantum,TQ)和各段長度來配置。典型的CAN總線速率為125kbps、250kbps、500kbps或1Mbps。波特率配置需考慮系統(tǒng)時鐘頻率、總線長度和期望的傳輸速率。較高的波特率提供更高的數(shù)據(jù)吞吐量,但會減少最大總線長度。2位時序設(shè)置CAN位時序由四段組成:同步段、傳播段、相位段1和相位段2。這些段的長度決定了采樣點的位置,通常設(shè)置在位時間的70%-80%處。正確的位時序設(shè)置對于抗干擾和減少位錯誤至關(guān)重要,尤其在長距離通信中。3同步跳轉(zhuǎn)寬度同步跳轉(zhuǎn)寬度(SynchronizationJumpWidth,SJW)定義了時鐘可以調(diào)整的最大量,用于處理總線上不同節(jié)點之間的時鐘偏差。SJW通常設(shè)置為1-4個TQ。較大的SJW值有利于適應(yīng)較大的時鐘偏差,但會減少可用的位時序調(diào)整范圍。4濾波器配置CAN控制器通常包含硬件濾波器,用于篩選感興趣的消息ID。配置濾波器可以減少CPU處理負(fù)擔(dān),只接收需要的消息。濾波器可以設(shè)置為精確匹配或掩碼匹配模式。在多節(jié)點系統(tǒng)中,合理設(shè)置濾波器對于提高系統(tǒng)效率至關(guān)重要。CAN發(fā)送過程消息準(zhǔn)備準(zhǔn)備要發(fā)送的CAN消息,包括設(shè)置標(biāo)識符(標(biāo)準(zhǔn)11位或擴展29位)、數(shù)據(jù)長度(0-8字節(jié))、RTR位(數(shù)據(jù)幀或遠(yuǎn)程幀)和實際數(shù)據(jù)內(nèi)容。這些信息被寫入CAN控制器的發(fā)送郵箱寄存器中。發(fā)送請求設(shè)置發(fā)送請求標(biāo)志,通知CAN控制器將消息放入發(fā)送隊列。如果總線空閑,控制器會立即開始發(fā)送;如果總線忙,消息會等待直到總線變?yōu)榭臻e。多個消息排隊時,按照標(biāo)識符優(yōu)先級決定發(fā)送順序。總線仲裁如果多個節(jié)點同時開始發(fā)送,通過位級仲裁確定誰獲得總線控制權(quán)。發(fā)送過程中,每個節(jié)點同時監(jiān)測總線狀態(tài)。如果檢測到預(yù)期發(fā)送的位與實際總線狀態(tài)不符,低優(yōu)先級節(jié)點會自動停止發(fā)送,而高優(yōu)先級節(jié)點繼續(xù)發(fā)送。發(fā)送完成與確認(rèn)消息成功發(fā)送后,至少有一個接收節(jié)點必須發(fā)送確認(rèn)位,表示消息被正確接收。控制器設(shè)置發(fā)送完成標(biāo)志,并可選擇觸發(fā)中斷。如果沒有收到確認(rèn)位或檢測到錯誤,控制器會自動重發(fā)消息,直到成功或達(dá)到最大重試次數(shù)。CAN接收過程消息過濾CAN控制器持續(xù)監(jiān)聽總線上的所有消息。接收到消息標(biāo)識符后,通過硬件濾波器決定是否接受該消息。不匹配濾波條件的消息會被丟棄,減輕處理器負(fù)擔(dān)。1數(shù)據(jù)存儲通過濾波器的消息被存入接收FIFO隊列。根據(jù)CAN控制器設(shè)計,可能有一個或多個FIFO隊列,每個隊列可以存儲多個消息。當(dāng)新消息到達(dá)時,會被添加到隊列尾部。2中斷觸發(fā)消息成功接收并通過CRC校驗后,控制器發(fā)送確認(rèn)位,并可選擇觸發(fā)接收中斷。中斷可以在接收FIFO非空、半滿或溢出等不同條件下觸發(fā),根據(jù)應(yīng)用需求配置。3數(shù)據(jù)處理接收中斷服務(wù)程序從FIFO讀取消息,包括標(biāo)識符、數(shù)據(jù)長度和實際數(shù)據(jù)。根據(jù)消息ID和內(nèi)容執(zhí)行相應(yīng)的處理邏輯。處理完成后,需要清除FIFO中的該消息,為新消息騰出空間。4CAN錯誤處理錯誤檢測機制CAN協(xié)議實現(xiàn)了多種錯誤檢測機制,包括位錯誤(發(fā)送的位與監(jiān)測到的總線狀態(tài)不符)、填充錯誤(連續(xù)6個相同位)、CRC錯誤(計算的CRC值與接收的不符)、幀錯誤(幀格式不符合規(guī)范)和確認(rèn)錯誤(沒有節(jié)點發(fā)送確認(rèn)位)。錯誤計數(shù)器每個CAN節(jié)點維護(hù)發(fā)送錯誤計數(shù)器(TEC)和接收錯誤計數(shù)器(REC)。發(fā)送錯誤時TEC增加8,接收錯誤時REC增加1;成功通信時計數(shù)器減少1。根據(jù)計數(shù)器值,節(jié)點可處于錯誤活動、錯誤被動或總線關(guān)閉狀態(tài)。錯誤處理狀態(tài)錯誤活動狀態(tài)(TEC和REC<128):節(jié)點正常參與總線通信,檢測到錯誤時發(fā)送主動錯誤幀。錯誤被動狀態(tài)(TEC或REC≥128):節(jié)點仍參與通信,但發(fā)送被動錯誤幀,并在發(fā)送消息前等待額外延遲。總線關(guān)閉狀態(tài)(TEC>255):節(jié)點停止發(fā)送任何消息和錯誤幀,防止故障節(jié)點擾亂總線。自動恢復(fù)機制CAN控制器提供自動恢復(fù)機制。總線關(guān)閉的節(jié)點通過128次連續(xù)正確的接收11個連續(xù)隱性位(總線空閑)后,可自動恢復(fù)到錯誤活動狀態(tài)。這種機制確保了臨時故障導(dǎo)致的節(jié)點隔離能夠自動恢復(fù)。CAN通信實例在這個實例中,我們將介紹汽車電子控制單元(ECU)間的CAN通信。現(xiàn)代汽車通常具有多個ECU,如發(fā)動機管理系統(tǒng)(EMS)、變速箱控制單元(TCU)、車身控制模塊(BCM)、防抱死制動系統(tǒng)(ABS)等,它們通過CAN總線互相通信,協(xié)同工作。各ECU按照預(yù)定的時間間隔在總線上廣播自己的狀態(tài)信息。例如,EMS每10ms發(fā)送一次發(fā)動機轉(zhuǎn)速和油門位置;TCU每20ms發(fā)送一次檔位信息;ABS在檢測到車輪打滑時立即發(fā)送警告消息。每個ECU配置濾波器,只接收與自己相關(guān)的消息。實時性要求高的消息(如安全相關(guān)信息)使用較小的標(biāo)識符,獲得較高的總線優(yōu)先級。第六章:USB通信USB簡介USB(UniversalSerialBus,通用串行總線)是一種常見的外設(shè)連接接口標(biāo)準(zhǔn),最初由英特爾、微軟、IBM等公司聯(lián)合開發(fā),目標(biāo)是簡化計算機與外圍設(shè)備的連接。USB以其熱插拔能力、使用簡便性和廣泛的設(shè)備兼容性而聞名。與傳統(tǒng)的串口、并口相比,USB提供了更高的數(shù)據(jù)傳輸速率,能夠為連接的設(shè)備供電,支持即插即用功能,并通過一個標(biāo)準(zhǔn)接口連接多種不同類型的設(shè)備。這些特性使USB成為連接鍵盤、鼠標(biāo)、打印機、存儲設(shè)備等外設(shè)的首選接口。USB版本演進(jìn)USB標(biāo)準(zhǔn)經(jīng)歷了多次升級:USB1.0/1.1(1996年):低速1.5Mbps,全速12MbpsUSB2.0(2000年):高速480MbpsUSB3.0/3.1Gen1(2008年):超高速5GbpsUSB3.1Gen2(2013年):超高速+10GbpsUSB3.2(2017年):高達(dá)20GbpsUSB4(2019年):高達(dá)40Gbps每一代USB不僅提高了數(shù)據(jù)傳輸速率,還增強了功率傳輸能力、改進(jìn)了協(xié)議效率,并保持了對前幾代設(shè)備的向后兼容性。隨著版本升級,接口類型也有所變化,從最初的標(biāo)準(zhǔn)A/B接口,到微型USB、USBType-C等。USB通信原理主從架構(gòu)USB采用主從架構(gòu),主機(如計算機)控制總線上的所有通信。USB網(wǎng)絡(luò)中只有一個主機,可以連接多個設(shè)備。主機負(fù)責(zé)檢測設(shè)備連接/斷開、分配地址、調(diào)度數(shù)據(jù)傳輸?shù)取K袛?shù)據(jù)傳輸都由主機發(fā)起,設(shè)備只能響應(yīng)主機的請求,不能主動發(fā)起通信。分層協(xié)議USB協(xié)議分為幾個層次:物理層定義電氣特性和信號編碼;數(shù)據(jù)鏈路層負(fù)責(zé)數(shù)據(jù)封包;傳輸層管理端點間數(shù)據(jù)流;接口層定義設(shè)備類別和功能。這種分層結(jié)構(gòu)使不同層可以獨立開發(fā)和改進(jìn),同時確保兼容性。數(shù)據(jù)傳輸方式USB支持四種傳輸類型:控制傳輸(用于設(shè)備配置和控制)、批量傳輸(用于大量非實時數(shù)據(jù))、中斷傳輸(用于小量實時數(shù)據(jù))和同步傳輸(用于實時音頻/視頻數(shù)據(jù))。不同傳輸類型提供不同的帶寬、延遲和可靠性特性,適應(yīng)各種應(yīng)用需求。端點和管道USB設(shè)備中的端點是數(shù)據(jù)源或接收器,每個端點有唯一的地址和傳輸類型。主機和設(shè)備端點之間建立的邏輯連接稱為管道。控制端點(端點0)是必需的,用于設(shè)備配置;其他端點根據(jù)設(shè)備功能定義,可以是單向或雙向的。USB硬件連接接口類型USB定義了多種接口類型,包括標(biāo)準(zhǔn)A型接口(主機端)、標(biāo)準(zhǔn)B型接口(設(shè)備端)、Mini接口、Micro接口和Type-C接口。每種接口有不同的物理尺寸和引腳排列,但基本信號相同。Type-C是最新的接口標(biāo)準(zhǔn),支持正反插,可傳輸更高功率,并支持替代模式(如DisplayPort)。信號線定義USB使用四根線:VBUS(電源,通常5V)、D+和D-(差分?jǐn)?shù)據(jù)對)、GND(地)。D+和D-用于差分信號傳輸,提高抗干擾能力。USB3.0及以上版本增加了額外的高速差分對,用于超高速數(shù)據(jù)傳輸。Type-C接口還增加了配置通道(CC)線,用于電纜方向檢測和電源傳輸協(xié)商。電源管理USB不僅傳輸數(shù)據(jù),還為設(shè)備供電。USB2.0標(biāo)準(zhǔn)提供5V/500mA電源;USB3.0提高到5V/900mA;USBPowerDelivery標(biāo)準(zhǔn)支持最高100W(20V/5A)功率。設(shè)備通過枚舉過程告知主機其電源需求,主機決定是否可以滿足。一些設(shè)備需要額外的電源管理電路,確保在連接/斷開時不會產(chǎn)生電流尖峰。USB枚舉過程1設(shè)備連接檢測當(dāng)USB設(shè)備連接到主機時,主機通過檢測D+或D-線上的上拉電阻檢測到設(shè)備存在。低速設(shè)備在D-線上有上拉電阻,全速設(shè)備在D+線上有上拉電阻,高速設(shè)備初始表現(xiàn)為全速設(shè)備,稍后通過特殊序列切換到高速模式。2復(fù)位與地址分配主機發(fā)送總線復(fù)位信號,將設(shè)備重置到默認(rèn)狀態(tài)。復(fù)位后,設(shè)備使用默認(rèn)地址(0)響應(yīng)主機的請求。主機通過控制傳輸向默認(rèn)地址發(fā)送SET_ADDRESS請求,分配一個唯一的地址(1-127)給設(shè)備。設(shè)備記住這個地址,后續(xù)通信使用這個新地址。3描述符讀取主機發(fā)送GET_DESCRIPTOR請求,依次讀取設(shè)備描述符、配置描述符、接口描述符和端點描述符。這些描述符包含設(shè)備的詳細(xì)信息,如廠商ID、產(chǎn)品ID、設(shè)備類別、電源需求、端點特性等。主機根據(jù)這些信息確定設(shè)備類型和功能。4驅(qū)動加載與配置根據(jù)讀取的描述符信息,主機操作系統(tǒng)選擇并加載合適的設(shè)備驅(qū)動程序。驅(qū)動程序加載后,主機發(fā)送SET_CONFIGURATION請求,激活設(shè)備的一種配置。配置激活后,設(shè)備的端點可以開始傳輸數(shù)據(jù),設(shè)備進(jìn)入工作狀態(tài)。USB傳輸模式1控制傳輸控制傳輸用于設(shè)備配置、狀態(tài)檢查和其他非周期性命令。每個USB設(shè)備必須支持端點0的控制傳輸。控制傳輸具有錯誤檢測和重試機制,確保可靠性。一個完整的控制傳輸包含設(shè)置階段、可選的數(shù)據(jù)階段和狀態(tài)階段。控制傳輸是唯一可以雙向傳輸?shù)念愋停梢詮闹鳈C到設(shè)備(OUT),也可以從設(shè)備到主機(IN)。標(biāo)準(zhǔn)的USB請求(如GET_DESCRIPTOR、SET_ADDRESS等)都使用控制傳輸。2批量傳輸批量傳輸用于傳輸大量數(shù)據(jù),如打印機輸出或存儲設(shè)備的文件傳輸。批量傳輸具有錯誤檢測和重試機制,確保數(shù)據(jù)完整性,但不保證帶寬和延遲。當(dāng)總線忙時,批量傳輸可能被延遲,但最終會完成。批量傳輸在低速USB模式下不可用,全速模式下最大數(shù)據(jù)包大小為64字節(jié),高速模式下可達(dá)512字節(jié)。當(dāng)需要可靠傳輸大量數(shù)據(jù)但對時間要求不嚴(yán)格時,批量傳輸是理想選擇。USB傳輸模式(續(xù))1中斷傳輸中斷傳輸用于小量實時數(shù)據(jù)的周期性傳輸,如鍵盤、鼠標(biāo)等人機交互設(shè)備。中斷傳輸保證最大響應(yīng)延遲,主機定期輪詢設(shè)備,即使設(shè)備沒有數(shù)據(jù)也會響應(yīng)。中斷傳輸具有錯誤檢測和有限重試機制。低速設(shè)備的中斷端點最大數(shù)據(jù)包大小為8字節(jié),最小輪詢間隔為10ms;全速設(shè)備為64字節(jié)和1ms;高速設(shè)備為1024字節(jié)和125μs。中斷傳輸適用于需要及時但數(shù)據(jù)量小的應(yīng)用,如HID設(shè)備、狀態(tài)更新等。2同步傳輸同步傳輸用于對時間敏感但可容忍少量錯誤的數(shù)據(jù),如音頻和視頻流。同步傳輸保證恒定帶寬和低延遲,但沒有錯誤重試機制。數(shù)據(jù)按照預(yù)定速率傳輸,即使出現(xiàn)錯誤也繼續(xù)前進(jìn),不會重發(fā)丟失的數(shù)據(jù)。同步傳輸在低速USB模式下不可用,全速模式下最大數(shù)據(jù)包大小為1023字節(jié),高速模式下可達(dá)1024字節(jié)。同步端點有多種同步類型:無同步、異步、適應(yīng)性和同步,適應(yīng)不同的時鐘要求。音頻和視頻設(shè)備通常使用同步傳輸模式。USB主機模式配置主機控制器初始化配置USB主機控制器的時鐘源、DMA通道和中斷優(yōu)先級1根集線器配置初始化USB根集線器,設(shè)置端口電源和過流保護(hù)2設(shè)備管理初始化創(chuàng)建設(shè)備列表和資源池,準(zhǔn)備管理連接的設(shè)備3類驅(qū)動程序注冊注冊支持的USB設(shè)備類驅(qū)動程序,如HID、CDC、MSC等4USB主機模式要求微控制器具有USB主機控制器硬件。在初始化完成后,主機控制器開始監(jiān)測端口連接狀態(tài),當(dāng)檢測到設(shè)備插入時,自動執(zhí)行復(fù)位和枚舉過程。枚舉過程中,主機讀取設(shè)備描述符,識別設(shè)備類型,并加載相應(yīng)的驅(qū)動程序。對于微控制器實現(xiàn)的USB主機,通常使用USB主機協(xié)議棧(如STM32的USBHostLibrary、NXP的USBHostStack等)簡化開發(fā)。協(xié)議棧處理底層的USB協(xié)議細(xì)節(jié),為應(yīng)用程序提供高級API。應(yīng)用程序可以通過這些API輕松實現(xiàn)與USB設(shè)備的數(shù)據(jù)交換,而無需深入了解USB協(xié)議的復(fù)雜性。USB設(shè)備模式配置USB時鐘配置設(shè)置USB模塊的時鐘源和頻率。USB需要準(zhǔn)確的時鐘頻率(通常為48MHz)以滿足協(xié)議要求。根據(jù)微控制器的時鐘體系,可能需要使用PLL或其他時鐘源產(chǎn)生USB所需的時鐘信號。確保時鐘精度符合USB規(guī)范要求(±0.25%)。端點配置配置必要的USB端點。每個USB設(shè)備至少需要配置端點0用于控制傳輸。根據(jù)設(shè)備功能,可能還需要配置額外的端點用于其他類型的傳輸(批量、中斷或同步)。配置包括設(shè)置端點類型、方向、最大數(shù)據(jù)包大小等參數(shù)。描述符定義定義設(shè)備描述符、配置描述符、接口描述符和端點描述符。這些描述符告訴主機設(shè)備的功能和特性,如設(shè)備類別、電源需求、支持的傳輸類型等。描述符通常定義為只讀數(shù)據(jù)結(jié)構(gòu),存儲在Flash中。USB中斷配置配置并使能USB相關(guān)中斷,如復(fù)位中斷、掛起/恢復(fù)中斷、端點傳輸完成中斷等。中斷處理程序負(fù)責(zé)響應(yīng)USB事件,如處理主機請求、管理數(shù)據(jù)傳輸?shù)取:侠淼闹袛鄡?yōu)先級設(shè)置確保USB事件能夠及時處理。USB通信實例在這個實例中,我們將實現(xiàn)基于USBCDC(通信設(shè)備類)的虛擬串口功能。微控制器通過USB接口與計算機連接,在計算機上模擬一個串行端口。這種方式比傳統(tǒng)的RS-232串口或USB轉(zhuǎn)串口適配器更簡單、更靈活,不需要額外的硬件。微控制器端需要實現(xiàn)USBCDC類協(xié)議,包括相應(yīng)的描述符定義、請求處理和數(shù)據(jù)傳輸邏輯。當(dāng)設(shè)備連接到計算機時,操作系統(tǒng)會自動加載CDC驅(qū)動程序,創(chuàng)建一個虛擬COM端口。應(yīng)用程序可以像使用普通串口一樣使用這個虛擬端口,進(jìn)行數(shù)據(jù)收發(fā)。這種方式廣泛應(yīng)用于需要簡單PC通信接口的嵌入式設(shè)備,如數(shù)據(jù)采集器、編程器、調(diào)試工具等。第七章:串行通信應(yīng)用設(shè)計1應(yīng)用層定義用戶接口和功能實現(xiàn)2協(xié)議層制定通信規(guī)則和數(shù)據(jù)格式3驅(qū)動層實現(xiàn)底層硬件控制串行通信應(yīng)用設(shè)計通常采用分層架構(gòu),將復(fù)雜系統(tǒng)分解為相對獨立的層次。驅(qū)動層負(fù)責(zé)硬件接口控制,提供基本的收發(fā)函數(shù);協(xié)議層定義通信規(guī)則,實現(xiàn)數(shù)據(jù)打包與解析;應(yīng)用層實現(xiàn)具體功能,為用戶提供接口。這種分層結(jié)構(gòu)提高了代碼的可維護(hù)性和可重用性。通信協(xié)議設(shè)計應(yīng)遵循一些基本原則:簡單性(避免不必要的復(fù)雜性)、可靠性(包含錯誤檢測與恢復(fù)機制)、可擴展性(允許未來功能擴展)、效率(最小化協(xié)議開銷)和兼容性(考慮與現(xiàn)有系統(tǒng)的互操作)。良好的協(xié)議設(shè)計對于構(gòu)建穩(wěn)定、高效的通信系統(tǒng)至關(guān)重要。數(shù)據(jù)校驗技術(shù)奇偶校驗奇偶校驗是最簡單的錯誤檢測方法,通過添加一個校驗位使數(shù)據(jù)中的1的總數(shù)為奇數(shù)(奇校驗)或偶數(shù)(偶校驗)。發(fā)送方根據(jù)數(shù)據(jù)位計算并附加校驗位,接收方驗證收到的數(shù)據(jù)是否符合校驗規(guī)則。奇偶校驗只能檢測奇數(shù)個位錯誤,無法檢測偶數(shù)個位錯誤。例如,如果有兩個位發(fā)生錯誤,校驗結(jié)果仍然正確,錯誤將不被發(fā)現(xiàn)。盡管簡單,但由于檢測能力有限,奇偶校驗通常只用于低噪聲環(huán)境或?qū)煽啃砸蟛桓叩膱龊稀Pr灪托r灪褪菍?shù)據(jù)中所有字節(jié)(或字)相加,取結(jié)果的低字節(jié)(或低字)作為校驗值。發(fā)送方將校驗和附加到數(shù)據(jù)包末尾,接收方重新計算校驗和并與接收到的校驗和比較。不匹配表示傳輸錯誤。校驗和比奇偶校驗提供更好的錯誤檢測能力,但仍有局限性。例如,字節(jié)順序交換或包含相等且相反數(shù)值的錯誤可能不被檢測到。盡管如此,由于計算簡單,校驗和仍被廣泛用于需要基本錯誤檢測的場合。CRC校驗循環(huán)冗余校驗(CRC)是一種強大的錯誤檢測方法,基于多項式除法原理。數(shù)據(jù)被視為一個大的二進(jìn)制數(shù),除以一個預(yù)定義的多項式,得到的余數(shù)即為CRC值。常用的CRC標(biāo)準(zhǔn)包括CRC-8、CRC-16和CRC-32等。CRC具有優(yōu)異的錯誤檢測能力,可以檢測出所有單比特錯誤、所有雙比特錯誤、所有奇數(shù)個比特錯誤,以及大多數(shù)突發(fā)錯誤。因此,CRC被廣泛應(yīng)用于各種通信協(xié)議和存儲系統(tǒng)中,如以太網(wǎng)、USB、SATA、ZIP文件等。通信可靠性設(shè)計1超時重傳機制超時重傳是確保通信可靠性的基本機制。發(fā)送方在發(fā)送數(shù)據(jù)后啟動計時器,如果在預(yù)設(shè)的超時時間內(nèi)未收到接收方的確認(rèn),則假定數(shù)據(jù)丟失或損壞,自動重新發(fā)送。重傳次數(shù)通常有上限,超過上限后會報告通信失敗。超時時間的設(shè)置需要權(quán)衡通信延遲和響應(yīng)速度。過短的超時時間可能導(dǎo)致不必要的重傳;過長則會延遲錯誤恢復(fù)。自適應(yīng)超時算法可以根據(jù)網(wǎng)絡(luò)狀況動態(tài)調(diào)整超時值,提高效率。2數(shù)據(jù)確認(rèn)機制數(shù)據(jù)確認(rèn)機制要求接收方在成功接收數(shù)據(jù)后發(fā)送確認(rèn)信息(ACK)。只有收到確認(rèn)后,發(fā)送方才認(rèn)為傳輸成功,否則將觸發(fā)重傳。確認(rèn)可以是對每個數(shù)據(jù)包單獨確認(rèn),也可以是對多個數(shù)據(jù)包批量確認(rèn)(累積確認(rèn))。確認(rèn)機制通常與序列號系統(tǒng)結(jié)合使用,每個數(shù)據(jù)包有唯一的序列號,確認(rèn)信息中包含已成功接收的最高序列號。這種方式允許接收方識別丟失或重復(fù)的數(shù)據(jù)包,保證數(shù)據(jù)按正確順序處理。3錯誤恢復(fù)策略錯誤恢復(fù)策略定義了在檢測到通信錯誤時的處理方法。常見策略包括:自動重傳請求(ARQ),發(fā)現(xiàn)錯誤立即請求重傳;前向糾錯(FEC),通過冗余編碼在不重傳的情況下修復(fù)錯誤;混合ARQ,結(jié)合兩者優(yōu)點,先嘗試糾錯,失敗再請求重傳。選擇合適的錯誤恢復(fù)策略需要考慮通信信道特性、應(yīng)用要求和系統(tǒng)資源。在噪聲較大的環(huán)境中,F(xiàn)EC可能更有效;在資源受限的系統(tǒng)中,簡單的ARQ可能更合適。多設(shè)備通信管理設(shè)備地址分配在多設(shè)備通信系統(tǒng)中,每個設(shè)備需要唯一的地址或標(biāo)識符。地址分配可以采用靜態(tài)方式(如硬編碼、DIP開關(guān)設(shè)置)或動態(tài)方式(如自動發(fā)現(xiàn)和分配)。靜態(tài)地址簡單可靠但缺乏靈活性;動態(tài)地址增加了系統(tǒng)復(fù)雜性但更適合設(shè)備數(shù)量變化的場景。主從通信模式主從模式是常用的多設(shè)備通信模式,其中一個設(shè)備作為主機控制總線,其他設(shè)備作為從機響應(yīng)主機的命令。主機負(fù)責(zé)發(fā)起通信、分配資源和協(xié)調(diào)活動。這種模式簡化了總線控制,避免了沖突,但存在單點故障風(fēng)險,且不適合對等設(shè)備間通信。多主設(shè)備協(xié)調(diào)在需要多個主設(shè)備的系統(tǒng)中,必須解決總線訪問沖突問題。常用方法包括:時分復(fù)用(各主機在不同時間段訪問總線);令牌傳遞(持有令牌的設(shè)備才能發(fā)送數(shù)據(jù));CSMA/CD(先檢測總線空閑再發(fā)送,發(fā)生沖突則后退重試);仲裁(如CAN總線基于消息ID的仲裁機制)。通信中斷處理中斷優(yōu)先級設(shè)置根據(jù)通信時序要求設(shè)置適當(dāng)?shù)闹袛鄡?yōu)先級1中斷服務(wù)程序設(shè)計保持ISR簡短高效,僅處理時間關(guān)鍵任務(wù)2中斷延遲管理分析和優(yōu)化中斷延遲,確保實時響應(yīng)3中斷與輪詢結(jié)合合理分配中斷和輪詢?nèi)蝿?wù),平衡系統(tǒng)負(fù)載4在串行通信系統(tǒng)中,中斷處理對于及時響應(yīng)通信事件至關(guān)重要。接收中斷通常具有較高優(yōu)先級,確保接收緩沖區(qū)不會溢出;發(fā)送中斷則可以使用較低優(yōu)先級,因為發(fā)送過程通常對時間不太敏感。對于多種通信接口共存的系統(tǒng),應(yīng)根據(jù)速度和時間要求分配合理的中斷優(yōu)先級。中斷服務(wù)程序應(yīng)盡量簡短,只執(zhí)行必要的操作,如從硬件緩沖區(qū)讀取數(shù)據(jù)、處理錯誤標(biāo)志或觸發(fā)狀態(tài)更新。復(fù)雜的數(shù)據(jù)處理應(yīng)推遲到主循環(huán)中完成。在資源受限的系統(tǒng)中,可以采用中斷與輪詢相結(jié)合的方式,使用中斷觸發(fā)數(shù)據(jù)接收,但通過輪詢方式檢查發(fā)送狀態(tài),減少中斷次數(shù)。通信緩沖區(qū)管理環(huán)形緩沖區(qū)環(huán)形緩沖區(qū)是一種高效的FIFO(先進(jìn)先出)數(shù)據(jù)結(jié)構(gòu),通常用于通信系統(tǒng)的數(shù)據(jù)緩沖。它由一個固定大小的數(shù)組和兩個指針(讀指針和寫指針)組成。當(dāng)指針到達(dá)數(shù)組末尾時,會繞回到開始位置,形成環(huán)狀結(jié)構(gòu)。環(huán)形緩沖區(qū)的優(yōu)點是實現(xiàn)簡單、訪問高效、不需要數(shù)據(jù)移動。它特別適合生產(chǎn)者-消費者模型,如接收中斷(生產(chǎn)者)和數(shù)據(jù)處理函數(shù)(消費者)之間的數(shù)據(jù)傳遞。需要注意的是緩沖區(qū)滿和空的判斷條件,以及可能的多線程訪問同步問題。雙緩沖技術(shù)雙緩沖技術(shù)使用兩個緩沖區(qū)交替工作:當(dāng)一個緩沖區(qū)用于接收或發(fā)送數(shù)據(jù)時,另一個緩沖區(qū)用于數(shù)據(jù)處理。這種方式允許數(shù)據(jù)接收和處理并行進(jìn)行,提高系統(tǒng)吞吐量,減少數(shù)據(jù)等待時間。雙緩沖在處理大塊數(shù)據(jù)(如圖像傳輸、音頻流)或需要連續(xù)處理的數(shù)據(jù)時特別有效。實現(xiàn)時需要注意緩沖區(qū)切換的時機和同步機制,確保數(shù)據(jù)完整性。在資源受限的系統(tǒng)中,需要權(quán)衡雙緩沖帶來的性能提升與額外內(nèi)存消耗。緩沖區(qū)溢出保護(hù)緩沖區(qū)溢出是通信系統(tǒng)中常見的問題,可能導(dǎo)致數(shù)據(jù)丟失或系統(tǒng)崩潰。防止緩沖區(qū)溢出的策略包括:適當(dāng)?shù)木彌_區(qū)大小設(shè)計,根據(jù)預(yù)期數(shù)據(jù)量和處理能力確定;流控制機制,當(dāng)接收緩沖區(qū)接近滿時通知發(fā)送方暫停發(fā)送;溢出檢測與處理,如丟棄新數(shù)據(jù)或觸發(fā)錯誤處理程序。在安全關(guān)鍵應(yīng)用中,緩沖區(qū)保護(hù)尤為重要。除了軟件防護(hù)措施外,某些微控制器還提供硬件級別的內(nèi)存保護(hù)功能,可以進(jìn)一步增強系統(tǒng)安全性。通信調(diào)試技術(shù)串口調(diào)試助手是最基本的通信調(diào)試工具,用于監(jiān)控和測試串行通信。它允許發(fā)送和接收ASCII或十六進(jìn)制數(shù)據(jù),顯示時間戳,支持?jǐn)?shù)據(jù)記錄和回放。高級串口調(diào)試助手還可以定義自動響應(yīng)規(guī)則、設(shè)置定時發(fā)送和執(zhí)行腳本,極大提高調(diào)試效率。邏輯分析儀和協(xié)議分析儀是更專業(yè)的調(diào)試設(shè)備,可以捕獲和解析多通道的數(shù)字信號。它們能夠?qū)崟r顯示總線上的通信活動,解碼各種協(xié)議(UART、SPI、I2C、CAN等),識別時序問題和協(xié)議錯誤。對于復(fù)雜的通信問題,示波器也是不可或缺的工具,可以分析信號質(zhì)量、測量時序參數(shù)和檢測信號完整性問題。結(jié)合使用這些工具,可以全面分析和解決各種通信故障。實際應(yīng)用案例分析1系統(tǒng)架構(gòu)智能家居系統(tǒng)通常采用分層架構(gòu),包括傳感器節(jié)點層、控制層和用戶接口層。各層間通過不同的串行通信接口連接:傳感器與控制器間常用I2C或SPI;控制器之間采用CAN或RS-485總線;控制器與網(wǎng)關(guān)間可能使用UART或USB;網(wǎng)關(guān)與外部網(wǎng)絡(luò)則通過Wi-Fi、藍(lán)牙或以太網(wǎng)連接。2通信協(xié)議選擇針對不同的連接需求,選擇合適的通信協(xié)議:溫濕度傳感器使用I2C,速度快且只需兩根線;安防設(shè)備使用CAN總線,確保可靠性和實時響應(yīng);照明和電器控制采用低成本的單線總線;而網(wǎng)關(guān)與云服務(wù)則使用標(biāo)準(zhǔn)的Internet協(xié)議。協(xié)議選擇考慮因素包括距離、速度、可靠性和功耗。3可靠性設(shè)計智能家居系統(tǒng)需要長期穩(wěn)定運行,因此通信可靠性設(shè)計至關(guān)重要。實現(xiàn)包括:數(shù)據(jù)校驗和重傳機制,確保指令準(zhǔn)確執(zhí)行;看門狗定時器,監(jiān)測并重置異常節(jié)點;電源管理,防止電源波動導(dǎo)致通信錯誤;以及冗余設(shè)計,關(guān)鍵系統(tǒng)采用雙路通信。4安全性考慮通信安全是智能家居不可忽視的問題。實現(xiàn)安全通信的措施包括:數(shù)據(jù)加密,防止竊聽和篡改;設(shè)備認(rèn)證,確保只有授權(quán)設(shè)備能加入網(wǎng)絡(luò);訪問控制,限制不同用戶的操作權(quán)限;以及安全升級機制,允許遠(yuǎn)程修復(fù)安全漏洞。實際應(yīng)用案例分析(續(xù))工業(yè)控制網(wǎng)絡(luò)需求工業(yè)控制網(wǎng)絡(luò)對通信系統(tǒng)有嚴(yán)格要求:實時性,控制指令必須在確定的時間內(nèi)執(zhí)行;可靠性
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備系統(tǒng)維保合同協(xié)議
- 2025幼兒園數(shù)學(xué)考試題與答案
- 第九章異步電動機基本結(jié)構(gòu)和運行分析39課件
- 2025年酒店管理專業(yè)大學(xué)生考試卷及答案
- 第34屆全國中學(xué)生物理競賽復(fù)賽試題
- 快遞代收委托協(xié)議書范本
- 品牌合作解除合同協(xié)議
- 快餐飯店轉(zhuǎn)讓合同協(xié)議
- 員工宿舍外包合同協(xié)議
- 2025年上海住房租賃合同范本參考
- 水滸一百單八將座次排位、梁山泊職位、諢號、星宿、武器、最終結(jié)局
- 國開電大行政管理學(xué)#(XXX)形考任務(wù)一參考答案
- 機械專業(yè)英文簡歷
- 國家開放大學(xué)電大《兒童心理學(xué)》終結(jié)性考試大作業(yè)試題及答案9
- 安全生產(chǎn)隱患排查頻次確定
- 2022年黑龍江省龍東地區(qū)升學(xué)模擬大考卷(二)數(shù)學(xué)試卷(解析版)
- GB/T 7141-2008塑料熱老化試驗方法
- 醫(yī)院患者壓力性損傷情況登記表
- 污水管網(wǎng)工程主要項目清單與計價表參考模板范本
- 上海市律師事務(wù)所內(nèi)部管理制度大全【2017完整版】
- MAM860螺桿式空壓機控制器
評論
0/150
提交評論