UART作為硬件來看,它是通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),是電腦硬件的一部分,將資料由串行傳輸(Serial communication)與并行傳輸(Parallel communication)間作傳輸轉換。UART通常用在與其他通訊協(xié)定(如EIA RS-232)的連結上。
具體實物表現(xiàn)為獨立的模塊化芯片,或作為集成于微處理器中的周邊設備。在開發(fā)板設計和測試階段被用來控制CPU與其余部分的信息傳送。
UART作為一種軟件協(xié)議來看,是異步串口通信協(xié)議的英文縮寫,它包括了RS232、RS499、RS423、RS422和RS485等接口標準規(guī)范和總線標準規(guī)范,即UART是異步串行通信口的總稱。 而RS232、RS499、RS423、RS422和RS485等,是對應各種異步串行通信口的接口標準和總線標準,它規(guī)定了通信口的電氣特性、傳輸速率、連接特性和接口的機械特性等內容。實際上是屬于通信網絡中的物理層(最底層)的概念,與通信協(xié)議沒有直接關系。而通信協(xié)議,是屬于通信網絡中的數(shù)據(jù)鏈路層(上一層)的概念。
COM口是指針對串行通信協(xié)議的一種端口,是PC上異步串行通信口的簡寫,大部分為9針孔D型。COM口里分RS232,RS422和RS485,傳輸功能依次遞增。所以,RS485口也是9針孔D型。由于歷史原因,IBM的PC外部接口配置為RS232,成為實際上的PC界默認標準。所以,現(xiàn)在PC機的COM口均為RS232。若配有多個異步串行通信口,則分別稱為COM1、COM2...
RS232或者RS485,是指通信協(xié)議傳輸方式的類別之一,采用這類通信方式的,可以有多種協(xié)議,包括串行通信,現(xiàn)場總線方式等。想完成某個通信處理的,首先會問通信協(xié)議是什么,比如回答為串口、現(xiàn)場總線、以太網等;然后會確定該協(xié)議下的通信端口類型,比如回答:USB口,RS232,RS422,RS485。
總的來說,對于一項通信任務,通信協(xié)議可以使用UART協(xié)議,而UART協(xié)議可以通過COM端口來實現(xiàn)硬件連線,此協(xié)議下的傳輸方式可以選用RS232或者RS485等。
PS:注意使用電腦上的串口與微處理器通信時,首先要經過轉壓芯片(例如MAX232)來實現(xiàn)電平轉化。
TTL 高電平1是>=2.4V,低電平0是<=0.5V(對于5V或3.3V電源電壓);
RS232采用的是負邏輯,高電平1是-15V~-3V,低電平0是+3V~+15V;
CMOS電平以電源為參考,高電平1是>=0.7VCC,低電平0是<=0.2VCC。
串口通訊是電子工程師和嵌入式開發(fā)工程師面對的基本問題,RS232則是其中比較常用的通訊方式。但是初學者往往搞不清有關的名詞如UART和RS232或RS485之間是什么關系,因為它們經常被放到語句中同等的位置使用。在百度搜索兩者的區(qū)別,可以看到排在前面的答案充斥著混淆的概念。就此,談談我對這幾個概念的理解,希望能幫初學者厘清它們之間的關系。