串口通訊是什麼? 學術解釋是,通過匯流排在一個時間點連續發送一位數據的方法。如同弓箭手頻繁射出弓箭一般,嗖、嗖、嗖……
串口通訊協議是什麼? 說的大白話一點,就是串口信啟鏈通信時所使用的協議傳輸方式。
串口通訊協議有幾種 呢? 串列通信協議包括 系統間協議和內部系統協議。
系統間協議:用於通信兩個不同設備的系統間協議。就像計算機與微控制器套件之間的通信一樣。通過內部匯流排系統進行通信。常見的有UART協議、USART協議、USB協議。
內部系統協議:內部系統協議用於通信電路板上的兩個設備。在使用這些系統內協議時,我們將不使用系統內協議而擴展微控制器的外圍設備。使用系統內協議會增加電路復雜度和功耗。使用系統內協議,電路復雜度和功耗降低,成本降低,並且訪問數據非常安全。常見的有I2C協議、SPI協議、CAN協議。
UART代表通用非同步發送器和接收器。UART協議是具有兩個有線協議的串口通信。數據電纜信號線標記為Rx和Tx。串口通信通常用於發送和接收信號。它被傳輸並與串口通信接收數據,而沒有類脈沖。UART接收數據位元組並按順序發送各個位。
USAT協議在嵌入式系統中,通常作為 MCU 的外設; 一般來說,由晶元引腳直接引出的一般是 TTL 電平;而中間接有轉換晶元的可能就是RS232電平。詳情可查看:串列通訊的標准
UART是半雙工協議。半雙工意味著具有傳輸和接收數據的功能,但不能同時進行。大多數控制器在電路板上都有硬體UART。它使用一條數據線來發送和接收數據。它具有一個起始位、一個8位數據和一個停止位,表示8位數據傳輸一個人的信號是從高到低。例如:電子郵件、簡訊、對講機,工業物聯網傳輸設備 串口伺服器 。
USART代表通用的同步和非同步發送器和接收器。它是兩線協議的串口通信。數據電纜信號線標記為Rx和TX。該協議用於逐位元組發送和接收數據以及時鍾脈沖。這是一種全雙工協議,意味著同時以不同的板速發送和接收數據。不同的設備通過此協議與微控制器通信。例如電信。
USB代表通用串列匯流排。同樣,它是兩線協議的串列通信。數據電纜信號線標記為D +和D-。此協議用於與系統外圍設備進行通信.USB協議用於向主機和外圍設備串列發送和接收數據.USB通信需要基於系統功能的驅動程序軟體.USB設備可以在其上傳輸數據主機上沒有任何請求的匯流排。現在,當今大多數設備都在使用這種技術與USB協議進行通信。像計算機滑孫一樣使用USB與ARM控制器通信。USB以不同的模式傳輸數據。第一個是10 kbps至100 kbps的慢速模式;第二個是全速模式500kbps至10mbps,高速模式25mbps至400Mbps。USB最大電纜長度為4米。
例如:滑鼠、鍵盤、集線器、開關、筆式驅動器。
I2C代表內部集成電路。I2C只需兩條線即可將所有外設連接到微控制器。I2C只需兩條線SDA(串列數據線)和SCL(串列時鍾線)即可在設備之間傳輸信息。它是從屬通信協議的主控。每個從站都有一個唯一的地址。主設備發送目標從設旁嫌備的地址和讀/寫標志。該地址與該設備打開的任何從設備匹配,其餘從設備處於禁用模式。一旦地址匹配,在主機和該從機之間進行通信,並發送和接收數據。發送器發送8位數據,接收器回復1位確認。通訊完成後,主站發出停止條件。
I2C匯流排是由飛利浦半導體公司開發的。其最初目的是提供一種將CPU連接到外圍設備晶元的簡便方法。嵌入式系統中的外圍設備通常作為內存映射設備連接到微控制器。I2C僅需要兩條線即可將所有外設連接到微控制器。這些稱為SDA和SCL的有源線都是雙向的。SDA線是串列數據線,而SCA線是串列時鍾線。
I2C上拉電阻:
為什麼在I2C SCL和SDA線路中使用上拉電阻。
SDA和SCL線均為漏極開路驅動器。
它可以將輸出驅動為低電平,將其驅動為高電平。
為了使線路能夠變高,您必須提供上拉電阻
SPI代表串列外設介面。它是摩托羅拉開發的串列通信協議之一。有時SPI協議也稱為4線協議。它需要四線MOSI,MISO,SS和SCLK.SPI協議用於通信主設備和從設備。主機首先使用頻率配置時鍾。然後,主機通過拉片選按鈕選擇特定的從設備進行通信。選擇該特定設備並開始主機與該特定從機之間的通信。主機一次僅選擇一個從機。它是一種全雙工通信協議。在位傳輸的情況下,不限於8位字。
CAN代表控制器區域網。它是一個串列通信協議。它需要兩條線CAN高(H +)和CAN低(H-)。它是由Robert bosh公司於1985年開發的,用於車載網路。它基於面向消息的傳輸協議。
1970年代是汽車製造商開始引入新功能的時代,例如防抱死制動,空調,齒輪控制,中央操作門鎖等。這些功能確保了額外的接線和復雜的設計,從而增加了成本和風險。為了克服這些問題,Robert Bosch在1980年代引入了CAN協議。此串列通信協議在1993年進一步標准化為ISO11898。正是CAN協議完全改變了高級感測器之間的通信。
CAN協議常用於汽車、飛機和醫療系統中的電子網路。常見產品有Can轉乙太網設備USR-CANET200
⑵ 串口通信協議有哪些
就是RS-232的串口通信協議。一個TX端,一個RX端,分別用於發送和接收數據。
具體如下:
串列通信協議分同步協議和非同步協議。
(1)非同步通信協議的實例——起止式非同步協議
圖3
特點與格式:
起止式非同步協議的特點是一個字元一個字元傳輸,並且傳送一個字元總是以起始位開始,以停止位結束,字元之間沒有固定的時間間隔要求。其格式如圖3所示。每一個字元的前面都有一位起始位(低電平,邏輯值0),字元本身有5~7位數據位組成,接著字元後面是一位校驗位(也可以沒有校驗位),最後是一位,或意味半,或二位停止位,停止位後面是不定長度的空閑位。停止位和空閑位都規定為高電平(邏輯值),這樣就保證起始位開始處一定有一個下跳沿。
從圖中可以看出,這種格式是靠起始位和停止位來實現字元的界定或同步的,故稱為起始式協議。傳送時,數據的低位在前,高位在後,圖4表示了傳送一個字元E的ASCAII碼的波形1010001。當把它的最低有效位寫到右邊時,就是E的ASCII碼1000101=45H。
圖4
起/止位的作用:起始位實際上是作為聯絡信號附加進來的,當它變為低電平時,告訴收方傳送開始。它的到來,表示下面接著是數據位來了,要准備接收。而停止位標志一個字元的結束,它的出現,表示一個字元傳送完畢。這樣就為通信雙方提供了何時開始收發,何時結束的標志。傳送開始前,發收雙方把所採用的起止式格式(包括字元的數據位長度,停止位位數,有無校驗位以及是奇校驗還是偶校驗等)和數據傳輸速率作統一規定。傳送開始後,接收設備不斷地檢測傳輸線,看是否有起始位到來。當收到一系列的「1」(停止位或空閑位)之後,檢測到一個下跳沿,說明起始位出現,起始位經確認後,就開始接收所規定的數據位和奇偶校驗位以及停止位。經過處理將停止位去掉,把數據位拼裝成一個並行位元組,並且經校驗後,無奇偶錯才算正確的接收一個字元。一個字元接收完畢,接收設備有繼續測棗銷跡試傳輸線,監視「0」電平的到來和下一個字元的開始,直到全部數據傳送完畢。
由上述工作過程可看到,非同步通信是按字元傳輸的,每傳輸一個字元,就用起始位來通知收方,以此來重新核對收發雙方同步。若接收設備和發送設備兩者的時鍾頻率略有偏差,這也不會因偏差的累積而導致錯位,加之字元之間的空閑位斗孫也為這種偏差提供一種緩沖,所以非同步串列通信的可靠性高。但由於要在每個字元的前後加上起始位和停止位這樣一些附加位,使得傳輸效率變低了,只有約80%。因此,起止協議一般用在數據速率較慢的場合(小於19.2kbit/s)。在高速傳送時,一般要採用同步協議。
(2)面向字元的同步協議
特點與格式:這種協議的典型代表是IBM公司的二進制同步通信協議(BSC)。它的特點是一次傳送由若干個字元組成的數據塊,而不是只傳送一個字元,並規定了10個字元作為這個數凳並據塊的開頭與結束標志以及整個傳輸過程的控制信息,它們也叫做通信控制字。由於被傳送的數據塊是由字元組成,故被稱作面向字元的協議。
特定字元(控制字元)的定義:由上面的格式可以看出,數據塊的前後都加了幾個特定字元。SYN是同步字元(synchronous Character),每一幀開始處都有SYN,加一個SYN的稱單同步,加兩個SYN的稱雙同步設置同步字元是起聯絡作用,傳送數據時,接收端不斷檢測,一旦出現同步字元,就知道是一幀開始了。接著的SOH是序始字元(Start Of Header),它表示標題的開始。標題中包括院地址、目的地址和路由指示等信息。STX是文始字元(Start Of Text),它標志著傳送的正文(數據塊)開始。數據塊就是被傳送的正文內容,由多個字元組成。數據塊後面是組終字元ETB(End Of Transmission Block)或文終字元ETX(End Of Text),其中ETB用在正文很長、需要分成若干個分數據塊、分別在不同幀中發送的場合,這時在每個分數據塊後面用文終字元ETX。一幀的最後是校驗碼,它對從SOH開始到ETX(或ETB)欄位進行校驗,校驗方式可以是縱橫奇偶校驗或CRC。另外,在面向字元協議中還採用了一些其他通信控制字,它們的名稱如下表所示:
數據透明的實現:面向字元的同步協議,不象非同步起止協議那樣,需要在每個字元前後附加起始和停止位,因此,傳輸效率提高了。同時,由於採用了一些傳輸控制字,故增強了通信控制能力和校驗功能。但也存在一些問題,例如,如何區別數據字元代碼和特定字元代碼的問題,因為在數據塊中完全有可能出現與特定字元代碼相同的數據字元,這就會發生誤解。比如正文有個與文終字元ETX的代碼相同的數據字元,接收端就不會把它當作為普通數據處理,而誤認為是正文結束,因而產生差錯。因此,協議應具有將特定字元作為普通數據處理的能力,這種能力叫做「數據透明」。為此,協議中設置了轉移字元DLE(Data Link Escape)。當把一個特定字元看成數據時,在它前面要加一個DLE,這樣接收器收到一個DLE就可預知下一個字元是數據字元,而不會把它當作控制字元來處理了。DLE本身也是特定字元,當它出現在數據塊中時,也要在它前面加上另一個DLE。這種方法叫字元填充。字元填充實現起來相當麻煩,且依賴於字元的編碼。正是由於以上的缺點,故又產生了新的面向比特的同步協議。
(3)面向比特的同步協議
特點與格式:面向比特的協議中最具有代表性的是IBM的同步數據鏈路控制規程SDLC(Synchronous Data Link Control),國際標准化組織ISO(International Standard Organization)的高級數據鏈路控制規程HDLC(High Level Data link Control),美國國家標准協會(Americal National Standard Institute)的先進數據通信規程ADCCP(Advanced Data Communication Control Procere)。這些協議的特點是所傳輸的一幀數據可以是任意位,而且它是靠約定的位組合模式,而不是靠特定字元來標志幀的開始和結束,故稱「面向比特」的協議。這中協議的一般幀格式如圖5所示:
圖5
幀信息的分段:由圖5可見,SDLC/HDLC的一幀信息包括以下幾個場(Filed),所有場都是從有效位開始傳送。
(1)SDLC/HDLC標志字元:SDLC/HDLC協議規定,所有信息傳輸必須以一個標志字元開始,且以同一個字元結束。這個標志字元是 01111110,稱標志場(F)。從開始標志到結束標志之間構成一個完整的信息單位,稱為一幀(Frame)。所有的信息是以幀的形傳輸的,而標志字元提供了每一幀的邊界。接收端可以通過搜索「01111110」來探知幀的開頭和結束,以此建立幀同步。
(2)地址場和控制場:在標志場之後,可以有一個地址場A(Address)和一個控制場C(Control)。地址場用來規定與之通信的次站的地址。控制場可規定若干個命令。SDLC規定A場和C場的寬度為8位或16位。接收方必須檢查每個地址位元組的第一位,如果為「0」,則後面跟著另一個地址位元組;若為「1」,則該位元組就是最後一個地址位元組。同理,如果控制場第一個位元組的第一位為為「0」,則還有第二個控制場位元組,否則就只有一個位元組。
(3)信息場:跟在控制場之後的是信息場I(Information)。I場包含有要傳送的數據,並不是每一幀都必須有信息場。即數據場可以為0,當它為0時,則這一幀主要是控制命令。
(4)幀校驗信息:緊跟在信息場之後的是兩位元組的爭校驗,幀校驗場稱為FC(Frame Check)場或稱為幀校驗序列FCS(Frame check Squence)。SDLC/HDLC均採用16位循環冗餘校驗碼CRC(Cyclic Rendancy Code)。除了標志場和自動插入的「0」以外,所有的信息都參加CRC計算。
實際應用時的兩個技術問題:
(1)「0」位插入/刪除:如上所述,SDLC/HDLC協議規定以01111110為標志位元組,但在信息場中也完全有可能有同一種模式的字元,為了把它與標志區分開來,所以採取了「0」位插入和刪除技術。具體作法是發送端在發送所有信息(除標志位元組外)時,只要遇到連續5個「1」,就自動插入一個「0」,當接收端在接收數據時(除標志位元組)如果連續收到5個「1」,就自動將其後的一個「0」刪除是,以恢復信息的原有形式。這種「0」位的插入和刪除過程是由硬體自動完成的。
(2)SDLC/HDLC異常結束:若在發送過程中出現錯誤,則SDLC/HDLC協議常用異常結束(Abort)字元,或稱為失效序列使本幀作廢。在HDLC規程中,7個連續的「1」被作為失效字元,而在SDLC中失效字元是8個連續的「1」。當然在試銷序列中不使用「0」位插入/刪除技術。SDLC/HDLC協議規定,在一幀之內不允許出現數據間隔。在兩幀之間,發送器可以連續輸出標志字元序列,也可以輸出連續的高電平,它被稱為空閑(Idle)信號。
⑶ 串口通信協議有哪些
串口通信指串口按位(bit)發送和接收位元組。盡管比特位元組(byte)的串列通信慢,但是串口可以在使用一根線發送數據的同時用另一根線接收數據。串口通信協議是指規定了數據圓脊包的內容,內容包含了起始位、主體數據、校驗位及停止位,雙方需要約定一致的數據包格式才能正常收發數據的有關規范。在串口通信中,常用的協議包括RS-232、RS-422和RS-485。
中文名
串口通信協議
外文名
Serial communication protocol
作用
發送和接收位元組
學科
計算機學
作用
用於獲取遠程採集設備的
串口通信的基本原理
串口在嵌入式系統當中是一類重要的數據通信介面,其本質功能是作為 CPU 和串列設備間的編碼轉換器。當數據從 CPU 經過串列埠發送出去時,位元組數據轉換為串列的位;在接收數據時,串列的位被轉換為位元組數據。應用程序要使用串口進行通信,必須在使用之前向操作系統提出資源申請要求(打開串姿腔旁口),通信完成後必須釋放資源(關閉串口)。典型地,串口用於 ASCII 碼字元的傳輸。通信使用3根線完成:(1)地線,(2)發送數據線,(3)接收數據線。串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對於兩個進行通行的埠,這些參數必須匹配:波特率是一個衡量通信速度的參數,它表示每跡橡秒鍾傳送的 bit 的個數;數據位是衡量通信中實際數據位的參數,當計算機發送一個信息包,標準的值是 5,7 和 8 位。如何設置取決於你的需求;停止位用於表示單個包的最後一位,典型的值為 1,1.5和 2 位,停止位不僅僅是表示傳輸的結束,並且提供計算機校正時鍾同步的機會;奇偶校驗位是串口通信中一種簡單的檢錯方式,有四種檢錯方式——偶、奇、高和低,也可以沒有校驗位。[1]
有關規定
波特率
串口非同步通訊中由於沒有時鍾信號,所以通訊雙方需要約定好波特率,即每個碼元的長度,以便對信號進行解碼。常見的波特率有4800、9600、115200等。
起始位、停止位
數據包從起始位開始,到停止位結束。起始信號用邏輯0的數據位表示,停止信號由0.5、1、1.5或2個邏輯1的數據位表示,只要雙方約定一致即可。
有效數據
起始位之後便是傳輸的主體數據內容了,也稱為有效數據,其長度一般被約定為5、6、7或8位長。
⑷ 常用的網路協議有哪些
常用的網路協議有TCP/IP協議、IPX/SPX協議、NetBEUI協議等。
1.TCP/IP協議
TCP/IP協議用得最多,只有TCP/IP協議允許與internet進行完全連接。現今流行的網路軟體和游戲大都支持TCP/IP協議。
2.IPX/SPX協議
IPX/SPX協議是Novell開發的專用於NetWare網路的協議,大部分可以聯機的游戲都支持IPX/SPX協議,例如星際、cs。雖然這些游戲都支持TCP/IP協議,但通過IPX/SPX協議更省事,不需要任何設置。IPX/SPX協議在區域網中的用途不大。它和TCP/IP協議的一個顯著不同是它不使用ip地址,而是使用mac地址。
為了能進行通信,規定每個終端都要將各自字元集中的字元先變換為標准字元集的字元後,才進入網路傳送,到達目的終端之後,再變換為該終端字元集的字元。當然,對於不相容終端,除了需變換字元集字元外還需轉換其他特性,如顯示格式、行長、行數、屏幕滾動方式等也需作相應的變換。