首頁>Club>
市面上如arduino,樹莓派,openmv,maixduino,stm32等等,這些開發板之間是如何通訊,越詳細越好,感謝
4
回覆列表
  • 1 # Python學習專欄

    不同平臺的通訊都是基於各種協議的。

    什麼事協議呢?

    協議就是一套規則,例如:華人和華人溝通採用普通話,那麼如果一個不會英語的華人和說英語的美華人是無法溝通的,這中間的語言就是這種協議,而當這個華人學會了英語他就能和這個美華人溝通了,這就是說這個採用了英語這條協議。

    各個平臺之間的通訊,通常採用的是TCP/IP

    協議,這是用的最廣的協議,不同平臺採用的程式語言可能不同,但是他們用不同程式碼都可以寫TCP/IP通訊,

    以python語言為例:

    TCP通訊一般只需要五個步驟,

    1、初始化套位元組

    2、繫結IP

    3、確定可連線數

    4、等待連線

    5、收發資料

    硬體之間的通訊,一般有I2C,SPI,UART

  • 2 # LM凌敏

    透過iot標準來通迅的,例如,你的硬體要加入啊裡的平臺,就需要符合阿里的iot標準,啊裡的平臺才可以識別到你的硬體獲取的資料,

  • 3 # 大樹NB

    提問者可能是業餘愛好者或者做上層軟體的,我儘量用通俗的語言來解釋一下。

    兩個硬體要互相通訊就需要協議,協議這個東西說白了就是一系列的規則,硬體層面的來說規定了速度,訊號的電壓,等等之類的,比如最簡單的rs232串列埠,電壓一般是1的話大於9v,然後還有一個波特率,就是每個bit的時間是多少,對方才能用和你相同的速度採集你傳送的資訊,說了硬體層面的還有軟體層面的,比如帶不帶檢驗,是帶不帶停止位等等,只有所有的都相同,兩個硬體才能互相通訊,簡單點說協議就好比不同國家說的語言,只有用同一個語言才能交流。

    協議說完了說說這些硬體怎麼通訊,一般來說不同協議通訊方式的特點不同,有的速度慢但是抗干擾,有的速度快但是距離短……所以選擇合適的協議和方式很重要。

    嵌入式常見的方式有:uart(TTL電平,232電平和485電平),spi,iic,can匯流排,乙太網等等,這些都是低速的介面,還有高速的序列通訊

    一般來說序列的介面速度更快一些,比如SATA就是一種序列的介面,而且是一種差分的訊號。

    最後舉幾個具體的例子,比如arduino和樹莓派怎麼通訊,arduino只有uart,spi,和iic。但是spi和iic是分主從的,一般只能把arduino作為一個從裝置,樹莓派啥時候需要啥時候發起通訊讀取資訊,而uart是對等的全雙工通訊,主動給對方傳送資料,被動的接收對方資料,再具體點,把樹莓派的uart介面的txd接到arduino的rxd,反過來樹莓派的rxd和arduino的txd,最後把兩個板子的GND也連到一起,剩下的就是軟體的事了。

    在arduino的程式裡呼叫uart傳送的函式,把需要的字元作為引數傳給這個函式,當執行到這個函式的時候就會有一個訊號序列到樹莓派上,當然樹莓派也要走程式,或者把對應的串列埠輸出定向到控制檯,這個時候你就可以看見傳送過來的資料了!

    太多了說不過來

  • 中秋節和大豐收的關聯?
  • 家用消毒如何選購蒸汽清潔機?