前言
目前的ARM处理器已经适合应用于数控系统。ARM处理器的成本低而且种类多。主频能够满足数控领域需求而且功耗比较低,无需使用风扇,提高了系统的可靠性。带有MMU的ARM处理器支持数控软件所需要的Linux操作系统,能够充分利用现有的数控软件资源。随着ARM处理器和FPGA的快速发展,给数控系统的设计提供了新的解决方案。ARM处理器用作系统的核心,可编程FPGA器件作为运动控制器。同时 FPGA器件提供数控系统vo等其它辅助电路。
随着PC/104成为工业控制领域的标准,已经被IEEE协会定义为IEEE-P996.1, PC/104总线提供的信号跟ISA总线一样,但是前者的机械规格不仅易于扩充而且更加坚固,适合应用于数控系统。但是这种总线结构是在Intel的x86体系结构上发展而来,目前x86对PC/104的支持比较好,而ARM对PG/104的支持还不完全统一,主要由于ARM和x86在体系结构、总线时序、电气特性以及指令集等方面的差异。而且不同的数控系统所需要的总线信号也不完全一样。本文将提出一种基于ARM处理器的数控系统上支持PC/104总线的方案。
1 系统总体设计
数控系统中的ARM处理器采用Cirrus Logi。的EP9315处理器,用EP9315的一个片选(nGCS3_PHBASE 0X30000000)作为PC104的地址范围,用地址ADDR24来控制MEMORY和IO的方式的读写;用另一个片选(nGCSI PHBASEoxiooooo00)来查询PC/104的中断号,当Pcioa有中断的时候,用一个中断通知CPU,然后CPU通过nGCSI这个地址来读中断号,判断出11个PC/104中断源中来自哪个中断。由于EP9315和CPLD在制作工艺、电气性能上与PC/104总线有比较大的差别,因此需要使用74LVTH 16245作为3.3-5V电气转换buffer用来调整电平模式。CPLD是基于乘积项的可编程逻辑器件,CPLD内部采用固定长度线连接各个逻辑块,因此具有较大的时间可预测性,引脚到引脚的延迟几乎是固定的,与逻辑设计无关,因此适合作为PCJ104总线控制器。这里使用赶-to,的EPM7032用作PC/ 104总线控制器,用来完成EP9315读写时序向PC/104总线读写时序的转换。EP9315的数据总线和地址总线连到电平转换buffer,输出到PCJ104总线上。因此PClioa总线设计的核心是保证EPM7032有正确的读写时序。原理图如图1所示:
2 PC/ 104总线控制器的实现
PC/104总线介绍
PC/104采用模块化设计方法,通过自堆叠总线,省去了对底板或板卡插槽的要求。通过将多数信号的总线驱动电流减小至4mA,将元件数量和功耗降到最低。模块的104个信号线分布在两个总线连接器上,P1连接器有64个信号引脚,P2连接器有40个信号引脚。与ISA总线相比,PC/104总线将板卡的长宽比降至3.775英寸比3.550英寸(即9bmrn比90mm ),克服了ISA总线机械规格的缺点。PC/104总线与PC/AT总线兼容,也定义了两种工作模式一8位和16位数据模式。对于8位数据模式,总线信号由板上的64引脚双排插座Pl/J1提供,对于16位模式,增加了40引脚双排插座P2JJ2。
ARM EP9315处理器介绍
EP9315处理器是Cirrus Logi。推出的一款基于ARM920T内核的R1SC处理器,主要面向工业计算机和手持设备等等。ARM920T是H award体系结构处理器,由ARM920TDMI、存储管理单元(MMU)和高速缓存3部分组成。有独立的16位指令cache和数据cache。ARM920T有5级流水线。EP9315工作频率为200M Hz,集成了2D图形加速器和协处理器,以及丰富的外设接口例如IDE控制器和PC MCIA控制器等,即使不使用额外的DSP芯片也能够支持相当多的外设。EP9315支持LinxuMicrosoft lindawg CE等操作系统。
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总线看作块设备。
4 结语
本文创新点:提出一种基于ARM EP9315处理器的数控系统上支持PC/104总线的方案,主要描述了ARM数控系统中的PC/104总线控制器的设计与实现,使用CPLD和Verilog HDL语言。实现了EP9315对PC/104总线读写信号的控制和中断处理。完成了Linux下的PC/104总线控制器的驱动程序,提供了基于ARM处理器的数控系统的PC/104总线解决方法,弥补了ARM处理器对于PC/104总线的支持不足缺点,使得ARM处理器能够更广泛的应用于数控领域。
(审核编辑: 智汇胡妮)