單片機中在制定通訊協議時候,一定加入容錯和重發機制
///插播一條:我自己在今年年初錄製了一套還比較系統的入門單片機教程,想要的同學找我拿就行了免費的,私信我就可以哦~點我頭像黑色字體加我地球呺也能領取哦。最近比較閒,帶做畢設,帶學生參加省級或以上比賽///
一、TTL電平
全雙工(邏輯1: 2.4V--5V邏輯0: 0V--0.5V)
1、硬體框圖如下,TTL用於兩個MCU間通信
2、『0』和『1』表示
二、RS-232電平
全雙工(邏輯1:-15V--5V邏輯0:+3V--+15V)
1、硬體框圖如下,RS-232用於MCU與PC機之間通信
2、『0』和『1』表示
三、RS-485
半雙工、(邏輯1:+2V--+6V邏輯0: -6V---2V)這裡的電平指AB兩線間的電壓差。
1、硬體框圖如下
2、『0』和『1』表示
3.終端匹配和485使用時候要注意的事情
1,485布線時候,要注意AB極性,不能接反。
2,要單獨供電,並且千萬不能把485的AB線接入電源,485的通訊電壓是5V。接入電源可能會燒毀整個總線設備。
3,485通訊只能菊花鏈布線,不能分叉。也就是不支持樹形,星形,混合型。
4,在一些長線場合,還要加終端電阻,為了吸收總線上的駐波與反射。
這些問題在施工布線時候一定要注意,在制定通訊協議時候,也一定加入容錯和重發機制。
相比而言,二總線系統在現場則比485方便的多,例如POWERBUS,MBUS,KNX。這些問題全沒有,額外還提供了供電,通訊協議也好指定一些。如果用於大規模或者穩定性要求高的現場布線,可以了解一下二總線。
四、CAN總線
邏輯1:-1.5V--0V邏輯0:+1.5V--+3V)這裡的電平指CAN_High、CAN_Low兩線間的電壓差。
1、硬體框圖如下
2、『0』和『1』表示
以上總結:
1、從單片機軟體編程角度來說,RS232、RS-485最終結果都是轉換為TTL電平方式與單片機通信(CAN收發器把差分信號轉化為TTL-->CAN控制器(MCU))。其目的都是提高通信質量,提高抗干擾能力。
2、TTL、RS232是邏輯電平信號。RS-485、CAN為差分信號。
五、I2C
5.1 I2C物理層
5.2 I2C協議層
5.3數據的起始信號與停止信號
5.4數據有效性
I2C協議在 SCL高電平時對 SDA信號採樣, SCL低電平時 SDA準備下一個數據。