基于 ARM 的绣花机控制系统设计

2011-06-19 15:09:46来源: 互联网

摘要:绣花机控制系统作为绣花机最核心的部分,是提高性能和降低成本的关键。本文按照 嵌入式系统的开发过程,首先研究了绣花机控制系统的硬件框架,详细设计了电源电路、复 位电路、存储器接口电路、键盘与显示电路、USB  接口电路等电路。然后按照上位机和下 位机的结构层次,构建了绣花机控制系统的软件框架,对键盘输入、图形显示、USB 驱动、 花样存储与管理、串口通信等具体模块进行了软件设计。这样可设计出一套基于 ARM 的技 术先进、功能精简、高性价比的绣花机控制系统。

关键词:绣花机控制系统;嵌入式系统;ARM

0 引言

随着全自动绣花机的不断发展,机械方面的改进对机器的性能改善已经没有太大的效果。因而,控制系统就成为了绣花机提高性能和降低成本的关键,也是各大绣花机厂商的竞 争重点[1,2]。控制系统的硬件决定了整个系统的可靠性和稳定性,硬件质量的好坏除了 CPU 芯片之外,外围芯片的选择和电路的设计也起着至关重要的作用。而控制系统所有的功能都 需要通过软件来实现,软件的设计对于将来系统的稳定运行至关重要。

由于市场上绝大部分微处理器芯片都是以 ARM 为基础[3],本文研究了基于 ARM 的绣 花机控制系统的软硬件设计。首先在 LH7A404 和 LPC2214 的基础上确定了绣花机控制系统的硬件框架,详细设计了电源电路、复位电路、存储器接口电路、键盘与显示电路等具体电 路以及接口;然后按照上位机和下位机的层次构建了绣花机控制系统的软件框架,对键盘输入、图形显示、USB 驱动、花样存储与管理、串口通信等具体模块的软件进行了设计。

 

1 控制系统软硬件框架

根据绣花机系统的模块划分和系统架构,硬件可以分为上位机和下位机系统,两者通过串行接口进行实时通信,分别围绕 LH7A404 和 LPC2214 两个 CPU 进行设计。硬件框架如图 1 所示,LH7A404 作为上层 CPU 负责输入输出接口和花样存储系统,LPC2214 作为下层 CPU 负责绣花机机械动作的控制。其中电源电路和复位电路为两个 CPU 共用。

                  
 
                       图 1    绣花机控制系统硬件框架

 

控制系统的软件部分的设计也依据此结构划分层次,上位机系统包括键盘输入、图形显 示、USB  驱动、花样存储与管理,下位机系统即为机电控制模块,包括机电控制系统和机 电执行系统。软件框架如图 2 所示。

                   

                        图 2    绣花机控制系统软件框架

2 控制系统硬件设计

2.1  电源电路

开关电源系统提供 5V 和 12V 两套电源,5V 电源用于驱动各 I/O 口,12V 电源直接作为机电和底层设备的驱动电源。由于整个系统控制电路的工作电压并不都是 5V 和 12V,需 要对 5V 电源进行 DC-DC 转换,因此本文采用 TI 公司的 TPS54310PWP 电压转换芯片将 5V 电源转换成 3.3V/3A 的电源,用于给 CPU 及其外围电路供电。另外,系统 CPU 内核需要1.8V 的电压供给,且消耗电流的极限不超过 200mA,为保证可靠性并留下一定余量,1.8V 的电源系统提供的电流应不小于 0.5A。备份电池用于断电时给 SRAM 供电,以便及时备份 数据,需要 3.9V/0.5A 的电源供给。

2.2  复位电路

复位电路主要实现系统上电复位、手动复位和电源监控三个功能。系统上电时 CPU 状态不稳定,需要有一个复位逻辑将其初始化为某个确定的状态;系统运行过程中,程序可能“跑飞”或进入死循环,这时需要强行对系统手动复位;电源系统的可靠性直接影响到控制 系统的稳定性,需要有一个监控电路来监控电源的变化。

2.3  存储器接口电路

数据存储器分为动态存储器和静态存储器两种。本控制系统中应用了同步动态存储器(SDRAM)和双口静态存储器(SRAM)。SDRAM 成本低廉,容量大,应用比较广泛,在 上位机系统的设计中根据  LH7A404  存储器接口的特点选用  Micron  Technology 公司的 MT48LC16M16GT-75 作为设计基础。双口静态存储器 SRAM 成本较高、容量较小,但具有 存取速度快、接口简单、掉电后保存数据的优点。根据 LPC2214 的接口特点,设计中选用

ISSI 公司的 IS61LV25616AL 芯片,具有 512KB 的容量。 程序存储器用于存储启动代码、操作系统、应用程序和部分重要数据。考虑到系统的软件升级和数据擦写,选择 FLASH 存储器,它具有低功耗、大容量、擦写速度快、可整片或 分扇区在线编程(烧写)和擦除等特点。在上位机和下位机系统的设计中,选用 INTEL 公 司的 3V StrataFlashTM 存储器 E28F128J3,其单片容量可达 16MB,有 128 个 128K 字节可擦除块,每个数据块 100000 个擦除周期。

2.4  键盘与显示电路

键盘是系统操作的输入设备,用于输入数字参数和控制命令。本控制系统的按键总共有36 个,采用矩阵式结构。ROW1~ROW6 和 COL1~COL7 分别为 6 行和 7 列按键的接口。将 行线 ROW1~ROW6 设为输出,输出值设为 0,列线 COL1~COL7 设为输入,在每一行和每 一列的交叉点放置一个按键,每个按键就是一个瞬时接触开关,AT89C2051  通过这些接口 按照一定的频率对键盘进行定时扫描。uP_KMIDAT 和 uP_KMICLK 为 PS2 键盘接口。

显示器是系统的输出设备,用于反馈系统的运行状态,并给用户以直观信息,用户可以 根据提示进行相应的操作。本控制系统采用 LCD 显示屏,没有驱动电路,需要设计驱动电路与之配合使用。设计中所选的液晶显示屏是 SHARP 公司的 5.7 寸显示屏 LQ057Q3DC12I, 其供电要求是 3.0V~3.6V,需将芯片接上 3.3V 的电压。

3 控制系统软件设计

3.1  键盘输入程序

键盘输入模块的工作任务包括键盘扫描、键盘驱动和键盘处理。键盘扫描获得按键的扫描码,键盘驱动接收扫描码并对其进行处理,将处理后的数据送至应用程序,应用程序获得键值信息后对信息进行处理,实现按键功能。

键盘采用循环扫描方式,按照设定的扫描频率对键盘输入进行检测。系统创建一个扫 描任务,当检测到合法按键之后就将该按键扫描码写入消息发送给其他任务,通知系统某键 被按下,被按键的扫描码通常放置在一个缓冲区内,直到该应用程序准备处理一个按键为止。键盘驱动由 VxWorks 操作系统的一个可选组件——多媒体库 WindML 提供[4],包括下 层驱动和上层驱动。下层驱动负责驱动设备控制器并向上层驱动传送设备的原始数据,它是 作为 I/O 驱动来实现的,被设置在系统内核。上层驱动接收来自下层驱动的设备原始数据,并进行解释处理,将其打包成一个输入事件信息,然后将该信息发送至驱动接口。 应用程序通过驱动获得键盘的状态之后,根据从缓冲区读出的键值,按照键盘的预定义对各控制模块的组态信息进行设置,以执行相应的功能。

3.2  图形显示程序

进行图形界面(GUI)的设计同样需要加载多媒体库 WindML,WindML 支持多线程和多任务,但图形的资源是一定的,为了防止多线程之间产生资源冲突,需要使用互斥信号量锁定资源。在使用一组绘图函数前,用  uglBatchStart(gc)通过互斥信号量锁定图形上下文, 图形设备及缓冲,并隐藏光标。绘图操作完成后,再用 uglBatchEnd(gc)释放被锁定的资源, 以被其他的绘图函数使用。以下根据  WindML  的编程流程,以绘制直线为例给出一个绘图 操作的程序:

{

UGL_GC_ID gc;

......

uglInitialize();                        //    初始化

......

uglColorAlloc(devId, &colorTable[GREEN].rgbColor, UGL_NULL,

&colorTable[GREEN].uglColor, 1);         //   配置颜色

......

gc= uglGcCreate(devId);        //    创建图形上下文

......

uglBatchStart(gc);       //   锁定图形资源

uglForegroundColorSet(gc, colorTable[WHITE].uglColor);       //    设置前景色 uglBackgroundColorSet(gc, colorTable[RED].uglColor);   //                                           设置背景色 uglLineWidethSet(gc, 9);    //     设定线宽

uglLine(gc, 50);       //   绘制直线

uglBatchEnd(gc);       //   释放图形资源

......

}

3.3 USB 驱动程序

VxWorks 操作系统的 USB 驱动模块由四层组成:USB Client 模块、USB 主驱动、USB主控制器驱动、USB 主控制器。最低层是 USB 主控制器(USB Host Controller),这是主系 统中控制每一个 USB 设备的硬件部分。对于每个主控制器都需要开发 USB 主控制器驱动程 序(HCD),HCD 对主控制器芯片进行了抽象,为上层软件屏蔽底层硬件之间的差异。USB 主驱动(USBD)和 HCD 之间的接口允许一个或多个底层主控制器。Wind  River 的 USBD 能够同时连接多个 HCD。

USBD 是在 HCD 之上的独立于硬件的模块,它通过提供一组抽象的服务简化了程序员对上层 USB Client 模块的开发工作,即为 HCD 和 USB Client 两个模块之间的请求和相应提 供统一的标准接口。USB Client 模块位于结构图最上层,属于应用程序,根据具体应用的不 同,其内容和功能也不同,但都要实现与 USBD 的接口,对由 HCD 监测到并由 USBD 传送 给上层应用程序的 USB 标准要求作出适当的响应。

3.4  花样存储与管理程序

在花样存储系统中,花样文件是以一定的格式存入到系统内存的,所以文件的格式关系到系统能否识别花样。目前刺绣生产实际中流行的花样文件格式有四种:DST  格式、DSB格式、T01 格式和 T03 格式。

当不同格式的花样文件被读入到 FLASH 之后,需要对它们进行解析,转换成内部格式 的数据结构,同时对花样数据进行各种运算和处理,包括旋转、放大缩小、拉伸、镜像等。 花样处理过程就是系统调用接口函数实现处理任务。


 

3.5  串口通信程序

由于串口传输涉及到上位机 CPU 和下位机 CPU 之间的通信,因此作出命名约定:上位机 CPU 称为“左”侧,代码存放在以 left_*开头的文件中,下位机 CPU 称为“右”侧,代 码存放在以  right_*开头的文件中。串口模块结构大体可分为控制层、传输层和驱动程序, 串口传输层的作用在于向上层系统提供透明而高效的传输接口,用于两个 CPU 之间的数据 交互。

 

4 结语

本文根据 ARM 处理器的选型原则,选择 LH7A404 和 LPC2214 为上下位机 CPU 芯片;将绣花机控制系统的硬件分为上位机和下位机两部分,在全面考虑系统功能需求的基础上,围绕已选定的上下位机 CPU 确定了硬件框架。详细设计了电源电路、复位电路、存储器接 口电路、键盘与显示电路等具体电路。然后按照上位机和下位机的层次构建了绣花机控制系 统的软件框架,以 VxWorks 操作系统为平台,在 Tornado 开发环境下设计了键盘输入、图形显示、USB 驱动、花样存储与管理等模块程序。

本文作者创新点:将基于 ARM 嵌入式系统技术引入绣花机控制系统,详细设计了绣花机控制系统的软硬件系统,具有技术先进、功能精简、高性价比等特点。

关键字:绣花机  控制  控制系统  控制系统设计

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0619/article_6832.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
绣花机
控制
控制系统
控制系统设计

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved