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