嵌入式系统1盘点机————随着现代物流业仓储、超市等行业的快速发展,物品流动的速度越来越快,仓储库存周期也越来越短。这样物流仓储盘点行业的压力也越来越大,传统的人工盘点方式已经不能适应现代物流的发展。为了解决这一问题,国际上一些物流先进国家已经采用专业的盘点设备——盘点机,用于物流盘点。概述盘点机是如何组成的呢?3组成我们在设计时采用了目前流行的嵌入式微处理器作为系统核心部件。其微处理器选型是采用三星公司生产的S3C2410微处理器,操作系统采用了WindowsCE.NET4.2嵌入式操作系统。整个系统的硬件部分主要分为三个大的模块:核心板、系统板和专用键盘及LCD显示器。核心板上集成了微处理器、64MBSDRAM和64MBNANDFlash模块及部分支持电路。系统板上设计有与核心板连接的接口,同时又集成有显示器接口,以太网接口,USB接口,串口,CF卡和IrDA条形码扫描接口等各种外设及以相应的控制部件,另外还有电源管理与转换等一些附属电路。31键的专用键盘是采用超低功耗的MSP430单片机作为控制器来对键盘进行编解码,通过自定义的串行口键盘接入系统板。显示部分是采用192*64LCD字符型显示器。4核心板、系统板和专用键盘及LCD显示实物图片5便携式盘点设备外观硬件平台的设计嵌入式设备的硬件架构一般都是以嵌入式微处理器为核心,通过处理器接口扩展以及系统硬件的支持,把众多的外设单元集成到整个系统中,并通过CPLD等逻辑转换器件和其它硬件电路完成对外设模块进行读写和控制操作。硬件部分主要包含有核心板,系统板和专用键盘及LCD显示器三个部分。系统核心板简介核心板是整个系统的核心,集成了盘点机系统的微处理器、SDRAM单元、NANDFlash单元以及它们所需要的辅助部件,如晶体振荡器(12MHZ和32KHZ两组),电源模块等等。67S3C2410以太网网卡CS8900NANDFLASHSDRAMCFCardAudioLCD显示器RS232键盘USB扫描仪硬件平台示意图系统板的组成系统板起两方面的作用,一方面对核心板提供支持。如为核心板供电,提供外设到核心板的连接,另一方面为各种外设提供了接口。系统板主要集成有RJ-45网络接口、USB主/从设备接口、串行接口、LCD显示器接口、CF卡接口、键盘等接口电路。同时,还有包含有一些相应的控制转换电路(如可编程器件CPLD)和电源管理部分。8专用键盘的设计盘点机的输入信号则采用外接的串口键盘手动输入和串口条形码扫描仪读入方式。串口键盘为自行设计的,适合盘点业需要的专用键盘,键盘采用了一款16位低功耗单片机——MSP430进行管理。使用盘点机的目的是为了提高盘点效率,对于盘点人员而言,使用最多的就是扫描仪和键盘。扫描仪上只有一个按键,使用简单。由于键盘的效率对于提高盘点的效率非常重要,所以在盘点机系统中设计一款最合适盘点使用的键盘是提高盘点效率的重要一环。盘点机是一款便携式设备,键盘不可能做得很大,另一方面为了便于盘点人员实现盲打,按键的大小不能太小,特别是频繁使用的按键还应该比计算机标准键盘略大。在这种情况下,按键的个数就有所限制,经过大量实践,最终的键盘设计采用了31键的方案。其中字母和数据键在一般情况下作为数字键使用,配合Shift按键输入字母。9键盘部分的框图10MSP430F1494*8矩阵键盘串行键盘接口LCD显示器系统采用了一款专用显示器——192×64型LCD显示器。该显示器是一种图形点阵液晶显示器,它主要由行驱动器、列驱动器及192×64全点阵液晶显示器组成。可完成图形显示,也可以显示12×4个(16×16点阵)汉字,采用3.3V电源供电,与处理器接口采用8位并行输入输出数据总线和8条控制线。S3C2410处理器内部集成了LCD控制器,但是该控制器不支持用户选定的显示器,只能采用其他方式接入该款显示器,实际采用的是直接挂接到处理器的通用I/O口上的方式。11软件系统的设计系统的软件系统主要包括嵌入式操作系统选型、定制及裁减、硬件驱动程序和用户应用程序方面。操作系统的定制与实现WindowCE具有良好的图形交互界面,便于开发调试上层图形应用程序,所以本便携式盘点机的操作系统选用了WindowsCE。MicrosoftWindowsCE.NET是支持多平台的、可定制的32位嵌入式操作系统。支持多线程、完全抢占执行和多任务。不仅适用于工业上的嵌入式设备,同时支持高度便携性的个人计算设备,如掌上电脑、PDA和移动通信设备等。12WindowsCE的启动过程(1)在核心板上,将系统设置为NANDFlashROM启动方式;(2)上电复位后,系统自动将NANDFlashROM内的前4KB字节(NBoot)拷贝到bootSRAM中,执行bootSRAM中代码。如果需要(NBoot4KB),将NBoot区数据拷贝到SDRAM中,再执行NBoot;(3)如果设置为调试状态,NBoot将EBoot区数据装入SDRAM,执行EBoot,EBoot程序按照用户的指令通过以太网下载WindowsCE镜像文件,并将镜像文件写入WindowsCE区段;(4)NBoot或者EBoot将WindowsCE区段数据装入SDRAM,引导WindowsCE操作系统。13键盘驱动程序的实现标准WindowsCE支持两种类型的键盘:PS/2键盘和矩阵键盘。本项目的键盘为串行接口,实际占用的是UART1,与两种标准类型都不匹配。分析两种标准WindowsCE键盘接口之后,决定在矩阵键盘模型的基础上进行修改,编写驱动程序,满足本项目的需求。14(1)将UART1配置为键盘接口;(2)修改OAL层中的系统中断映射代码,将UART1的硬件中断映射为逻辑键盘中断(SYSINTR_KEYBOARD);(3)在键盘中断驱动程序中注册键盘IST的中断映射为SYSINTR_KEYBOARD,将SYSINTR_KEYBOARD映射到事件EVENT_KEYBOARD上,等待键盘事件发生;(4)EVENT_KEYBOARD事件被触发后,在底层驱动模块中读取串口键盘代码,填充键盘码和按键状态所需的数据,提交给上一级模块;(5)键盘管理模块中修改扫描码到虚键码的转换表,完成扫描码到虚键码的转换。按照WindowsCE标准的键盘驱动结构编写键盘驱动程序,编译之后的DLL程序挂入WindowsCE系统,键盘即可正常工作。注意,本系统中小键盘的编码工作由键盘本地的控制器(MSP430)来完成。15盘点系统驱动程序的开发WindowsCE驱动模型要把WindowsCE移植到目标平台上,必须为在硬件平台上的硬件设备提供驱动程序。通过设备驱动程序可以将操作系统和外部设备连接起来,使得操作系统能够识别这些设备,并为应用程序提供设备服务。就像其它操作系统一样,WindowsCE支持广泛的基于各种CE平台的设备驱动程序,同时也提供一些用于驱动程序开发的模型(model)。16WindowsCE的设备驱动设备模型有两种形式:流接口驱动(StreamInterfaceDriver)和本地设备驱动(NativeDeviceDriver)]。两者的差别在于它们向上层提供的编程接口不同,流接口驱动提供一组统一格式的流接口,而本地设备驱动则根据具体设备的需求提供相应合适的接口。所有的设备驱动都是以动态链接库(DLL)的方式实现和加载。WindowsCE中的许多模块都可以管理设备驱动程序。例如与用户界面有关的GWES模块管理键盘、鼠标、显示和电源等驱动程序;设备管理(DeviceManager)根据注册表中的内容管理注册过的设备驱动程序,如串口驱动。在盘点机系统中,内部建立了设备的驱动程序,如显示设备LCD,采用本地设备驱动方式,通过移植定、制微软提供的驱动例程实现。其它外部设备,如串口、USBClient,采用流接口驱动实现。通过已经定义好的流接口函数应用程序可以用文件访问的方式访问接口设备,如用户可以像文件操作一样读写串行口。17谢谢观赏18