嵌入式系统应用 概述 随着现代物流业仓储、超市等行业的快速发展,物品流动的速度越来越快,仓储库存周期也越来越短。这样物流仓储盘点行业的压力也越来越大,传统的人工盘点方式已经不能适应现代物流的发展。为了解决这一问题,国际上一些物流先进国家已经采用专业的盘点设备——盘点机,用于物流盘点。 我们选取了一个十分典型的国产盘点机进行介绍。其微处理器选型是采用韩国三星公司生产的S3C2410微处理器,操作系统采用了Windows CE .NET 4.2嵌入式操作系统。整个系统的硬件部分主要分为三个大的模块:核心板、系统板和专用键盘及 LCD显示器。
在核心板上集成了微处理器、64MB SDRAM和64MB NAND Flash模块及部分支持电路。在系统板上设计有与核心板连接的接口,同时又集成有显示器接口,以太网接口,USB接口,串口,CF卡和IrDA条形码扫描接口等各种外设及以相应的控制部件,另外还有电源管理与转换等一些附属电路。31键的专用键盘是采用超低功耗的MSP430单片机作为控制器来对键盘进行编解码,通过自定义的串行键盘口接入系统板。显示部分是采用192*64 LCD字符型显示器。 本章首先介绍了系统硬件部分设计及工作原理,在软件部分介绍了Windows CE操作系统的移植和定制,驱动程序和支持软件的编制。盘点机除了支持常用的设备,还需要支持串口条形码扫描仪,CF卡等设备。
实物图片 便携式盘点设备外观
硬件平台的设计 嵌入式设备的硬件架构一般都是以嵌入式微处理器为核心,通过处理器接口扩展以及系统硬件的支持,把众多的外设单元集成到整个系统中,并通过CPLD 等逻辑转换器件和其它硬件电路完成对外设模块进行读写和控制操作。 物流盘点机系统硬件原理框图如图所示,硬件部分主要包含有核心板,系统板和专用键盘及 LCD显示器三个部分。 1)系统核心板简介 核心板是整个系统的核心,集成了盘点机系统的微处理器、SDRAM单元、NAND Flash单元以及它们所需要的辅助部件,如晶体振荡器(12MHZ和32KHZ两组),电源模块等等。核心板图如图所示。
硬件平台示意图
2) FlashROM程序存储器 在核心板中,微处理器采用的是基于ARM920T核的S3C2410微处理器。系统的程序存储器采用的是NAND Flash,芯片的型号是Samsung公司的K9F1208,容量为64MB,NAND FlashROM 接口电路原理如图9-2所示。 它按页进行自动编程,每一页大小为528(512+16)字节,编程的典型时间为200µs。擦除则按照块进行,每一块的大小为16K字节,典型的擦除时间为2ms。它在页面中读取单个数据的时间为50ns。K9F1208总共有48个引脚,起作用的只有8根I/O口线、读写控制线和电源线等。I/O口是地址、命令输入和数据输出/输入的复用端口。K9F1208还提供了ECC错误纠正码,实现坏区检测以及实时映射,这样它具有高达10万次的编程/擦除周期,数据保存长达10年。在S3C2410内部集成有NAND Flash控制器,可以在硬件上直接与NAND Flash相连。在盘点机中,NAND Flash被用作装载操作系统镜像以及大容量的数据存储,同时也是系统启动存储器。
核心板部分的示意图 核心板是整个系统的核心,集成了盘点机系统的处理器,SDRAM单元,NAND Flash单元以及它们所需要的辅助部件
3) SDRAM随机存储器 SDRAM被用来运行操作系统以及各类数据的缓存,图9-3是核心板 SDRAM 接口部分的原理图,系统采用两片HY57V561620 16M×16Bit SDRAM芯片,共同组成32Bit数据宽度,64MB内存。 HY57V561620是一款4Banks×4M×16Bit的SDRAM芯片,采用3.3V电源供电,比较适合嵌入式系统。SDRAM与其它的RAM相比,有许多独特的优点,容量大,功耗低,速度快,最快可以工作在166MHz频率下,通常存储时间为10ns。在高速存储系统中SDRAM是必不可少的外部存储设备。SDRAM通过S3C2410片内的SDRAM控制器来管理,SDRAM挂接在BANK6上。
核心板SDRAM部分的原理电路图
4)核心板电源 图9-4是核心板电源部分的原理电路图。图中,采用MIC5207电源芯片将来自系统板的3.3V电压转换为两组1.8V电压供给处理器内核使用。核心板上还有一些辅助电路,包括上拉电阻,滤波电容,以及供处理器使用的主时钟晶振,供外设适用的辅助时钟晶振等,它们一起构成了ARM的最小硬件系统板。系统所使用的S3C2410处理器是一款FBGA封装的高速处理器,运行时钟频率为203MHz,这种FBGA封装的高速处理器需要使用多层电路板设计。本系统核心板工作在高速信号下,为了布线方便,减少干扰,采用了六层电路板设计,第二层为接地面,四层为电源面,其他各层为信号层。核心板通过标准144芯SIMM插座与母板连接。核心板是一个最小的ARM9硬件系统板,具有较好的通用性,可以作为不同产品开发设计的基础。
电源原理图
系统板(应用板)的组成与工作源 系统板起两方面的作用,一方面对核心板提供支持。如为核心板供电,提供外设到核心板的连接,另一方面为各种外设提供了接口。系统板主要集成有RJ-45网络接口、USB 主/从设备接口、串行接口、LCD显示器接口、CF卡接口、键盘等接口电路。同时,还有包含有一些相应的控制转换电路(如可编程器件CPLD)和电源管理部分。核心板和母板之间采用标准SIMM插槽连接,外设和系统板之间采用相应的外设接口连接。其中可编程器件CPLD采用的是Altera公司的EPM3032ATC44-10的CPLD芯片。CPLD器件可以实现高速的FIFO或者利用其灵活的可编程性,可以作为核心板与外部其他功能模块的通用接口(如实现了一个IDE接口)。因为S3C2410本身没有CF卡(半导体辅助存储器中的一种)接口,所以为了连接CF卡,必须采用转换接口。实际系统中采用了总线接口的IDE接口转换为CF卡接口。
系统板上的网络接口芯片采用CS8900网络接口芯片。CS8900芯片是Cirrus Logic公司生产的一种局域网处理芯片,它的封装是100-pin TQFP,内部集成了在片RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口。本系统中采用16位接口方式。以太网接口原理图如图9-6 所示,图中HR601627是一种脉冲变压器,在CS8900的前端对网络信号进行脉冲波形变换。
系统采用了一款专用显示器——192×64型LCD显示器。该显示器是一种图形点阵液晶显示器,它主要由行驱动器、列驱动器及192×64全点阵液晶显示器组成。可完成图形显示,也可以显示12×4个( 16×16点阵 )汉字,采用3.3V电源供电,与处理器接口采用8位并行输入输出数据总线和8条控制线。S3C2410处理器内部集成了LCD控制器,但是该控制器不支持用户选定的显示器,只能采用其他方式接入该款显示器,实际采用的是直接挂接到处理器的通用I/O口上的方式。
S3C2410中集成了3.3V TTL 电平的串行接口,可以直接使用。为了与标准RS232C串行设备通信,采用了一块SP3243芯片用于电平的转换,构成了一个比较完整的串口。 在盘点机的实际应用中,需要外接串行口的条形码扫描仪,该扫描仪采用标准串口9针D型插座,工作时需要通过串口第九针外接5V电源。为了方便使用该款扫描仪,设计时对串行接口进行了改进,在串口第九针上采用电子开关叠加可控的5V电源。在作为标准串口使用时,5V电源和第九针断开。当外接扫描仪时第九针接入5V电源,驱动扫描仪正常工作。串口第九针是否接入5V电源在串口驱动程序中实现,应用程序通过串口设置系统调用函数来控制,接口电路如图 9-8 所示。
本系统中所用的设备较多,其中很多设备需要复位信号来保证正常可靠的复位。为此,在系统板上设计了复位信号模块,该模块采用电阻、电容和二极管构成一个简单适用的复位电路,在此基础上采用74HC17芯片进行波形调整、信号取反继而生成符合设备需要的高、低电平两组复位信号,供整个系统使用。复位电路的原理图见图9-9所示 。 S3C2410处理器片内集成有USB接口,故系统板只是简单的将此信号引出。
系统 板图 10M以太网 网卡CS8900 条形码扫描仪RS232接口 网络传输 RJ45接口 电源模块 MAX603 JTAG调试 接口 键盘 RS232接口 LCD显示器 接口
软件系统的设计 系统的软件系统主要包括嵌入式操作系统选型、定制及裁减、硬件驱动程序和用户应用程序方面。 9.3.1操作系统的定制与实现 Window CE 具有良好的图形交互界面,便于开发调试上层图形应用程序,所以本便携式盘点机的操作系统选用了Windows CE。 Microsoft Windows CE .NET 是支持多平台的、可定制的32位嵌入式操作系统。支持多线程、完全抢占执行和多任务。不仅适用于工业上的嵌入式设备,同时支持高度便携性的个人计算设备,如掌上电脑、PDA 和移动通信设备等。Windows CE .NET在设计上采用完全的模块化结构,可以根据硬件平台和应用目的灵活的进行定制。对于应用程序的开发者来说,Windows CE .NET 提供了同 Windows 环境相似的各种开发环境。Microsoft Win32 API、ActiveX 控件、消息队列、COM 接口、ATL 和MFC,这对于提高编程者的效率和从其他 Windows 平台上移植成功的应用程序很有好处。Windows CE .NET 内建了对多媒体、通信(TCP/IP、SNMP、TAPI 等)和安全的支持,并且提供了Windows 用户熟悉的常用的应用程序。Windows CE 通过 ActiveSync 实现了目标设备同台式计算机之间的通信。
Win CE操作系统的定制和实现 1)NAND FlashROM存储空间的分配 系统核心板上使用 NAND FlashROM芯片内部分为4个平面,每个平面包含1024个块,每块包含32页,每页512字节。芯片的读写以页为单位,擦除以块为单位。故存储器的分配以块为单位(16KB)。存储器分为两个大小相同的大区,即系统区和用户区,均为2048块。用户区供用户保存用户程序和数据使用。系统区又具体分为三个区段: ( 1)NBoot区(0-1块): 大小为2块(32KB),其前4KB是系统启动代码,用于引导EBoot(调试状态)或者Windows CE(发行状态)内核,其他部分可以保存启动中可能需要的程序或者数据。 (2)EBoot区(2-8块): 大小为7块(112K),一般在调试时使用,主要作用是格式化NAND Flash,通过网络下载Windows CE内核等。 (3)Windows CE区(其他块):保存Windows CE的系统文件。
2)Win CE操作系统的定制和实现 搭建基于Windows CE操作系统的平台需要完成以下主要步骤: (1)导入和硬件平台相关的.cec文件; (2)利用标准开发向导,根据Windows CE的架构创建一个平台; (3)利用附加项和目录特征客户化平台; (4)为特定的目标设备创建一个自引导程序和板级支持包(Board Suport Package); (5)加入BSP文件编译操作系统镜像文件,通过以太网将镜像文件下载到目标设备,并调试平台。 (6)平台搭建并调试成功,为平台应用程序开发者导出软件开发工具包(SDK)。 这样程序开发者就可以利用EVC开发应用软件了。
通常,在开发平台的时候,首先将OS镜像文件下载到一个硬件平台,比如基于PC硬件的Windows CE开发平台(CEPC)。Platform Builder包含了CEPC和很多其他硬件开发平台的自引导程序和板级支持包(BSPs)。在硬件开发平台上把平台提炼和调试之后使之适合目标设备的要求。在下载镜像文件到目标设备前要先创建自引导装入程序和原始设备制造商(OEM)适应层(OAL)。 OAL是介于内核和目标平台固件之间的一个层。为了使Windows CE系统能够运行在多种硬件平台上,微软又提出了一个新的概念——OEM适配层(OAL)。这个OEM适配层(OAL)处于Windows CE内核和硬件平台中间,它可以将特定设备的硬件特性与Windows CE内核功能隔离开,从而使Windows CE的内核可以通过这个硬件隔离层提供的标准抽象接口来实现与硬件平台的通讯。OAL的存在可以隐藏各种与硬件有关的细节,屏蔽不同平台硬件的差异,保证Windows CE上层内核的独立性,从而增强了整个系统的可移植性。
这一特性对于Windows CE上层应用设计的程序员来说无疑是一个福音,但是对于Windows CE在特定平台的移植以及底层硬件驱动设计的开发者来说,却面临着巨大的困难。面对一个结构复杂、功能强大、设计先进的操作系统,如何全面认识OAL设计结构、如何实现OAL与特定硬件平台正确交互以及如何建立OAL与上层内核连接等关键技术,在系统设计和移植时都是一个严峻的考验。OAL提供的功能与底层硬件的控制和通信密不可分,不同的硬件平台会有不同的OAL实现。与其它处理器平台移植一样,S3C2410处理器的OAL需要在系统体系结构、板级支持包(Board Support Package)两个层面实现。 本系统采用的处理器是S3C2410处理器,这是一款基于ARM V4版本的处理器,在定制操作系统过程中采用了ARM V4类型的BSP。在此基础上,加载开发的本地驱动程序导出的.cec文件到Platform Builder的Catalog栏下,作为可选组件供操作系统选择。
由于Windows CE内核通常为20M-30M字节,在调试机器时要经常地将如此巨大的数据下载到RAM中,传输效率是最关键的问题。Platform Builder的下载服务提供了四种方式: (2)以太网下载服务:它通过以太网连接利用Windows CE的自引导装入程序(EBoot)下载操作系统镜像文件。这种服务方式需要在开发工作站上有一个以太网卡,目标机上一个调试用的以太网卡。利用以太网下载服务,所有连接到目标设备的应用程序和工具都可以通过一条简单的网线来通讯。
(3)并行下载服务: 也利用WinCE的自引导程序,然后通过并行口连接下载操作系统的镜像文件。但是,在并行下载服务里没有与之对应的内核传输。 (4)串行下载服务:串行下载服务是通过串行口由Win CE自引导装入程序通过串行口连接下载操作系统镜像文件。在这种服务里,无法在运行时配置设备方的设置。但是可以修改并重新编译操作系统镜像文件代码来改变波特率。如果采用串口下载,假设采用最高传输速率115200bps,那么在20M的数据下载则需要大约23分钟,故所需时间较长。 在实际系统开发过程中,用以太网连接来下载操作系统的镜像文件。系统自引导装入程序(EBoot)与运行在开发工作站上的Platform Builder通信,下载镜像文件和设置调试服务。以太网连接通过以太网服务可以提供更快的传输速度和更有效的集成功能。串行连接和并行连接相对以太网连接速度慢,效率比较低,只在监视调试过程的时候偶尔用上。
3) Windows CE的启动过程 (1)在核心板上,将系统设置为NAND FlashROM启动方式,即OM[l:0]设置为00; (2)上电复位后,系统自动将NAND FlashROM内的前4KB字节(NBoot)拷贝到boot SRAM中,执行boot SRAM中代码。如果需要(NBoot > 4KB),将NBoot区数据拷贝到SDRAM中,再执行NBoot; (3)如果设置为调试状态,NBoot将EBoot区数据装入SDRAM,执行EBoot,EBoot程序按照用户的指令通过以太网下载Windows CE镜像文件,并将镜像文件写入Windows CE区段; (4)NBoot或者EBoot将Windows CE区段数据装入SDRAM,引导Windows CE操作系统。
本系统配置为NAND FlashROM启动,系统上电复位后,boot SDRAM被映射到地址0x00000000,系统自动将NAND Flash中的前4KB代码拷贝到boot SDRAM中,开始执行boot SRAM中的代码,即NBoot程序。系统执行的第一行代码即为NBoot的第一行代码。NBoot的功能比较简单,只是用于初始化系统,将复杂的系统软件装入SDRAM,之后就交出控制权。
用户应用程序的开发 因为系统采用了一款专用的非标准显示器,分辨率为192*64点,无法运行Windows CE的图形界面,故需要专门编写出一整套管理界面供用户使用。用户对界面的要求实类似Dos的界面,功能要求如下: (1)系统管理 包括声音设置,日期/时间设置,键盘设置,各种系统自检; (2)文件管理 包括文件的浏览,查找,删除,上穿,运行,编辑等; (3)网络配置 包括IP地址的设定以及与服务器的同步等; (4)系统重启与版本说明等。 各个功能程序的编制在Embedded Visual C++ 4.2环境中完成,开发环境和桌面系统Visual C++ 6.0的环境类似,在此不再说明。
盘点器又称条码数据采集器(Barcode Handheld Terminal)、手持终端、掌上电脑,其具有一体性、机动性、体积小、重量轻、高性能,并适于手持等特点。它是将条码扫描装置与数据终端一体化,带有电池可离线操作的终端电脑设备。具备实时采集、自动存储、即时显示、即时反馈、自动处理、自动传输功能。为现场数据的真实性、有效性、实时性、可用性提供了保证,可提供的品牌有讯宝,码捷,DATALOGIC卡西欧,夏浪(定制版),cipherlab等。 主要应用于超市,连锁超市,商场,大卖厂,及大中型公司单位固定资产盘点。超市的商品摆放在货架,客户能来回拿,不想要的时候会随机的放一块,这样造成了超市的工作人员每天把商品归回原位的难度,采用超市盘点机的话,只需用超市盘点机扫描药品条码,就能显示这个超市应该摆放在那个货架上,这样可以加快超市归位的速度及准确性,解决大型连锁超市商品归位难的一大难题。