串口通訊是什么?學(xué)術(shù)解釋是,通過總線在一個(gè)時(shí)間點(diǎn)連續(xù)發(fā)送一位數(shù)據(jù)的方法。如同弓箭手頻繁射出弓箭一般,嗖、嗖、嗖……
串口通訊協(xié)議是什么?說的大白話一點(diǎn),就是串口通信時(shí)所使用的協(xié)議傳輸方式。
串口通訊協(xié)議有幾種呢?串行通信協(xié)議包括系統(tǒng)間協(xié)議和內(nèi)部系統(tǒng)協(xié)議。
系統(tǒng)間協(xié)議:用于通信兩個(gè)不同設(shè)備的系統(tǒng)間協(xié)議。就像計(jì)算機(jī)與微控制器套件之間的通信一樣。通過內(nèi)部總線系統(tǒng)進(jìn)行通信。常見的有UART協(xié)議、USART協(xié)議、USB協(xié)議。
內(nèi)部系統(tǒng)協(xié)議:內(nèi)部系統(tǒng)協(xié)議用于通信電路板上的兩個(gè)設(shè)備。在使用這些系統(tǒng)內(nèi)協(xié)議時(shí),我們將不使用系統(tǒng)內(nèi)協(xié)議而擴(kuò)展微控制器的外圍設(shè)備。使用系統(tǒng)內(nèi)協(xié)議會增加電路復(fù)雜度和功耗。使用系統(tǒng)內(nèi)協(xié)議,電路復(fù)雜度和功耗降低,成本降低,并且訪問數(shù)據(jù)非常安全。常見的有I2C協(xié)議、SPI協(xié)議、CAN協(xié)議。
UART代表通用異步發(fā)送器和接收器。UART協(xié)議是具有兩個(gè)有線協(xié)議的串口通信。數(shù)據(jù)電纜信號線標(biāo)記為Rx和Tx。串口通信通常用于發(fā)送和接收信號。它被傳輸并與串口通信接收數(shù)據(jù),而沒有類脈沖。UART接收數(shù)據(jù)字節(jié)并按順序發(fā)送各個(gè)位。
USAT協(xié)議在嵌入式系統(tǒng)中,通常作為 MCU 的外設(shè); 一般來說,由芯片引腳直接引出的一般是 TTL 電平;而中間接有轉(zhuǎn)換芯片的可能就是RS232電平。詳情可查看:串行通訊的標(biāo)準(zhǔn)
UART是半雙工協(xié)議。半雙工意味著具有傳輸和接收數(shù)據(jù)的功能,但不能同時(shí)進(jìn)行。大多數(shù)控制器在電路板上都有硬件UART。它使用一條數(shù)據(jù)線來發(fā)送和接收數(shù)據(jù)。它具有一個(gè)起始位、一個(gè)8位數(shù)據(jù)和一個(gè)停止位,表示8位數(shù)據(jù)傳輸一個(gè)人的信號是從高到低。例如:電子郵件、短信、對講機(jī),工業(yè)物聯(lián)網(wǎng)傳輸設(shè)備串口服務(wù)器。
UART協(xié)議數(shù)據(jù)流
USART代表通用的同步和異步發(fā)送器和接收器。它是兩線協(xié)議的串口通信。數(shù)據(jù)電纜信號線標(biāo)記為Rx和TX。該協(xié)議用于逐字節(jié)發(fā)送和接收數(shù)據(jù)以及時(shí)鐘脈沖。這是一種全雙工協(xié)議,意味著同時(shí)以不同的板速發(fā)送和接收數(shù)據(jù)。不同的設(shè)備通過此協(xié)議與微控制器通信。例如電信。
USART協(xié)議數(shù)據(jù)流
USB代表通用串行總線。同樣,它是兩線協(xié)議的串行通信。數(shù)據(jù)電纜信號線標(biāo)記為D +和D-。此協(xié)議用于與系統(tǒng)外圍設(shè)備進(jìn)行通信.USB協(xié)議用于向主機(jī)和外圍設(shè)備串行發(fā)送和接收數(shù)據(jù).USB通信需要基于系統(tǒng)功能的驅(qū)動(dòng)程序軟件.USB設(shè)備可以在其上傳輸數(shù)據(jù)主機(jī)上沒有任何請求的總線?,F(xiàn)在,當(dāng)今大多數(shù)設(shè)備都在使用這種技術(shù)與USB協(xié)議進(jìn)行通信。像計(jì)算機(jī)一樣使用USB與ARM控制器通信。USB以不同的模式傳輸數(shù)據(jù)。第一個(gè)是10 kbps至100 kbps的慢速模式;第二個(gè)是全速模式500kbps至10mbps,高速模式25mbps至400Mbps。USB最大電纜長度為4米。
例如:鼠標(biāo)、鍵盤、集線器、開關(guān)、筆式驅(qū)動(dòng)器。
USB協(xié)議通訊
I2C代表內(nèi)部集成電路。I2C只需兩條線即可將所有外設(shè)連接到微控制器。I2C只需兩條線SDA(串行數(shù)據(jù)線)和SCL(串行時(shí)鐘線)即可在設(shè)備之間傳輸信息。它是從屬通信協(xié)議的主控。每個(gè)從站都有一個(gè)唯一的地址。主設(shè)備發(fā)送目標(biāo)從設(shè)備的地址和讀/寫標(biāo)志。該地址與該設(shè)備打開的任何從設(shè)備匹配,其余從設(shè)備處于禁用模式。一旦地址匹配,在主機(jī)和該從機(jī)之間進(jìn)行通信,并發(fā)送和接收數(shù)據(jù)。發(fā)送器發(fā)送8位數(shù)據(jù),接收器回復(fù)1位確認(rèn)。通訊完成后,主站發(fā)出停止條件。
I2C總線是由飛利浦半導(dǎo)體公司開發(fā)的。其最初目的是提供一種將CPU連接到外圍設(shè)備芯片的簡便方法。嵌入式系統(tǒng)中的外圍設(shè)備通常作為內(nèi)存映射設(shè)備連接到微控制器。I2C僅需要兩條線即可將所有外設(shè)連接到微控制器。這些稱為SDA和SCL的有源線都是雙向的。SDA線是串行數(shù)據(jù)線,而SCA線是串行時(shí)鐘線。
I2C協(xié)議數(shù)據(jù)流
I2C上拉電阻:
為什么在I2C SCL和SDA線路中使用上拉電阻。
SDA和SCL線均為漏極開路驅(qū)動(dòng)器。
它可以將輸出驅(qū)動(dòng)為低電平,將其驅(qū)動(dòng)為高電平。
為了使線路能夠變高,您必須提供上拉電阻
SPI代表串行外設(shè)接口。它是摩托羅拉開發(fā)的串行通信協(xié)議之一。有時(shí)SPI協(xié)議也稱為4線協(xié)議。它需要四線MOSI,MISO,SS和SCLK.SPI協(xié)議用于通信主設(shè)備和從設(shè)備。主機(jī)首先使用頻率配置時(shí)鐘。然后,主機(jī)通過拉片選按鈕選擇特定的從設(shè)備進(jìn)行通信。選擇該特定設(shè)備并開始主機(jī)與該特定從機(jī)之間的通信。主機(jī)一次僅選擇一個(gè)從機(jī)。它是一種全雙工通信協(xié)議。在位傳輸?shù)那闆r下,不限于8位字。
SPI協(xié)議數(shù)據(jù)流
CAN代表控制器局域網(wǎng)。它是一個(gè)串行通信協(xié)議。它需要兩條線CAN高(H +)和CAN低(H-)。它是由Robert bosh公司于1985年開發(fā)的,用于車載網(wǎng)絡(luò)。它基于面向消息的傳輸協(xié)議。
1970年代是汽車制造商開始引入新功能的時(shí)代,例如防抱死制動(dòng),空調(diào),齒輪控制,中央操作門鎖等。這些功能確保了額外的接線和復(fù)雜的設(shè)計(jì),從而增加了成本和風(fēng)險(xiǎn)。為了克服這些問題,Robert Bosch在1980年代引入了CAN協(xié)議。此串行通信協(xié)議在1993年進(jìn)一步標(biāo)準(zhǔn)化為ISO11898。正是CAN協(xié)議完全改變了高級傳感器之間的通信。
CAN協(xié)議常用于汽車、飛機(jī)和醫(yī)療系統(tǒng)中的電子網(wǎng)絡(luò)。常見產(chǎn)品有Can轉(zhuǎn)以太網(wǎng)設(shè)備USR-CANET200