网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
天线制作 GPS 地标
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | Open source | GNU | Linux | BSD | Solaris | AIX | HP-UX | IRIX | Mac OS X | Minix | Tru64 | SCO UNIX | Network | Security | X-Window | Database | 应用服务 | Programming | 经典著作 | 永远的纪念 | 杂项
 当前位置: Home > Linux > 嵌入式系统 > 硬件设计 > 文章  
嵌入式系统的PCI接口设计
文章来源: CE china 文章作者: 武汉科技学院 朱勇 发布时间: 2006-03-05   字体: [ ]  
 

3.      硬联逻辑设计

 

PCI接口芯片的主要功能是桥接CPU端的LocalBusPCI总线。另外,还必须通过串行总线上的EEPROM来配置PCI芯片的初始工作方式。PLX9656的三种工作模式(MCJ)可以和大多数CPUDSP接口。其中M模式是专为MOTOROLAPOWERPC系列CPU而设计的接口模式。

 

PLX9656MPC8260组成的最小系统至少应包括以下几个组成部分:FLASHSDRAMSRAMPCI连接器、JTAG端口、时钟、复位、电源、EEPROM、以太网接口、ATMRS232串行口等。

 

PLX9656信号线包括PCI端信号、Local Bus端地址与数据、控制信号、电源和地。其中前两项占了信号数量的绝大部分。为了保证信号的可靠传输,芯片上用很多引脚作电源和地,这些引脚在布线时应仔细连接,并应大面积敷铜,同时还要连接滤波电容。另外要注意的是:MPC826060x BusLocalBus两条总线,前者为MPC8260与外界的接口总线,所以应将PLX9656Local Bus信号与MPC826060x Bus连接。图2所示是系统的硬联逻辑框图。

 

 图像 “/upimg/allimg/20060727/1958331.gif” 因其本身有错无法显示。

 

4.      驱动程序

 

开发Windows环境和Linux环境的驱动程序有很大不同。

 

41 Windows环境中驱动程序的编写

 

由于Windows操作系统Microsoft所垄断,它是一个封闭的操作系统,因此很难将用户驱动程序挂接到Windows操作系统中。通常要利用一些开发工具,如MicrosoftDDKNumegaDriverStudioJungoWinDriver等。因而应首先是由它们生成驱动程序的框架后,再导入到MicrosoftVisual C++中,在填入与设计对象相关的代码后,最后由build生成Windows环境下的驱动程序。PLX公司的PLX9656RDK提供了Windows API及其源代码和调试工具PLXMon。利用这些针对PLX芯片的API可以驱动PCI接口,而且其编程工作也非常快捷。

 

PLX芯片的初始化函数原型为:

 

S8 Select DeviceDEVICE_LOCATIONpDev);

 

它可提供很多对PCI的接口操作,其中包括寄存器读/写、中断允许/禁止、获取中断状态、IOP总线读/写、IOP端口读/写、电源管理、热插拔功能、VPD读/写、EEPROM读/写、邮箱寄存器读/写、门铃寄存器读/写、DMA控制/状态、DMA块通道操作、DMASgl通道操作以及DMAShuttle通道操作等。在对PLX芯片进行初始化后,便可利用PLX9656RDK提供的上述功能对PCI接口进行操作。

 

42 Linux环境下驱动程序编写

 

Linux是源代码开放型操作系统。在这种系统中,用户自编的设备驱动程序可以和原操作系统的驱动程序享有同等的地位Linux环境下,驱动程序的编写有两种方式,一种是基于内核的,另一种是基于模块的。前一种方式是将驱动程序直接注册在相应的系统文件中,然后在操作系统启动时将它装载在内存中使用;后一种方式则通过命令行insmodmmod来加载和卸载驱动程序模块,因此比较方便灵活。

 

Linux对设备的操作与对文件的操作一致,所有的驱动程序都毫不例外地要使用file operations结构。其中的readwriteioctlmmapopenrelease指针分别指向用户编写的驱动程序的相关操作。

 

每个PCI设备均可由总线号、设备号和功能号来确定,它共有三个访问空间,即内存空间、IO端口和配置寄存器。配置空间用于决定PCI器件的工作方式和映射到系统中的地址。其基本功能函数如下:

 

 图像 “/upimg/allimg/20060727/1958332.jpg” 因其本身有错无法显示。

 

访问IO和内存空间时,要根据配置寄存器中PCL-BASE-ADDRESS-i(i=0.5)所给定的基地址来读写数据。

 

 
推荐文章
·嵌入式Linux平台的多协议路由器
 

 
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
·嵌入式系统的USB虚拟串
·嵌入式Linux平台的多协
·Linux下ARM/DSP双核系统
·基于嵌入式Linux的智能
·基于Linux的嵌入式网络
·嵌入式Linux操作系统CGI
相关文章
·基于Qt/Embedded的GUI移
·嵌入式Linux系统的设计
·嵌入式系统 Boot Loader
·嵌入式设备上的 Linux
·嵌入式系统开发,为什么
·几种Linux嵌入式开发环
·在嵌入式Linux实现802.1
·基于μClinux的SoPC应用
更多...
 
 

Copyright(c) 2001-2009 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统