欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    基于GAL的I2C总线时序模拟.doc

    • 资源ID:3410660       资源大小:16KB        全文页数:3页
    • 资源格式: DOC        下载积分:2
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要2
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于GAL的I2C总线时序模拟.doc

    基于GAL的I2C总线时序模拟FI1200 MK2系列电视信号前端处理器是飞利浦公司专为计算机多媒体环境下的射频应用而设计的。FI1256 MK2是该系列中的一个型号,它体积小,结构紧凑,性能稳定,可直接从射频信号解调出视频信号和音频信号,且只需单一5V电源,因而可在图文电视接收、有线电视信号自动监测等许多场合得到广泛的应用。笔者曾用它开发出图文电视接收卡、电视信号检测系统等多种设备。FI1256 MK2可通过I2C串行总线接口进行编程控制。当使用单片机进行编程控制时,带有I2C接口的单片机可以与FI1256 MK2直接连接,没有I2C接口的单片机可以用I/O口线模拟I2C总线的时序。但是FI1256 MK2在计算机扩展卡中使用时,为了节省成本,通过计算机的总线直接对其进行编程控制时,就需要用计算机的总线模拟出I2C总线的时序。本文给出了用可编程逻辑器件GAL配合ISA总线模拟I2C总线时序来对FI1256 MK2进行控制的方法。该方法与PCI总线进行模拟的方法相类似。1 I2C总线操作方式I2C总线是被广泛应用的串行多主控器总线,它可以让多个有控制总线能力的器件连接到总线上。I2C总线通过串行数据(SDA)和串行时钟(SCL)两条线使连接在该总线上的器件进行数据传输,每个器件的识别由一特定地址确定。除了作为发送器和接收器外,该器件还可以被设定为主控器和被控器。主控器用于启动总线上的数据发送,并产生数据传输所需的时钟信号,其他被寻址的器件均认为是被控器。SDA线和SCL线都是双向传输线,它们各通过一个上拉电阻连接到正电源。当总线处于空闲状态时,两条线均处于高电平。连接到总线的器件输出级必须是集电极开路或漏极开路,以用来产生线与功能便于多个器件的接入。在标准方式下,I2C总线上的数据传输速率可达100kbps,在快速方式下则可达到400kbps。连接到总线上的器件数量只受400pF的总线电容的限制。进行数据传输时,SDA线上的数据在SCL为高电平期间必须是稳定的,只有在SCL线上的时钟信号为低时,数据线上的状态才可以改变。当SCL线保持高电平时,通常把SDA线上由高到低和由低到高的电平变化分别定义为开始条件和停止条件。主控器启动数据传输时,总是先给出开始条件,然后传输若干字节的数据,最后给出停止条件以结束一次数据传输过程。图1是带有开始和停止条件的只传输一个字节的总线时序。2 模拟I2C总线时序可编程逻辑器件是近二十年发展起来的专用集成电路的一个分支,是设计新型数字系统的理想器件。它不仅速度快,集成度高,而且具有用户可定义的逻辑功能,有的还可以加密,并可以重复编程,因此,它不仅能适应各种应用需要,而且可以大大简化硬件系统,降低成本,提高系统的灵活性、可靠性和保密性,所以,近年来得到了迅速的发展。在各种可编程逻辑器件中,以CPLD功能最为强大,但价格较高,使用也较为复杂。而GAL不但有相当强的功能和足够的灵活性,而且编程控制容易(可使用普通的编程器),价格很低,接近通用集成电路,故在数字逻辑不是非常复杂的系统中使用GAL是非常合适的。用计算机的ISA总线对FI1256 MK2进行编程控制时,可以将FI1256 MK2作为一个外设,然后用两根数据线模拟SCL和SDA。需要注意的是:由于计算机速度高,总线周期短,达不到I2C总线的定时要求,因此要在总线周期过后进行延时,这样总线上出现的高阻状态或与其它设备的通信数据就会破坏I2C的时序,所以应将SDA和SCL的状态锁存,以满足I2C总线的定时要求。图2是用GAL实现ISA与I2C接口电路的设计方案。由于对FI1256 MK2的操作一般只是写入编程控制字节,因此,为简单起见,该电路只用来实现将计算机作为主控器的写操作时序。图2中,拨码开关K用以设定作为计算机外设的FI1256 MK2的地址,U1用于计算机访问外设时地址的译码,U2则用于实现用ISA总线的两条数据线模拟I2C总线时序。下面给出两片GAL的逻辑方程(以FAST-MAP格式书写),并对照方程简要说明电路所实现的功能。通过以上方程可使U1完成地址的译码功能。当ISA总线上出现的外设地址与拨码开关设定的地址相匹配时,在其地址有效输出端ADDR上将得到高电平。由于GAL最多只能有8个或项,所以方程中使用了ADD1和ADD2两个中间运算结果,他们被当作反馈信号在GAL内部重新引到输入端。使用AEN信号是为了在DMA周期内屏蔽总线上出现的地址。U2的时钟信号是由地址ADDR和外设写信号IOW的引入是为了消除总线上出现访问内存的信号,同时利用其上升沿锁存数据。SCL和SDA可分别用数据线D0和D1模拟。当一个外设写周期过后,D0和D1的数据将锁存在SDA和SCL上,而在下一个对相同外设地址的外设写周期到来之前是不变的。这就使得I2C总线的时序可以在D0和D1两根数据线上通过间隔输出数据的方式获得。通过分析图1给出的数据传输格式,可以把传送的数据流划分为三种传送状态,即传送起始信号、传送终止信号和传送一个字节(后面带一个应答位)。不同的数据过程只是写入的数据字节数目不同。只要模拟软件能实现上述三种传送状态,就可以模拟出任何的主控器写操作过程。因此可以用下列子程序分别实现上述三种传送状态。

    注意事项

    本文(基于GAL的I2C总线时序模拟.doc)为本站会员(白大夫)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开