MCU之UART串列埠,I2C,SPI通訊協議

2021-08-18 01:26:59 字數 1637 閱讀 3277

人與人之間能正常溝通交流,必須保證語言是相同的,比如大家都用普通話溝通,而且語速也要一致,不然說快了,說慢了,都會導致溝通不便。而微控制器與微控制器之間也是如此,uart協議通過波特率一致,如9600、115200,i2c協議通過時鐘線scl,spi協議通過時鐘線sclk,保證雙方「語速」相同,而通過傳輸二進位制保證雙方「語言」相同。

uart串列埠:

通訊,按照傳統的理解就是資訊的傳輸與交換。對於微控制器來說,通訊則與感測器、儲存晶元、外圍控制晶元等技術緊密結合,成為整個微控制器系統的「神經中樞」。沒有通訊,微控制器所實現的功能僅僅侷限於微控制器本身,就無法通過其它裝置獲得有用資訊,也無法將自己產生的資訊告訴其它裝置。如果微控制器通訊沒處理好的話,它和外圍器件的合作程度就受到限制,最終整個系統也無法完成強大的功能,由此可見微控制器通訊技術的重要性。uart(universal asynchronous receiver/transmitter,即通用非同步收發器)序列通訊是微控制器最常用的一種通訊技術,通常用於微控制器和電腦之間以及微控制器和微控制器之間的通訊。 

波特率(baud每秒傳輸進製的位數,保證雙方「語速」相同

rxd:接收資料。

txd:傳送資料。

微控制器1與微控制器2在通訊之前,rxd與txd需保持高電平,而且先發資料低位再發資料高位。通用的協議規格為1位起始位,8位資料位,1位停止位。如微控制器1向微控制器2傳送資料0x1000 0111,通過txd線傳送,txd線先拉低一段時間,傳送0表示起始位,再傳送 1->1->1->0->0->0->0>1,發完8位資料位後再拉高電平傳送1表示停止位,最後雙方通訊結束。

scl:  時鐘線。 --> 

保證雙方「語速」相同

sad:資料線。 -->接收與傳送資料

微控制器與板內晶元在通訊之前,scl與sda需保持為高電平,而且先發資料的高位再發低位。i2c匯流排上只能掛乙個主機,但是能掛幾個從機,主機具體要跟掛在匯流排上的某個從機通訊,主機應先傳送乙個從機位址,如匯流排上存在相對應的從機,從機會拉低sda回乙個應答訊號。

起始訊號:scl先拉低一段時間,然後sda由高電平向低電平產生乙個下降沿。

資料傳輸:i2

c 沒有固定波特率,但是有時序的要求,要求當 scl 在低電平的時候,sda 允許變化,也就是說,傳送方必須先保持 scl 是低電平,才可以改變資料線 sda,輸出要傳送的當前資料的一位;而當 scl 在高電平的時候,sda 絕對不可以變化,因為這個時候,接收方要來讀取當前 sda 的電平訊號是 0 還是 1,因此要保證 sda 的穩定。主機通過sda傳送完資料位後需從機回應乙個應答位。

停止訊號:scl先拉高一段時間,然後sda由低電平向高電平產生乙個上公升沿。

spi協議:

ssel:從裝置的片選訊號,如從裝置是低電平使能的話,應拉低該引腳後,從裝置就會被選中,主機和該從裝置進行通訊。

sclk:    時鐘訊號

mosi: 主機向從裝置傳送資料

miso: 主機接收從裝置的資料

序列匯流排之I2C

一 i2c簡介 1 i2c匯流排是 philip 公司開發的,雙向二線制同步序列匯流排,它只需要兩根線即可,單主機多從機。2 i2c兩根線分別為 序列時鐘線 scl和序列資料線 sda,scl由主機發出。3 每個連線到匯流排上的器件都有乙個位址,位址由器件內部硬體電路和外部位址引腳共同決定,避免了片...

linux裝置驅動之I2C

裝置結構體i2c client中addr的低8位表示裝置位址。裝置位址由讀寫位 器件型別和自定義位址組成,第7位是r w位,0表示寫,1表示讀,所以i2c裝置通常有兩個位址,即讀位址和寫位址型別器件由中間4位組成,這是由半導體公司生產的時候就已經固化了。自定義型別由低3位組成。由使用者自己設定,通常...

協議理解之I2C協議

協議我們參考 eeprom 24c64的datasheet 速度 標準模式下可以達到100kbit s 快速模式下可以達到400kbit s 高速模式下可以達到3.4mbit s i2c匯流排術語 傳送器 傳送資料到匯流排的器件 接收器 從匯流排接收資料的器件 主機 初始化傳送 產生時鐘訊號和終止傳...