微處理器(51、stm32等)通信方式講解(以串行通信爲主講解)

微處理器(51、stm32等)通信方式講解(以串行通信為主講解)

通信是指微處理器(例如stm32、51等芯片)與外界的信息傳輸,既包括芯片與芯片之間的數據傳輸,也包括芯片與外設。數據通信中按每次傳送的數據位數,通信方式可分為:並行通信和串行通信。

  • 串口通信:類似於我們的鄉間小道只有一條單向通行道,一次只能過一輛車。也就是發送和接收到的每一個字符實際上都是一次一位的傳送的,每一位為1或者為0。

  • 並行通信:類似於我們的高速公路有多條通行道,一次能一起並排過多輛車。數據的各個位同時傳送,可以字或字節為單位並行進行。並行通信速度快,但用的通信線多、成本高,故不宜進行遠距離通信。


兩者又都可以細分:同步通信與異步通信。(其實很好區分:只要看有無時鐘線就行,同步從字面理解就是要求兩者要在一個節奏上,那就需要有同一個時鐘來統一。以下是官方說法。)

  • 同步通信是一種連續串行傳送數據的通信方式,一次通信只傳送一幀信息。這裡的信息幀與異步通信中的字符幀不同,通常含有若干個數據字符。它們均由同步字符、數據字符和校驗字符(CRC)組成。其中同步字符位於幀開頭,用於確認數據字符的開始。數據字符在同步字符之後,個數沒有限制,由所需傳輸的數據塊長度來決定;校驗字符有1到2個,用於接收端對接收到的字符序列進行正確性的校驗。同步通信的缺點是要求發送時鐘和接收時鐘保持嚴格的同步。

  • 異步通信中,在異步通信中有兩個比較重要的指標:字符幀格式和波特率。數據通常以字符或者字節為單位組成字符幀傳送。字符幀由發送端逐幀發送,通過傳輸線被接收設備逐幀接收。發送端和接收端可以由各自的時鐘來控制數據的發送和接收,這兩個時鐘源彼此獨立,互不同步。接收端檢測到傳輸線上發送過來的低電平邏輯"0"(即字符幀起始位)時,確定發送端已開始發送數據,每當接收端收到字符幀中的停止位時,就知道一幀字符已經發送完畢。


串行通行的通信制式又可分類為:單工、半雙工、全雙工。


為方便大家理解,以下表格可清晰區分。

微處理器(51、stm32等)通信方式講解(以串行通信為主講解)

在單工制式下,數據只能從發送站向接收站傳送。如圖:

在半雙工制式下,數據能雙向傳送,但是不能同時在兩個方向上傳送。如圖:

全雙工制式下,接收數據和發送數據佔用不同的線路。全雙工通信可以同時發送和接收。如圖:

微處理器(51、stm32等)通信方式講解(以串行通信為主講解)

現常用的串行通信方式


通訊的一些基本概念

●主機與從機:在通訊系統中起主要作用、發佈主要命令的稱為主機,接受命令的稱為從機。

●連續方式:指主機不需要發佈命令,從機就能自動地向主機發送數據。

●指令方式:指主機向從機發布命令,從機根據指令執行動作,並將結果“應答”給主機的模式。

●輸出數據類型:指在連續方式通訊時,從機輸出給主機的數據類型。

●通訊協議:指主機與從機通訊時,按哪一種編碼規則來通訊。

●波特率:主從機之間通訊的速度。

●數據位:每次傳輸數據時,數據由幾位組成。

●校驗位:數據傳輸錯誤檢測,可以是奇校驗、偶校驗或無校驗。

●地址:每一臺從機的編號。

具體使用將在其後的更新中介紹,喜歡的請添加關注哦!!!


分享到:


相關文章: