嵌入式的发展方向是32位内核,因此结合LCD显示及USB存储技术,设计基于ARM和Linux的人造提花机控制系统具有现实意义。
2 系统总体结构
本系统主要由ARM微处理器、存储器、USB接口、步进电机控制、选针器控制、D/A转换电路和键盘及LCD显示等模块组成。系统启动后,微处理器根据设定的针筒转速参数、反馈针筒脉冲数以及梳理头密度参数来控制提花过程,不断检测断毛、断线等自停信号,并根据反馈的针筒脉冲来统计产量和定长自停。USB接口模块主要用于输入花型数据等参数,LCD模块用于显示花型数据。串口通信模块用于实现与人造提花机主机的通讯。其系统总体结构框图如图1所示。
3 硬件电路设计
在传统提花机的基础上,本系统更新了ARM模块、USB模块以及LCD显示模块,符合人造提花机的发展趋势,满足市场需求。
3.1 ARM微处理器系统
本控制系统用于管理整个提花控制过程。本系统采用TI公司的AM335X微处理器。AM335X微处理器采用Cortex-A8内核,最高可工作在720MHz,集成有64KB L1 Cache、外部存储器控制器、LCD控制器、通用I/O端口、外部中断源等。此外,本系统采用专用复位器件IMP811实现准确、高效的复位。32.768 kHz晶体振荡器为ARM的RTC(实时时钟)计时。OMO经上拉电阻接高电平,OM1直接接地,确保OM[1:0]=01,从而确定nGCSO的总线宽度为16位。OM3,OM2同时接地,使得OM[3:2]=00,打开内部PLL模式。PLL-CAD外接700 pF的系统时钟环路电容;VDDRTC是RTC的电源接口,外接3 V电压,为电池供电,不支持3.3 V电压。VDD2外接2.5 V电压,为内核供电。
3.2 USB接口模块
本系统采用USB接口技术,选用USB控制器SL811HS。SL811HS是Cypress公司可支持全速数据传输的USB控制器,可作为USB主机或作为设备的接口控制器:提供全速和低速两种USB总线速率:片上集成有SIE、单端口Hub、USB收发器以及256 Byte的RAM:3.3 V的工作电压;硬件自动产生帧起始包SOF和CRC5/16校验。AM335X选通USB控制器SL811HS。SL811HS的其他信号线与AM335X的引脚对应相连。CPU可从外部U盘提取花型数据,具有即插即用功能,取代了传统提花机中的串口通信模块。USB接口硬件电路图如图3所示。
3.3 键盘及LCD显示模块
本系统采用TLC-VCT256/14G型控制器,可控制640×480点阵彩色TFT液晶显示屏,显示256种颜色,实时效果好,CPU能随时写入显示存储器而不影响显示效果。
4 系统软件设计
软件设计是指在Linux的支撑平台上设计各硬件模块电路的驱动程序,创建和启动多项任务,创建消息邮箱完成各任务间的通信,从而控制整个提花过程。
4.1 主程序设计
程序启动后,跳转至主函数开始执行,调用函数ARMT argetInit()初始化AM335X系统,包括:建立相关参数和变量,配置ARM处理器中断端口,设置中断,并初始化各个器件等。调用函数OSInit()初始化Linux操作系统。 调用函数OSTask Create(Main_Task,(void*)0,(OS_STK*)&Main_Task_Stack[TASK_STACK_SIZE-1],Main_Task_PRIO),创建主任务,并在主任务中创建各分任务,完成整个系统控制。调用函数OSStait(),Linux开始运行,执行主任务。
4.2 各分任务设计
分任务设计包括USB接口、步进电机控制、选针器控制、D/A转换电路、键盘LCD显示等模块。由于各任务间不完全独立,因此要创建信号量、消息邮箱、消息队列来完成任务间通信,该操作通过调用OSSemCreate(),OSM-boxCreate(),OSQGreate()函数完成。键盘扫描图分任务函数为OSTask Create (Task KEY,(void*)0,(OS_STK*)&Task_KEY_Stack[TASK_STACK_SIZE-1],Task_KEY_PRIO)。创建其他任务函数,驱动对应硬件。而步进电机控制模块、选针器控制模块、D/A转换电路模块则延用传统提花机设计,在此不做介绍,以下主要介绍改进的键盘LCD显示和USB接口模块。
4.2.1 键盘及LCD显示
键盘用于管理显示以及系统所需的其他操作。当LCD任务和读取任务都挂起,读取任务向LCD任务提供显示所必要的数据。各任务间的通信通过对应的信号量,消息队列和消息邮箱来完成,任务流程如图4所示。采用TLC-VCT256/14G控制器进行显示,编程简单。该控制器指令格式如表1所列。
其中,D3为保留位,DISP为显示开关位,A16、A17、A18为第17、18、19位显示地址,CMD2、CMD1、CMD0为组合选择内部寄存器通道位“000”时为地址低8位寄存器,“001”时为地址高8位寄存器,“010”为数据读写通道,“100”’时为4页功能寄存器。
对于LCD任务,首先创建LCD显示任务函数:OST askCreate(Task_LCD,(void*)0,(OS_STK*)&Task_LCD_Stac [TASK_STACK_SIZE-l],Task_LCD_PRI-O)。任务挂起,等待读取任务发送的消息队列数据,收到消息队列后,LCD任务就绪,得到CPU控制权,先调用地址写入函数void write addr (U32 address);再调用数据写入函数void write data(U8 color);最后调用具体显示函数实现屏幕显示,显示函数原型:void write_word(U16 rowi,U16 tier,U8 eolr1,U8 col-or2,U16 rel)。调用完成后返回,等待下一个消息的到来,以便执行下一环节的显示任务。
4.2.2 USB接口
USB接口主要用于传输花型数据。USB任务与中断服务函数以及存储任务同步执行。USB插入后,产生中断,中断服务函数向USB任务发送OS-SemPost()信号量,告知USB任务,AM335X开发板可与外部USB设备通信以及数据处理,USB任务接收该信号量后,获得CPU的控制权,开始执行相关函数。当读完USB设备中的数据后,需要将数据存储,进而向存储任务发送消息队列OSOPost(),存储任务开始把发送的数据进行存储。USB数据读取及存储任务流程如图5所示。
创建USB通信任务函数:OSTaskCreate(Task-USB,(void*)0,(OS_STK*)&Task_USB_Stack[TASK_STACK_SIZE-1],Task_USB_PRIO)。任务挂起,等待来自中断处理函数的信号量:设计USB中断处理函数(USB-INTRQ.C)负责发送设备命令,接收设备状态信息,配置设备,供给电源;设计USB枚举函数(USB_MU.C)实现硬件枚举;设计Mass Storage类设备的枚举函数(UJSB_MS.C)实现Mass Storage类协议中的命令操作,实现数据读取:设计FAT文件系统操作函数(USB_FAT.C)操作文件系统,对FAT表定位,搜索和读/写等操作;设计数据读取函数(DAT.C),完成ARM处理器通过数据线,片选线及读/写控制线完成USBN9603数据的读取。当检测到USB设备接入(中断来临)时检测设备状态,响应设置命令,发送状态信息,发送数据报告,主机开始识别这个外接设备,在确定了该设备为USB Mass Storage类的基础上,主机得到USB闪存的介质信息和文件系统信息,实现文件打开和读写操作。
5 结束语
人造提花毛皮机控制系统结合先进的ARM技术以及性能优越的Linux嵌入式操作系统,精度高,效率好。采用USB技术及LCD显示技术取代传统提花机中的串口通信和数码显示,符合当今市场发展趋势,因此本提花控制系统具备良好的应用前景。
相关产品:
Cortex-A8开发板、AM335X开发板、Cortex-A5开发板、Cortex-A9开发板、ARM9开发板、AM1808开发板、AT91SAM9260开发板、AT91SAM9263开发板、AT91SAM9G45开发板、AT91SAM9M10开发板、EP9315开发板、CIRRUS LOGIC EP9315工控板、AT91SAM9263工控板、ARM9工业控制板、ARM9工控板、TI开发板、ARM9核心板