国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
常見硬件通信協(xié)議介紹

前言

完整的硬件產(chǎn)品是由多種模塊組合實(shí)現(xiàn)產(chǎn)品功能的,微控制器 MCU 充當(dāng)大腦,外圍的存儲(chǔ)單元、顯示單元、發(fā)聲單元、傳感器單元、運(yùn)動(dòng)單元等等是其軀干和四肢,而不同類型的硬件單元需要有機(jī)的結(jié)合起來(lái),就離不開相互之間的數(shù)據(jù)通信,電子工業(yè)經(jīng)過(guò)了百余年的發(fā)展,衍生出了繁多的協(xié)議,其中既有行業(yè)公認(rèn)的標(biāo)準(zhǔn)協(xié)議,也有企業(yè)自研的內(nèi)部標(biāo)準(zhǔn),這些協(xié)議通??梢苑譃椴⑿型ㄐ艆f(xié)議和串行通信協(xié)議。

  • 并行通信,在同一時(shí)刻發(fā)送多位數(shù)據(jù)(可以是多根線)。優(yōu)點(diǎn)是發(fā)送速度快;缺點(diǎn)是傳輸距離短 資源占用多。   

  •   串行通信,用一根線 在不同的時(shí)刻發(fā)送8位數(shù)據(jù)。優(yōu)點(diǎn)是傳輸距離遠(yuǎn) 占用資源少;缺點(diǎn)是發(fā)送速度慢。

    通信的方式可以分為:全雙工、半雙工、單工

  • 單工通信 只能接受或者發(fā)送 收音機(jī) 遙控器,一般只有一根線

  • 半雙工通信 在同一時(shí)刻只能發(fā)送或者接收 對(duì)講機(jī),至少有兩根線

  • 全雙工通信 在同一時(shí)刻 既能接收又能發(fā)送 電話,至少有兩根線

    根據(jù)是接收端和發(fā)送端時(shí)鐘頻率的異同又可分為同步通信和異步通信,本章將簡(jiǎn)單介紹主流的一些硬件通信協(xié)議。

SPI 協(xié)議

 協(xié)議概括    

    SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,如今主流的微控制器都集成有spi接口,如 stm32 家族。

通信原理

    SPI的通信原理很簡(jiǎn)單,它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時(shí))。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入)、SDO(數(shù)據(jù)輸出)、SCLK(時(shí)鐘)、CS(片選)。

  • SDI – SerialData In,串行數(shù)據(jù)輸入;

  • SDO – SerialDataOut,串行數(shù)據(jù)輸出;

  • SCLK – Serial Clock,時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生;

  • CS – Chip Select,從設(shè)備使能信號(hào),由主設(shè)備控制。

    其中,CS是從芯片是否被主芯片選中的控制信號(hào),也就是說(shuō)只有片選信號(hào)為預(yù)先規(guī)定的使能信號(hào)時(shí)(高電位或低電位),主芯片對(duì)此從芯片的操作才有效。這就使在同一條總線上連接多個(gè)SPI設(shè)備成為可能。

    接下來(lái)就負(fù)責(zé)通訊的3根線了。通訊是通過(guò)數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說(shuō)數(shù)據(jù)是一位一位的傳輸?shù)?。這就是SCLK時(shí)鐘線存在的原因,由SCLK提供時(shí)鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過(guò) SDO線,數(shù)據(jù)在時(shí)鐘上升沿或下降沿時(shí)改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。因此,至少需要8次時(shí)鐘信號(hào)的改變(上沿和下沿為一次),才能完成8位數(shù)據(jù)的傳輸。

    SCLK信號(hào)線只由主設(shè)備控制,從設(shè)備不能控制信號(hào)線。同樣,在一個(gè)基于SPI的設(shè)備中,至少有一個(gè)主控設(shè)備。這樣傳輸?shù)奶攸c(diǎn):這樣的傳輸方式有一個(gè)優(yōu)點(diǎn),與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因?yàn)镾CLK時(shí)鐘線由主控設(shè)備控制,當(dāng)沒(méi)有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說(shuō),主設(shè)備通過(guò)對(duì)SCLK時(shí)鐘線的控制可以完成對(duì)通訊的控制。

    通過(guò)邏輯分析儀采集 spi 總線數(shù)據(jù),可以看到四個(gè)通道的波形變化,判斷信號(hào)的時(shí)鐘周期、時(shí)鐘相位和極性,并能夠解碼獲取實(shí)際傳輸?shù)臄?shù)據(jù)和指令。

    SPI還是一個(gè)數(shù)據(jù)交換協(xié)議:因?yàn)镾PI的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出。不同的SPI設(shè)備的實(shí)現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時(shí)間不同,在時(shí)鐘信號(hào)上沿或下沿采集有不同定義,具體請(qǐng)參考相關(guān)器件的文檔。

    最后,SPI接口的一個(gè)缺點(diǎn):沒(méi)有指定的流控制,沒(méi)有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。

I2C 協(xié)議

 協(xié)議概括    

    I2C總線是由Philips公司開發(fā)的一種簡(jiǎn)單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。

    主器件用于啟動(dòng)總線傳送數(shù)據(jù),并產(chǎn)生時(shí)鐘以開放傳送的器件,此時(shí)任何被尋址的器件均被認(rèn)為是從器件.在總線上主和從、發(fā)和收的關(guān)系不是恒定的,而取決于此時(shí)數(shù)據(jù)傳送方向。如果主機(jī)要發(fā)送數(shù)據(jù)給從器件,則主機(jī)首先尋址從器件,然后主動(dòng)發(fā)送數(shù)據(jù)至從器件,最后由主機(jī)終止數(shù)據(jù)傳送;如果主機(jī)要接收從器件的數(shù)據(jù),首先由主器件尋址從器件.然后主機(jī)接收從器件發(fā)送的數(shù)據(jù),最后由主機(jī)終止接收過(guò)程。在這種情況下.主機(jī)負(fù)責(zé)產(chǎn)生定時(shí)時(shí)鐘和終止數(shù)據(jù)傳送。

通信原理

    SDA(串行數(shù)據(jù)線)和SCL(串行時(shí)鐘線)都是雙向I/O線,接口電路為開漏輸出.需通過(guò)上拉電阻接電源VCC.當(dāng)總線空閑時(shí).兩根線都是高電平,連接總線的外同器件都是CMOS器件,輸出級(jí)也是開漏電路.在總線上消耗的電流很小,因此,總線上擴(kuò)展的器件數(shù)量主要由電容負(fù)載來(lái)決定,因?yàn)槊總€(gè)器件的總線接口都有一定的等效電容.而線路中電容會(huì)影響總線傳輸速度.當(dāng)電容過(guò)大時(shí),有可能造成傳輸錯(cuò)誤.所以,其負(fù)載能力為400pF,因此可以估算出總線允許長(zhǎng)度和所接器件數(shù)量。

    主器件用于啟動(dòng)總線傳送數(shù)據(jù),并產(chǎn)生時(shí)鐘以開放傳送的器件,此時(shí)任何被尋址的器件均被認(rèn)為是從器件.在總線上主和從、發(fā)和收的關(guān)系不是恒定的,而取決于此時(shí)數(shù)據(jù)傳送方向。如果主機(jī)要發(fā)送數(shù)據(jù)給從器件,則主機(jī)首先尋址從器件,然后主動(dòng)發(fā)送數(shù)據(jù)至從器件,最后由主機(jī)終止數(shù)據(jù)傳送;如果主機(jī)要接收從器件的數(shù)據(jù),首先由主器件尋址從器件.然后主機(jī)接收從器件發(fā)送的數(shù)據(jù),最后由主機(jī)終止接收過(guò)程。在這種情況下.主機(jī)負(fù)責(zé)產(chǎn)生定時(shí)時(shí)鐘和終止數(shù)據(jù)傳送。

    邏輯分析儀采集 I2C 總線數(shù)據(jù),可以看到 SDA 和 SCL 的數(shù)據(jù)波形,查看每次的指令和數(shù)據(jù)、地址等。

CAN 協(xié)議

 協(xié)議概括        

    控制器局域網(wǎng)總線(CAN,Controller Area Network)是一種用于實(shí)時(shí)應(yīng)用的串行通訊協(xié)議總線,它可以使用雙絞線來(lái)傳輸信號(hào),是世界上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。CAN協(xié)議用于汽車中各種不同元件之間的通信,以此取代昂貴而笨重的配電線束。該協(xié)議的健壯性使其用途延伸到其他自動(dòng)化和工業(yè)應(yīng)用。CAN協(xié)議的特性包括完整性的串行數(shù)據(jù)通訊、提供實(shí)時(shí)支持、傳輸速率高達(dá)1Mb/s、同時(shí)具有11位的尋址以及檢錯(cuò)能力。

通信原理

    CAN總線使用串行數(shù)據(jù)傳輸方式,可以1Mb/s的速率在40m的雙絞線上運(yùn)行,也可以使用光纜連接,而且在這種總線上總線協(xié)議支持多主控制器。 CAN與I2C總線的許多細(xì)節(jié)很類似,但也有一些明顯的區(qū)別。當(dāng)CAN總線上的一個(gè)節(jié)點(diǎn)(站)發(fā)送數(shù)據(jù)時(shí),它以報(bào)文形式廣播給網(wǎng)絡(luò)中所有節(jié)點(diǎn)。對(duì)每個(gè)節(jié)點(diǎn)來(lái)說(shuō),無(wú)論數(shù)據(jù)是否是發(fā)給自己的,都對(duì)其進(jìn)行接收。每組報(bào)文開頭的11位字符為標(biāo)識(shí)符,定義了報(bào)文的優(yōu)先級(jí),這種報(bào)文格式稱為面向內(nèi)容的編址方案。在同一系統(tǒng)中標(biāo)識(shí)符是唯一的,不可能有兩個(gè)站發(fā)送具有相同標(biāo)識(shí)符的報(bào)文。當(dāng)幾個(gè)站同時(shí)競(jìng)爭(zhēng)總線讀取時(shí),這種配置十分重要。

  當(dāng)一個(gè)站要向其它站發(fā)送數(shù)據(jù)時(shí),該站的CPU將要發(fā)送的數(shù)據(jù)和自己的標(biāo)識(shí)符傳送給本站的CAN芯片,并處于準(zhǔn)備狀態(tài);當(dāng)它收到總線分配時(shí),轉(zhuǎn)為發(fā)送報(bào)文狀態(tài)。CAN芯片將數(shù)據(jù)根據(jù)協(xié)議組織成一定的報(bào)文格式發(fā)出,這時(shí)網(wǎng)上的其它站處于接收狀態(tài)。每個(gè)處于接收狀態(tài)的站對(duì)接收到的報(bào)文進(jìn)行檢測(cè),判斷這些報(bào)文是否是發(fā)給自己的,以確定是否接收它。由于CAN總線是一種面向內(nèi)容的編址方案,因此很容易建立高水準(zhǔn)的控制系統(tǒng)并靈活地進(jìn)行配置。我們可以很容易地在CAN總線中加進(jìn)一些新站而無(wú)需在硬件或軟件上進(jìn)行修改。當(dāng)所提供的新站是純數(shù)據(jù)接收設(shè)備時(shí),數(shù)據(jù)傳輸協(xié)議不要求獨(dú)立的部分有物理目的地址。它允許分布過(guò)程同步化,即總線上控制器需要測(cè)量數(shù)據(jù)時(shí),可由網(wǎng)上獲得,而無(wú)須每個(gè)控制器都有自己獨(dú)立的傳感器。

USB 協(xié)議

 協(xié)議概括

    通用串行總線(英語(yǔ):Universal Serial Bus,縮寫:USB)是連接計(jì)算機(jī)系統(tǒng)與外部設(shè)備的一種串口總線標(biāo)準(zhǔn),也是一種輸入輸出接口的技術(shù)規(guī)范,被廣泛地應(yīng)用于個(gè)人電腦和移動(dòng)設(shè)備等信息通訊產(chǎn)品,并擴(kuò)展至攝影器材、數(shù)字電視(機(jī)頂盒)、游戲機(jī)等其它相關(guān)領(lǐng)域。

通信原理

    USB總線屬于一種輪詢式總線,主機(jī)控制端口初始化所有的數(shù)據(jù)傳輸。每一總線動(dòng)作最多傳送三個(gè)數(shù)據(jù)包,包括令牌(Token)、數(shù)據(jù)(Data)、聯(lián)絡(luò)(HandShake)。

    按照傳輸前制定好的原則,在每次傳送開始時(shí),主機(jī)送一個(gè)描述傳輸動(dòng)作的種類、方向、USB設(shè)備地址和終端號(hào)的USB數(shù)據(jù)包,這個(gè)數(shù)據(jù)包通常被稱為令牌包(TokenPacket)。USB設(shè)備從解碼后的數(shù)據(jù)包的適當(dāng)位置取出屬于自己的數(shù)據(jù)。數(shù)據(jù)傳輸方向不是從主機(jī)到設(shè)備就是從設(shè)備到主機(jī)。

USB 2.0 接口

USB 3.0 接口

    在傳輸開始時(shí),由標(biāo)志包來(lái)標(biāo)志數(shù)據(jù)的傳輸方向,然后發(fā)送端開始發(fā)送包含信息的數(shù)據(jù)包或表明沒(méi)有數(shù)據(jù)傳送。接收端也要相應(yīng)發(fā)送一個(gè)握手的數(shù)據(jù)包表明是否傳送成功。發(fā)送端和接收端之間的USB數(shù)據(jù)傳輸,在主機(jī)和設(shè)備的端口之間,可視為一個(gè)通道。USB中有一個(gè)特殊的通道一缺省控制通道,它屬于消息通道,設(shè)備一啟動(dòng)即存在,從而為設(shè)備的設(shè)置、狀態(tài)查詢和輸入控制信息提供一個(gè)入口。

UART 協(xié)議

 協(xié)議概括

    通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種異步收發(fā)傳輸器,是電腦硬件的一部分。它將要傳輸?shù)馁Y料在串行通信與并行通信之間加以轉(zhuǎn)換。作為把并行輸入信號(hào)轉(zhuǎn)成串行輸出信號(hào)的芯片,UART通常被集成于其他通訊接口的連結(jié)上。

    具體實(shí)物表現(xiàn)為獨(dú)立的模塊化芯片,或作為集成于微處理器中的周邊設(shè)備。一般是RS-232C規(guī)格的,與類似Maxim的MAX232之類的標(biāo)準(zhǔn)信號(hào)幅度變換芯片進(jìn)行搭配,作為連接外部設(shè)備的接口。在UART上追加同步方式的序列信號(hào)變換電路的產(chǎn)品,被稱為USART(Universal Synchronous Asynchronous Receiver Transmitter)。

通信原理

    計(jì)算機(jī)內(nèi)部采用并行數(shù)據(jù),不能直接把數(shù)據(jù)發(fā)到Modem,必須經(jīng)過(guò)UART整理才能進(jìn)行異步傳輸,其過(guò)程為:CPU先把準(zhǔn)備寫入串行設(shè)備的數(shù)據(jù)放到UART的寄存器(臨時(shí)內(nèi)存塊)中,再通過(guò)FIFO(First Input First Output,先入先出隊(duì)列)傳送到串行設(shè)備,若是沒(méi)有FIFO,信息將變得雜亂無(wú)章,不可能傳送到Modem。

    UART作為異步串口通信協(xié)議的一種,工作原理是將傳輸數(shù)據(jù)的每個(gè)字符一位接一位地傳輸。

    其中各位的意義如下:

  •     起始位:先發(fā)出一個(gè)邏輯”0”的信號(hào),表示傳輸字符的開始。

  • 資料位:緊接著起始位之后。資料位的個(gè)數(shù)可以是4、5、6、7、8等,構(gòu)成一個(gè)字符。通常采用ASCII碼。從最低位開始傳送,靠時(shí)鐘定位。

  • 奇偶校驗(yàn)位:資料位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來(lái)校驗(yàn)資料傳送的正確性。

  • 停止位:它是一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志??梢允?位、1.5位、2位的高電平。 由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。

  • 空閑位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒(méi)有資料傳送。

  • 波特率:是衡量資料傳送速率的指標(biāo)。表示每秒鐘傳送的符號(hào)數(shù)(symbol)。一個(gè)符號(hào)代表的信息量(比特?cái)?shù))與符號(hào)的階數(shù)有關(guān)。例如資料傳送速率為120字符/秒,傳輸使用256階符號(hào),每個(gè)符號(hào)代表8bit,則波特率就是120baud,比特率是120*8=960BIT/S。

    通過(guò)邏輯分析儀抓取 uart 總線數(shù)據(jù),可以清楚的看到數(shù)據(jù)幀格式。

參考鏈接

1.《物聯(lián)網(wǎng)安全百科》 https://iot-security.wiki

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
串行通信在工業(yè)和汽車控制器中的應(yīng)用
SPI通信
總線
串行擴(kuò)展的特點(diǎn)
一文了解SPI總線工作原理、優(yōu)缺點(diǎn)和應(yīng)用案例
SPI、I2C、UART三種串行總線協(xié)議的區(qū)別
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服