基于PCI总线的专用开放式数控系统研制
PC I总线规范十分复杂,开发接口设备具有相当 的难度,在设计中需注意以下问题。PCI的时钟扇出 能力较差,一般只支持2~3个负载; PC I接口逻辑复 杂, 总线的接口电路大致需要1000门的逻辑才能实 现,这些逻辑电路主要作为逻辑译码、时序控制、寄存 器F IFO等。PCI总线接口逻辑的设计工作,不是一般 的中小规模TTL 或COMS电路所能实现的,所以,本 文的目标芯片选PCI9054,同时选用TMS320F2812作 为轴控芯片。PCI9054是一种多功能、多模态的接口 控制芯片,其功能配置参见文献[ 3, 4 ]。经分析,与 TMS320F2812总线接口时, PCI9054选C模式工作较 适合,图1是PC I9054在C模式下的定时图。
2 TMS320F2812与PC I总线接口
TMS320F2812具有外部接口XINTF, 接口具有 DMA传送能力,这是F2812与PC I9054接口的基础, 图2是F2812的PC I总线接口框图。系统中有一片共 享存储器(DMA RAM) ,它大部分时间是F2812的外 存,而软件上把它的地址空间分为PC机和F2812“写字板”空间,通过交换总线控制权的方式交换信息。 握手信号是采用F2812 的通用输出引脚信号对接 PCI9054的USERi 使用者输入端。当F2812 允许 PCI9054占用“写字板”时,该引脚为低,此时, PC机通 过读取PC I9054的相关寄存器可探测到低电平信号, 通过PC I9054 占用F2812 总线,操作“写字板”。当 F2812不允许PC I9054占用“写字板”时,通用输出引 脚变高, PC机测知后,放开总线, F2812重新获得“写 字板”控制权,依此方式循环工作。
3 数控系统DMA工作方式设置
为了完成DMA传送,首先需将PCI9054芯片的局 部总线设定在C模式,而F2812的外部接口XINTF以 16位方式工作,必须进一步将PC I9054 设定为16 位 的工作模式。由图1的控制时序可知,在此模式下通 常PCI9054不驱动局部总线,相关引脚处于高阻状态。 分析图2中地址总线和数据总线的关系可知PC I9054 与F2812是可互通的,当前数据/地址总线的控制权在 F2812手中,即挂接在总线上的DMA RAM只被F2812 所使用, 作为它的外部存储器。一旦PC 机命令 PCI9054操作局部总线, PCI9054产生总线DMA握手信 号LHOLD (高电平有效,参见图1) ,该信号送给局部总 线处理器F2812。当F2812可以让出总线时,其总线信 号变高阻,地址和数据线让给PCI9054,实现DMA操作。
PC机通过PC I9054占用F2812的总线后,原来存 储在DMA RAM中的数据仍然有效,其中包含轴控芯 片F2812发送给PC机的数据,该数据的地址及数据 含义由用户自己定义。在DMA RAM中会留有一块地 址空间用于PC机向轴控芯片传递指令和数据。当操 作结束时, PC机放开局部总线, DMA RAM的内容在 F2812重新获得控制权后变成F2812的可用信息。依 此方式, PC机和F2812在每一个数控采样周期内进行 一次数据交换。
PC I9054的工作方式选为PCI目标模式。相对于 PC机, PC I9054 是从设备,而相对于F2812 它又变成 了主设备。
当把PC I9054设定为C目标模式下16位总线时, BE3#为高字节使能(LD [ 15: 8 ] ) ,而BE2#未用, BE1# 为地址线LA1,BE0#为低字节使能(LD [ 7: 0 ] ) 。此时 PCI9054具有LA1 ~LA31 共31 根地址线, F2812 的 XINTF只有20根地址线,这使地址线的处理较为复杂。 4 研磨专用数控系统握手信号和译码逻辑
(1) 译码逻辑
PC I9054 的LD 数据线信号直接与16 位的 F2812XINTF 数据线信号相连, 并驱动至存储器 CY7C1041的数据线上。而256K的CY7C1041 只需 要18根地址线,即PCI9054的LA31~LA19和A18~ A19都由译码电路处理而产生接口设备的片选信号。 译码电路见图3,按此图连接,可完成接口的译码 功能。U1A的4个输出端分别对应4个256K的DMA RAM芯片的片选信号, 可用于选择4 个轴控芯片 F2812,但需增加其他辅助电路; U3 的2Y输出DMA RAM的写信号, 3Y为其读信号。U3的A /B端HOLDA 信号控制PC I9054 和F2812 的切换, 以便轮流操作 CY7C1041存储器芯片。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)