UART的RTS, CTS:
一、流控,顧名思義就是流量控制的意思。目的是協調收發雙方,使數據不會丟失。
二、很多人用了串口很久都不知道這回事,這是因為很多場合確實沒有必要。收發雙方波特率固定,並且接受數組足夠大,這時不會出現接收方接受數組溢出導致數據丟失的情況,所以,以我的理解,使用流控的主要目的就是在數據量大,有可能出現接受數組溢出的時候,采取的一種協調收發雙方的措施。
三、流控設計到RTS和CTS兩個口,收發雙方都有各自的RTS和CTS,如通信雙方A,B。那么A的RTS就與B的CTS相連,A的CTS就與B的RTS相連。
RTS:Request to send; CTS:Clear to send。
RTS的作用是告訴對方我可以接受數據,是輸出口;CTS的作用是根據電平高低控制發送或不發送數據。
如:A與B通信,現在A給B發送數據,當B出現某種情況(可能是接受緩存快要滿了)的時候,B的RTS拉低(一般拉低表示有效,但也不一定),A的CTS是與B的RTS相連的,則A檢測到它的CTS拉低,就知道B在告訴他暫時不要再發了。他就乖乖地停止發送。等到B可以繼續接收數據的時候,B的RTS拉高,這時候A的CTS也拉高,A就知道可以繼續發送數據了。如果A和B收發情況換一下也是一樣的道理。
異步通信:asychronous data communication
異步通信是以字符(構成的幀)為單位進行傳輸(也稱為幀格式),字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間是異步的(字符之間不一定有位間隔,但同一字符內的各位是同步的(各位之間的距離均為位間隔的整數倍)。
同步通信:synchronous data communication
在異步傳送中,每一個字符都要用起始位和停止位作為字符開始和結束的標志,占用了一定的時間。為了提高傳送速度,有時就去掉這些標志,而采用同步傳送的方式,即一次傳送一組數據。在這一組數據的開始處要用同步字符SYNC(1~2個)來加以指示,實現發送和接收端的同步。一旦檢測到約定的同步字符,下面就連續、順序的發送和接收數據。