搜索
您的当前位置:首页正文

基于FPGA的ⅡC总线控制器设计

来源:哗拓教育
第25卷第l期 中原工学院学报 VoI.25 NO.1 2O14年2月 J()URNAI ()F ZH()NGYUAN UNIVERSITY OF FECHNO1 ()GY Feb.,2Ol4 文章编号:1671—6906(2014)01—001l—O4 基于FPGA的IIC总线控制器设计 董秀洁,王莉萍 (中原工学院,郑州450007) 摘 要:阐述r IIC总线的ⅢL作原理,提出j,一种基于FPC-A的IIC总线控制器的实现片法.利用自顶向下的设计方法, 设计j-IIC总线控制器有限状态机,采用硬件描述语言VHDI 实现了IIC总线控制器核的没计,给出了控制器仿真结 果,并进行硬件测试.结果表明,该控制器满足IIC总线功能及时序要求,工作稳定可靠. 关键词: 有限状态机;VHDI ;IIC;控制器 中图分类号:TN402 文献标志码: A I)()1:l0.3969/j.issn.167l 6906.2014.01.003 IIC总线是双向、两线、串行、多主控接口标准,具 别通过上拉电阻连接到正的电源电压,实现全双工同 有总线仲裁机制,适合在器件之间进行短距离、非经常 步数据传送[ I. 性的数据通信,由于其使用两线的硬件接口简单,在微 IIC通信协议是基于起止状态识别的.起始信号 电子通信控制领域被广泛应用 .现场可编程门阵 表现为在SCI 高电平时SDA线从高到低,停止信号 列(FPGA)使用专用的集成电路,时序控制能力较强, 则表现为在SCI 高电平时SDA线从低到高.应答信 处理信息的速度非常快,含有大量软核,方便系统二次 号是在SCI 高电平时SDA为低电平,非应答信号相 开发,在通信领域的应用快速、灵活.为充分利用 反,表现为在SCI 高电平时SDA也为高电平.数据传 FPGA的逻辑资源,提高硬件系统的集成度,将IIC控 输“0”和“1”时,与发送应答位和非应答位时序图相同, 制器嵌入FPGA内,实现DSP的高速异步存储器接口 如图1所示.在其他任何时刻,只有SCI 在低电平期 到IIC总线接口的转化. 间,SDA状态才能发生变化,否则,SDA上的数据必 须保持不变 . 1 IIC控制器系统设计 在一个起止状态之问,数据字节数没有限制,但每 个数据字节必须得到确认.确认状态时,在SDA上每 1.1 IIC接口及通信协议 一个8位字节后面的第9位用低电平表示.图2表示 IIC总线包括双向数据线SDA和时钟线SCI ,分 一个完整的数据传输过程.IIC发送起始信号后,从器 s眦』 j ]厂 厂] 』乙 厂] 起始 传输“0”或 传输“1”或 信号 应答位 非应答位 图1 IIC总线SDA与SCI 时序划分 收稿日期:2013 08一l2 作者简介:董秀洁(1 957一),女,山东潍坊人,教授 中原工学院学报 2014年第25卷 件的7位寻址地址和1位读写标志位R/W被发送(当 R/W为0时,表示由主器件向从器件写数据;当R/W 后,开始传送数据,直到发送停止信号.数据是以字节 为单位的,每发送一个字节就要检测SDA线上的应答 为l时,表示由主器件向从器件读数据),有应答信号 开始传输 …1 信号,有则继续发送,否则就停止发送数据 停止传输 . 一1 — ………一 1 0T : 一 开始或重复 读/N 开始条件 停止或重复 开始条件 图2完整的数据传输过程 写通讯过程为:①主器件在检测到总线空闲的状 况下,发送一个START信号掌管总线;②主器件发送 一FPGA 个地址字节(包括7位地址码和1位R/W);③当从 n 豫睢埔l6蛇 UC1DP 器件检测到总器件发送的地址与自己的地址相同时, IIC—CMD lIC—CORE “Dt 发送一个应答信号(ACK);④主器件收到ACK后开 始发送第一个数据字节;⑤从器件收到数据字节后发 送一个ACK表示可以继续发送数据或进行其他操 EMIF^  ̄'Pti- 寄存器 组 命令 状态机 时序 状态机 ●_8C1 lie控制器 作;⑥主器件发送完全部数据后,发送一个停止位 STOP,结束整个通讯并且释放总线. 读通讯过程:①主器件在检测到总线空闲的状况 冈 图3系统框图 下,发送一个START信号掌管总线;②主器件发送一 个地址字节(包括7位地址码和1位R/W);③当从器 件检测到总器件发送的地址与自己的地址相同时,发 送一个应答信号(ACK);④主器件收到ACK后释放 数据总线,开始接收第一个数据字节;⑤从器件收到数 据字节后发送一个ACK,表示可以继续传送数据或进 译码后,再将译码信号传回II T()P模块. 2 IIC控制器状态机设计 本设计把控制器从逻辑上分为两个状态机,分别 称为命令状态机和时序状态机,其中,命令状态机用于 管理IIC总线上的命令状态,并实现IIC总线读、写操 行其他操作;⑥主器件接收完全部数据后,发送一个停 止位STOP,结束整个通讯并且释放总线. 1.2 IIC控制器核设计 本文设计的IIC控制器核应用在基于DM642的 图像采集与显示系统中,采用自顶向下设计方法.控制 器核顶层设计分为3个模块:IIC—TOP模块、IIC— CMD模块和IIC—CORE模块.系统框图如图3所示. IIC_T()P模块是顶层管理模块,主要任务是接收 作命令状态的转移过程;时序状态机用于实现IIC总 线启动、停止、读、写、确认等命令的具体时序关系. 2.1命令状态机 命令状态机IIC—CMD模块的主要功能有两个: 一DSP发来的控制信号、命令及数据,发送从设备读出的 数据和确认位到DSP,实现IIC控制器核与DSP的中断 通信机制,并提供当前IIC控制器核的工作状态,把 DSP发出的命令字信号送到IIC—CMD模块.IIC—CMD 模块功能是把从I1CTOP模块接收到的命令字信号传 是把IIC—T()P模块发送的开始(START)、写 (wRITE)、读(READ)、停止(sT()P)四个命令信号转 化为命令码,发送到IIC—c()RE模块;二是实现从器 件接收到的数据串在DSP发出并转换.命令状态转移 关系如图4所示. 给IIC_C()RE模块,IICCORE模块将这些命令字信号 系统复位后,进入空闲状态IDI E,然后判别命令 第1期 董秀洁,等:基于FPGA的IIC总线控制器设计 图4命令状态转移关系图 信号START\READ\WRITE:①若是START命令, 则进入START状态,之后根据命令信号READ\ WRITE分别转移到READ或WRITE状态进行数据 图5 时序状态转移关系图 的读或写,当8个字节传输完毕后,转移到应答状态 ACK,之后根据命令转移到ST()P或IDI E状态; 时序状态机将命令状态作了细分,进入到各个命 令状态后对各个子状态进行数据处理.每种操作包含 ②若是READ命令,则进入READ状态,当8个字节 传输完毕后,进入应答状态ACK,之后根据命令转移 II)I E、a、b、C、d等5个部分,其中STOP命令只包括 IDI E、a、b、c等4个部分. 到STOP或IDI E状态;③若是wRITE命令,则进入 WRITE状态,当8个字节传输完毕后,进入应答状态 ACK,之后根据命令转移到STOP或IDI E状态. 2.2时序状态机 3 系统仿真与测试 本设计采用Quartus II 9.0开发软件,对系统进 行综合、适配、仿真.对IIC控制器进行仿真调试,图6 所示是时序状态机仿真结果,图7所示是总线写数据 过程的仿真结果. 时序状态机IIC一(:()RE模块负责与视频编码器、 解码器的IIC接口进行连接,实现IIC总线信号SCI 和SDA的开始(START)、停止(S1、()P)、读 (WRITE)、写(READ)、应答(ACK)等具体操作的时 序关系.根据时序,将它分成16个状态,时序状态转移 关系如图5所示. 嘲f KI 显f ' 将WRITE信号设为高电平,启动写数据传输,同 时确定START信号是否为高,若为高,则进入开始状 态,开始信号变为低电平时,开始写数据传输. B n门九几九n门F1nl1 n n nnn门门nn门n n几门几n九nn门.几几n几 几 几.几n几:八nl门nn门门nnnnnn日nf1 n n n n n rI n几九nnnn门n n n几n nnnnn rInnn九几几n门九几n九 九几九九:n几.几.几,几『1『1nn几九n n n nn几n几n nn几n一门 I I I l l l l l l I I l I_I1 I1 I I I I l I I l l l I l I I I l l I l l I I I l I I I l l l l l l l I t I_l l l l n n门几nnnI1 F1门n门nnnnnn门n几几n几n n门广1nn几 几.n几.几 n n n.nnrIl几n n门n n n nnnnnf1几n n一丹问rI 几几门f1n n门门几几几几门几nn门几n几几nn广1几n 几几几.几几n n nnnnnn.几nn n门n n门口门几门n nn几n n ..・ ::. I_ - ::  -’, :: ・ .:.::・ 1111 1 ■1 111 71 1 1 1 nn九几n门几九门n几九门一一九nnnn一九门几几几几八九九n门,门,门门几.几几门几几九几几几几九几几几nI1f1nf1门n n nn几 L、t、 .I l l l l l I l l lJ IJ I.IJJ I l l I-I I l l l I I lJ l l l l l l l 1 n门n几n n几n门门门n rIn rInn几nn九几几九n九九九.九门几 几.九 九l几nn I I I l I l l I I I l}I I l I I l l nn nnnnnnn n n 图6 时序状态机仿真图 ・ l4 ・ 中原工学院学报 201 4年第25卷 ≯ 。I l . 7s 丽莉斓n册明 颃 丽面 廊 -00。。l100 r X l 廊丽蕊 I墟两丽棘 m锎丽痂 丽丽  r10110011  r丽被痂而 佣0o唧; ’ ; A .r 圈(】^j 瞳Ⅲ ■  — .; r, X: 1 } 鼬0 01101011 Xa口㈣il X, J 1 J  .I. I  -J: L  :r  :, r j ; ; j :i  :: 留. ! - f 固 x SCI ’r s uI_  ;: B . “u11 J  : ;卜., 卅 n . 1 0。∞口0o X粉;qo儿 llO∞i ∞all90。 0。∞cx ̄O000CO0 DOOOOCX l^ …、 v 。Y n L———,—?—一 图7 IIC控制器核仿真结果 仿真结果为SDA result、SCI ~result.传输数据的开 始信号到来后,在SCI ~result为高电平期间,SDA~ result出现一个下降沿,接着开始传输数据,到CMD— ACK有一个脉冲,结束一个字节的传输.当数据传输 结束后,接收到STOP信号,这是通信停止和IIC总线 传输数据的结束信号,此时SCI ~result为高电平, SDA~result出现一个上升沿.结果显示了IIC总线 协议的时序要求. 参考文献: [1] 刘欲晓,方强,黄宛宁,等.EDA技术与VHDI 电路开发 应用实践EM3.北京:电子工业出版社,2009. E2] 杨峰.基于s()c的IIC总线IP核设计EJ].电脑知识与 技术,2O10,6(6):l511 l5l2. 的协议功能,证明了设计的正确性. E3] 王前,吴淑泉,刘喜英.基于FPGA的IIC总线接口实现 方法EJ].微电子技术,2002,30(3):21—24. 4 结 语 本文基于IIC控制器在DM642图像采集与显示 系统中的应用,从状态机的角度出发,采用VHDI 语 言,设计完成了IIC总线控制器核,并进行了时序仿真 和测试,结果表明本次设计的IIC控制器核满足接口 [4] 俞伟,徐宁仪,罗飞,等.IIC总线控制器1P核设计[J]. 世界科技研究与发展,2005,27(1):l8—22. E52 王钰,潘仕彬,王卉.IIC在数据采集中的应用EJ].科技 广场,2008(8):19O—l 91. (责任编辑:席艳君) Design of IIC Bus Controller Based on FPGA D()NG Xiu—jie,WANG Li—ping (Zhongyuan University of Technology,Zhengzhou 45007,China) Abstract:This paper describes the working principle of IIC bus,presents an FPGA—based implementation of IIC bus controller core,uses top—down design methodology,designs the IIC bus controller finite state ma— chine.Using hardware description language(VHDI ),the IIC bus controller core design is achieved,some hardware description statement programs and controller simulation result are given,and test on Aletera’S Cy— clone II EP2C35F484C8 chip iS done.The results show that the controller core meets IIC functional and timing requirements,stable and reliable. Key words: finite state machine;VHDI ;IIC;controller 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top