1 电子提花机嵌入式控制系统硬件设计
设计方案中,本文采用了核心板+底板的方式。在不修改核心板电路图的情况下,只要改变底板的功能单元,就可以方便得对系统的外围接口进行扩展。有利于二次开发。
底板上提供了以下外设接口:一个15芯的和一个37芯的接口(用于实现对提花机进行各种控制),2个四线RS232串口,2个USB HOST接口,一个10M/100M自适应以太网接口,一个TFT LCD接口和一个触摸屏接口。核心板和底板配合即构成一个最小的完整的应用系统。
由于S3C2410提供了117路复用的IO口线,本文利用了其中的28路口线对提花机实现了各种控制。
2 电子提花机系统软件设计
开机以后,控制程序开始运行;读取初始化的配置文件,该文件记录了工作的任务,磁铁板的数量和过孔信息。根据工作任务文件,可以获得花样文件位置,将它读入内存中,并设置织造重复次数的数据变量。如果该操作不成功,则要求手动输入。
如果操作成功,就进入硬件检查部分。硬件检查将通过CheckIO( )函数,向磁铁板上发送信息,并将信息读回,以此判断磁铁板是否存在问题。
如果硬件检查没有问题,就开始进入控制送数的阶段,该阶段在SendData()中完成。
SendData( )函数是控制流程中最重要的一个函数,它控制着织造的整个过程。
在SendData( )中也可能因各种情况而退出,如硬件错误,送数错误,工作单任务完成需要重新调配或者直接退出程序等;在退出SendData( )后,需要判断退出的原因,对以上几种情况分别做出处理:如果硬件错误或送数出错,则会等待清除错误以及按键处理;如果是工作单完成,则等待操作人员的指示,可能是重新添加新的任务,或者是重复原来的工作,也有可能是直接退出;在SendData( )内也有可能因操作人员要求直接退出。
3 驱动程序
在嵌入式Linux中通过设计相应的设备驱动程序来完成对ARM的GPIO端口的访问控制,进而实现对提花机的各种控制。
内核内部通过file结构识别设备,通过file_operations数据结构提供文件系统的入口点函数,也就是访问设备驱动的函数。file_operations是定义在中的函数指针表。
以对磁铁板发送串行数据为例,我们用S3C2410芯片GPB1引脚发送时钟信号SCLK_O。
其中ioremap函数的作用是把GPB的控制寄存器和数据寄存器的物理地址映射成I/O内存,这样我们就可以访问I/O寄存器了。devfs_register( )函数的作用是向Linux内核注册设备驱动程序。
有了驱动的支持,在应用程序中就可以直接对硬件设备(S3C2410的GPB0和GPB1引脚)进行访问了