




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第9章开发应用实例 9 1概述随着现代物流业仓储 超市等行业的快速发展 物品流动的速度越来越快 仓储库存周期也越来越短 这样物流仓储盘点行业的压力也越来越大 传统的人工盘点方式已经不能适应现代物流的发展 为了解决这一问题 国际上一些物流先进国家已经采用专业的盘点设备 盘点机 用于物流盘点 我们在设计时采用了目前流行的嵌入式微处理器作为系统核心部件 其微处理器选型是采用韩国三星公司生产的S3C2410微处理器 操作系统采用了WindowsCE NET4 2嵌入式操作系统 整个系统的硬件部分主要分为三个大的模块 核心板 系统板和专用键盘及LCD显示器 2 在核心板上集成了微处理器 64MBSDRAM和64MBNANDFlash模块及部分支持电路 在系统板上设计有与核心板连接的接口 同时又集成有显示器接口 以太网接口 USB接口 串口 CF卡和IrDA条形码扫描接口等各种外设及以相应的控制部件 另外还有电源管理与转换等一些附属电路 31键的专用键盘是采用超低功耗的MSP430单片机作为控制器来对键盘进行编解码 通过自定义的串行键盘口接入系统板 显示部分是采用192 64LCD字符型显示器 本章首先介绍了系统硬件部分设计及工作原理 在软件部分介绍了WindowsCE操作系统的移植和定制 驱动程序和支持软件的编制 盘点机除了支持常用的设备 还需要支持串口条形码扫描仪 CF卡等设备 3 实物图片 便携式盘点设备外观 4 9 2硬件平台的设计 嵌入式设备的硬件架构一般都是以嵌入式微处理器为核心 通过处理器接口扩展以及系统硬件的支持 把众多的外设单元集成到整个系统中 并通过CPLD等逻辑转换器件和其它硬件电路完成对外设模块进行读写和控制操作 物流盘点机系统硬件原理框图如图9 1abc所示 硬件部分主要包含有核心板 系统板和专用键盘及LCD显示器三个部分 1 系统核心板简介核心板是整个系统的核心 集成了盘点机系统的微处理器 SDRAM单元 NANDFlash单元以及它们所需要的辅助部件 如晶体振荡器 12MHZ和32KHZ两组 电源模块等等 核心板图和PCB板图如图9 1b c所示 5 图9 1a硬件平台示意图 6 2 FlashROM程序存储器在核心板中 微处理器采用的是基于ARM920T核的S3C2410微处理器 系统的程序存储器采用的是NANDFlash 芯片的型号是Samsung公司的K9F1208 容量为64MB NANDFlashROM接口电路原理如图9 2所示 它按页进行自动编程 每一页大小为528 512 16 字节 编程的典型时间为200 s 擦除则按照块进行 每一块的大小为16K字节 典型的擦除时间为2ms 它在页面中读取单个数据的时间为50ns K9F1208总共有48个引脚 起作用的只有8根I O口线 读写控制线和电源线等 I O口是地址 命令输入和数据输出 输入的复用端口 K9F1208还提供了ECC错误纠正码 实现坏区检测以及实时映射 这样它具有高达10万次的编程 擦除周期 数据保存长达10年 在S3C2410内部集成有NANDFlash控制器 可以在硬件上直接与NANDFlash相连 在盘点机中 NANDFlash被用作装载操作系统镜像以及大容量的数据存储 同时也是系统启动存储器 7 图9 1b核心板部分的示意图 核心板是整个系统的核心 集成了盘点机系统的处理器 SDRAM单元 NANDFlash单元以及它们所需要的辅助部件 8 图9 1c核心板PCB图 6层 9 图9 2NANDFlashROM的原理图 10 3 SDRAM随机存储器SDRAM被用来运行操作系统以及各类数据的缓存 图9 3是核心板SDRAM接口部分的原理图 系统采用两片HY57V56162016M 16BitSDRAM芯片 共同组成32Bit数据宽度 64MB内存 HY57V561620是一款4Banks 4M 16Bit的SDRAM芯片 采用3 3V电源供电 比较适合嵌入式系统 SDRAM与其它的RAM相比 有许多独特的优点 容量大 功耗低 速度快 最快可以工作在166MHz频率下 通常存储时间为10ns 在高速存储系统中SDRAM是必不可少的外部存储设备 SDRAM通过S3C2410片内的SDRAM控制器来管理 SDRAM挂接在BANK6上 11 图9 3核心板SDRAM部分的原理电路图 12 4 核心板电源图9 4是核心板电源部分的原理电路图 图中 采用MIC5207电源芯片将来自系统板的3 3V电压转换为两组1 8V电压供给处理器内核使用 核心板上还有一些辅助电路 包括上拉电阻 滤波电容 以及供处理器使用的主时钟晶振 供外设适用的辅助时钟晶振等 它们一起构成了ARM的最小硬件系统板 系统所使用的S3C2410处理器是一款FBGA封装的高速处理器 运行时钟频率为203MHz 这种FBGA封装的高速处理器需要使用多层电路板设计 本系统核心板工作在高速信号下 为了布线方便 减少干扰 采用了六层电路板设计 第二层为接地面 四层为电源面 其他各层为信号层 核心板通过标准144芯SIMM插座与母板连接 核心板是一个最小的ARM9硬件系统板 具有较好的通用性 可以作为不同产品开发设计的基础 13 图9 4电源原理图 14 9 2 2系统板 应用板 的组成与工作原 系统板起两方面的作用 一方面对核心板提供支持 如为核心板供电 提供外设到核心板的连接 另一方面为各种外设提供了接口 系统板主要集成有RJ 45网络接口 USB主 从设备接口 串行接口 LCD显示器接口 CF卡接口 键盘等接口电路 同时 还有包含有一些相应的控制转换电路 如可编程器件CPLD 和电源管理部分 核心板和母板之间采用标准SIMM插槽连接 外设和系统板之间采用相应的外设接口连接 其中可编程器件CPLD采用的是Altera公司的EPM3032ATC44 10的CPLD芯片 CPLD器件可以实现高速的FIFO或者利用其灵活的可编程性 可以作为核心板与外部其他功能模块的通用接口 如实现了一个IDE接口 因为S3C2410本身没有CF卡 半导体辅助存储器中的一种 接口 所以为了连接CF卡 必须采用转换接口 实际系统中采用了总线接口的IDE接口转换为CF卡接口 15 系统板上的网络接口芯片采用CS8900网络接口芯片 CS8900芯片是CirrusLogic公司生产的一种局域网处理芯片 它的封装是100 pinTQFP 内部集成了在片RAM 10BASE T收发滤波器 并且提供8位和16位两种接口 本系统中采用16位接口方式 以太网接口原理图如图9 6所示 图中HR601627是一种脉冲变压器 在CS8900的前端对网络信号进行脉冲波形变换 16 图9 6CS8900网络接口原理图 17 系统采用了一款专用显示器 192 64型LCD显示器 该显示器是一种图形点阵液晶显示器 它主要由行驱动器 列驱动器及192 64全点阵液晶显示器组成 可完成图形显示 也可以显示12 4个 16 16点阵 汉字 采用3 3V电源供电 与处理器接口采用8位并行输入输出数据总线和8条控制线 S3C2410处理器内部集成了LCD控制器 但是该控制器不支持用户选定的显示器 只能采用其他方式接入该款显示器 实际采用的是直接挂接到处理器的通用I O口上的方式 18 S3C2410中集成了3 3VTTL电平的串行接口 可以直接使用 为了与标准RS232C串行设备通信 采用了一块SP3243芯片用于电平的转换 构成了一个比较完整的串口 在盘点机的实际应用中 需要外接串行口的条形码扫描仪 该扫描仪采用标准串口9针D型插座 工作时需要通过串口第九针外接5V电源 为了方便使用该款扫描仪 设计时对串行接口进行了改进 在串口第九针上采用电子开关叠加可控的5V电源 在作为标准串口使用时 5V电源和第九针断开 当外接扫描仪时第九针接入5V电源 驱动扫描仪正常工作 串口第九针是否接入5V电源在串口驱动程序中实现 应用程序通过串口设置系统调用函数来控制 接口电路如图9 8所示 19 图9 8串行接口电路 20 本系统中所用的设备较多 其中很多设备需要复位信号来保证正常可靠的复位 为此 在系统板上设计了复位信号模块 该模块采用电阻 电容和二极管构成一个简单适用的复位电路 在此基础上采用74HC17芯片进行波形调整 信号取反继而生成符合设备需要的高 低电平两组复位信号 供整个系统使用 复位电路的原理图见图9 9所示 S3C2410处理器片内集成有USB接口 故系统板只是简单的将此信号引出 21 图9 8复位电路原理图 22 盘点机的输入信号则采用外接的串口键盘手动输入和串口条形码扫描仪读入方式 串口键盘为自行设计的 适合盘点业需要的专用键盘 键盘采用了一款16位低功耗单片机 MSP430进行管理 使用盘点机的目的是为了提高盘点效率 对于盘点人员而言 使用最多的就是扫描仪和键盘 扫描仪上只有一个按键 使用简单 由于键盘的效率对于提高盘点的效率非常重要 所以在盘点机系统中设计一款最合适盘点使用的键盘是提高盘点效率的重要一环 盘点机是一款便携式设备 键盘不可能做得很大 另一方面为了便于盘点人员实现盲打 按键的大小不能太小 特别是频繁使用的按键还应该比计算机标准键盘略大 在这种情况下 按键的个数就有所限制 经过大量实践 最终的键盘设计采用了31键的方案 其中字母和数据键在一般情况下作为数字键使用 配合Shift按键输入字母 图9 10为键盘部分的框图 9 2 3专用键盘的设计 23 同时 为了使用方便 键盘上还设置了系统休眠 唤醒按键 与键盘接口一起通过排线接入系统板 键盘所用的控制器为MSP430F149 这是TI公司推出的一种具有16位RISC结构 超低功耗的工业级混合信号控制器 这些控制器被设计为可用电池工作 而且可以有很长使用时间的应用 CPU中的16个寄存器和常数发生器使MSP430微控制器能达到最高的代码效率 灵活的时钟源可以使器件达到最低的功率消耗 数字控制的振荡器 DCO 可使器件从低功耗模式迅速唤醒 在少于6 s的时间内激活到活跃的工作方式 程序中使用MSP430F149的外部中断I O口作为键盘扫描的信号线 经过编码后 通过片内内置的串口输出到系统板 该芯片在1 8 3 6V电压 1MHz的时钟条件下运行 耗电电流在0 1 400 A之间 因不同的工作模式而不同 CPU平时至于节电模式 按键时触发中断信号 CPU立即被唤醒 处理完键盘事件后 CPU再次进入省电模式 24 图9 10为键盘部分的框图 25 系统板图 10M以太网网卡CS8900 条形码扫描仪RS232接口 网络传输RJ45接口 JTAG调试接口 键盘RS232接口 LCD显示器接口 电源模块MAX603 26 9 3软件系统的设计 系统的软件系统主要包括嵌入式操作系统选型 定制及裁减 硬件驱动程序和用户应用程序方面 9 3 1操作系统的定制与实现WindowCE具有良好的图形交互界面 便于开发调试上层图形应用程序 所以本便携式盘点机的操作系统选用了WindowsCE MicrosoftWindowsCE NET是支持多平台的 可定制的32位嵌入式操作系统 支持多线程 完全抢占执行和多任务 不仅适用于工业上的嵌入式设备 同时支持高度便携性的个人计算设备 如掌上电脑 PDA和移动通信设备等 WindowsCE NET在设计上采用完全的模块化结构 可以根据硬件平台和应用目的灵活的进行定制 对于应用程序的开发者来说 WindowsCE NET提供了同Windows环境相似的各种开发环境 MicrosoftWin32API ActiveX控件 消息队列 COM接口 ATL和MFC 这对于提高编程者的效率和从其他Windows平台上移植成功的应用程序很有好处 WindowsCE NET内建了对多媒体 通信 TCP IP SNMP TAPI等 和安全的支持 并且提供了Windows用户熟悉的常用的应用程序 WindowsCE通过ActiveSync实现了目标设备同台式计算机之间的通信 27 1 NANDFlashROM存储空间的分配系统核心板上使用NANDFlashROM芯片内部分为4个平面 每个平面包含1024个块 每块包含32页 每页512字节 芯片的读写以页为单位 擦除以块为单位 故存储器的分配以块为单位 16KB 存储器分为两个大小相同的大区 即系统区和用户区 均为2048块 用户区供用户保存用户程序和数据使用 系统区又具体分为三个区段 1 NBoot区 0 1块 大小为2块 32KB 其前4KB是系统启动代码 用于引导EBoot 调试状态 或者WindowsCE 发行状态 内核 其他部分可以保存启动中可能需要的程序或者数据 2 EBoot区 2 8块 大小为7块 112K 一般在调试时使用 主要作用是格式化NANDFlash 通过网络下载WindowsCE内核等 3 WindowsCE区 其他块 保存WindowsCE的系统文件 9 3 1WinCE操作系统的定制和实现 28 2 WinCE操作系统的定制和实现 搭建基于WindowsCE操作系统的平台需要完成以下主要步骤 1 导入和硬件平台相关的 cec文件 2 利用标准开发向导 根据WindowsCE的架构创建一个平台 3 利用附加项和目录特征客户化平台 4 为特定的目标设备创建一个自引导程序和板级支持包 BoardSuportPackage 5 加入BSP文件编译操作系统镜像文件 通过以太网将镜像文件下载到目标设备 并调试平台 6 平台搭建并调试成功 为平台应用程序开发者导出软件开发工具包 SDK 这样程序开发者就可以利用EVC开发应用软件了 29 通常 在开发平台的时候 首先将OS镜像文件下载到一个硬件平台 比如基于PC硬件的WindowsCE开发平台 CEPC PlatformBuilder包含了CEPC和很多其他硬件开发平台的自引导程序和板级支持包 BSPs 在硬件开发平台上把平台提炼和调试之后使之适合目标设备的要求 在下载镜像文件到目标设备前要先创建自引导装入程序和原始设备制造商 OEM 适应层 OAL OAL是介于内核和目标平台固件之间的一个层 为了使WindowsCE系统能够运行在多种硬件平台上 微软又提出了一个新的概念 OEM适配层 OAL 这个OEM适配层 OAL 处于WindowsCE内核和硬件平台中间 它可以将特定设备的硬件特性与WindowsCE内核功能隔离开 从而使WindowsCE的内核可以通过这个硬件隔离层提供的标准抽象接口来实现与硬件平台的通讯 OAL的存在可以隐藏各种与硬件有关的细节 屏蔽不同平台硬件的差异 保证WindowsCE上层内核的独立性 从而增强了整个系统的可移植性 30 这一特性对于WindowsCE上层应用设计的程序员来说无疑是一个福音 但是对于WindowsCE在特定平台的移植以及底层硬件驱动设计的开发者来说 却面临着巨大的困难 面对一个结构复杂 功能强大 设计先进的操作系统 如何全面认识OAL设计结构 如何实现OAL与特定硬件平台正确交互以及如何建立OAL与上层内核连接等关键技术 在系统设计和移植时都是一个严峻的考验 OAL提供的功能与底层硬件的控制和通信密不可分 不同的硬件平台会有不同的OAL实现 与其它处理器平台移植一样 S3C2410处理器的OAL需要在系统体系结构 板级支持包 BoardSupportPackage 两个层面实现 本系统采用的处理器是S3C2410处理器 这是一款基于ARMV4版本的处理器 在定制操作系统过程中采用了ARMV4类型的BSP 在此基础上 加载开发的本地驱动程序导出的 cec文件到PlatformBuilder的Catalog栏下 作为可选组件供操作系统选择 31 由于WindowsCE内核通常为20M 30M字节 在调试机器时要经常地将如此巨大的数据下载到RAM中 传输效率是最关键的问题 PlatformBuilder的下载服务提供了四种方式 1 实时仿真下载服务 它启动仿真器并且在仿真器上引导操作系统的镜像文件 仿真下载服务不需要通讯硬件 因为仿真器是在开发工作站上运行的 这是PlatformBuilder4 0版本开始提供的一个新技术 仿真器比目标设备硬件有着更高的容错性 可以监控目标板程序运行的各种状态 2 以太网下载服务 它通过以太网连接利用WindowsCE的自引导装入程序 EBoot 下载操作系统镜像文件 这种服务方式需要在开发工作站上有一个以太网卡 目标机上一个调试用的以太网卡 利用以太网下载服务 所有连接到目标设备的应用程序和工具都可以通过一条简单的网线来通讯 32 3 并行下载服务 也利用WinCE的自引导程序 然后通过并行口连接下载操作系统的镜像文件 但是 在并行下载服务里没有与之对应的内核传输 4 串行下载服务 串行下载服务是通过串行口由WinCE自引导装入程序通过串行口连接下载操作系统镜像文件 在这种服务里 无法在运行时配置设备方的设置 但是可以修改并重新编译操作系统镜像文件代码来改变波特率 如果采用串口下载 假设采用最高传输速率115200bps 那么在20M的数据下载则需要大约23分钟 故所需时间较长 在实际系统开发过程中 用以太网连接来下载操作系统的镜像文件 系统自引导装入程序 EBoot 与运行在开发工作站上的PlatformBuilder通信 下载镜像文件和设置调试服务 以太网连接通过以太网服务可以提供更快的传输速度和更有效的集成功能 串行连接和并行连接相对以太网连接速度慢 效率比较低 只在监视调试过程的时候偶尔用上 33 3 WindowsCE的启动过程 1 在核心板上 将系统设置为NANDFlashROM启动方式 即OM l 0 设置为00 2 上电复位后 系统自动将NANDFlashROM内的前4KB字节 NBoot 拷贝到bootSRAM中 执行bootSRAM中代码 如果需要 NBoot 4KB 将NBoot区数据拷贝到SDRAM中 再执行NBoot 3 如果设置为调试状态 NBoot将EBoot区数据装入SDRAM 执行EBoot EBoot程序按照用户的指令通过以太网下载WindowsCE镜像文件 并将镜像文件写入WindowsCE区段 4 NBoot或者EBoot将WindowsCE区段数据装入SDRAM 引导WindowsCE操作系统 34 本系统配置为NANDFlashROM启动 系统上电复位后 bootSDRAM被映射到地址0 x00000000 系统自动将NANDFlash中的前4KB代码拷贝到bootSDRAM中 开始执行bootSRAM中的代码 即NBoot程序 系统执行的第一行代码即为NBoot的第一行代码 NBoot的功能比较简单 只是用于初始化系统 将复杂的系统软件装入SDRAM 之后就交出控制权 35 9 3 2盘点系统驱动程序的开发 1 WindowsCE驱动模型要把WindowsCE移植到目标平台上 必须为在硬件平台上的硬件设备提供驱动程序 通过设备驱动程序可以将操作系统和外部设备连接起来 使得操作系统能够识别这些设备 并为应用程序提供设备服务 就像其它操作系统一样 WindowsCE支持广泛的基于各种CE平台的设备驱动程序 同时也提供一些用于驱动程序开发的模型 model 36 WindowsCE的设备驱动设备模型有两种形式 流接口驱动 StreamInterfaceDriver 和本地设备驱动 NativeDeviceDriver 两者的差别在于它们向上层提供的编程接口不同 流接口驱动提供一组统一格式的流接口 而本地设备驱动则根据具体设备的需求提供相应合适的接口 所有的设备驱动都是以动态链接库 DLL 的方式实现和加载 WindowsCE中的许多模块都可以管理设备驱动程序 例如与用户界面有关的GWES模块管理键盘 鼠标 显示和电源等驱动程序 设备管理 DeviceManager 根据注册表中的内容管理注册过的设备驱动程序 如串口驱动 在盘点机系统中 内部建立了设备的驱动程序 如显示设备LCD 采用本地设备驱动方式 通过移植定 制微软提供的驱动例程实现 其它外部设备 如串口 USBClient 采用流接口驱动实现 通过已经定义好的流接口函数应用程序可以用文件访问的方式访问接口设备 如用户可以像文件操作一样读写串行口 37 2 电源管理 移动设备的电源管理方式会对用户使用移动设备产生很大的影响 因此在CPU及电路提供了电源管理硬件支持的基础上 在操作系统中采用一套有效的电源管理方案也是非常重要的 当成功的运行电源管理模块时 移动设备用户可以在任何时候长时间便利的使用移动设备 而不会意识到在任何时间都有一个复杂的工程系统正工作在设备内以保持电池电量 由于移动手持设备在硬件资源和系统结构的特殊要求 同传统的PC机相比嵌入式操作系统对移动设备的电源管理需要不同的方法 下面以WindowsCE NET为例介绍在嵌入式操作系统中电源管理的方案设计 38 WindowsCE NET是通过电源管理器来进行系统的电源管理 提高整个系统的电源效率 并为每一个外围设备模块提供电源管理 通过电源管理不仅可以减少目标设备上的电源损耗 而且可以在系统重启 运行 空闲和挂起的电源状态下保存RAM中的文件系统 电源管理器会同三种不同的客户端程序发生作用 对于这三种客户端电源管理器提供了不同的编程接口 其一电源管理器相关的设备驱动程序 其二是可以改变系统电源状态或者改变设备性能的应用程序 如一些需要改变系统时钟频率的应用 其三是在电源相关事件发生时需要得到通知的应用程序以及影响系统的电源状态的改变的应用程序 例如电池电量低时发出警告的程序 39 完善的系统电源管理需要每个外设模块的硬件设计以及驱动程序的支持 支持电源管理的设备驱动程序需完成确保可以在系统枚举时正确报告其电源管理能力 处理电源管理器发出的电源请求 在系统启动和从空闲模式退出时尽可能快的完成设备上电过程 在系统关机或进入空闲模式时使设备下电或进入睡眠模式 对于支持唤醒能力的设备完成设备的唤醒功能等任务 对于每一个设备用户都可以在注册表中注册设备驱动所支持的电源状态 设备的电源状态与系统的电源状态应有一定的对应关系 且受系统电源状态定义的限制 40 3 键盘驱动程序的实现 标准Wind
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 留置针堵管预防及护理
- 自动化生产线安装与调试-课件
- 化学与人体健康
- 脊髓栓系综合症护理
- 工程部门负责人培训课件
- 重庆交通大学《新型建筑材料》2023-2024学年第一学期期末试卷
- 东湖高新面试题目及答案
- 海商法考试试题及答案
- 企业文化远程渗透-洞察及研究
- 湖北省武汉市华师一附中2025届数学九上期末综合测试试题含解析
- 薄膜温室大棚结构计算书
- 医疗器械知识产权保护指南
- 应急救援与自救技能培训
- 铅锑合金 标准
- 创新方法教程题库题库(449道)
- 液压支架工理论知识考试题库300题(含答案)
- 公司岗位职级管理制度
- 围手术期患者血液管理指南
- GB/T 21471-2008锤上钢质自由锻件机械加工余量与公差轴类
- 广东省肇庆市2021-2022学年高二数学下学期期末考试试题(附解析)
- 工程结构检测鉴定与加固第1章工程结构检测鉴定与加固概论课件
评论
0/150
提交评论