用 Verilog HDL 实现 I2C 总线功能
文章作者:天津科技大学电子信息与自动化学院 路永坤
文章出处:电子技术应用
摘要:简述了 I2C 总线的特点;介绍了开发 FPGA 时 I2C 总线模块的设计思想;给出并解释了用 Verilog HDL 实现部分 I2C 总线功能的程序,以及 I2C 总线主从模式下的仿真时序图. 关键词:I2C 总线 FPGA Verilog HDL 时序
开发 FPGA 时,利用 EDA 工具设计芯片实现系统功能已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向 发展.在软件设计过程中,越来越强调模块化设计.I2C 总线是 Philips 公司推出的双向两线串行通讯标准,具有接口线少, 通讯效率高等特点.把 I2C 总线设计成相应的模块,有利于相关 FPCA 的开发. 目前有一些介绍相关开发的资料,但都是利用 VHDL 语言或 AHDL 语言实现的.本文给出利用 Verilog HDL 语言设计的 I2C 总线模块.
1 I2C 总线概述
I2C 总线系统由两根总线即 SCL(串行时钟)线和 SDA(串行数据)线构成.这种总线可以设计成很多种通讯配置,但本文只 讨论主从系统的应用.主器件控制总线通讯,开始/结束传送,发送信息并产生 I2C 系统时钟.在写操作过程中,从器件一旦 被主控器件寻址,就执行特定的相应功能.在读操作过程中,主控器件从从器件那里获得数据.在整个主从传送过程中,所有 的事件都通过主控器件的 SCL 时钟线达到同步.连到总线上的器件的接口形式必须是漏极开路或集电极开路输出状态.通过上 拉电阻,使得两根总线在空闲的状态下都为高电平状态.因此 I2C 总线上具有线与功能,即总线上的所有器件都达到高电子状 态时,I2C 总线才能达到高电平状态,从而使总线上的高速器件和慢速器件工作同步.
在 I2C 协议中,从器件地址是一个唯一的 7 位地址.接下来是一个读写方向标志位,读状态是高电平,写状态是低电子.
2 I2C 模块的设计与实现
根据 I2C 协议中传输过程的特点,I2C 模块可以划分为字节发送模块,字节接收模块,开始条件模块,停止条件模块.其 中,字节发送模块,字节接收模块和停止条件模块为基本模块.在开始条件模块中,因为需要发送从器件地址,所以要调用字 节发送模块.
下面给出用 Verilog HDL 语言实现字节发送模块的关键程序.相关变量的声明在此略去.程序在 Max+PlusII 环境下编译, 调试,仿真.
assign en_sdao=tempen_sdao;//设置 SDA 三态输出使能
assign send_byte_over=tempsend_byte_over;
assign NO_ACK=tempNO_ACK;
assign sdao=tempsda;
assign sclo=tempscl;
always@(posedge send_byte_clk)
begin
case(send_byte_zt)
sendbit 1:
begin
if(send_byte_num==0)
begin
shiftdata[7:0]=indata[7:0];
end
shiftdata=shiftdata<=2)
begin
send_byte_zt=sendbit2;
delay_counter=0;
end
else
begin
delay_counter=delay_counter+1;
send_byte_zt=send_byte_zt;
end
end
sendbit2:
begin
tempsc1=0; //SCL 置零
send_byte_zt=delay_2;
end
- verilogcase > 用Verilog HDL 实现 I2C 总线功能
-
用Verilog HDL 实现 I2C 总线功能
下载该文档 文档格式:PDF 更新时间:2008-06-07 下载次数:0 点击次数:5文档基本属性 文档语言: 文档格式: pdf 文档作者: 王长花 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: khrj 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- PDF格式下载
- 更多文档...
-
上一篇:creation of asteroids game using verilog and xilinx ...
下一篇:Verilog中的高级结构
点击查看更多关于verilogcase的相关文档
- 您可能感兴趣的
- verilogcase verilog中case语句 verilog veriloghdl systemverilog verilog语言 verilog教程 异步fifoverilog 全加器verilog veriloggenerate
- 大家在找
-
- · 畜禽营养与饲料教案
- · X62W数控改造设计
- · 大一廉洁修身论文
- · 流水灯c程序51单片机
- · 微机接口技术与原理
- · 西班牙斗牛舞视频儿童
- · 中华人民共和国物权法
- · 东财考研资料
- · 电子类课程设计题目
- · lcd论坛
- · 花叶常春藤图片
- · 2011英语高考听力mp3
- · 酒店餐饮部实习报告
- · 中国塑胶五金网
- · 社区党建工作制度汇编
- · 马克思主义哲学方法论
- · autocad2010注册器
- · 家族企业外文文献原文和译文
- · 加速度传感器类型
- · 语文导学方案答案
- · 腰椎牵引床
- · 乐讯手机网
- · 洪恩gogo学英语pdf
- · kinkikids爱情
- · dnf悲鸣神圣的刀刃
- · 动物世界老虎杀狮子
- · 54771部队74分队
- · 网页图片保存能手教程
- · 数据库原理王珊
- · 长春220kv变电站简介
- 赞助商链接