新闻中心

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

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

作者:时间:2009-11-11来源:网络收藏

2.2 PCI读写C语言程序

在帮助下,读写PCI设备就变得相当简单。首先,将pci_cbe等寄存器都声明为外部存储器变量,并根据指定地址。然后,传递适当的参数给以下两个读写子函数,即可完成对PCI设备配置空间、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;

nbsp; 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之间的并行数据通信,效果非常理想。

4 参考文献

[1] 周明德.微型计算机系统原理及应用 [M] .第四版,北京:清华大学出版社,2002.

[2] 白中英.计算机组成原理 [M] .北京:科学出版社,1999.

[3] Xilinx芯片手册.美国赛灵思半导体公司.


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭