通用異步收發(fā)器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種串行、異步、全雙工的通信協(xié)議,在嵌入式領(lǐng)域應(yīng)用的非常廣泛。 UART作為異步串行通信協(xié)議的一種,工作原理是將傳輸數(shù)據(jù)的每個二進(jìn)制位一位接一位地傳輸。在UART通信協(xié)議中信號線上的狀態(tài)為高電平時代表‘1’,信號線上的狀態(tài)為低電平時代表‘0’。比如使用UART通信協(xié)議進(jìn)行一個字節(jié)數(shù)據(jù)的傳輸時就是在信號線上產(chǎn)生八個高低電平的組合。但實際上UART通信協(xié)議在進(jìn)行一個字節(jié)的數(shù)據(jù)傳輸時除了最基本的數(shù)據(jù)位之外還有許多其他的信息需要表示,具體的協(xié)議格式如下 空閑位: UART協(xié)議規(guī)定,當(dāng)總線處于空閑狀態(tài)時信號線的狀態(tài)為‘1’即高電平 起始位: 每開始一次通信時發(fā)送方先發(fā)出一個邏輯”0”的信號(低電平),表示傳輸字符的開始。因為總線空閑時為高電平所以開始一次通信時先發(fā)送一個明顯區(qū)別于空閑狀態(tài)的信號即低電平。 數(shù)據(jù)位: 起始位之后就是我們所要傳輸?shù)臄?shù)據(jù),數(shù)據(jù)位可以是5、6、7、8位等,構(gòu)成一個字符。先發(fā)送最低位,最后發(fā)送最高位,使用低電平表示‘0’高電平表示‘1’完成數(shù)據(jù)位的傳輸。 奇偶校驗位: 數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗)或奇數(shù)(奇校驗),以此來校驗數(shù)據(jù)傳送的正確性 停止位: 它是一個字符數(shù)據(jù)的結(jié)束標(biāo)志?梢允1位、1.5位、2位的高電平。 由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備之間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機(jī)校正時鐘的機(jī)會。停止位個數(shù)越多,數(shù)據(jù)傳輸越穩(wěn)定,但是數(shù)據(jù)傳輸速度也越慢。 比特率: 在UART中使用波特率來表示數(shù)據(jù)的傳輸速度。比特率是表示每秒鐘傳送的二進(jìn)制位的個數(shù)。 |