0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

四大通信接口輕松掌握

Q4MP_gh_c472c21 ? 來源:嵌入式ARM ? 作者:嵌入式ARM ? 2020-11-18 16:10 ? 次閱讀

1、 裘千丈輕功水上漂之UART 射雕英雄傳中的裘千丈說,UART就是我的輕功水上漂過河。想從河上過(通信),提前布暗樁,行走時步伐按樁距固定(波特率提前確定),步幅太大或太小都會落水。為了不被二弟裘千仞識破,可以安排侍衛(wèi)在對岸監(jiān)視通知,沒風(fēng)險才開始表演(流控)。為了保證踩點(diǎn)準(zhǔn)確,隔一段距離定個特殊標(biāo)記的粗木樁。

UART 通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通信雙方接三根線,RX、TX和GND,TX用于發(fā)送數(shù)據(jù),RX用于接受數(shù)據(jù),雙方收發(fā)交叉對接,支持全雙工方式。

因為沒有時鐘控制,什么時機(jī)開始發(fā)數(shù)據(jù),且保證對方正確接收?

如A發(fā)數(shù)據(jù)到B,平時空閑時A.TX 和 B.RX.保持1,當(dāng)A.TX先發(fā)0作為起始位,告訴B請注意,我要發(fā)數(shù)據(jù)了。然后就開始發(fā)數(shù)據(jù),數(shù)據(jù)位可配置,通常是5位,6位,7位,8位,一幀數(shù)據(jù)發(fā)完后,A.TX給個高電平告訴B.RX我發(fā)完了一幀。如果開啟校驗位,在發(fā)停止位之前發(fā)送個校驗位,一般都不需要校驗位了,短距離有線傳輸出錯的概率非常小。如果還有數(shù)據(jù),則重復(fù)前面的操作。

一般軟件配置串口,有波特率,數(shù)據(jù)位、停止位、校驗位、流控。分別表示傳輸速度,一幀數(shù)據(jù)的長度,以及發(fā)完告知停止,發(fā)完是否校驗,是否進(jìn)行發(fā)送控制??雌饋?a target="_blank">參數(shù)很多,針對個人經(jīng)驗,一般都是固定8位數(shù)據(jù)位,1位停止位、無校驗、無流控,只是配置波特率。 UART沒有時鐘控制數(shù)據(jù)捕獲時機(jī),依靠通信前就定義波特率,雙方按定義的頻率讀寫數(shù)據(jù)位,正如裘千丈的水上漂,一旦暗樁安裝固定,就得按固定的步長行走,否則就會出錯落水。 UART在水上漂項目可以,但是傳輸效率有限,一般高到921600,如果再高可能出現(xiàn)誤碼,繼續(xù)加高,就是高空飛行,最后裘千丈就是期望在高空也行走自如,想攀上黃蓉乘坐的大雕逃命,不慎墜落,死于飛行事故。

2、叫你一聲你敢答應(yīng)嗎之I2C

作為太上老君看銀爐的童子,銀角大王最懂I2C,萬千人中我叫你一聲,你答應(yīng)了就倒霉(從機(jī)地址正確才能通信)。

IIC(Inter Integrated Circuit)兩根線,一條時鐘線SCL和一條數(shù)據(jù)線SDA,所以是半雙工通信,主從模式,支持一對多,一個銀角大王可以對付一群猴子,每個猴子名字不同(從設(shè)備的I2C地址不同),點(diǎn)名叫到誰,誰就被紫金葫蘆帶走。

假設(shè)主機(jī)A給從機(jī)B發(fā)數(shù)據(jù)(A.SCL接B.SCL,A.SDA接B.SDA),根據(jù)應(yīng)用,A可以同時接B,C,D。空閑時SDA和SCL上的電平都為高電平。 起始和停止起始條件S:當(dāng)SCL高電平時,SDA由高電平向低電平轉(zhuǎn)換;停止條件P:當(dāng)SCL高電平時,SDA由低電平向高電平轉(zhuǎn)換。起始和停止條件一般由主機(jī)產(chǎn)生,總線在起始條件后處于busy的狀態(tài),在停止條件的某段時間后,總線才再次處于空閑狀態(tài)。

空閑時SDA和SCL上的電平都為高電平。A先把SDA拉低,等SDA變?yōu)榈碗娖胶笤侔裇CL拉低(以上兩個動作構(gòu)成了I2C的起始位),此時SDA就可以發(fā)送數(shù)據(jù)了,與此同時,SCL發(fā)送一定周期的脈沖,SDA發(fā)送數(shù)據(jù)和SCL發(fā)送脈沖的要符合的關(guān)系是:SDA必須在SCL是高電平時保持有效,在SCL是低電平時發(fā)送下一位(SCL會在上升沿對SDA進(jìn)行采樣)。

傳輸與響應(yīng)一次傳8位數(shù)據(jù),8位數(shù)據(jù)傳輸結(jié)束后A釋放SDA,SCL再發(fā)一個脈沖(這是第九個脈沖),觸發(fā)B將SDA置為低電平表示確認(rèn)(該低電平稱為ACK)。最后SCL先變?yōu)楦唠娖?,SDA再變?yōu)楦唠娖剑ㄒ陨蟽蓚€動作稱為結(jié)束標(biāo)志),如果B沒有將SDA置為0 ,則A停止發(fā)送下一幀數(shù)據(jù).。 整體時序I2C總線上的每個設(shè)備都有唯一地址,數(shù)據(jù)包傳輸時先發(fā)送地址位,接著才是數(shù)據(jù)。一個地址字節(jié)由7個地址位(可以掛128個設(shè)備)和1個指示位組成(7位尋址模式),0表示寫,1表示讀。一般芯片手冊I2C地址都是7位地址,有些與某個引腳的電平相關(guān),主機(jī)控制最后讀寫位。 實際項目一般都是采用I2C庫,有的庫要求傳入的是8位的寫的地址,有的是7位,由接口函數(shù)再區(qū)分讀寫補(bǔ)位。當(dāng)然,最愚蠢的辦法是從0到255定時循環(huán)讀某個寄存器地址,讀到正確值時的地址就是正確的從機(jī)地址。

一般情況下使用I2C庫,除了配置從機(jī)地址,其他的起始、結(jié)束等時序等其實不太關(guān)注,只需要配置時鐘頻率,一般看從機(jī)最大支持多少,以及主機(jī)的系統(tǒng)時鐘,太高會偶爾出現(xiàn)錯誤,再沒有時間要求的情況下,時鐘越低越穩(wěn)定。

3、慕容復(fù)斗轉(zhuǎn)星移之SPI

天龍八部的慕容復(fù):雖然我不如喬峰可以使出降龍十八掌,但是他對我出手,我也以彼之道還施彼身,對方輸出時也會被反噬,互相傷害,他停止時鐘我也無可奈何。正如SPI,主機(jī)開啟了時鐘發(fā)數(shù)據(jù),從機(jī)也在同時輸出,時鐘停,大家都收手。

SPI 串行外設(shè)接口(Serial Peripheral Interface)主從模式,一種高速的,全雙工同步的通信總線。標(biāo)準(zhǔn)SPI是4條線。SDI(數(shù)據(jù)輸入)、SDO(數(shù)據(jù)輸出)、SCLK(時鐘)、CS(片選,有些也稱為SS)。

SDO/MOSI – 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入 ,master output slave input;SDI/MISO – 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出,master input slave output;SCLK – 時鐘信號,由主設(shè)備產(chǎn)生;CS/SS – 從設(shè)備使能信號,由主設(shè)備控制。當(dāng)有多個從設(shè)備的時候,主設(shè)備通過片選引腳選擇其中一個從設(shè)備進(jìn)行通信。(I2C是通過軟件協(xié)議實現(xiàn)多選一,SPI是通過硬件實現(xiàn))。

當(dāng)主機(jī)控制CS,開啟時鐘閘門,主從雙方就可以開始放數(shù)據(jù)位或者取數(shù)據(jù)位進(jìn)行交互了,但是在什么時機(jī)開始,就有標(biāo)準(zhǔn)了。根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進(jìn)行配置。 CPOL:時鐘極性選擇,為0時SPI總線空閑為低電平,為1時SPI總線空閑為高電平 CPHA:時鐘相位選擇,為0時在SCK第一個跳變沿采樣,為1時在SCK第二個跳變沿采樣 mode CPOL CPHA

0 0 0
1 0 1
2 1 0
3 1 1

這樣就有四種模式。以模式1為例,空閑時為低,第一次時鐘跳變采樣,也就是上升沿讀數(shù)采樣,對著下降沿放數(shù)據(jù)。如果實在分不清,還有愚蠢的辦法,四種模式全部嘗試一次,就可知道正確模式。 SPI傳輸數(shù)據(jù)沒有位數(shù)限制,只要定義收發(fā)高位在前還是低位在前,可以持續(xù)高速傳輸。 正如前面,若是喬峰收手,慕容復(fù)就沒法使出降龍十八掌的效果,但是他可以當(dāng)面罵喬峰是契丹狗,喬峰一怒之下就發(fā)功,慕容復(fù)就奸計得逞。這契丹狗三字翻譯為軟件術(shù)語就是觸發(fā)中斷,從機(jī)發(fā)中斷告知主機(jī)我有事來找我;主機(jī)定時查詢也可實現(xiàn),只是使用情況更少。

4、裘千尺的吐棗核絕技與1-wire

裘千丈的三妹裘千尺被囚地下,她以口噴射棗核釘打在棗樹,樹的搖晃就會掉下棗子充饑。這棗核釘是單向操作,用力過猛,棗核透過棗樹,用力太輕或者射偏了,棗樹沒有反應(yīng),這樣棗核用完了就悲劇了。可見這絕技,看起來簡便,實則背后隱藏了精確控制,對時機(jī)、位置控制要完美,如1-wire通信,單線控制,時鐘精準(zhǔn)。

1-wire總線接口簡單,一根線就可以,一般內(nèi)部開漏輸出,外部硬件上拉。

1-wire使用一條線來傳送的四種信令組成,包括復(fù)位脈沖和在線應(yīng)答脈沖的復(fù)位序列、寫 0 時隙、寫 1 時隙、讀時隙。除在線應(yīng)答脈沖以外,所有其它信號都由總線主機(jī)發(fā)出,并且發(fā)送的所有數(shù)據(jù)和命令都是字節(jié)的低位在前。主機(jī)與從機(jī)的數(shù)據(jù)通信是通過時隙完成的,在每個時隙只能傳送一位數(shù)據(jù)。通過寫時隙可把數(shù)據(jù)從主機(jī)傳送給從機(jī),通過讀時隙可把數(shù)據(jù)由從器件傳送給主機(jī),將完成一位傳輸?shù)臅r間稱為一個時隙。

一般操作流程參考外設(shè)芯片手冊,主要是不同平臺的延時處理,需要軟件實現(xiàn)1us延時的接口,否則數(shù)據(jù)通信異常。

5、秘籍功法

四種接口,每個都有合適的應(yīng)用場景,對硬件端口的占用、對軟件的控制要求、通信效率也不相同。尤其前3種屬于常用協(xié)議,一般都支持硬件接口,廠家也一般提供hal庫,對軟件開發(fā)人員的要求逐漸降低。這也導(dǎo)致代碼應(yīng)用很溜,實際底層原理略微欠缺,一旦通信異?;蛘哂刑厥庑枨缶蜔o從下手。如使用GPIO模擬出UART,使用SPI實現(xiàn)AT功能。 武林人士一般都追求失傳的武林秘籍,正如軟件開發(fā)人員,有問題總是寄希望與其他人的經(jīng)驗總結(jié),或者廠家的技術(shù)支持或源碼,而不是創(chuàng)造新的功法。笑傲江湖的岳不群本是華山派掌門,精通紫霞神功,武功屬于一流,但是沒繼續(xù)專研自家內(nèi)功,為了辟邪劍譜自宮了,軟件開發(fā)人員想重蹈覆轍么? 不論劍宗、氣宗,先把功能跑通再反推代碼原理和實現(xiàn)流程,還是先理清時序和原理再編碼實現(xiàn)功能,短期內(nèi)劍宗效率高,加工資快;氣宗則可能被淘汰,尤其在勢利的小公司,不注重新人培養(yǎng)。如果合二為一,項目緊急則拿來就用,空閑時專研總結(jié),取長補(bǔ)短,則是完美開發(fā)人員的素質(zhì)。 軟件開發(fā)沒有秘笈功法,全靠個人學(xué)習(xí)總結(jié)。

責(zé)任編輯:xj

原文標(biāo)題:神了!UART/I2C/SPI/1-wire四大通信接口這么比喻秒懂!

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1716

    瀏覽量

    91833
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1494

    瀏覽量

    124091
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1242

    瀏覽量

    101535
  • 1-Wire
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    21322

原文標(biāo)題:神了!UART/I2C/SPI/1-wire四大通信接口這么比喻秒懂!

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    賽逸展2025響應(yīng)四大行業(yè)協(xié)會倡議,審慎采購美國芯片!

    ,中國互聯(lián)網(wǎng)協(xié)會、中國汽車工業(yè)協(xié)會、中國半導(dǎo)體行業(yè)協(xié)會、中國通信企業(yè)協(xié)會發(fā)表聲明,呼吁國內(nèi)企業(yè)審慎選擇采購美國芯片。賽逸展堅定不移地與中國四大行業(yè)協(xié)會站在一起,迅速加入四大協(xié)會陣營,全力支持
    的頭像 發(fā)表于 12-05 09:56 ?157次閱讀

    UVLED固化機(jī)結(jié)構(gòu)的四大模塊

    UVLED固化機(jī)作為一種高效、節(jié)能的固化設(shè)備,在多個行業(yè)中發(fā)揮著重要作用。其結(jié)構(gòu)設(shè)計的合理性直接決定了設(shè)備的性能和使用效果。UVLED固化機(jī)的四大模塊主要包括光源系統(tǒng)、控制系統(tǒng)、散熱系統(tǒng)和傳送系統(tǒng)
    的頭像 發(fā)表于 11-25 16:10 ?265次閱讀
    UVLED固化機(jī)結(jié)構(gòu)的<b class='flag-5'>四大</b>模塊

    高性能USB轉(zhuǎn)串口適配器,助力你的嵌入式程序開發(fā)!讓USB和串行接口輕松實現(xiàn)雙向通信!

    多功能數(shù)字接口轉(zhuǎn)發(fā)器,讓USB和串行接口輕松實現(xiàn)雙向通信! 高性能USB轉(zhuǎn)串口適配器,助力你的嵌入式程序開發(fā)! USB轉(zhuǎn)串口適配器可編程開發(fā)板TYPE接口是一種多功能的數(shù)字
    的頭像 發(fā)表于 08-06 09:54 ?258次閱讀

    探秘四大主流芯片架構(gòu):誰將主宰未來科技?

    在科技日新月異的今天,芯片作為現(xiàn)代電子設(shè)備的心臟,其架構(gòu)的選擇與設(shè)計顯得尤為重要。目前市場上主流的芯片架構(gòu)有種:X86、ARM、RISC-V和MIPS。它們各具特色,廣泛應(yīng)用于各種電子設(shè)備中。本文將詳細(xì)剖析這四大主流芯片架構(gòu)的特點(diǎn)、優(yōu)勢及應(yīng)用領(lǐng)域。
    的頭像 發(fā)表于 07-31 11:15 ?2914次閱讀
    探秘<b class='flag-5'>四大</b>主流芯片架構(gòu):誰將主宰未來科技?

    三個步驟 凌華智能GPIB接口輕松鏈接

    標(biāo)準(zhǔn)是連接儀器與計算機(jī)的總線接口,可創(chuàng)造一個 Automated Test Equipment (ATE) 系統(tǒng)。凌華智能擁有 PCI、PCIe 和 USB 接口的 GPIB 模塊,完整豐富的軟件
    的頭像 發(fā)表于 07-23 16:06 ?1427次閱讀
    三個步驟 凌華智能GPIB<b class='flag-5'>接口輕松</b>鏈接

    ESP32的BLE最大通信距離有多遠(yuǎn)?

    ESP32-S3官方模塊的藍(lán)牙在PCB板載天線,外置天線的不同情況下,125K,500K,1M,2M的不同速率下,通信距離最大可達(dá)多遠(yuǎn)? ESP32的BLE最大通信距離有多遠(yuǎn)?
    發(fā)表于 07-01 07:22

    8芯M16接口四大優(yōu)點(diǎn)

      德索工程師說道8芯M16接口作為一種高性能的電氣連接器,憑借其獨(dú)特的設(shè)計和優(yōu)越的性能,在多個領(lǐng)域得到了廣泛的應(yīng)用。以下是關(guān)于8芯M16接口四大優(yōu)點(diǎn),進(jìn)行詳細(xì)的分析和闡述。
    的頭像 發(fā)表于 05-23 17:43 ?451次閱讀
    8芯M16<b class='flag-5'>接口</b><b class='flag-5'>四大</b>優(yōu)點(diǎn)

    電工必備接線指南:輕松掌握各種電路接線技巧

    電工必備接線指南:輕松掌握各種電路接線技巧
    的頭像 發(fā)表于 04-28 11:00 ?3367次閱讀
    電工必備接線指南:<b class='flag-5'>輕松</b><b class='flag-5'>掌握</b>各種電路接線技巧

    維圖新受邀出席上汽大通供應(yīng)商大會

    近日,上汽大通在南京隆重召開2024年MAXUS供應(yīng)商大會,維圖新作為重要的合作伙伴受邀出席。在大會上,維圖新副總裁、智能駕駛業(yè)務(wù)中心總經(jīng)理李丹發(fā)表了精彩演講,深入探討了智能駕駛系統(tǒng)的發(fā)展路線。
    的頭像 發(fā)表于 03-28 11:28 ?659次閱讀

    維圖新受邀出席2024年上汽大通MAXUS供應(yīng)商大會

    近日,2024年上汽大通MAXUS供應(yīng)商大會在南京召開,維圖新作為合作伙伴受邀參會。維圖新副總裁、智能駕駛業(yè)務(wù)中心總經(jīng)理李丹出席并發(fā)表演講,圍繞智能駕駛系統(tǒng)發(fā)展路線進(jìn)行了深度分享。
    的頭像 發(fā)表于 03-27 18:23 ?995次閱讀

    中興通訊車載4G通信模組在上汽大通新途V80實現(xiàn)量產(chǎn)發(fā)布

    近日,上汽大通與中興通訊在深圳共同舉辦了一場盛大的發(fā)布會,聯(lián)合宣布中興通訊車載4G通信模組在上汽大通熱銷車型“高價值寬體輕客”新途V80上實現(xiàn)量產(chǎn)上車。此次合作不僅標(biāo)志著雙方技術(shù)合作的進(jìn)一步深化,也預(yù)示著車載
    的頭像 發(fā)表于 03-14 11:43 ?900次閱讀

    上汽大通與中興通訊宣布車載4G通信模組在新途V80實現(xiàn)量產(chǎn)上車

    近日,上汽大通與中興通訊在深圳舉辦發(fā)布會,聯(lián)合宣布中興通訊車載4G通信模組在上汽大通暢銷車型“高價值寬體輕客”新途V80實現(xiàn)量產(chǎn)上車。
    的頭像 發(fā)表于 03-11 11:44 ?996次閱讀

    MES實施的四大疑惑

    電子發(fā)燒友網(wǎng)站提供《MES實施的四大疑惑.docx》資料免費(fèi)下載
    發(fā)表于 03-01 15:35 ?0次下載

    2024年鋰電四大材料走勢“劃重點(diǎn)”

    GGII2023年中國鋰電四大關(guān)鍵材料出貨量數(shù)據(jù)及2024年市場走勢。
    的頭像 發(fā)表于 02-21 09:19 ?2461次閱讀
    2024年鋰電<b class='flag-5'>四大</b>材料走勢“劃重點(diǎn)”

    全球有哪四大衛(wèi)星定位系統(tǒng)?

    隨著全球一體化的發(fā)展,衛(wèi)星導(dǎo)航系統(tǒng)在航空、汽車導(dǎo)航、通信、測繪、娛樂等各個領(lǐng)域均有應(yīng)用。 目前,全球四大衛(wèi)星導(dǎo)航系統(tǒng)指的是美國的GPS系統(tǒng)、俄羅斯的GLONASS系統(tǒng)、中國的北斗系統(tǒng)和歐洲
    的頭像 發(fā)表于 01-17 09:25 ?3893次閱讀
    全球有哪<b class='flag-5'>四大</b>衛(wèi)星定位系統(tǒng)?