PC/104总线控制器的设计
控制器的CPLD设计采用Altera公司的EPM7032,属于MAX700()可编程器件系列。 MAX700()系列是高密度、高性能的CPLD,采用了Altera的第二代MAX架构,采用浮栅EEPROM设计。结构如图2所示:
结构中包括逻辑阵列模块(LA B)组成的阵列、可编程互连阵列(PIA)和可编程uo模块阵列。每个LAB包括36个输入端、16个输出端和16个宏单元,每个宏单元包括处理组合和时序运算的组合逻辑和触发器。PIA作为全局总线提供了多重LAB、专用输入端和vo引脚之间的连接。PIA为逻辑单元的输出和LAB的输入提供了包括预计定时的完整连接。器件可以工作在3.3Y,pin-to-pin的延迟tPD=6ns,工作频率可达151.5MHz,能够与EP9315的AMBA总线时钟频率相匹配。EPM7032支持多种设计输人,除原理图外还可以通过VHDL, VerilogHDL和Altera Hardware Description language (AHDL)。VerilogHDL语言是一种硬件描述语言,能形式化地抽象描述电路的结构和行为,支持逻辑设计中层次与领域的描述,具有电路仿真与验证机制以保证设计的正确性,用于算法级、门级和开关级的建模。开发环境使用Alters的MAX+Pluso
总线控制器的实现与仿真
在PC/104总线内部,用一个信号INTI查询相关的中断信号,使用片选信号CS3和地址信号LADDR24和读写信号wR.RD选择MEM或者IO的读写方式。相关代码如下:
3 Linux下的PC/104总线驱动程序的设计
在Linux中,由于有设备文件,所以才能使得用户非常方便的访问外部设备,Linux系统为外部设备提供一种标准接口,将外部设备视为一种特殊文件,可以像访问文件一样访问一个外部设备。Linux通常将设备分为二种基本类型:字符设备、块设备和网络设备。在基于ARM处理器的数控系统中把PC/104总线看作块设备。下面是PC/104代码的说明:
4 结语
本文创新点:提出一种基于ARM EP9315处理器的数控系统上支持PC/104总线的方案,主要描述了ARM数控系统中的PC/104总线控制器的设计与实现,使用CPLD和Verilog HDL语言。实现了EP9315对PC/104总线读写信号的控制和中断处理。完成了Linux下的PC/104总线控制器的驱动程序,提供了基于ARM处理器的数控系统的PC/104总线解决方法,弥补了ARM处理器对于PC/104总线的支持不足缺点,使得ARM处理器能够更广泛的应用于数控领域。