新闻中心

EEPW首页>嵌入式系统>设计应用> 一种基于CPLD的单片机与PCI接口设计解决方案

一种基于CPLD的单片机与PCI接口设计解决方案

作者: 时间:2010-01-06 来源:网络 收藏

  2.2读写C语言程序

  在在帮助下,读写设备就变得相当简单。首先,将pci_cbe等寄存器都声明为外部存储器变量,并根据指定地址。然后,传递适当的参数给以下两个读写子函数,即可完成对设备配置空间、I/O空间、存储器空间的读写操作。从PCI设备的返回数据存放在全局变量savedata中。

  实际上在写PCI设备时,也可以从pci_data中得到返回数据。这个数据必须等于往PCI设备写的数据。利用这一点可以进行差错检验和故障判断,视具体应用而定。

   bdate unigned char request;

   sbit IRDY0=request^4;

   sbit FRAME0=request^5;

   sbit VALID=request^7;

   void readpci(unsigned char addr,unsigned char cbe){

   pci_address0=addr;

   pci_cbe=cbe;

   request=pci_request;

   while(!IRDY0 FRAME0)) request=pci_request;

   savedata0=pci_data0;

   savedata1=pci_data1;

   savedata2=pci_data2;

   savedata3=pci_data3;

   if(!VALID)printf(Data read is invalid! );

   }

   void writepci(uchar addr,uchar value0,uchar cbe){

   data uchar temp;

   pci_address0=addr;

   pci_datas0=value0;

   pci_cbe=cbe;

   request=pci_request;

   while(!(IRDY0 FRAME0)) request=pci_request;

   if(!VALID)printf(Data write is invalid!);

   }

  3 结论

  用实现与PCI总线的并行通信,电路结构简单、体积小,1片CPLD芯片足够,并且控制方便,实时性强,通信效率高。本方法已成功地应用于作者开发的各种数据采集系统中,用作单片机与PC104之间的并行数据通信,效果非常理想。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭