用CPLD实现单片机与ISA总线并行通信
时间:11-08
来源:互联网
点击:
- 3 通信软件设计
PC104是基于ISA总线的,在系统软件设计中要防止地址冲突。PC104中使用A0~A9地址位来表示I/O端口地址,即可有1024个口地址:前512个供系统板使用,后512个供扩充槽使用。当A9=0时表示为系统板上的口地址;A9=1时,表示扩充插槽接口卡上的口地址。因此,采用保留的口地址220H和221H,保证不会发生地址冲突。
本程序中PC104采用查询方式接收数据,单片机用中断方式接收数据。
#define pcreadwrite 0x220 /*PC104读写数据口地址*/
#define pcrdstate 0x221 /*PC104查询状态口地址*/
PC104写数据函数:
Void pcwrite(int port,unsigned char ch)
{ outportb(pcreadwrite,ch);
while ((inportb(pcrdstate)&0x02)!=0x02); /*等待单片机读走数据*/
{ }
}
单片机读子程序:
MCUWR:MOV DPTR,#4000H
MOVX A,@DPTR
RETI
PC104读数据函数:
Unsigned char pcread(int port)
{ while((inportb(pcrdstate)&0x01)!=0x01);/*等待单片机写数据*/
{}
return inportb(pcreadwrite);
}
单片机写子程序:
MCUWR:MOV DPTR,#8000H
MOVX @DPTR,A ;等待PC104读走数据
RET
4结论
用CPLD实现单片机与ISA总线接口的并行通信,电路结构简单、体积小,1片CPLD芯片足够,并且控制方便,实时性强,通信效率高。本设计方法已成功地应用于作者开发的各种数据采集系统中,用作单片机与PC104之间的并行数据通信,效果非常理想。
- 3 通信软件设计
CPLD 电路 仿真 集成电路 LTE 单片机 总线 51单片机 MCU CSR Altera 相关文章:
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 初学者如何学习FPGA(08-06)
- 为何、如何学习FPGA(05-23)
- 学习FPGA绝佳网站推荐!!!(05-23)
- 我的FPGA学习历程(05-23)
- Virtex-5推动超宽带通信和测距的发展(01-06)