硬件(三) 通信方式、串口通信

一、通信類型

(一)并行通信

多個比特通過并行線同時傳輸,傳輸速率快,但會大量占用芯片資源,在對資源敏感的場景下不太適用。

(二)串行通信

把數據拆成單個比特,按順序在一根總線上發送。它系統資源占用少、結構簡單,是主機間通信常用方式。像 RS232、RS485、RS422 都屬于串行通信,串口通信(Serial Port)也是串行通信的一種,且屬于異步通信。

(三)單工模式

通信時一方固定發,另一方固定收,用一根總線傳數據,只能單向傳信息,就像只能聽別人說,沒法回應。

(四)半雙工通信

數據能在兩個方向交替傳,但不能同時進行。通信雙方能發也能收,不過不能同時干這兩件事,好比和人交替說話、傾聽,你說時對方聽,對方說時你聽,常用于對話類場景。

(五)全雙工通信

數據可同時在兩個方向傳輸,雙方能同時發和收數據,實現雙向通信,類似打電話,能同時說和聽。

(六)串行的異步與同步通信

1. 異步通信

兩個字符(8 位)之間時間間隔不固定,但一個字符內各位時間間隔固定。收發雙方波特率得事先約定好。串口通信時,波特率若沒約定好,數據傳輸會亂。發送和接收方各自 “計時”,只要誤差不超 6% 左右就行,這就像打字,敲每個字母的時間自己控制,只要接收端能正確識別。

2. 同步通信

要求收發雙方同頻同相。設備間除數據線(SDA),還有時鐘線(SCL),發送方控制時鐘線變化,每發一個比特,時鐘線都按規則改變,就像合唱團靠指揮員控制節奏,大家按節奏唱歌,IIC、SPI 都用這種方式。同步和異步串行通信的區別是有無時鐘線,有就是同步,沒有就是異步。

注:同步串行通信方式與異步串行通信方式的區別:存在時鐘線的為同步串行

通信方式通信,沒有時鐘線的為異步串行通信方式。

二、串行口通信(全雙工、異步)

(一)UART 協議

UART(通用異步收發器)是常用串行通信協議,用于設備間數據傳輸,通過 TXD(發送線)和 RXD(接收線)實現異步傳輸,TXD 發數據到另一設備,RXD 從另一設備收數據到本設備。

(二)串口通信時序

以 TTL 為例,不同主機間數據格式如下:

  • 空閑時:數據線為高電平。
  • 起始位:發送方發一個低電平作為起始位。
  • 數據位:按低位先行(第一個比特是最右邊的最低位)發送。
  • 校驗位:有奇校驗、偶校驗和無校驗三種,可選擇發或不發。奇校驗要讓數據位加校驗位中 “1” 的總數為奇數;偶校驗則讓總數為偶數。
  • 停止位:校驗位后發一個停止位(高電平),把兩個數據分隔開,停止位也可以是 1.5 個或 2 個。
    簡單說通信邏輯就是:空閑時數據線高電平,發數據先送低電平起始位,然后按低位先行發 8 個數據位,接著可選校驗位,最后發高電平停止位。

(三)波特率

用波特率(bps)描述串口數據傳輸速率,指每秒傳輸的比特數。常見波特率有 1200、2400、4800、9600、115200 等。比如 9600bps,就是每秒傳 9600 個比特,每個比特傳輸時間約 1.041×10??秒。

三、三種串行通信的物理表現

主機間通信,導線內阻會導致電壓衰減,TTL 電平還會因主機距離出現高電平衰減和串擾。

(一)TTL

芯片引腳產生的電壓,和芯片有關,51 單片機下是 5V,2440 下是 3.3V 等。5V TTL 通信距離一般在 10 - 20 米,傳輸距離受限。邏輯 0 是 0V 低電壓,邏輯 1 由芯片供電電壓決定。

(二)RS232

為解決 TTL 傳輸距離短的問題,IEEE 頒布 RS232 標準。邏輯高電平(邏輯 1)在 - 3V 到 - 15V 之間,邏輯低電平(邏輯 0)在 + 3V 到 + 15V 之間。收發主機有收、發、地三根線,是全雙工的,理論能傳 20 - 30 米。

(三)RS485

用 A、B 兩根信號線,通過比較兩者電壓差識別信息,+7V 到 + 12V 是邏輯 1,-7V 到 - 12V 是邏輯 0。差分傳輸抗干擾強,傳輸距離可達 1200 米,適用于大范圍傳輸。因為傳輸時兩根線都得用,所以是半雙工的。

四、串行口寄存器

包括 SBUF(串行口數據緩沖寄存器)、SCON(串行口控制寄存器)、PCON(電源控制寄存器)等,這些寄存器用于配置和控制串行通信的相關參數與狀態。

五、USB 下載電路模塊相關

(一)xdata 的作用

不把內容存在芯片內部 RAM,而是存在擴展的 RAM 里,能擴展存儲容量。

(二)定時器初值計算

公式為2^8?2^smod×focs/32/bps/12。其中 smod 是 PCON 的 B7 位(0 或 1,SMOD=1 時波特率翻倍),focs 是晶振頻率(如 11.0592M),bps 是目標波特率(如 2400),2^8因用 8 位自動重裝定時器工作方式。若 2400bps 且 smod=1,計算得初值 232。

六、MODBUS 通信協議

協議通過定義數組元素內容來規定通信幀結構。如圖中主機與從機通信,幀包含起始字節、地址碼、功能碼、數據、校驗碼、結束碼等。功能碼區分功能(如點燈、數碼管、蜂鳴器、測溫等),從機到主機時功能碼最高位會進行或 1 操作。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921336.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921336.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921336.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vsan default storage policy 具體是什么策略?

vSAN Default Storage Policy(vSAN 默認存儲策略)是 VMware vSAN 部署后自動創建的基礎存儲策略,其核心目標是在“通用性”和“可靠性”之間取得平衡,為大多數虛擬機提供默認的數據保護和存儲服務,無需管理員手動創建策…

雨后陽光為何更強烈?

1. 降雨后的輻射是否會增強一般來說,降雨時天空多云,云層對太陽輻射有強烈削弱作用,所以降雨時的短波輻射顯著下降。但雨后,空氣濕度大、顆粒物被沖刷、天空轉晴時,大氣透明度會提高,短波輻射相較于降雨前往…

美團發布 | LongCat-Flash最全解讀,硬剛GPT-4.1、Kimi!

一、導讀 本報告解析了美團LongCat團隊推出的LongCat-Flash模型,一個擁有5600億參數的混合專家模型(Mixture-of-Experts, MoE)。面對大規模語言模型在計算資源和效率上的挑戰,LongCat-Flash旨在實現計算效率與高級智能體&#xf…

Ubuntu 18.04 上升級 gcc 到 9.4

18.04 默認的源中可能沒有 GCC-9.3 或更新版本,在終端運行以下命令來添加 PPA: sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update2.安裝 GCC 和 G sudo apt install gcc-9 g-93.更新替代版本 如果系統中安裝了多個 GCC 版本&#x…

.NET GcPDF V8.2 新版本:人工智能 PDF 處理

一、GcPDF 產品簡介 GcPDF(GrapeCity Documents for PDF)是葡萄城(GrapeCity)推出的一款功能強大的 .NET PDF 開發組件,旨在為開發人員提供高效、靈活的 PDF 文檔處理解決方案。無論是創建全新 PDF 文檔、編輯現有 PD…

解鎖桐果云零代碼數據平臺能力矩陣——賦能零售行業數字化轉型新動能

在零售行業從“規模擴張”轉向“精細運營”的當下,數據已成為優化庫存、精準營銷、防控風險的核心抓手。但多數零售企業仍面臨“數據雜亂難治理、分析建模門檻高、場景適配性不足”等難題,導致大量訂單、商品、交易數據沉睡,難以轉化為經營決…

rabbitmq 入門知識點

RabbitMQ 是一個 消息隊列中間件(Message Broker),實現了 AMQP 協議,常用于服務之間解耦、異步處理、流量削峰等場景。 我幫你分成兩個部分來講:核心原理 常見用法。🧩 一、核心原理 RabbitMQ 的核心是 生…

點控云智能客服:以AI重塑服務體驗,登頂行業第一的革新之路

在數字化浪潮席卷全球的今天,客戶服務已成為企業核心競爭力之一。智能客服作為連接企業與客戶的重要橋梁,其效能與體驗直接關系到企業的品牌形象與市場口碑。近日,權威機構發布的《中國智能客服市場競爭力報告》顯示,點控云智能客…

9.5 IO-線程day5

信號量打印ABC#include <stdio.h> #include <string.h> #include <stdlib.h> #include <25061head.h> sem_t sem[1]; void *callback(void *arg) {while(1){sem_wait(&sem[0]);printf("A\n");sleep(1);sem_post(&sem[1]);}pthread_e…

老師如何高效收集學生學籍信息,完成收集工作?

開學的時光總是忙碌而充實&#xff0c;除了要熱情地迎接新生、用心地備課&#xff0c;還有一件讓人頭疼不已的事情——學生學籍信息的收集。上學期開學&#xff0c;我承擔起了收集班級新生信息的重任&#xff0c;滿心以為提前準備好的紙質表格&#xff0c;在新生報到那天發給家…

JAVA層的權限與SELinux的關系

Java 層權限是應用程序級別的“門禁卡”&#xff0c;而 SELinux 是系統級別的“防火墻規則和強制訪問控制”。即使你擁有進入大樓的“門禁卡”&#xff08;Java 權限&#xff09;&#xff0c;如果“防火墻規則”&#xff08;SELinux 策略&#xff09;不允許你的進程與目標服務或…

Screen 三步上手

好的&#xff0c;這是給同事的簡潔版說明&#xff1a;Screen 三步上手 開新窗口&#xff1a;干活前先開個帶名字的窗口&#xff0c;不怕斷連。 screen -S 任務名看所有窗口&#xff1a;隨時查看都有哪些任務在后臺跑。 screen -ls重回窗口&#xff1a;斷連后重新登錄&#xff0…

flink 偽代碼

import java.util.*; import java.util.concurrent.*;// 核心接口定義 interface StreamOperator {void open();void processElement(Object element);void close(); }interface SourceFunction extends StreamOperator {void run(SourceContext ctx); }interface SinkFunction…

一招快速識別你的電腦是機械硬盤還是固態硬盤

你是否經常覺得電腦開機慢、軟件打開卡頓&#xff1f;其中一個關鍵原因&#xff0c;可能就在于你使用的是機械硬盤&#xff08;HDD&#xff09;還是固態硬盤&#xff08;SSD&#xff09;。固態硬盤讀寫速度快&#xff0c;能顯著提升系統響應速度&#xff1b;而機械硬盤雖然容量…

52核心52線程,Intel下一代CPU憋了個大的

被逼急了的 Intel&#xff0c;可能正在憋大招&#xff01;如大伙兒所見&#xff0c;Intel 這兩年日子已經不能用「慘」來形容。其過去引以為傲的 PC 處理器&#xff0c;特別是高性能桌面處理器領域&#xff0c;如今算是徹底被 AMD 打懵了。無他&#xff0c;己方產品是連年擺爛&…

【LeetCode 熱題 100】1. 兩數之和——(解法二)哈希表

Problem: 1. 兩數之和 文章目錄整體思路完整代碼時空復雜度時間復雜度&#xff1a;O(N)空間復雜度&#xff1a;O(N)整體思路 這段代碼旨在高效地解決 “兩數之和” 問題。與 O(N^2) 的暴力枚舉法相比&#xff0c;此版本采用了一種經典的 “空間換時間” 策略&#xff0c;利用 …

MySQL主從同步--主從復制進階

MySQL支持一臺主庫同時向多臺從庫進行復制&#xff0c;從庫同時也可以作為其他從服務器的主庫&#xff0c;實現鏈狀復制。1、MySQL支持的binlog二進制日志復制類型- 基于語句&#xff08;statement&#xff09;的復制在主服務器上執行SQL語句&#xff0c;在從服務器上執行同樣的…

WPF外部打開html文件

注意&#xff1a;這是一份提供WPF外部瀏覽器打開html的方法&#xff0c;而不是WPF內部嵌入html 需要通過瀏覽器打開&#xff0c;否則無法使用地址欄拼接參數的形式操作html 下面是打開html的方法↓string localHtmlPath "C:\Users\pangb\Downloads\Help\幫助文檔 - 副本.…

Go初級之十:錯誤處理與程序健壯性

Go初級之十&#xff1a;錯誤處理與程序健壯性為什么選這個主題&#xff1f; 錯誤處理是 Go 語言中一個非常獨特且重要的設計哲學。它體現了 Go 的“顯式錯誤處理”思想&#xff0c;與其它語言&#xff08;如 Java/Python&#xff09;的異常機制不同。在實際開發中&#xff0c;幾…

Xsens解碼人形機器人訓練的語言

隨著人形機器人在現實世界的應用中變得越來越普遍&#xff0c;了解實現其類似人類運動的技術至關重要。在Xsens我們滿懷熱情地探索這一領域&#xff0c;致力于為人形機器人訓練開發最佳的動作捕捉解決方案。為了幫助您更好地理解所遇到的術語&#xff0c;我們創建了一份概述&am…