關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于VHDL/CPLD的I2C串行總線控制器設計及實現

        基于VHDL/CPLD的I2C串行總線控制器設計及實現

        作者: 時間:2010-05-25 來源:網絡 收藏

          接口用于的驅動和接收,當為主機時,I2C接口必須按I2C規范驅動總線;當總線為從機時,I2C必須能正確接收滿足I2C總線規范的信號。I2C規范對總線的時序作了詳細的定義,在不同模式下這些參數的具體數值都有明確的規定。“SCL/START/STOP 產生”狀態機的狀態轉換如圖4所示, I2C接口主狀態機的轉移圖如圖5所示。

        基于VHDL/CPLD的I2C串行總線控制器設計及實現

        基于VHDL/CPLD的I2C串行總線控制器設計及實現

          4 仿真與硬件

          本文中仿真工具采用Mentor公司的ModelSim Plus 6.0 SE,其顯著的優越性能是提供了一個混合語言仿真環境,已在產業界廣泛應用。為了測試驗證系統的功能,本文采用了Atemel公司提供的采用I2C總線協議的AT24C02 E2PROM芯片(256B 8bit)的VerilogHDL仿真模型(AT24C02.v)作為從器件對象,用VerilogHDL語言構建了testbench(測試向量),對所I2C總線進行仿真。

          圖6和圖7為μC通過I2C總線控制器對E2PROM進行數據寫/讀的仿真波形(將數據FFH~0HH寫進地址0~255單元,然后將它們再按順序讀的模式讀出)。往E2PROM寫入時需要給出所寫起始單元的地址(圖6中為00H); 從E2PROM順序讀時不用給出起始單元地址而從當前地址處開始讀(本文中寫完256B數據后,地址指針又回到0處)。相關狀態及數據已在圖中作了標示。由此可見,所的總線控制器完全符合標準I2C協議的時序要求。

        基于VHDL/CPLD的I2C串行總線控制器設計及實現

        基于VHDL/CPLD的I2C串行總線控制器設計及實現

          本文設計的系統平臺采用Xilinx公司的XC95216-10-PQ160 CPLD芯片,總邏輯門個數為4 800。經綜合、適配、布局布線后占用器件資源的情況為:宏單元120/216(56%)、寄存器111/216(52%)、功能塊331/432(77%)、乘積項分配器544/1080(51%)。可見,系統占用約一半的資源,相當精簡。整個系統下載到CPLD后在2MHz時鐘頻率下運行正常。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 台东县| 普格县| 渑池县| 青川县| 鹤山市| 石城县| 邢台市| 寿宁县| 浦东新区| 綦江县| 盐津县| 迁安市| 宁武县| 中牟县| 利川市| 宁强县| 仪陇县| 营山县| 齐河县| 宁津县| 新昌县| 望都县| 灵武市| 贡觉县| 驻马店市| 政和县| 杭锦旗| 江安县| 天台县| 新龙县| 永修县| 西盟| 济阳县| 安国市| 吉安县| 康马县| 尖扎县| 安泽县| 北安市| 赤壁市| 安乡县|