新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DSP 的PCI 通用运动控制卡的硬件设计

基于DSP 的PCI 通用运动控制卡的硬件设计

作者:时间:2012-10-23来源:网络收藏

2.5 差分电路

在噪声比较大的环境中,为了解决干扰和远距离传输等问题,通常采用差动信号传输,如图4 中虚线框(3)所示。为了进一步消除干扰,在每个输入端都接入一个滤波电容,同时在每一对差动信号输入线之间接一个用于线路阻抗匹配的电阻。差动信号(IN+、IN-、A+、A-、B+、B-)经差动线路接收器SN75175 和高速光电耦合器6N137 转换为单端信号(IN、A、B)输入到LM628 中,以实现闭环控制。

2.6 译码电路

如图 4 中虚线框(4)所示,采用一片3/8 译码器74LS138 对地址译码,实现对3路伺服单元的片选,而XA0 则专门用于对LM628 进行读写控制,这样得出的地址信号是连续的(0XF60~0XF65)。另外,采用一片四位二进制码比较器74LS85 实现 对双口RAM的读写片选。片选地址信号范围为0~7FF,这刚好寻址双口RAM 2K 范围内的所有空间。

此外,由于TMS320F2812 要从双口RAM 读出大量的轨迹数据并存储,而其片内只有18KB 的空间,远不能满足要求,同时为了方便程序调试和修改,均需要 扩展一片存储器。这里选用CYPRESS 公司的256K×16 位的SRAM CY7C1041CV33,其读写周期时钟最快可达12ns,因此可与 进行零等待状态接口,保证了DSP 的运算速度。

3 的配置

配置空间是 总线所特有的一个空间,其通常与接口芯片相关,包括一系列的配置寄存器。9052 的配置寄存器分为PCI 配置寄存器和局部配置寄存器,两者都可以由PCI 总线和串行EEPROM 访问。

3.1 PCI 配置寄存器及其配置

在 PCI 配置寄存器中的设备ID、制造商ID、版本号、首区类代码、类别代码、指令寄存器和状态寄存器等在所有的PCI 设备中都必须实现。操作系统通常使用其内容来决定为该PCI 设备加载驱动程序。此外,PCI 配置寄存器还提供6 个基地址寄存器,其中BASE0 和BASE1 是分别映射到内存和I/O 的基地址,可固定用于对PCI9052 的寄存器操作。而BASE2~BASE5 最多可访问局部端所接的4 个设备,实现其局部地址空间的访问。PCI 总线对局部端设备的局部地址映射是通过1 个寄存器组(包括PCI 基地址寄存器、局部范围寄存器、局部基地址寄存器和局部总线区域描述符)来实现的。它定义了每个空间及其特性,并将局部端设备通过局部端地址翻译为PCI 总线地址,即将本地设备映射到系统的内存或I/O端口。而片选信号寄存器则用来选定这些设备。这样,用程序操作这一段内存(或I/O)实际上就是对本地设备的操作。这些寄存器的内容必须在设备复位时通过串行EEPROM 加载。

3.2 局部配置寄存器及其配置

在这里,选取 LAS0(Local Address Space 0)访问局部端双口RAM,与其相关的寄存器为LAS0 范围寄存器、LAS0 局部基地址寄存器、LAS0 局部总线区域描述符和片选0 基地址寄存器。LAS0 范围寄存器用于定义板卡上资源所占地址空间的大小。由于板卡需要2KB的内存空间,而计算机预留了32KB 空间(即8000H),因此写入寄存器的值为0xFFFF8000H;LAS0 局部基地址寄存器用来定义板卡资源所占的基地址,它将其重新映射到PCI 地址空间中,以使PC 机能对板卡进行访问。由于基地址必须是地址空间范围的整数倍,又因局部地址空间位0 为使能位,因此,写入寄存器的值为00008001H;LAS0 局部总线区域描述符用来定义地址空间0 的具体工作特性。由于板卡数据总线采用16 位,工作方式定义为不使能突发和不可预取,因此写入寄存器的值为4043A1C0H;片选0 基地址寄存器用来确定片选信号有效的地址范围,其既确定了片选信号的基地址又确定了片选信号的地址范围。

这里采用PCI9052 的CS0#作为双口RAM 的片选信号,则其起始地址和地址范围都可由片选0 基地址寄存器设置。由于双口RAM 容量为2KB,因此设置CS0#基地址寄存器的第11位为1,又局部总线端空间0 的基地址是0x00008000H,为方便寻址,将CS0#的基地址和局部总线端空间0 的基地址设为同一值。由于基地址(8000H)是CS0#地址范围的16 倍,所以将CS0#基地址寄存器的第16 位设为1,再将位0 设为1 使能,这样写入片选0 基地址寄存器的值为0x00008401H。当PC 机寻址时,地址映射到局部总线端的空间0,从其基地址开始的2K 空间落在CS0#基地址寄存器所设置的范围内,CS0#端则有效,可对双口RAM各单元进行读写,这样就不必根据地址译码得到片选逻辑,简化了。此外,PCI9052提供两种中断源,即和软件中断。这里板卡使用其提供的2 个局部中断中的一个,即LINTi1 引脚,通过设置中断控制/状态寄存器(INTCSR)实现,并生成PCI 中断INTA#方式。

4 驱动程序的开发

为了从 PCI 总线配置寄存器中获得上位机动态分配的映射基地址,并对映射端口进行读写,必须编写驱动程序。编写时可以使用DDK,但是难度较大,需要做很多的基础性工作。为简化驱动程序开发,可以采用NuMega 公司开发的DriverStudio 中的DriverWorks工具包进行WDM 驱动程序。由于其被嵌入到VC 中,因此可更方便的用于开发和调试驱动程序。实践表明,DriverStudio 并没有通过牺牲系统性能来换取驱动程序的快速开发。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭