時序對于數字電路而言非常重要,可以說時序是數字電路正常工作的基礎。說到時序,一般是指可編程器件的編程方法,在單片機編程時,需要根據被控芯片的時序去寫程序,把芯片手冊上規定好的時序用代碼來實現,放可以實現單片機和芯片之間的通訊。下面以幾種常用芯片的時序來簡單介紹一下如何看懂時序。
1
IIC通訊的開始/結束時序
IIC是常用的芯片間的通訊方式,也叫I2C,適合于PCB板內近距離的通訊,總共具有兩跟線,可掛接不同地址的多個設備,其硬件連線如下圖所示。
IIC在通訊時需要首先發送一個開始信號,數據結束時需要發送結束信號,開始和結束就在器件手冊上就給出了時序圖,在編程時就需要用C語言代碼去實現開始和結束的時序,時序圖如下所示。
SCL是IIC的時鐘線,SDA是數據線,SDA數據如何傳輸需要在特定的SCL時序上。從圖中可以看出,在開始時,
2
IIC數據傳輸時的時序
IIC在發送完開始信號后,就要開始發送數據,發送數據的過程也必須得遵守IIC的時序,IIC數據傳輸的時序如下圖所示。
從時序圖上,可以看出,在SCL為高電平期間是不允許SDA數據發生變化的,如果要改變SDA數據必須發在SCL為低電平期間。這就是這個時序圖的含義。單片機在編程時要遵循這個規則才可以。
時序圖是編程的依據,在寫代碼時必須要嚴格按照芯片手冊上的時序圖,否則通訊失敗。所以,時序圖這個東西要多看,多寫代碼。