激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

模擬I2C總線(xiàn)多主通信的通用軟件包

時(shí)間:2024-08-16 06:10:41 理工畢業(yè)論文 我要投稿
  • 相關(guān)推薦

模擬I2C總線(xiàn)多主通信的通用軟件包

摘要:本文給出軟件模擬I2C總線(xiàn)應用在多主機系統中的解決方案。分析多主競爭出現原因及其時(shí)段,結合時(shí)序圖和流程圖闡述競爭仲裁的原理及實(shí)現方案,并提供通用軟件包,用戶(hù)可將其應用在實(shí)際的系統中。

引言

I2C是由Philips公司推出的芯片間串行傳輸總線(xiàn)。它以規范嚴謹、使用簡(jiǎn)單靈活、支持的外圍器件繁多等特點(diǎn)而被廣泛應用。對于不具備I2C接口的主器件(通常指MCU),可利用普通的I/O口來(lái)模擬I2C總線(xiàn),但由于無(wú)法解決多主競爭問(wèn)題而只能應用在單主機系統中。本文提供了一種解決方案,可將模擬I2C總線(xiàn)應用在多主機系統中,實(shí)現模擬I2C的多主通信。

1 模擬I2C多主通信的設計原理

在I2C總線(xiàn)系統中,可以有多個(gè)主器件節點(diǎn)。當多個(gè)主器件節點(diǎn)都企圖控制總線(xiàn)時(shí),就會(huì )出現多主競爭。這時(shí)就需要進(jìn)行仲裁,裁決的結果只允許其中一個(gè)主器件節點(diǎn)成為主控器。而硬件I2C系統之所以支持多主系統,是因為其具有的三個(gè)特性:①接口的線(xiàn)“與”邏輯功能;②內部沖突檢測電路;③I2C中斷和狀態(tài)處理程序。這使其能夠自動(dòng)完成多主競爭時(shí)的時(shí)鐘同步與總線(xiàn)仲裁,無(wú)須用戶(hù)介入。而在模擬I2C系統中,如果能通過(guò)軟硬件設計模擬出上述的三個(gè)特性,就等于解決了競爭仲裁與同步問(wèn)題,那么模擬I2C總線(xiàn)就完全可以應用于多主機系統中。

首先,經(jīng)過(guò)理論分析與實(shí)驗驗證,得知并聯(lián)在一起的MCU的普通I/O口線(xiàn)本身就具有線(xiàn)“與”特性。其次,為了避免主節點(diǎn)在總線(xiàn)繁忙時(shí)啟動(dòng)總線(xiàn)而引起的沖突,需要增加一條握手線(xiàn),即BUSY線(xiàn)來(lái)代表總線(xiàn)的忙/閑狀態(tài)。因為數據線(xiàn)(SDA)和時(shí)鐘線(xiàn)(SCL)上的信號是變化的,所以不能用它們充當BUSY線(xiàn)。另外,當多個(gè)MCU都檢測到總線(xiàn)空閑,同時(shí)企圖控制總線(xiàn)時(shí),將形成多主競爭狀態(tài),同樣會(huì )引起沖突。這時(shí)就需要引入時(shí)間片,用劃分的時(shí)間片來(lái)決定競爭時(shí)各MCU占用I2C總線(xiàn)的優(yōu)先次序。結合SDA的線(xiàn)“與”特性,檢測SDA上是否已經(jīng)存在啟動(dòng)信號(即SDA是否為0),如果直到相應的時(shí)間片結束都沒(méi)有檢測到SDA上的啟動(dòng)信號,自己就可以控制總線(xiàn)。最后,由于模擬系統中沒(méi)有硬件I2C中斷,MCU作為從器件時(shí)不知何時(shí)開(kāi)始接收總線(xiàn)上的數據,所以,需要提供一根I2C中斷信號線(xiàn),使MCU在中斷程序中處于從接收狀態(tài),中斷線(xiàn)可以與BUSY線(xiàn)合用。

通過(guò)上述分析,利用三根信號線(xiàn)就能模擬出硬件I2C的競爭仲裁過(guò)程,實(shí)現模擬I2C的多主通信。

2 系統連接示意圖

三線(xiàn)模擬I2C總線(xiàn)系統的連接框圖如圖1所示。

模擬I2C多主系統中,要參與競爭的主器件節點(diǎn)采用三級連接方式,如MCU(A)、MCU(B)、MCU(C);對于外圍器件節點(diǎn)如24C64等,因不具備主動(dòng)控制I2C總線(xiàn)的能力,不會(huì )參與總線(xiàn)的競爭,所以仍可采用通用的兩線(xiàn)連接方式。三線(xiàn)模擬I2C總線(xiàn)中的時(shí)鐘線(xiàn)SCL和數據線(xiàn)SDA可由MCU的任意兩個(gè)I/O口線(xiàn)模擬;BUSY線(xiàn)因還要充當中斷信號線(xiàn),則必須與MCU的外部中斷引腳INT0或INT1連接。

3 時(shí)序分析及流程設計

在檢測到BUSY=0(忙)時(shí),不會(huì )出現競爭;但當檢測到BUSY=1(閑)到將BUSY設為0,需要的典型時(shí)間為3個(gè)機器周期。在這段時(shí)間內,別的MCU仍會(huì )檢測到BUSY=1,也認為總線(xiàn)空閑到企圖占用,這時(shí)就出現了競爭與沖突。競爭的時(shí)間范圍為2×3個(gè)機器周期。仲裁的方法是為每一個(gè)MCU分配一個(gè)仲裁時(shí)間片,在規定的時(shí)間片內MCU反復檢測總線(xiàn)中的數據線(xiàn)SDA是否有信號,直到時(shí)間片結束。如果沒(méi)有信號就可馬上占用I2C總線(xiàn),發(fā)送起始信號;如果有信號則表示有別的高優(yōu)先級的MCU要占用,該MCU退出競爭。仲裁時(shí)序圖如圖2所示。

將BUSY設為0后的一段時(shí)間規定為仲裁時(shí)間。仲裁時(shí)間長(cháng)度為(N-1)×Δt。N為I2C總線(xiàn)上參與競爭的MCU個(gè)數;Δt為一個(gè)時(shí)間片的長(cháng)度,典型值為4個(gè)機器周期。按優(yōu)先級順序給MCU分配不同個(gè)數的時(shí)間片。仲裁時(shí)序如圖2所示:假設MCU(A)優(yōu)先級最高,它不必進(jìn)行時(shí)間片測試,在檢測到總線(xiàn)空閑時(shí)直接發(fā)送起始位;MCU(B)優(yōu)先級為次高,在檢測到總線(xiàn)空閑后,它需要等待檢測一個(gè)時(shí)間片周期Δt,在Δt期間內SDA線(xiàn)上沒(méi)有變化,即等待確認比它高優(yōu)先級的MCU(A)不使用總線(xiàn)后,MCU(B)才能占用總線(xiàn),發(fā)送起始信號;MCU(C)優(yōu)先級最低,它需要測試等待周期2Δt,只有當MCU(A)、MCU(B)都不占用總線(xiàn)時(shí)(SDA一直保持為1),MCU(C)才能占用總線(xiàn)發(fā)送起始信號。

在實(shí)際應用中,還要注意BUSY線(xiàn)所用的中斷腳INT0/INT1需初始化為開(kāi)中斷,并設定為下跳沿觸發(fā)。當各MCU需控制總線(xiàn)進(jìn)行主發(fā)送或主接收時(shí),需先關(guān)掉INT0/INT1需初始化

【模擬I2C總線(xiàn)多主通信的通用軟件包】相關(guān)文章:

MAX517與單片機的I2C總線(xiàn)數據通信03-18

基于VHDL的I2C總線(xiàn)控制核設計03-18

基于CPLD的系統中I2C總線(xiàn)的設計03-18

一種實(shí)現載波監聽(tīng)多點(diǎn)接入/沖突檢測的多主RS485總線(xiàn)03-19

I2C總線(xiàn)在uClinux操作系統下的驅動(dòng)程序設計11-22

基于CAN總線(xiàn)的EV電控系統通信的設計與開(kāi)發(fā)03-19

基于GPIB總線(xiàn)技術(shù)的TD-SCDMA通信儀表控制系統設計03-07

利用EPP并行口實(shí)壩PC機之間通信的CAN總線(xiàn)設計03-19

在Windows2000下用多線(xiàn)程實(shí)現1394串行總線(xiàn)通信03-20

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频