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