现在位置:首页 >> 嵌入式操作系统 >> uCOS-Ⅱ
基于ARM和μC/OS-II的人造提花毛皮机控制系统
作者:xiaoli 时间:2009/8/8 文章来源:来自网络

  1 引言
   

       人造提花毛皮机是生产人造提花毛皮的针织机械。人造提花毛皮广泛用于服装、玩具、装饰等。随着人民生活水平的不断提高,市场对人造提花毛皮机的需求量也在大幅度上升。

       同时,对人造毛皮的质量标准也愈加严格,这就要求进一步提高人造提花毛皮机的控制精度和工作效率。ARM处理器具备高性能、低功耗、低成本等优点,将其应用于人造提花毛皮机控制系统,可以提高人造提花毛皮机的处理速度和精度,结合μC/OS-II实时操作系统,实现实时控制,并简化设计系统软件。
   

       嵌入式的发展方向是32位内核,因此结合LCD显示及USB存储技术,设计基于ARM和μC/OS-II的人造提花机控制系统具有现实意义。

       2 系统总体结构
   

       本系统主要由ARM微处理器、存储器、USB接口、步进电机控制、选针器控制、D/A转换电路和键盘及LCD显示等模块组成。系统启动后,微处理器根据设定的针筒转速参数、反馈针筒脉冲数以及梳理头密度参数来控制提花过程,不断检测断毛、断线等自停信号,并根据反馈的针筒脉冲来统计产量和定长自停。USB接口模块主要用于输入花型数据等参数,LCD模块用于显示花型数据。串口通信模块用于实现与人造提花机主机的通讯。其系统总体结构框图如图1所示。

       3 硬件电路设计
   

       在传统提花机的基础上,本系统更新了ARM模块、USB模块以及LCD显示模块,符合人造提花机的发展趋势,满足市场需求。

       3.1 ARM微处理器系统
   

        ARM微处理系统用于管理整个提花控制过程。本系统采用Samsung公司的S3C44BOX微处理器。S3C244BOX微处理器采用ARM7TDMI内核,工作在66 MHz,集成有8 KB Cache、外部存储器控制器、LCD控制器、71个通用I/O端口、8个外部中断源等。此外,本系统采用专用复位器件IMP811实现准确、高效的复位。系统时钟采用外接10MHz和32.768 kHz的晶体振荡器同时工作,其中,10 MHz晶体振荡器经ARM内部PLL倍频转换为66 M:Hz。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电压,为内核供电。ARM处理器基本系统电路如图2所示。

       3.2 USB接口模块
   

       本系统采用USB接口技术,选用USB控制器SL811HS。SL811HS是Cypress公司可支持全速数据传输的USB控制器,可作为USB主机或作为设备的接口控制器:提供全速和低速两种USB总线速率:片上集成有SIE、单端口Hub、USB收发器以及256 Byte的RAM:3.3 V的工作电压;硬件自动产生帧起始包SOF和CRC5/16校验。采用S3C44BOX的nGCS5选通USB控制器SL811HS。SL811HS的其他信号线与S3C344BOX的引脚对应相连。CPU可从外部U盘提取花型数据,具有即插即用功能,取代了传统提花机中的串口通信模块。USB接口硬件电路图如图3所示。

       3.3 键盘及LCD显示模块
   

       本系统采用TLC-VCT256/14G型控制器,可控制640×480点阵彩色TFT液晶显示屏,显示256种颜色,实时效果好,CPU能随时写入显示存储器而不影响显示效果。

       4 系统软件设计
   

       软件设计是指在μC/OS-II的支撑平台上设计各硬件模块电路的驱动程序,创建和启动多项任务,创建消息邮箱完成各任务间的通信,从而控制整个提花过程。

       4.1 主程序设计
   

       程序启动后,跳转至主函数开始执行,调用函数ARMT argetInit()初始化ARM系统,包括:建立相关参数和变量,配置ARM处理器中断端口,设置中断,并初始化各个器件等。调用函数OSInit()初始化μC/OS-II操作系统。 调用函数OSTask Create
(Main_Task,(void*)0,(OS_STK*)&Main_Task_Stack[TASK_STACK_SIZE-1],Main_Task_PRIO),创建主任务,并在主任务中创建各分任务,完成整个系统控制。调用函数OSStait(),μC/OS-II开始运行,执行主任务。

       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任务CPU可与外部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技术以及性能优越的μC/OS-II嵌入式实时操作系统,精度高,效率好。采用USB技术及LCD显示技术取代传统提花机中的串口通信和数码显示,符合当今市场发展趋势,因此本提花控制系统具备良好的应用前景。

本文来源:国外电子元器件    作者:汪凤翔 万光逵 王琪 俞子荣 吴开志

上一篇:基于μC/OS-II的中断下半[返回列表]下一篇: 实时内核μC/OS-II下的网络