串口通信的原理是什么?Uart串口與RS232串口有什么區(qū)別?
串口通信的原理是采用串行異步通信協(xié)議,以字符幀作為數(shù)據(jù)傳輸單位,通過串口按位依次傳輸字符幀的每個位,完成數(shù)據(jù)的傳輸。在串口通信中,字符幀由起始位、數(shù)據(jù)位、可選的校驗位和停止位組成。起始位用于標識字符幀的開始,占1位;數(shù)據(jù)位用于傳輸信息,可配置為5~8位;校驗位用于校驗數(shù)據(jù)位的正確性,可配置為奇校驗、偶校驗或無校驗,占1位;停止位用于標識字符幀的結束,占1/1.5/2位。串口通信使用3根線完成傳輸:地線、發(fā)送和接收。由于串口通信是異步的,因此端口能夠在同一時間間隔內(nèi)用一根線發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。常用的波特率如9600、115200,指的是字符幀中數(shù)據(jù)位的傳輸速率,通信雙方需要使用相同的波特率才能正常通信。同時,串口通信協(xié)議也廣泛應用于儀器儀表設備通用的通信協(xié)議以及獲取遠程采集設備的數(shù)據(jù)。
串口通信規(guī)定參數(shù)是計算機與外設設備(比如單片機、傳感器等)進行串口通信時所必須遵循的一系列參數(shù)規(guī)定,其中包括波特率、數(shù)據(jù)位數(shù)、校驗位和停止位等。以下是這些規(guī)定參數(shù)的詳細介紹:
波特率:
波特率表示信息傳送的速率,是計算機與外設設備進行通信的重要參數(shù)。通俗地說,波特率描述的是單位時間內(nèi)傳輸?shù)谋忍財?shù)。波特率一般用“bps”來表示,它的單位為位/秒。串口常用的波特率有9600、115200、38400等,常用于MCU與計算機之間的通信。通信設備使用串口通信時,波特率必須相同,否則會導致數(shù)據(jù)傳輸出錯。
數(shù)據(jù)位數(shù):
數(shù)據(jù)位數(shù)表示接收和發(fā)送的數(shù)據(jù)字節(jié)數(shù)。一般情況下,常用的數(shù)據(jù)位數(shù)為7位或8位,而在通常的情況下默認使用8位數(shù)據(jù)位數(shù)。數(shù)據(jù)位數(shù)的選擇取決于所傳輸?shù)臄?shù)據(jù)格式以及傳輸需要的準確度和速度。
校驗位:
校驗位是為了保證接收到的數(shù)據(jù)的準確性而設置的一個位。校驗位主要有三種方式,分別為奇校驗、偶校驗和無校驗。奇校驗是指在數(shù)據(jù)位數(shù)上奇數(shù)的傳輸信息完成后,將其全部加起來,如果結果為奇數(shù)則校驗位為0,否則為1。偶校驗則是將其全部加起來,如果結果為偶數(shù),則校驗位為0,否則為1。無校驗是指在數(shù)據(jù)傳輸后不對數(shù)據(jù)進行任何的校驗位檢驗。
停止位:
停止位指的是數(shù)據(jù)傳輸完成后發(fā)送器發(fā)送的一位信號。其目的是告訴接收器,本次數(shù)據(jù)傳輸已經(jīng)結束。例如,對于8位數(shù)據(jù)加一位停止位,停止位為1,這樣就能夠表示出本次的數(shù)據(jù)傳輸已經(jīng)結束。
UART和RS232雖然都是串行通信協(xié)議,但是在細節(jié)上存在一些差異。
UART是一種異步串行通信的方式,沒有具體的物理接口形式(硬件),只是一種電路實現(xiàn)。它使用TTL電平進行通信,有4個引腳(VCC、GND、RX、TX),使用的是相對較低的電平標準,比如0V代表0,3.3V或以上代表1。
RS232則是一種物理層的電氣接口要求,與UART不同,它有具體的接口形式(硬件)。RS232也使用串行通信方式,但它使用的是一種不同的電平標準。例如,RS232規(guī)定電壓在-3V到+3V之間表示0,在+3V到+12V之間表示1。
也就是說,盡管它們都是在兩個設備之間通過一條數(shù)據(jù)線逐比特地發(fā)送數(shù)據(jù),但UART更注重電路和信號的實現(xiàn),而RS232更關注接口和連接。
UART和RS232在信號傳輸速度方面的主要區(qū)別如下:UART是一種以固定的速率(例如1200bps,9600bps,115200bps等)進行串行傳輸?shù)姆椒?。它每次只能傳輸一個比特位(因此被稱為串行傳輸),并且通信雙方必須以約定的通信協(xié)議和通信速率進行通信。
而RS232接口標準由于出現(xiàn)較早,其傳輸速率較低,大約為20Kbps,傳輸距離也較短,大約為15米左右。UART和RS232在信號傳輸速度方面因不同的使用環(huán)境和要求而有區(qū)別。