I2C总线接口协议设计及FPGA的实现
通信技术
2006年第6期
I2C总线接口协议设计及FPGA的实现
陈穗光 葛建华
(西安电子科技大学综合业务网国家重点实验室,陕西西安710071)
摘 要:简单介绍了I2C总线规范和提出一种基于FAGA的I2C总线接口协议的设计方法,并给出了仿真结果。
关键词:I2C总线;FPGA;VerilogHDL中图分类号:TP311 文献标识码:A
数据的转换,在转换过程中串行数据的输入与输出必须满足
I2C总线规范。
0 引言
I2C总线是Philps公司开发的一种用于芯片间通讯的串
行传输总线,它由串行时钟线SCL和串行数据线SDA完成全双工数据传送。由于它具有连线少、允许多主机控制、具有总线仲裁和同步等特点,被广泛应用到各个领域,并已经成为一种世界性的工业标准。本文结合现行的研究项目,利用ver2ilogHDL语言在FPGA上设计实现I2C总线接口功能。图2 I2C模块结构
1 I2C总线的基本原理I2C总线数据传输时,在时钟高电平期间数据线上必须图2为I2C总线接口框图,主要包括以下几个单元。分频器:由FPGA的锁相环输出的稳定时钟信号,由于频率很高所以必须经过分频模块输出满足I2C总线要求的数据传输速率。
I2C总线接口控制时序逻辑块:I2C总线数据传输的所
保持有稳定的逻辑电平状态,高电平为数据1,低电平为数据0。只有在时钟线为低电平时,才允许数据线的电平状态变化。
起始信号:在时钟线保持高电平期间,数据线出现由高电平向低电平变化时启动I2C总线,为I2C总线的起始信号。
终止信号:在时钟线保持高电平期间数据线上出现由低到高的电平变化时将停止I2C总线的数据传送,为I2C总线的终止信号。
应答信号:I2C总线数据传送时,每传送一个字节数据后都必须有应答信号。应答信号在第九个时钟位上出现,接收器输出低电平为应答信号(A),输出高电平则为非应答信号(A)。图1为一次完整的数据传输。
有时序控制逻辑都由它产生,是这个I2C模块的核心。
数据锁存器:根据读写使能信号(r/w)存储I2C己接收的或待发送的数据。
移位寄存器:在时序控制逻辑模块的控制下根据读写使能信号(r/w)对数据进行正确地处理。
3 verilogHDL代码设计
由于I2C总线传输协议可知,I2C在传输过程中存在着几个固定的状态,因此我们采用同步状态机来设计I2C模块。主状态机共有5个状态:空闲(Idle),开始(Start),发送数据(Tx),接收数据(Rx),停止(Stop)。
图1 I2C总线的一次完整的数据传送
图3 I2C模块主状态机状态转移图
2 I2C模块设计与实现
按照设计要求需要有8位双向数据线(data-bus),1位时钟线(clk),2位控制线(drive和r/w)、一位握手线(mcf)、一位串行时钟线(scl)及一位串行数据线(sda)共计14位输入输出引线。EDA模块的主要功能是完成并行数据与串行
Idle:I2C总线处在空闲状态。Start:当drive信号为高
电平时开始运作I2C模块,且根据(r/w)判断进入下一状态。
Tx:当(r/w)为“0”时传输数据。Rx:当(r/w)为“1”时接收数
据。Stop:当数据传输完毕,跳入Stop状态。状态转移图如图3所示。
(下转第38页)
收稿日期:2006-08-18 第一作者 陈穗光 男 27岁 助理工程师 硕士研究生
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
38 山 西 电 子 技 术 2006年
2002.
[4] 戴英侠,连一峰,王航.系统安全与入侵检测[M].北
京:清华大学出版社,2002.
[5] HanJiawei,KamberM,范明,等.数据挖掘概念与技术
[M].北京:机械工业出版社,2001.
参考文献
[1] 唐正军.入侵检测技术导论[M].北京:机械工业出版
社,2004.[2] 罗守山.入侵检测[M].北京:北京邮电大学出版社,
2003.[3] 朱明.数据挖掘[M].合肥:中国科学技术大学出版社,
ApplicationofDataMiningTechnologyinIntrusionDetection
LiYong LiJian ZengYin
(SouthwestPetroleumUniversity,ChengduSichuan610500,China)
Abstract:Nowadays,theintrusiondetectiontechnologyhasbecomegraduallyoneoftheheatedly2researchedprogramsforsecuri2tyofnetworkinformation.Thedataminingisaprogressinwhichthenewandusefulknowledgeissoughtoutfromnumerousdata.Thecommontechnologyandtheapplicationofdatamininginintrusiondetectionarediscussedinthispaper.Basedonthedataminingtechnology,themodeloftheintrusiondetectingisformed.
Keywords:securityofNetworkinformation;intrusiondetection;datamining;model(上接第20页)
4 仿真验证
对I2C总线串口设计的系统调试主要是看串行时钟线(scl)及串行数据线(sda)的输出是否满足I2C总线规范。为此我们将I2C模块实例化了两个模块master和slave,并设计了顶层模块调用master和slave,使用了modelsim6.0进行了仿真。从图4和图5明显可知,当master的drive线置高电平且r/w线为低电平时,I2C模块运作,产生起始信号Start,且在sda线发送8位数据,且在scl线发送9个时钟脉冲信号,等待mcf,若slave响应,则mcf为高电平,继续发送
下一字节数据,直到产生终止信号Stop,sda线和scl线置高电平,发送数据终止,等待下一个起始信号Start。同样的,当slave的drive线置高电平时,I2C模块运作,r/w线为’1’时接收数据功能启动。当mcf为’1’时,slave响应master,且在这时刻才能保证接收数据的准确性,当出现终止信号Stop时数据接收终止,等待下一个起始信号Start。图4和图5准确反映了master发送3字节数据和slave准确接收3字节数据的功能。
图4 master时序仿真图
图5 slave时序仿真图
5 结论
从以上对master和slave接口的读写时序的模拟仿真结
果可以看出,整个时序满足I2C总线协议的时序要求,并且所编写的I2C接口模块的VerilogHDL代码是可综合的。本人已成功下载至altera公司EP2S90F1020C5器件上且模拟了I2C总线接口功能,基本实现项目要求。
参考文献
[1] 何立民.I2C总线应用系统设计[M].北京航空航天大
学出版社,2004.[2] 夏宇闻.Verilog数字系统设计教程[M].北京航空航天
大学出版社,2005.[3] 吴继华,王诚.AlteraFPGA/CPLD设计(高级篇)[M].
人民邮电出版社,2005.
TheDesignofI2C2BusInterfaceBasedonFPGA
ChenSui2guang GeJian2hua
(NationalKeyLaboratory.ofIntegratedServiceNetworks,XidianUniversity,Xi’anShaanxi710071,China)
Abstract:ThispaperintroducestheprincipleoftheI2Cbusbrieflyfirst.ThestructuredesignandtheVerilogHDLcodedesign
ofI2CbusinterfacebasedonFPGAarealsogiven.Itdesignsthemasterandslavemodulesaccordingtothepracticalprogram,andthehardwarecircuittestcanmeetthetimingrequirementofI2Cbus.Finally,itshowstheresultofsimulation.
Keywords:I2C2bus;FPGA;VerilogHDL
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
因篇幅问题不能全部显示,请点此查看更多更全内容