一種串行總線控制方法及裝置的制造方法
【技術領域】
[0001]本發明涉及計算機技術領域,尤其涉及一種串行總線控制方法及裝置。
【背景技術】
[0002]總線(BUS)是指通過分時復用的方式,將信息從一個或多個源部件傳送到一個或多個目的部件的一組傳輸線。按照傳輸數據的方式劃分,可以分為串行總線和并行總線。串行總線中,二進制數據逐位通過一根數據線發送到目的器件;并行總線的數據線通常超過2根。
[0003]串行總線可以為內部集成電路(Inter Integrated-circuit Bus,I2C)總線、串行管理接口 (Serial Management Interface,SMI)總線等等,SMI總線和I2C總線工作原理類似,下面以I2C總線為例進行說明。
[0004]I2C總線是由Philips開發的一種簡單的雙向兩線串行總線,能夠有效實現微型電子器件之間的控制,I2C總線涉及到的器件包括:發送器、接收器、主設備(MASTER)、從設備(SLAVE);發送器:發送數據到總線的器件;接收器:從總線接收數據的器件;主設備:初始化發送、產生時鐘信號和終止發送的器件,又稱為主設備;從設備:被主設備尋址的器件,又稱為從設備。
[0005]I2C總線包括兩條總線線路:數據線SDA和時鐘線SCL,在I2C協議中,SDA和SCL每個連接到總線的器件可以通過唯一的地址和主設備/從設備關系軟件設定地址,主設備既可以充當主設備發送器,也可以充當主設備接收器。先以I2C總線為例,簡要說明下串行總線的數據傳輸過程:I2C總線的數據傳輸格式參考圖1,主設備在起始條件S后發送一個命令,該命令中首先是從設備地址,該從設備地址長度為7比特,緊接著第8位為數據方向位R/W,0可表示發送(寫)數據,I可表示請求(讀)數據。被尋址的從設備接收到該命令后,回復給主設備一個確認ACK ;若當前數據傳輸周期為發送周期,主設備接收到該ACK后,將數據以字節為單位串行送上SDA ;若當前數據傳輸周期為請求周期,則從設備在發送ACK后,將數據以字節為單位串行送上SDA ;接收器接收到數據后,給出確認ACK ;發送器收到該確認ACK后可以繼續發送下一組數據,直至主設備產生停止位P則終止。
[0006]現在很多電子系統都是模塊化設計,包括一個模板和多個子板(又稱為子卡),母板提供若干子卡接插件接口,該接插件接口支持不同類型的子卡,具體實現時,將一個帶電可擦寫可編程只讀存儲器(Electrically Erasable Programmable Read-Only Memory,EEPROM)放置在一個子卡位置上,該EEPROM存儲一組子卡信息,當系統啟動時,母板上的系統控制器通過I2C總線讀取EEPROM內的信息,根據讀取的信息判斷子卡類型,完成初始化工作。
[0007]上述方法雖然實現較為簡易,但是I2C總線中分配給EEPROM的地址段為1010 000至1010 111,其中,前四位固定為1010,只有后三位為用戶可配置的,如此,該系統中母板最多可以掛接8個子卡,不能滿足用戶使用需要。
[0008]目前常利用I2C multiplexer PCA9548芯片進行串行總線控制,可以將一個上行SCL/SDA通道擴展出多個下行的I2C通道,利用命令選擇與上行通道接通的下行通道,同時保證上行通道與其他下行通道斷開。PCA9548芯片一次只能選中一個下行通道,每個下行通道可以掛接8個子卡,PCA9548芯片有8個下行通道,可同時掛接64個子卡,基本可以保證I2C總線在模塊化電子系統應用需求。但是該I2C總線的實現方式中,PCA9548芯片成本較高,且I2C總線的兩位信號都要通過芯片進行切換,PCB(印刷電路板)走線較多,占用PCB面積,增加了 PCB的開銷。
【發明內容】
[0009]本發明的實施例提供了一種串行總線控制方法及裝置,能夠低成本控制串行總線的多通道傳輸。
[0010]本發明提供了如下方案:
[0011]一種串行總線控制方法,包括:
[0012]對待傳輸數據的主設備接口和從設備接口進行檢測;
[0013]當檢測到所述主設備接口為低電平時,開啟主從傳輸開關,將所述主設備發送的低電平信號傳輸至所述從設備,當檢測到所述主設備接口為高電平時,關閉主從傳輸開關,從設備接口通過外接第一上拉電阻輸出高電平信號;
[0014]當檢測到所述從設備接口為低電平時,開啟從主傳輸開關,將所述從設備發送的低電平信號傳輸至所述主設備,當檢測到所述從設備接口為高電平時,關閉從主傳輸開關,主設備接口通過外接第二上拉電阻輸出高電平信號。
[0015]一種串行總線控制裝置,所述裝置包括:檢測模塊、第一控制模塊、第二控制模塊;其中,
[0016]檢測模塊,用于對待傳輸數據的主設備接口和從設備接口進行檢測;
[0017]第一控制模塊,用于當檢測模塊檢測到所述主設備接口為低電平時,開啟自身的主從傳輸開關,將所述主設備發送的低電平信號傳輸至所述從設備,當檢測到所述主設備接口為高電平時,關閉所述主從傳輸開關,從設備接口通過外接第一上拉電阻輸出高電平信號;
[0018]第二控制模塊,用于當檢測模塊檢測到所述從設備接口為低電平時,開啟自身的從主傳輸開關,將所述從設備發送的低電平信號傳輸至所述主設備,當檢測到所述從設備接口為高電平時,關閉所述從主傳輸開關,主設備接口通過外接第二上拉電阻輸出高電平信號。
[0019]由上述本發明的實施例提供的技術方案可以看出,本發明實施例提供的串行總線控制方法及裝置,通過對待傳輸數據的從設備通道的主設備接口和從設備接口進行檢測,當檢測到主設備接口或從設備接口為低電平,開啟主從傳輸開關或從主傳輸開關,實現低電平透傳;檢測到主設備接口或從設備接口為高電平,關閉主從傳輸開關或從主傳輸開關,通過外接上拉電阻實現高電平傳輸,能夠保證從設備通道的主設備接口和從設備接口的信號一致,實現了主從設備之間的數據傳輸,利用可編程邏輯器件即實現串行總線的多通道控制,不僅能夠滿足用戶使用需要,實現成本低,且無需占用PCB面積,進一步減少物料成本。
【附圖說明】
[0020]為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0021]圖1為I2C總線數據傳輸格式的示意圖;
[0022]圖2為本發明實施例提供的串行總線控制方法的實現流程圖;
[0023]圖3為本發明實施例一提供的串行總線控制方法的實現流程圖;
[0024]圖4a為本發明實施例提供的四選一的多路分發器件的示意圖;
[0025]圖4b為本發明實施例提供的四選一的多路選擇開關的示意圖;
[0026]圖5為本發明實施例二提供的串行總線控制方法的實現流程圖;
[0027]圖6為本發明實施例三提供的串行總線控制方法的實現流程圖;
[0028]圖7為本發明實施例四提供的串行總線控制方法的實現流程圖;
[0029]圖8為本發明實施例提供的串行總線控制裝置的結構示意圖;
[0030]圖9為本發明實施例一提供的串行總線控制裝置的結構示意圖;
[0031]圖10為本發明實施例一中主設備發起總線操作時的時序轉換關系示意圖;
[0032]圖11為本發明實施例一種從設備發起總線操作時的時序轉換關系示意圖。
【具體實施方式】
[0033]為便于對本發明實施例的理解,下面將結合附圖以幾個具體實施例為例做進一步的解釋說明,且各個實施例并不構成對本發明實施例的限定。
[0034]串行總線引腳接口大都是采用漏極開路(OD門)的電路結構,漏極開路輸出外接上拉電阻輸出高電平,當芯片的引腳定義為漏極開路輸出,驅動該芯片則會輸出低電平,若要輸出高電平,并不需要對該芯片進行驅動,只需依靠外部上拉電阻即可;而串行總線引腳接口采用的OD門,依靠外部上拉電阻實現高電平輸出。
[0035]圖2為本發明實施例提供的串行總線控制方法的實現流程圖,如圖2所示,所述串行總線控制方法的執行主體可以為可編程邏輯器件,包括下述步驟:
[0036]步驟201,對待傳輸信號的主設備接口和從設備接口進行檢測;
[0037]這里,一個主設備可與多個從設備進行通信,可編程邏輯器件與主設備和從設備相連,具體可通過自身的管腳與主設備接口和從設備接口相連,通過與待傳輸信號的主設備接口和從設備接口相連的管腳對主設備接口和從設備接口進行檢測。
[0038]步驟202,當檢測到所述主設備接口為低電平時,開啟主從傳輸開關,將所述主設備發送的低電平信號傳輸至所述從設備,當檢測到所述主設備接口為高電平時,關閉主從傳輸開關,從設備接口通過外接第一上拉電阻輸出高電平信號;
[0039]這里,所述主從傳輸開關,用于開啟或關閉主設備向從設備發送信號的通道。
[0040]步驟203,當檢測到所述從設備接口為低電平時,開啟從主傳輸開關,將所述從設備發送的低電平信號傳輸至所述主設備,當檢測到所述從設備接口為高電平時,關閉從主傳輸開關,主設備接口通過外接第二上拉電阻輸出高電平信號。
[0041]這里,所述從主傳輸開關,用于開啟或關閉從設備向主設備發送信號的通道。
[0042]本發明實施例提供的串行總線控制方法,通過對待傳輸數據的從設備通道的主設備接口和從設備接口進行檢測,當檢測到主設備接口或從設備接口為低電平,開啟主從傳輸開關或