在深入研究串行通信協(xié)議的技術(shù)之前,讓我們先討論一下通信。我們已經(jīng)知道,交流涉及兩個(gè)或更多個(gè)人之間的信息交換。交流可以通過(guò)書(shū)面文件,口語(yǔ),錄音帶,視頻課程等多種方式進(jìn)行。但是,“通信”在嵌入式系統(tǒng)中是什么意思?答案很簡(jiǎn)單!它只是兩個(gè)微控制器(嵌入式設(shè)備)之間以位形式進(jìn)行的數(shù)據(jù)交換。嵌入式系統(tǒng)中數(shù)據(jù)(位)的交換受一組稱(chēng)為通信協(xié)議的規(guī)則支配。
在數(shù)字通信中,有兩種類(lèi)型的數(shù)據(jù)傳輸:
● 串行通訊
● 并行通訊
為簡(jiǎn)單起見(jiàn),我們將重點(diǎn)放在串行通信協(xié)議的基礎(chǔ)上。
在串行通信中,數(shù)據(jù)位在數(shù)據(jù)總線或通信通道上一次依次傳輸。為了正確理解這一點(diǎn),讓我們考慮這種情況:
想象一下,您正在用弓箭射擊目標(biāo)。箭如何從弓上飛出?一次一個(gè),對(duì)吧?串行通訊就是這種情況。數(shù)據(jù)位一次從一個(gè)嵌入式設(shè)備傳輸?shù)搅硪慌_(tái)嵌入式設(shè)備。
現(xiàn)在,我們已經(jīng)介紹了嵌入式系統(tǒng)中串行通信的基礎(chǔ)知識(shí),讓我們繼續(xù)討論各種類(lèi)型的串行通信協(xié)議。
CAN或控制器區(qū)域網(wǎng)絡(luò)協(xié)議是由羅伯特博世中在20世紀(jì)80年代構(gòu)思。早在70年代后期,制造商就開(kāi)始在汽車(chē)中使用先進(jìn)的功能,例如防抱死制動(dòng)系統(tǒng)、空調(diào)、中央門(mén)鎖、安全氣囊、齒輪控制、發(fā)動(dòng)機(jī)管理系統(tǒng)等。
即使駕駛員(消費(fèi)者)喜歡這些新功能,它們也有一些缺點(diǎn)。這些進(jìn)步要求增加笨重的電線,昂貴的機(jī)械零件和復(fù)雜的設(shè)計(jì),這導(dǎo)致車(chē)載電氣和機(jī)械系統(tǒng)的成本和復(fù)雜性增加。幸運(yùn)的是,Robert Bosch通過(guò)引入CAN協(xié)議使工程師的工作變得更輕松。CAN協(xié)議改變了電子子系統(tǒng)的管理以及智能傳感器之間的通信-一種更簡(jiǎn)單,更便宜的方法,只需一根電纜即可完成所有這些工作。
CAN協(xié)議的廣泛普及導(dǎo)致其在1993年被標(biāo)準(zhǔn)化為ISO11898。如今,CAN協(xié)議的應(yīng)用涵蓋了從工業(yè)自動(dòng)化到商業(yè)飯店油炸鍋的嵌入式系統(tǒng)范圍。
這些CAN應(yīng)用程序的開(kāi)發(fā)范圍從相當(dāng)簡(jiǎn)單到極其復(fù)雜。依賴(lài)此協(xié)議的設(shè)備非常重要。如果未正確設(shè)計(jì),開(kāi)發(fā)和測(cè)試,可能會(huì)導(dǎo)致嚴(yán)重?fù)p壞。確保對(duì)開(kāi)發(fā)進(jìn)行良好的監(jiān)視和測(cè)試非常重要。協(xié)議分析器是一種適用于CAN應(yīng)用的簡(jiǎn)單而重要的開(kāi)發(fā)和測(cè)試工具。
CAN協(xié)議的用途:
● CAN協(xié)議通常用于電子組件的車(chē)載網(wǎng)絡(luò)。
● 它也用于航空航天應(yīng)用中的飛行分析和燃料網(wǎng)絡(luò),泵等組件的聯(lián)網(wǎng)。
● 醫(yī)療設(shè)備的制造商經(jīng)常使用CAN在醫(yī)療設(shè)備內(nèi)創(chuàng)建嵌入式網(wǎng)絡(luò)。
I2C也被稱(chēng)為IIC(發(fā)音為IIC)和I2C(發(fā)音為I-squared-C)。盡管這項(xiàng)技術(shù)已經(jīng)使用了三十多年,但今天I2C協(xié)議仍被廣泛使用。實(shí)際上,它支持大量的嵌入式系統(tǒng)。
I2C協(xié)議允許嵌入式工程師將多個(gè)從設(shè)備與一個(gè)或多個(gè)主設(shè)備連接。與SPI協(xié)議類(lèi)似,它主要用于同一打印機(jī)電路板(PCB)上兩個(gè)IC(集成電路)內(nèi)的短距離通信。
它僅需要兩條雙向?qū)Ь€即可發(fā)送和接收數(shù)據(jù)位。在數(shù)據(jù)速率方面,I2C協(xié)議支持高達(dá)3.4 Mbps的速度-相當(dāng)快。
以下是使用I2C協(xié)議的一些重要優(yōu)點(diǎn):
● 使用多個(gè)主設(shè)備來(lái)加快通信速度并改善設(shè)計(jì)功能的靈活性
● 芯片尋址消除了CS(芯片選擇)線的需要
● 通過(guò)ACK / NACK功能支持強(qiáng)大的錯(cuò)誤處理機(jī)制。
但是,有一些限制。例如,由于它使用上拉電阻,因此會(huì)占用PCB上更多的空間。
I2C協(xié)議的用途:
● 更改監(jiān)視器上的各種顏色設(shè)置,例如色相。
● 控制手機(jī)中的LED / LCD顯示
幫助打開(kāi)/關(guān)閉內(nèi)部組件的電源
串行外圍接口,通常稱(chēng)為SPI或“間諜”,是嵌入式系統(tǒng)中使用最廣泛的接口規(guī)范之一。自從1980年代末Motorola引入SPI協(xié)議以來(lái),SPI協(xié)議已廣泛用于嵌入式系統(tǒng)中的短距離通信。
通過(guò)SPI協(xié)議,設(shè)備使用主從架構(gòu)相互通信。盡管SPI可以支持多個(gè)從設(shè)備,但主設(shè)備的數(shù)量限制為一個(gè)。SPI被稱(chēng)為四線串行總線,因?yàn)樗膫€(gè)信號(hào):
● 主輸出從輸入(MOSI)
● 主進(jìn)從出(MISO)
● 串行時(shí)鐘(SCK)
● 從站選擇(SS)
在全雙工模式下,可以實(shí)現(xiàn)超過(guò)1Mbps的數(shù)據(jù)速率-這是SPI總線的主要優(yōu)點(diǎn)之一。與I2C相比,SPI還支持使用簡(jiǎn)單的硬件接口并提供更高的吞吐量。
但是,SPI協(xié)議也有一些缺點(diǎn)-缺少錯(cuò)誤檢查機(jī)制和從屬確認(rèn)功能是其中的主要缺點(diǎn)。
SPI協(xié)議的用途:
● 申請(qǐng)與溫度,壓力傳感器和視頻游戲控制器的通信
● 與LCD和SD卡接口
● 與閃存和EEPROM存儲(chǔ)器通信
● 從實(shí)時(shí)時(shí)鐘讀取數(shù)據(jù)。
迄今為止,USB(通用串行總線協(xié)議)是目前使用最普遍的協(xié)議,這并不是什么秘密。您可能會(huì)在家中發(fā)現(xiàn)一打USB電纜和連接器。它最初于1990年代開(kāi)發(fā),旨在標(biāo)準(zhǔn)化許多外圍設(shè)備與計(jì)算機(jī)的連接。今天,您可以通過(guò)USB電纜將幾乎所有東西(從外部硬盤(pán)驅(qū)動(dòng)器到打印機(jī))連接到筆記本電腦/計(jì)算機(jī)。
USB協(xié)議設(shè)計(jì)用于兩個(gè)特定目的:
● 與外圍設(shè)備通訊
● 為連接的設(shè)備供電(如果適用)
USB連接器有很多變體-您可以在鍵盤(pán),鼠標(biāo)和打印機(jī)上找到的標(biāo)準(zhǔn)USB。微型USB和USB Type-C主要用于手機(jī)-但是,它們?cè)谄渌O(shè)備中的普及度也在增長(zhǎng)。
當(dāng)設(shè)備通過(guò)USB協(xié)議與另一設(shè)備通信時(shí),數(shù)據(jù)以數(shù)據(jù)包的形式傳輸。所有數(shù)據(jù)包均由8位字節(jié)(或8位字節(jié)的倍數(shù),取決于支持的比特率)組成,其中LSB或最低有效位先發(fā)送。如果要構(gòu)建涉及USB的嵌入式系統(tǒng),請(qǐng)確保使用USB協(xié)議分析器監(jiān)視總線上的數(shù)據(jù)。
USB協(xié)議的用途:
● 將外圍設(shè)備(例如鍵盤(pán),鼠標(biāo),打印機(jī)等)連接到計(jì)算機(jī)
● 給外圍設(shè)備供電
● 直接從電源插座或計(jì)算機(jī)為移動(dòng)電源等附件以及手機(jī)和藍(lán)牙揚(yáng)聲器等設(shè)備充電
eSPI由英特爾公司開(kāi)發(fā),是低引腳數(shù)(LPC)總線的后繼產(chǎn)品。eSPI代表增強(qiáng)型串行外圍設(shè)備總線接口-與LPC相比,它的主要功能是減少引腳數(shù)。
eSPI協(xié)議的用途:
● 減少主板上所需的引腳數(shù)
● 用于需要實(shí)時(shí)閃存共享的應(yīng)用中