COM, UART, USART, SERIAL,SCI,RS232,RS485到底都是什麼?

近段時間在開發中遇見個問題,一個模塊需要3個外界串口,MCU提供1個,另外兩個由spi總線掛外部芯片擴展。

問題來了: MCU的datasheet中,串口接口名字叫SCI, 外擴的芯片datasheet中將兩個口叫UART......

那麼程序中相應的命名該叫什麼?根據功能,這兩者是一樣的。

翻閱資料後得出一個結論: 這兩者本質上就是一個東西。。。。。。不同的公司出的產品叫法不一樣而已,就像出租車,的士的區別。。。

詳細說明:

SCI : (Serial Communication Interface)意爲“串行通信接口”,是相對於並行通信的,是串行通信技術的一種總稱,最早由Motolora公司提出的。------是由Motolora提出的,字面意思似乎包含了所有的串行通信的接口,那SPI,IIC都是串行接口,你包含不?不包含!  至少大部分我遇見的MCU芯片中,SPI,IIC,SCI是平級的,沒有包含關係。 實際上SCI還是用UART的協議,做的UART的工作。

UART: (Universal Asynchronous Receiver & Transmitter)即通用異步收發器,是串行通信的一種協議,它規定串行通信的波特率、起始/停止位、數據位、校驗位等格式,以及各種異步握手信號。----------這個定義就比較具體了,指明瞭通信協議內容,我認爲明明比較合適。

USART: (Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/異步串行接收/發送器USART是一個全雙工通用同步/異步串行收發模塊,該接口是一個高度靈活的串行通信設備。--------這個主要是多了同步功能,同步就要多一根CLK線進行時鐘同步,但也因此更有傳輸效率。有點像SPI。我們都知道,UART假設波特率爲9600,但是如果你用9650發送,對面也能收到,只要不偏差過大。這是異步的好處,不用同步時鐘。   而同步傳輸在由CLK同步時,就可以省去startbit,stopbit等不必要的bit,從而提高傳輸效率。目前還沒用過USART。。。。僅僅只是瞭解一下。

至於COM口,直接意思是communication,通信的意思,主要是PC機上的一個定義,windows將內置的UART口映射到資源管理器後的一個資源命名。就好像我也可以在我的程序裏將UART口定義爲"MY_PORT”,無所謂,我自己明白就好。

而後,RS232,RS485,RS422都是串行通信的一種物理接口電氣標準,屬於硬件指標UART的信號出來後,都要經過指定的接口器件生成相應的連接口,才能發送到對端。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章