2.2.5 嵌入式DSP控制软件设计
本次设计用的核心DSP采用TI公司的TMS320LF2812,嵌入软件的开发采用TI公司提供的集成开发环境CCS3.3开发平台,控制程序主功能包括:
1) DSP人机接口的实现
DSP的串口通讯功能实现函数为:
串口数据发送ComDataTransfer();
串口数据解析ComDataExecute();
串口数据接收ComDataRecieve();
2) 主USB的U盘读写功能
在人机界面的文件管理功能下,可实现对U盘的读写操作,实现U盘和内存的数据相互复制,主要功能实现函数为:
Uint8 UdiskToDsp(Uint16 fileno);
3) 内存数据的读写管理
内存芯片采用K9F1208U,该芯片包含4096个BLOCK,一个BLOCK包含32个
PAGES,一个PAGE包含512+16个字节,该NANDFLASH编程以数据页为单位,芯片擦除以BLOCK为单位。芯片编程包括芯片擦除和写入。本系统对该内存的访问采用高速IO口进行。
内存读函数:void NF_ReadPCData(void)
内存写函数:void NF_WritePCData(void)
4) 流水线打标控制过程的实现
此部分是激光打标工作的核心,当设备进入工作状态后,DSP根据打标数据及相关打标参数,对激光和振镜实现实时控制,主要分以下几个部分:
1、 控制激光能量的大小与开关输出同振镜的转动实现同步控制。
开激光函数:void LaserOn(void);
关激光函数:void LaserOff(void);
2、 对控制的矢量数据,进行直线或圆弧插补计算,以取得有效控制振镜运动点数据。
插补计算函数:void CompensateCul();
3、 根据编码器数据计算出的偏移量,对控制振镜数据进行偏移补偿。
流水线偏移补偿函数:void DeviationCul();
4、 根据聚焦场镜的相关校正参数,对控制振镜数据进行非线性校正。
非线性校正函数:void Correct();
5、 输出最终的控制振镜数据到DA芯片。
振镜运动控制函数:void OutXY(CPoint pt);
2.2.6 流水线打标时位置补偿的基本原理
当静态打标输出一个正方形时,打标效果如图4(a)所示,当按静态数据不进行补偿,在流水线上进行打标时,打标效果如图4(b)所示,黑色线条代表实际打标输出形状,红色方框代表要打标输出的图形。可见,在没有流水线偏移量补偿时,所有的输出数据都沿着流水线运动方向的反方向进行了偏移,而且偏移量随时间增加,偏移量在数值上等于流水线速度与时间的乘积。
为了保证输出效果不变形,就须动态引入流水线的移动补偿数据对图形进行修正。流水线的移动补偿数据通过安装在流水线上的编码器或参数中设定的流水线速度值获得,当打标开始时,如采用编码器计数,则启动对编码器脉冲进行计数,算出当前流水线的移动量;如采用设定流水线速度,则直接由速度与时间的乘积来计算从打标开始到现在的移动量,此移动量与当前打标数据进行叠加,即为实际要输出的带补偿量的打标数据。程序流程图如图5所示。
上页 1 2 3 4 下页