单片机中的几种通信方式
首先弄懂串行通信和并行通信以及串口通信和并口通信的概念。
串行通行:它是一個概念,它是指數據一位一位地順序傳送,其特點就是通信線路
簡單,只要一對傳輸線就可實現雙向通信,適用于遠距離通信,但傳輸速度慢。它
包括普通的串口通信,I2C,SPI,UART...
串口通信:是一種實際通信方式,但是我們可以幾乎看成一樣.
串行接口:簡稱串口,或串行通信接口,或串行通訊接口(通常指com口)。
并行通信:如果一組數據的各數據位在多條線上同時被傳輸,那么就是并行通信。
并口接口:就是一種接口,各數據位同時被傳輸,傳輸速度快,效率高,一邊可用于MCU。
串行通信又可分為單工,半雙工和全雙工
單工:信息只能單向傳送。
半雙工:信息能雙向傳送但不能同時。
全雙工:信息能同時雙向傳送。
串行通信還可分為同步通信和異步通信
同步通信(兩根線):是把許多字符組成一個信息組,這樣,字符可以一個接一個地傳輸,但是,
在每組信息(通常稱為信息幀)的開始要加上同步字符,在沒有信息要傳輸時,要填上空字符,
因為同步傳輸不允許有間隙。同步方式下,發送方除了發送數據,還要傳輸同步時鐘信號,
信息傳輸的雙方用同一個時鐘信號確定傳輸過程中每1位的位置
異步通信(一根信號線,沒有時鐘線):是一種很常用的通信方式。異步通信在發送字符時,所發送的字符之間的時間
間隔可以是任意的。當然,接收端必須時刻做好接收的準備。發送端可以在任意時刻開始發送字符,
因此必須在每一個字符的開始和結束的地方加上標志,即加上開始位和停止位,以便使接收端能夠
正確地將每一個字符接收下來。異步通信的好處是通信設備簡單、便宜,但傳輸效率較低(因為開始位和停止位的開銷所占比例較大)。
同步通信與異步通信區別:
1.同步通信要求接收端時鐘頻率和發送端時鐘頻率一致,發送端發送連續的比特流;異步通信時
不要求接收端時鐘和發送端時鐘同步,發送端發送 ? ? 完一個字節后,可經過任意長的時間間隔再發送下一個字節。
2.同步通信效率高;異步通信效率較低。
3.同步通信較復雜,雙方時鐘的允許誤差較小;異步通信簡單,雙方時鐘可允許一定誤差。
4.同步通信可用于點對多點;異步通信只適用于點對點。
單片機中的SPI、UART、I2C
1、SPI
????SPI允許單片機和外圍設備或者單片機之間高速同步數據傳輸,SPI可以有主機和從機模式之選,通信的主從機之間通過移位寄存器同時交換數據。目前自己用的以主機模式居多。SPI需要四線:SS,MISO,MOSI,SCK。
???通信過程:在設置好SPI的工作模式:包括SCK頻率(數據傳輸速率),工作速度,主從模式,以及數據接收發送對應的時鐘極性。在主模式下,將SS拉低表示通信的開始,然后通過向SPI數據寄存器中寫入一字節的數據后自動啟動時鐘SCK開始進行一次通信,通信完成后會產生相應的中斷標志,標志一個字節數據的傳送完成。通信完成后將SS腳拉高,表示通信過程已經結束。
???注意SS引腳的設置:當設置為從機模式時,SS引腳應設置為輸入,拉低的時候SPI才能起作用,拉高的話是消極的SPI模式;在主機模式下,SS引腳可以設置,一般應設置為輸出,如果設置為輸入的話應保持為高,否則將不能進行正常的主機模式操作。
2、USART
???USART的操作比較簡單,主要是設置波特率,數據格式,以及中斷允許位等,值得至于的是其USART IN SPI MODE,在SPI模式下的USART的操作跟SPI操作差不多,主要是Clock的設置,然后發送數據還是通過USART的中斷進行
3、I2C
???I2C接口是簡單強大的通信接口,只需要兩根雙向總線(時鐘和數據線),SCL和SDA,即可實現一個主機和最多128個從機進行通信。模擬I2C接口的過程:啟動I2C,一般是在SCL為高時將SDA拉低啟動數據發送,SDA只有在SCL為低時才能拉高拉低有效,在SCL為高時拉高拉低SDA只是用于停止啟動I2C通信
串口通信是用來和系統外部的設別通信的。比如設備和設備之間通信。
SPI,UAR,I2C都是串行通信方式,并行通信方式一般用的少,因為只適合
短距離,一般用于MCU比較多,因為MCU它對數據的傳輸速度有要求,而且
與塔相連的芯片一般會比較近。
MCU 他的屬性要比CPU(這里指單片機,其他地方應該也是) 強,它包括CPU的性能,
且還有CPU沒有的性能。
總結
以上是生活随笔為你收集整理的单片机中的几种通信方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言-作用域
- 下一篇: Weisfeiler-Leman tes