嵌入式系统的正常工作离不开硬件的支持,硬件电路是软件系统正常工作
的基础。本章详细的介绍数控雕刻机控制系统各模块硬件电路的设计。
3.1 控制系统硬件结构
硬件系统总体设计方案如图 3-1 所示。

通过硬件系统结构图可知 S3C2440 为主处理器是硬件平台的核心,整个控
制器都是围绕它设计的,它不仅有高频率的处理性能,还具备丰富的片上外设,
为系统的外围电路设计提供了很大的便利,减少系统的体积,节约成本。FPGA
为系统的辅助处理器,选用 Altrea 公司飓风型号的 EP1C6 芯片,它能给系统带
来更好扩展性和灵活性,并且在并行控制方面十分的突出。控制面板包括 USB
鼠标、键盘和触摸屏等输入设备,该模块通过串口与 S3C2440 处理器连接。数
据存储模块由 NAND Flash 和 SDRAM 构成,存储系统的雕刻数据文件,通过
SPI 总线与主处理器进行数据的传输。
整个数控系统的工作流程是通过USB设备读取用户输入的数据并通过串口
总线发给 S3C2440 主处理器,S3C2440 根据收到的事件类型做出相应的处理响
应;当 FPGA 辅处理器接收到插补数据或控制信号后,FPGA 先对信号进行解
析操作,再通过接口电路将 FPGA 发送脉冲信号差分后发送给隔离电路,由于
控制器核心主要负责加减速控制和轨迹优化等操作,属于弱电系统,抗干扰能
力较差,这样有利于减少执行机构对信号的干扰;差分信号通过隔离电路合成
脉冲信号,通过光耦电路传送给驱动机构,最终实现雕刻机的控制。
数控雕刻机通过步进电机驱动滚轴丝杆实现主轴在 X,Y,Z 三个方向上
以三轴联动的方式进行雕刻工作。目前常用 CAD/CAM 在生成雕刻轨迹数据时
一般都采用以多条微直线拟合目标图中的圆弧和曲线,类似于进行一次粗插补,
因此直线段的轨迹插补是本章的研究重点。
4.1 插补原理
插补技术是数控系统的核心技术。插补就是从一个点到另一个点,根据进
给速度,确定多个中间点坐标的运动过程39。常用插补算法有数据采样和脉冲
增量两大类。脉冲增量插补算法更适用于开环的数控系统,每次插补仅产生一
个行程增量,实现简单;因为本文设计的雕刻机控制系统属于开环系统,因此
在此只介绍脉冲增量算法中逐点比较法和数字积分法 DDA(Digital Differential
Analter)。
5.1 雕刻机控制系统软件总体设计
5.1.1 雕刻机控制系统软件开发环境
- 操作系统平台
功能多性能好的操作系统平台是雕刻机控制系统能稳定工作的基础。由前
文可知本文设计的数控系统选用微软公司开发的 Windows CE 操作系统来进行
软件开发,该系统专业服务于工控行业,具备高度模块化、标准库函数、完善
非关联框架和良好的兼容性。 - 软件开发工具
在 ARM 处理器 S3C2440 上移植了 Windows CE 操作系统,因此需要通过
板级支持包 BSP(Board Support Package)来修改、编译及定制系统源代码,生
成映像后还需进行启动加载项 BootLoader 开发,最后将生成.bin 文件下载到目
标板中41。在 Windows CE 操作系统上软件开发需要 VS2005 集成开发软件,
该软件界面友好,操作方便,与在 Windows 上进行 MFC 开发基本类似,简单
易学。
FPGA处理器上的软件开发是在综合性开发软件Altera QuartusⅡ上进行的,
该软件支持 VHDL、AHDL、VerilogHDL 以及原理图等多种输入模式,内部镶
嵌仿真器和综合器,可完成从设计输入到硬件输出完整的 PLD 流程,凭借着其
强大的设计功能和简单易用的接口,深受数字系统设计者的喜爱42。
5.1.2 雕刻机控制系统软件总体流程
雕刻机控制系统的主要功能就是实现速度控制、轨迹插补和位置坐标的实
时控制,通过 FPGA 步进电机驱动器发送脉冲驱动步进电机完成插补,最终实
现工件的雕刻。本系统软件程序设计的总体流程如图 5-1 所示,开始时先进行
系统硬件部分的初始化工作,之后进行雕刻参数设置、对刀、坐标归零等操作,
等待用户发送的键盘或触摸屏指令,然后根据指令选择加工工件文件,进行雕
刻数据 G 代码的检查,检验数据合法之后进行插补,然后发送脉冲开始加工。
若在加工期间偶遇突发状况如停电或卡壳,则 E2 PROM 会保留住当前数据状
态,保证重新启动程序时系统可以从上一次停止处开始继续工作。实现系统流
程化控制。
5.1.3 雕刻机控制系统软件功能模块设计
系统软件功能模块大体可分为控制器应用程序和电机驱动程序两部分。控
制器应用程序包括 G 代码解析、轨迹前瞻、插补运算、速度控制和人机交互等
五大功能;电机驱动程序分为分频器、方向设定、相位编码等部分。具体模块
划分如图 5-2 所示。

5.2 G 代码文件加工模块
系统通过 U 盘来获取工件的 G 代码加工轨迹数据,因此 G 代码文件加工
模块需要有读取 U 盘文件数据,检查并解析 G 代码文件,将所得数据发送给数
据处理单元。常见的 G 代码如表 5-1 所示。
表 5-1 常见 G 代码
