摘要 基于對I2C總線協(xié)議的理解,和所設計的白光LED驅動芯片的性能要求,本文采用HDL語言設計了I2C總線接口電路。Verilog HDL是硬件描述語言HDL的一種,用于數(shù)字電子系統(tǒng)設計。
關鍵詞I2C;多主通信;設計
中圖分類號 TN43文獻標識碼A文章編號1673-9671-(2009)111-0008-01
I2C總線是PHILIPS開發(fā)的,一種用于內部IC控制的雙向兩線串行總線協(xié)議。在I2C總線中僅需要SDA(串行數(shù)據(jù)線)和SCL(串行時鐘線)就可以實現(xiàn)多個器件之間主從式的通信。在I2C總線上要實現(xiàn)功能的擴展非常容易,只需要在總線上“掛上”相應功能的I2C兼容芯片就行了,在7位地址模式中最多可達128個。I2C的通信速率也令人滿意,標準模式的I2C通信可達100Kbit/s,快速模式可達400 Kbit/s,最新的高速模式更加達到了3.4Mbit/s。實現(xiàn)I2C總線通信協(xié)議主要有兩種方法:(1)利用MCU對兩根I/O口線進行軟件編程,模擬I2C總線的SCL和SDA時序要求;(2)使用專用I2C總線控制核,但受其主機(host)接口方式和時鐘頻率的限制,在有些場合應用并不方便。
1I2C總線接口仿真
按照HDL語言的數(shù)字電路設計流程,對I2C總線接口進行了設計,I2C總線接口程序的構成一般如圖1所示:
由于本文所設計的總線接口電路用于白光LED的驅動,不會作為主機在總線上出現(xiàn),所以不需要產生時鐘SCL信號,對字節(jié)傳輸控制模塊和數(shù)據(jù)移位寄存器功能要求也較低,I2C總線只需要為驅動芯片接口部分提供一個占空比可控的周期信號(記為PWM)即可??偩€上主機產生開始信號,發(fā)送地址位找到驅動電路,然后發(fā)送一字節(jié)的數(shù)據(jù),接口程序將該數(shù)據(jù)轉變成相應占空比的周期信號提供給驅動電路,使驅動電路處于不斷的開關狀態(tài),進而控制白光LED的亮度(在下一章有詳細的敘述)。因為I2C總線傳輸?shù)臄?shù)據(jù)是8位的,包含最大的信息量為28=256,理論上可以達到對白光LED 256級的亮度控制,實際使用時人眼區(qū)分開的亮度級別要少得多。同時受驅動芯片工作原理的限制,PWM信號頻率在50Hz-1KHz之間,占空比不能太小。采用Mentor公司的ModelSim仿真軟件對Verilog程序進行了仿真,軟件版本為:ModelSim SE 6.1f。ModelSim是編譯型仿真器,仿真速度快,功能強大。
從圖2中可以看出開始、地址、讀寫、應答、數(shù)據(jù)和停止信號,其中地址為二進制數(shù)0100111,讀寫位為“0”表示寫數(shù)據(jù),寫入的數(shù)據(jù)為二進制數(shù)11000000,即十進制數(shù)192,與最大數(shù)據(jù)255的比為0.75,則輸出PWM信號占空比為75%,占空比完全符合標準,達到設計要求。
在仿真、綜合之后本文還對所設計的I2C總線接口程序進行了基于FPGA器件的驗證。FPGA(Field Programmable Gate Array:現(xiàn)場可編程門陣列)是可編程邏輯器件(PLD:Programmable Logic Device)高級形式的一種,PLD是作為一種通用集成電路生產的,在PLD器件中,集成了各種邏輯門、寄存器、嵌入式系統(tǒng)塊,采用PLD器件設計電子系統(tǒng),設計者只要對它編程就可以實現(xiàn)所需要的功能,而且可以反復修改、反復編程、直到滿足設計要求,相對于專用集成電路(ASIC)的設計,非常方便和靈活,設計周期大大縮短。目前PLD的集成度越來越高,速度也越來越快,不僅能實現(xiàn)一般的邏輯功能,還可以把微處理器、DSP、存儲器、標準接口等功能部件全部集成在其中,真正實現(xiàn)SOC。
2I2C通信程序設計
(1)每次通信的起始條件和停止條件均由主機發(fā)起,從機只是負責監(jiān)聽主機信號。起始條件和停止條件是通過置位I2CON中的STA和STO位達到的。
(2)當主機獲得總線,成功發(fā)送啟動條件后,地址和數(shù)據(jù)的發(fā)送是通過寫數(shù)據(jù)寄存器I2DAT達到的。
(3)每次發(fā)送地址和數(shù)據(jù)后應該查詢狀態(tài)寄存器I2STAT檢查數(shù)據(jù)發(fā)送狀態(tài)以進行下一步動作。
(4)每次通信完畢后主機和從機均應該釋放總線。
參考文獻
[1]張昆.基于CPLD的系統(tǒng)中I2C總線的設計[J].電子技術應用,2003(11).
[2]何立民.I2C總線應用系統(tǒng)設計[M].北京:北京航空航天大學出版社,2000.