|
引 言
提花就是在织物的织造过程中对经线的升降加以控制,使其具有凹凸不平的立体感。随着电子技术的发展,纺织提花技术由最初的机械选针方式发展到现在的电磁选针方式。电子提花与机械提花相比,结构较为简单,花型控制更为灵活可靠。电子提花又有基于工控机和基于嵌入式单片机两种方案,后者比前者在可靠性、成本等方面更具有优势。
1 电子提花机嵌入式控制系统硬件设计
设计方案中,本文采用了核心板+底板的方式。在不修改核心板电路图的情况下,只要改变底板的功能单元,就可以方便得对系统的外围接口进行扩展。有利于二次开发,核心板框和底板框图如图1、2所示。
核心板上集成Samsung S3C2410处理器,32M的SDRAM以及8M的Flash。
底板上提供了以下外设接口:一个15芯的和一个37芯的接口(用于实现对提花机进行各种控制),2个四线RS232串口,2个USB HOST接口,一个10M/100M自适应以太网接口,一个TFT LCD接口和一个触摸屏接口。核心板和底板配合即构成一个最小的完整的应用系统。
由于S3C2410提供了117路复用的IO口线,本文利用了其中的28路口线对提花机实现了各种控制。见表1和表2。
2 电子提花机系统软件设计
电子提花机控制系统软件主程序流程如图3所示。
开机以后,控制程序开始运行;读取初始化的配置文件,该文件记录了工作的任务,磁铁板的数量和过孔信息。根据工作任务文件,可以获得花样文件位置,将它读入内存中,并设置织造重复次数的数据变量。如果该操作不成功,则要求手动输入。
如果操作成功,就进入硬件检查部分。硬件检查将通过CheckIO( )函数,向磁铁板上发送信息,并将信息读回,以此判断磁铁板是否存在问题。
如果硬件检查没有问题,就开始进入控制送数的阶段,该阶段在SendData()中完成。
SendData( )函数是控制流程中最重要的一个函数,它控制着织造的整个过程。
在SendData( )中也可能因各种情况而退出,如硬件错误,送数错误,工作单任务完成需要重新调配或者直接退出程序等;在退出SendData( )后,需要判断退出的原因,对以上几种情况分别做出处理:如果硬件错误或送数出错,则会等待清除错误以及按键处理;如果是工作单完成,则等待操作人员的指示,可能是重新添加新的任务,或者是重复原来的工作,也有可能是直接退出;在SendData( )内也有可能因操作人员要求直接退出。
3 驱动程序
在嵌入式Linux中通过设计相应的设备驱动程序来完成对ARM的GPIO端口的访问控制,进而实现对提花机的各种控制。
内核内部通过file结构识别设备,通过file_operations数据结构提供文件系统的入口点函数,也就是访问设备驱动的函数。file_operations是定义在中的函数指针表。
以对磁铁板发送串行数据为例,我们用S3C2410芯片GPB1引脚发送时钟信号SCLK_O,GPB0引脚发送串行数据SDATA_O(见表1)。使用如下file_operations数据结构:
其中ioremap函数的作用是把GPB的控制寄存器和数据寄存器的物理地址映射成I/O内存,这样我们就可以访问I/O寄存器了。devfs_register( )函数的作用是向Linux内核注册设备驱动程序。
有了驱动的支持,在应用程序中就可以直接对硬件设备(S3C2410的GPB0和GPB1引脚)进行访问了。
4 实验结果及结论
图4为示波器测得的B0、B1口的输出。图4的上方为B1,即SCLK_O;下方为B0,即SDATA_O。对SCLK_O信号,示波器每个所代表的时间是2 μs,所得的时钟周期是7μs,满足系统所需要的送数速度;程序发送的串行数据SDATA_O为非周期性,所以使得B1输出的信号也呈非周期性。经现场调试,该系统能满足对提花机的实时控制要求。
基于ARM的电子提花机控制系统与采用PC或工控机进行现场控制的系统方案相比,有着稳定性高、成本低的明显优势。
|
|