根據資料的傳輸方式,通訊可以分為序列通訊和並行通訊,,序列通訊是指裝置之間通過少量資料訊號線(一般是8 根以下),地線以及控制訊號線,按資料位形式一位一位的進行傳輸,就像單個車道的公路,一次只能傳輸乙個資料位的資料,而並行通訊就像是多個車道的公路,可以傳輸多個資料位的資料。
在一次傳輸多個資料位的資料,在傳輸速率相同的情況下,並行通訊傳輸的資料量要大得多,但是序列通訊則可以節約資料線的硬體成本(特別是遠距離通訊)
序列通訊與並行通訊的對比圖:
根據資料通訊的方向,通訊可以分為全雙工,半雙工,單工通訊,它們主要以通道來區分
通訊方式說明:
拿公路類模擬,全雙工通訊就像乙個雙向車道,兩個方向的車流互不相干;半雙工就好像鄉間公路一樣,乙個時刻只能一輛車運通過,車輛要想執行只能等公路空了之後才可以。單工通訊就像單行道,另乙個方向的車輛完全禁止通行。
三種通訊方式:
根據通訊的資料同步方式,又分為非同步和同步兩種,可以根據通訊過程中是否使用了時鐘訊號來進行區分。在同步通訊中,收發裝置雙方會使用一根訊號線表示時鐘訊號,在時鐘訊號的驅動下雙方進行協調,同步資料,通訊中通常雙方會統一規定在時鐘訊號的上公升沿或下降沿對資料線進行取樣。
同步通訊:
在非同步通訊中不使用時鐘訊號進行資料同步,它們直接在資料訊號中穿插一些同步的訊號位,或者將主體資料進行打包,以資料幀的格式傳輸資料,在一些通訊中還需要雙方約定資料的傳輸速率,方便更好的同步。
某種非同步通訊方式:
在同步通訊中,資料訊號所傳輸的內容絕大部分都是有效資料,而非同步通訊中會包含有幀的各種識別符號,所以同步通訊的效率更高,但是同步通訊雙方的時鐘允許誤差較小,而非同步通訊雙方的時鐘允許誤差較大。
衡量通訊效能的乙個非常重要的引數就是通訊速率,通常以位元率(bitrate)來表示,即每秒傳輸的二進位制位數,單位位位元每秒(bit/s),容易與位元率混淆的概念是「波特率」(baudrate),它表示每秒鐘傳輸了多少個碼元。而碼元是通訊訊號調製的概念,通訊中常用時間間隔相同的符號來表示乙個二進位制數字,這樣的訊號稱為碼元。如常見的通訊傳輸中,用0v 表示數字0,5v 表示數字1,那麼乙個碼元可以表示兩種狀態0 和1,所以乙個碼元等於乙個二進位制位元位,此時波特率的大小與位元率一致;如果在通訊傳輸中,有0v、2v、4v 以及6v 分別表示二進位制數00、01、10、11,那麼每個碼元可以表示四種狀態,即兩個二進位制位元位,所以碼元數是二進位制位元位數的一倍,這個時候的波特率為位元率的一半。
STM32 學習筆記 SPI通訊配置
spi時序圖如下 stm32做為主機設計spi時序一般選用cpol 1 cpha 1 1 時鐘使能。gpio時鐘使能rcc apb2enr,spi時鐘使能rcc apb2enr設定。為什麼還要連線gpio時鐘,參見stm32參考手冊8.1.4節。手冊上這麼說的 對於復用輸出功能,埠必須配置成復用功能...
STM32之串列埠通訊 學習筆記
並行通訊 按位傳輸 序列通訊 按乙個位元來傳輸 單工 單向傳輸,一根訊號線 半雙工 雙向傳輸,某一時刻只能往乙個方向傳輸,一根訊號線就可以了 全雙工 雙向傳輸,同時往兩個方向傳輸,一般需要有兩根訊號線 同步通訊 必須有同步時鐘訊號線 非同步通訊 設定相同的波特率不需要時鐘訊號線 常見的串列埠通訊介面...
STM32學習筆記
剛到公司實習,要學習stm32開發,boss給了一塊戰艦開發板,讓我自己寫乙個功能要用在公司的產品上。難啊。以前根本沒接觸過stm32,只能一步一步慢慢來,利用晚上利用週末惡補一下。哎,算是為了大學前兩年還債吧。一 跑馬燈實驗 gpio輸出 實驗環境 keil4 實驗平台 戰艦stm32開發板 gp...