串列埠匯流排協議詳解
串列埠一般是2根線,乙個tx,乙個rx,可進行非同步全雙工通訊
1.串列埠傳送資料,低位在前,高位在後。
2.串列埠線上面,空閒的時候是高電平的,傳送資料的時候:
<1>第乙個bit位:起始位,是0,匯流排從高變為低,這個0持續的時間是 1/波特率(例如波特率是4800,那麼這個0的持續時間就是 1/4800 = 0.000208s = 208us)
<2>緊接著就是資料位,這裡我們以8位資料位來說明,例如傳送的是』1』,
它的ascii碼是49=0x31=0b0011 0001, 那麼首先發的順序就是: 1 0 0 0 1 1 0 0
<3>奇偶校驗位: 傳送的資料位中的1的個數,例如傳送0x31, 那麼就是奇數,奇偶校驗位就是0, 如果是偶數那麼奇偶校驗位就是1,一般可能不用奇偶校驗位
<4>停止位,一段高電平的脈衝,t=1/波特率
<5>如果接著發資料,就會重複1->4的步驟
i2c匯流排協議詳解
i2c有兩根線,乙個scl,乙個sda,這兩根線空閒狀態下都是應該拉高的
1.i2c匯流排在進行資料傳輸的時候,時鐘訊號為高電平期間,資料線上的資料是必須要保持穩定的,
只有時鐘線上面為低電平的時候,資料線上的高低電平才允許變化
2.起始訊號:scl在高電平期間,sda從高到低的跳變
終止訊號:scl在高電平期間,sda從低到高的跳變
3.各種操作之後,scl、sda所處的狀態:
<1>起始訊號後:起始之後sda和scl都為0
<2>終止訊號後:結束之後保持sda和scl都為1;表示匯流排空閒
<3>主機傳送乙個位元組後:傳送完乙個位元組scl=0,sda=1
<4>主機讀取乙個位元組:接收完乙個位元組scl=0,sda=1
4.非應答:主機/叢機不產生應答訊號
<1>如果從機對主機進行了應答,但在資料傳送一段時間後無法繼續接收更多的資料時,從機可以通過對無法接收的第乙個資料位元組的「非應答」通知主機,主機則應發出終止訊號以結束資料的繼續傳送
<2>當主機接收資料時,它收到最後乙個資料位元組後,必須向從機發出乙個結束傳送的訊號。這個訊號是由對從機的「非應答」來實現的。然後,從機釋放sda線,以允許主機產生終止訊號。
5.i2c對資料的傳送/接收都是從最高位開始的
6.在起始訊號後必須傳送乙個從機的位址(7位),第8位是資料的傳送方向位(r/t),用「0」表示主機傳送資料(t),「1」表示主機接收資料(r)。也有10位位址
7.在匯流排的一次資料傳送過程中,可以有以下幾種組合方式:
<1>主機向從機傳送資料,資料傳送方向在整個傳送過程中不變
<2>主機在第乙個位元組後,立即從從機讀資料
<3>在傳送過程中,當需要改變傳送方向時,起始訊號和從機位址都被重複產生一次,但兩次讀/寫方向位正好反相
UART I2C以及SPI協議學習總結
uart 通用非同步收發器 非同步序列通訊 是屬於非同步通訊。所謂的非同步通訊,簡單來講就是不同步,比如計算機傳送給微控制器,計算機只負責把資料通過txd傳送出來即可,接收資料是微控制器自己的事。uart通訊先是一直保持高電平,傳送資料之前有起始位0,而後是8位資料位 資料位是固定長度,福特率分之一...
MCU之UART串列埠,I2C,SPI通訊協議
人與人之間能正常溝通交流,必須保證語言是相同的,比如大家都用普通話溝通,而且語速也要一致,不然說快了,說慢了,都會導致溝通不便。而微控制器與微控制器之間也是如此,uart協議通過波特率一致,如9600 115200,i2c協議通過時鐘線scl,spi協議通過時鐘線sclk,保證雙方 語速 相同,而通...
MPEG2 H 263 H 264協議效率對比
摘錄 下面的材料來自於itut iso jvt主席thomaswiegand的演示文稿。從下面的資料上,mpeg2是各種壓縮演算法中最差的一種,完全靠消耗頻寬來提高影象的質量。比較典型的對比是 3m的mpeg2質量相當於2.0m的h.263影象質量,相當於1.4m的h.264 關於h.264的描述,...