基于Verilog的SMBus總線控制器的設計與實現
發布時間:2007/8/23 0:00:00 訪問次數:1279
作者:陳宇杰 付安新
摘要:SMBus是一種高效的同步串行總線。通過分析SMBus總線協議,提出了一種運行于基于PCI-Express技術的橋接芯片上的SMBus控制器的設計方案,并且用Verilog語言描述,最后在Altera公司的FPGA上得以實現。通過仿真測試,證明該方法是穩定有效的。
關鍵詞:SMBus 多μC通訊系統 Verilog
SMBus是Intel公司于1995年發布的一種雙向兩線串行通訊總線標準,具有接口線少、通訊效率高等特點。應用于多μC(microcontroller)通訊系統中,可以滿足絕大多數情況下對傳輸速率、信號穩定性等性能的要求,且相對于并行總線節省了大量的硬件資源。因此多μC通訊系統采用SMBus總線來實現是一種很好的解決方案。
本文提出一種基于Verilog的SMBus總線控制器的設計方法。該方法將總線控制器用有限狀態機來實現,并將其應用于基于PCI-Express技術的橋接芯片中。通過仿真測試,證明該方法是穩定有效的。
1 SMBus規范分析
SMBus由兩根總線即串行數據線(SDA)和串行時鐘線(SCL)構成。主要應用于主從系統。主器件控制總線操作,包括開始/結束傳輸、發送信息并產生SMBus總線系統時鐘等。在整個傳輸過程中,所有的傳送都通過主控的SCL來同步。為使總線有“線與”功能,所有器件的SMBus接口都必須是漏極開路或集電極開路的,并且通過上拉電阻使總線在空閑狀態下為高電平狀態。這種結構能使不同速度的器件同步運行。圖1是典型的SMBus總線結構圖。
1.2 SMBus通訊時序
總線上的所有器件都有一個唯一的地址,且都可以工作在傳送或接收方式。因此,有四種工作模式,即主發送、主接收、從發送和從接收。SMBus總線還具有總線仲裁功能,保證在同一時間只有一個主器件在控制總線。
圖2是讀/寫一個字節的時序格式。圖中白色塊是主器件控制SDA線,灰度塊是從器件控制SDA線,SCL線一直都由主器件控制。由圖可見,傳輸由一個開始條件開始,并由一個結束條件中止。SDA上的數據在SCL高電平時必須保持穩定,不允許有電平跳變;SDA電平只有在SCL低電平時才可以改變。開始條件和結束條件是特殊的,可以在SCL高電平時改變SDA的電平,在SCL高是電平時,開始條件是把SDA從高電平拉到低電平,而結束條件則把SDA從低電平拉到高電平。開始條件和結束條件的這種定義方法可以避免電平與傳輸的數據相混淆。
SMBus協議定義了十二種傳輸命令格式,其中以讀/寫一個字節命令格式最為重要。本文所設計的控制器主要用這兩種命令格式,所以本文主要分析這兩種格式,其它的與之類似,可以很容易地加以擴展,在此略過。
下面分析圖2的時序:
1)總線空閑時,SCL和SDA保證為高電平,等待開始條件。
2)主控產生開始條件,表明要發起傳輸。
3)主控傳送一個7位地址和一個寫位,指定目標器件和寫方式。
4)目標器件應答。
5)主控傳送一個8位Command Code,指定本次操作類型。
6)目標器件應答。
7)如果是write byte,主控直接傳送1byte數據;如果是read byte,則要產生restart條件,后跟目標地址和一個讀位,然后開始接收目標數據。
8)由接收方應答。
9)主控發出結束條件,結束整個傳輸。
作者:陳宇杰 付安新
摘要:SMBus是一種高效的同步串行總線。通過分析SMBus總線協議,提出了一種運行于基于PCI-Express技術的橋接芯片上的SMBus控制器的設計方案,并且用Verilog語言描述,最后在Altera公司的FPGA上得以實現。通過仿真測試,證明該方法是穩定有效的。
關鍵詞:SMBus 多μC通訊系統 Verilog
SMBus是Intel公司于1995年發布的一種雙向兩線串行通訊總線標準,具有接口線少、通訊效率高等特點。應用于多μC(microcontroller)通訊系統中,可以滿足絕大多數情況下對傳輸速率、信號穩定性等性能的要求,且相對于并行總線節省了大量的硬件資源。因此多μC通訊系統采用SMBus總線來實現是一種很好的解決方案。
本文提出一種基于Verilog的SMBus總線控制器的設計方法。該方法將總線控制器用有限狀態機來實現,并將其應用于基于PCI-Express技術的橋接芯片中。通過仿真測試,證明該方法是穩定有效的。
1 SMBus規范分析
SMBus由兩根總線即串行數據線(SDA)和串行時鐘線(SCL)構成。主要應用于主從系統。主器件控制總線操作,包括開始/結束傳輸、發送信息并產生SMBus總線系統時鐘等。在整個傳輸過程中,所有的傳送都通過主控的SCL來同步。為使總線有“線與”功能,所有器件的SMBus接口都必須是漏極開路或集電極開路的,并且通過上拉電阻使總線在空閑狀態下為高電平狀態。這種結構能使不同速度的器件同步運行。圖1是典型的SMBus總線結構圖。
1.2 SMBus通訊時序
總線上的所有器件都有一個唯一的地址,且都可以工作在傳送或接收方式。因此,有四種工作模式,即主發送、主接收、從發送和從接收。SMBus總線還具有總線仲裁功能,保證在同一時間只有一個主器件在控制總線。
圖2是讀/寫一個字節的時序格式。圖中白色塊是主器件控制SDA線,灰度塊是從器件控制SDA線,SCL線一直都由主器件控制。由圖可見,傳輸由一個開始條件開始,并由一個結束條件中止。SDA上的數據在SCL高電平時必須保持穩定,不允許有電平跳變;SDA電平只有在SCL低電平時才可以改變。開始條件和結束條件是特殊的,可以在SCL高電平時改變SDA的電平,在SCL高是電平時,開始條件是把SDA從高電平拉到低電平,而結束條件則把SDA從低電平拉到高電平。開始條件和結束條件的這種定義方法可以避免電平與傳輸的數據相混淆。
SMBus協議定義了十二種傳輸命令格式,其中以讀/寫一個字節命令格式最為重要。本文所設計的控制器主要用這兩種命令格式,所以本文主要分析這兩種格式,其它的與之類似,可以很容易地加以擴展,在此略過。
下面分析圖2的時序:
1)總線空閑時,SCL和SDA保證為高電平,等待開始條件。
2)主控產生開始條件,表明要發起傳輸。
3)主控傳送一個7位地址和一個寫位,指定目標器件和寫方式。
4)目標器件應答。
5)主控傳送一個8位Command Code,指定本次操作類型。
6)目標器件應答。
7)如果是write byte,主控直接傳送1byte數據;如果是read byte,則要產生restart條件,后跟目標地址和一個讀位,然后開始接收目標數據。
8)由接收方應答。
9)主控發出結束條件,結束整個傳輸。
上一篇:智能脫扣器的軟硬件設計
上一篇:免電源的電話使用計時器的設計
深圳服務熱線:13751165337 13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式