基于ARM9嵌入式微处理器的远程仓库管理系统- 张晓东 - 图文
更新时间:2024-06-23 07:35:01 阅读量: 综合文库 文档下载
- 嵌入式微处理器的特点推荐度:
- 相关推荐
基于ARM9嵌入式微处理器
的远程仓库管理系统
摘 要
仓库管理是物流当中的一个重要环节,也在企业的整个管理流程中起着非常重要的作用,如果不能保证及时准确的进货、库存控制和发货,将会给企业带来巨大损失,这不仅表现为企业各项管理费用的增加,而且会导致客户服务质量难以得到保证,最终影响企业的市场竞争力.传统的人工仓库作业模式和数据采集方式早已不能满足仓库管理的快速、准确要求,因此,在20世纪70年代,通用计算机开始应用到仓库管理上,它带来了仓库管理的一次革命,但随之也带来了新的问题:建设成本巨高,后期维护量大,硬件系统不可靠。随着嵌入式技术的发展,人们似乎又找到了更加适合用于仓库管理的系统。嵌入式系统以体积小,功耗低,运算能力强等优点著称,它一般被设计成某一场合专用的系统。本文设计的远程仓库管理系统,客户机是以运行Windows CE操作系统的手持式设备,服务器采用运行Windows Server 2003的PC机。客户机的硬件平台以ARM9(S3C2410)微处理器作为核心,通过以太网与服务器建立连接组成一个远程仓库管理系统。该系统可以实现到货检验、入库、出库、调拨、移库、库存盘点等各个作业环节。
关键词:远程仓库管理系统,嵌入式系统,ARM9微处理器,Windows CE.net
i
ABSTRACT
Warehouse management system take an important part in labour exchange , but also the entire business process management plays an important role, if it can not guarantee timely and accurate purchasing, inventory control and shipping, will be a great loss to businesses, not only the performance of the management costs for enterprises increases, and customer service quality will lead to difficult to be assured that the ultimate impact of the market competitiveness of enterprises. Traditional artificial storage and data acquisition mode of operation has long warehouse management can not meet the rapid and accurate request, therefore, in the 20th century, 70's, began to apply general-purpose computers, warehouse management, warehouse management which has brought a revolution, but with the it has also brought new problems: the construction of huge high-cost, post-maintenance, and unreliable hardware. With the development of embedded technology, there seems to have found a more suitable system for warehouse management. Embedded systems are small, low power consumption, computing power, said the strong advantages, it is generally designed as a forum dedicated system. In this paper, the design of a remote warehouse management system, client operating system is running Windows CE handheld devices, servers running Windows Server 2003 using the PC. Client hardware platform as a core ARM9 microprocessors, servers via Ethernet to connect a remote warehouse management system. The system enables delivery inspection, storage, a library, allocate, transfer database, inventory and other operational aspects of inventory.
Key words:Remote Warehouse Management System,Embedded System,ARM9 Device,Windows CE.net
ii
目 录
第1章 绪论 .................................................................................................................. 1
1.1
1.2 1.3 2.1 2.2
仓库管理系统的概述 .............................................................................................. 1 仓库管理系统研究背景与意义 .............................................................................. 1 国内外同类软件的研究现状与发展趋势 ............................................................... 2
第2章 需求分析 .......................................................................................................... 3
设计目标 .................................................................................................................. 3 需求描述 ................................................................................ 错误!未定义书签。 2.2.1 功能需求 ........................................................................ 错误!未定义书签。 2.2.2 数据需求 ........................................................................ 错误!未定义书签。 2.3 可行性分析 ............................................................................ 错误!未定义书签。
2.3.1 远程数据库系统原理可行性分析 ................................................................... 5 2.3.2 硬件平台的选择 ............................................................ 错误!未定义书签。
第3章 系统分析 ........................................................................错误!未定义书签。
3.1 3.2
整体硬件连接图 .................................................................... 错误!未定义书签。 服务器软件环境分析 .............................................................................................. 6 3.2.1 SQL Server Mobile 服务器代理 ..................................................................... 6 3.2.2 IIS 6.0 的应用 ................................................................ 错误!未定义书签。 3.2.3 Microsoft? SQL Server? 2000简介 .............................................................. 7 3.3 客户端软件环境分析 .............................................................................................. 8
3.3.1 SQL Server Mobile 客户端代理 ..................................................................... 8 3.3.2 ADO.NET的应用 ............................................................................................ 8 3.3.3 客户端环境的操作系统定制......................................... 错误!未定义书签。
第4章 服务器的实现 ................................................................................................ 11
4.1
配置IIS 服务对SQL Server Mobile 3.0 的支持 ................................................ 11 4.1.1 配置服务器网络 ............................................................................................ 11 4.1.2 创建共享文件夹 ............................................................................................ 12 4.1.3 配置SQL Server Mobile Web 同步向导 ...................................................... 12 4.2 重新注册SQL Server ............................................................................................. 14
第5章 客户端硬件设计 ............................................................................................ 16
5.1 5.2 5.3
MagicARM2410教学实验开发平台概述 ............................................................ 16 核心控制电路 ........................................................................................................ 17 存储器电路 ............................................................................................................ 19 5.3.1 NOR Flash存储器 ......................................................................................... 19 5.3.2 SDRAM存储器 ............................................................................................. 20 5.3.3 NAND Flash存储器 ...................................................................................... 21 5.4 时钟电路 ................................................................................................................ 22 5.5 复位电路 ................................................................................................................ 22
1
5.6 5.7 5.8 5.9 6.1 6.2 6.3 6.4
电源电路 ................................................................................................................ 23 以太网接口电路 .................................................................................................... 23 JTAG调试接口电路 .............................................................................................. 25 电源模块 ................................................................................................................ 26
第6章 客户端软件设计 ............................................................................................ 27
客户端软件功能模块 ............................................................................................ 27
程序流程图 ............................................................................................................ 28 客户机界面 ............................................................................................................ 46 串口通信模块 ........................................................................ 错误!未定义书签。 6.4.1 接口电路设计 ................................................................................................ 29 6.4.2 串口API函数使用 ........................................................................................ 30 6.4.3 VB.net调用DLL文件 .................................................................................. 34 6.4.4 打印机驱动模块 ............................................................................................ 35 6.5 本地数据库的访问 ................................................................................................ 36
6.5.1 创建和组装本地数据库................................................................................. 36 6.5.2 与目标数据库建立连接................................................................................. 37 6.5.3 对记录集的添加、删除、查找和修改 ......................................................... 38 6.6 远程数据库的访问 ................................................................................................ 42
6.6.1 数据库的同步合并 ........................................................................................ 44 6.6.2 向服务器申请或提交数据............................................................................. 45
参考文献 ...................................................................................................................... 49
附录A 打印机指令封装模块代码 ............................................................................ 50
2
第1章 绪论
仓库管理系统属于管理信息系统(Management Information System)的一种,在强调管理,强调信息的现代社会中它变得越来越普及。高效可靠的仓库管理系统软件不仅可以提高企业的管理质量,而且可以提高生效效益。随着计算机技术和嵌入式系统技术的发展,仓库管理系统的终端硬件平台出现了很大的变化,可以是通用计算机、专用的嵌入式计算机或者掌上电脑等。多功能、低成本、高可靠的仓库管理系统产品将是未来的一个趋势。 1.1 远程仓库管理系统的概述
本设计是一套功能齐全,使用简单的企业仓库管理软件产品。远程仓库管理系统采用客户机/服务器架构,服务器采用通用计算机,负责存储和管理仓库产品信息。客户机采用基于ARM9微处理器(S3C2410)为核心的硬件平台, 负责仓库产品信息的管理,如入货,出货和日常管理等。通过简单的采购管理,销售管理,库存管理等功能,让用户能够通过最轻松方便的数据录入,获得最快速最完善的报表输出,从而大大提高企业内部管理的效率,让企业管理者能够轻轻松松地做好企业的管理。
? ? ? ? ?
实现基于嵌入式系统的客户机通过以太网与数据库服务器互联; 实现通过无线WiFi系统实现与数据库服务器的无线连接; 管理员可以通过可以机实现对仓库信息的管理和查询; 基于帐户和密码的安全的仓库系统访问模式;
通过客户机可以实现采购管理、销售管理、仓库管理、报表打印、基本资料、系统设置、权限管理等功能。
1.2 远程仓库管理系统的研究背景
随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产的产品种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长,计算机技术应用于仓库信息管理早在上个世界七十年代已经开始了。 这些年来掀起了一股嵌入式系统应用热潮,其原因有几个方面:一是芯片技术的发展;另一方面的原因就是对产品可靠性、成本、更新换代要求需要。这使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。
本设计中的远程仓库管理系统的概述针对目前国内仓库的功能要求而设计的,其客户机终端使用的是轻便的嵌入式系统,可以是本设计中的专用嵌入式计算机,也可以是PDA、PPC、POS机等可以运行Windows CE操作系统的设备,管理人员可以方便地把客户机安装在仓库里任何有网络接口的地方,使用PDA、PPC、POS机等手持式设备的则更加方便,用户通过随身携带的手持式
1
设备可随时随地通过无线WiFi网络连接到服务器。 1.3 远程仓库管理系统的研究意义
面对庞大的产品信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,仓库管理系统的重点是销售信息能否及时反馈,从而确保企业运行效益。而库存管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由库存管理系统来提高库存管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。
1.4 同类型设备的研究现状与发展趋势
1.4.1 国外发展状况与发展趋势
计算机在管理中的应用开始于1954年,当时美国首先用计算机处理工资单。40多年来,计算机在处理管理信息方面发展迅速。例如,60年代美国计算机在管理中应用项目不到300项,到了1975年达到2670项。而用于企业仓库管理的计算机系统更是普及,但由于通用计算机本身的特性使得它在客户机/服务器架构的远程仓库管理系统中的使用遇到了瓶颈,如成本、可靠性、维护性、功能性等。于是,随着嵌入式系统技术的发展,开发者开始把目光转向专用的嵌入式计算机。高性能的32位ARM微处理器的出现更是引起了一股嵌入式系统应用的潮流,它具有低功耗、低成本、运算能力强、可靠性强等优点,许多厂家开始研制专用于各种环境嵌入式工业计算机。但将其应用于基于客户机/服务器架构的远程仓库管理系统还是属于较少,因为整个系统的研发除了需要硬件平台的支持外还依赖于软件平台的操作系统、开发环境、开发工具、通信协议等的支持。
1.4.2 国内发展状况与发展趋势
仓库管理对企业来说是一项繁琐复杂的工作,每天要处理大量的单据数据,为及时结清每笔业务,盘点库存和货物流动情况,保证企业生产用料以及货物安全,库管人员要花费大量人力物力和时间来做数据记录统计工作。但由于我国的计算机技术发展落后,信息化的仓库管理系统普及非常迟。我国在全国范围内推广计算机在管理中的应用,是在70年代末开始的,虽然起步较晚,但近几年发展却较快,特别是通用计算机的出现和普及在一段时间内为信息处理提供了非常好的手段,对于推动我国管理信息处理的现代化起了重要的作用。目前国外的新的趋势是使用基于客户机/服务器架构的嵌入式远程仓库管理系统,我国的企业仓库管理将面临着有一次的升级。但是,国内严重缺乏嵌入式系统的研发能力,通常只能买来国外的产品作二次加工,国内企业想使用先进的仓库管理系统还是需要购买外国人的产品。
2
第2章 远程仓库管理系统分析
2.1 远程仓库管理系统简介
2.1.1 基本要求
本设计中,以基于ARM9嵌入式微处理器的设备作为客户机,以PC机作为数据库服务器,使用SQL 数据库实现一个仓库管理系统。客户机与服务器通过以太网进行连接。客户机分为两类,一类是供仓库管理人员管理出货入货和查询库存产品信息专用的,另一类是仅供销售人员等查询库存产品信息使用的;服务器存放仓库所有产品的信息。管理人员使用管理工作人员专用客户机对出货入货的商家和产品信息进行登记同时打印出货入货票据,销售人员等使用库存产品查询客户机查询库存产品数量等信息。系统的架构如图 2.1所示。
图 2.1 系统的架构图
2.1.2 系统组成
本设计的硬件实现主要以MagicARM2410教学实验系统为智能终端,通过以太网与SQL Server服务器连接,实现远程数据库访问;通过RS232串行通信数据线与串口打印机连接,实现数据的打印。而在真正的产品中,通常使用的是台式智能终端或无线的手持式智能终端,其硬件连接图如图 2.2所示。
3
图 2.2 硬件连接原理图
2.1.3 系统特点
本设计在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机界面的仓库管理系统,实现产品信息管理,出货入货管理,远程数据库同步,数据安全备份,使用者权限管理等功能。
(1)数据录入和处理的准确性和实时性
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是主要是手工输入。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。
(2)数据的安全性
本系统为企业仓库管理部门设计,涉及到各种重要信息,因此系统设有安全管理机制,对不同的操作人员可以设置不同的管理权限,对不同的浏览者可以设置开放不同的数据表。
(3)数据的备份和灾难恢复
4
定期对数据库中的数据进行全部或新增部分的备份工作,以保证在硬件出现故障或人为原因导致无法运行时是可以快速及时的还原到原来的正常状态。
2.1.4 适用场合
2.2 远程仓库管理系统方案选择
2.2.1 可移动的嵌入式硬件平台
今天,微处理器已经无处不在,无论是录像机、智能洗衣机、移动电话等家电产品,还是汽车引擎控制,以及数控机床、导弹精确制导等都要嵌入各类不同的微处理器。简单的单片机已经不能满足复杂的信号处理要求,但台式PC机的中央处理器的体积,功耗等也满足不了嵌入式设备的要求,因此,嵌入式微处理器应运而生。
Xscale是ARM体系结构的一种内核,基于ARM v5TE,由Intel公司开发,在架构扩展的基础上同时也保留了对于以往产品的向下兼容,相比于ARM处理器,XScale功耗更低,系统伸缩性更好,同时核心频率也得到提高,达到了400Mhz甚至更高。但XScale的价格偏高,使用在一般的消费电子上会使成本增大。
ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。目前使用广泛的是三星公司生产的S3C2440,通过全新的设计,采用了更多的晶体管,使它成为了一种高性能、低功耗和低成本的32位微处器,它被广泛应用于嵌入式系统中,已经在手持电话、机顶盒、数码像机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。应此在本设计中选择使用ARM9微处理器。
2.2.2 如何实现远程数据库系统
Microsoft SQL Server 2005 Mobile Edition(下面中简称SQL Server Mobile)将Microsoft SQL Server 扩展到基于Windows CE 的移动设备,并为开发者的快速应用程序开发提供了一个一致的编程模型。SQL Server Mobile 不同于Windows CE 操作系统本身的属性数据库,它是一个真正意义上的关系数据库,它具有强大的数据存储功能、优化的查询处理器,以及可靠、可伸缩的连接能力。
在Microsoft Visual Studio 2005 中,提供了ADO.NET 来编写SQL Server Mobile 数据库应用程序, ADO.NET 为开发者使用Visual Basic.NET 语言和Visual C#语言提供编写Windows CE 数据库应用程序一致的、高性能的高层接口。我们可以使用System.Data.SqlServerCe 命名空间实现在智能设备上进行SQL Server Mobile 数据库的创建与管理。SQL Server Mobile 客户端并不能像SQL Server 客户端一样通过在连接字符串中指定SQL Server 服务器的IP 而直接连接到SQL Server 服务器,而需要通过SQL Server Mobile 代理来间接进
5
行连接。SQL Server Mobile 客户端已经包含了SQL Server Mobile 客户端代理,而在SQL Server Mobile 服务器端,则需要用户另外安装SQL Server Mobile作为服务端代理。
SQL Server Mobile 数据库引擎(SQL Server Mobile Engine)管理SQL Server 数据库在Windows CE 设备上的存储。SQL Server Mobile 客户端代理(SQL Server Mobile Client Agent)通过复制对象、远程数据访问对象和引擎对象来通过应用程序编程控制与Microsoft SQL Server 连接。SQL Server Mobile 服务器代理(SQL Server Mobile Server Agent)处理来自SQL Server Mobile 客户端代理的HTTP 请求。SQL Server Mobile 客户端代理驻留在基于Windows CE 的设备上,并应用HTTP 或HTTPS 与驻留在Web 服务器上的SQL Server Mobile 服务器代理进行通信;而SQL Server Mobile 服务器代理驻留在运行IIS 的计算机上,并通过复制或远程数据访问与Microsoft SQL Server 进行通信。SQL Server Mobile 与SQL Server 进行通信的原理如图 2.3所示。
图 2.3 SQL Server Mobile 与SQL Server 进行通信原理图
2.3 服务器环境分析
服务器环境由 SQL Server Mobile 服务器代理、Microsoft Internet 信息服务 (IIS) 和 SQL Server 组成。SQL Server Mobile 服务器代理主要处理由SQL Server Mobile 客户端代理发出的请求。之所以需要IIS,是因为SQL Server Mobile需要IIS来提供HTTP协议,客户端通过HTTP协议连接到服务器并通过RDA和复制技术尽心数据的交互。Microsoft? SQL Server? 2000是企业级解决方案中的数据库系统,在SQL Server Mobile中它提供对客户机上的存储,备份和管理等。
2.3.1 SQL Server Mobile 服务器代理
通常, SQL Server Mobile作为应用程序的一部分应用。在这种应用程序中,数据是在台式机上的 Microsoft SQL Server 和支持的设备上的 SQL Server
6
Mobile 之间进行分发的。但是,SQL Server Mobile 也可以用作个人信息管理 (PIM) 工具或者所支持设备上的其他应用程序的独立数据库。
SQL Server Mobile 通常用作完整 Microsoft .NET Compact Framework 应用程序部署的一部分,但也可以单独安装在智能设备上。远程数据访问 (RDA) 与合并复制确保可以将来自 SQL Server 数据库的数据传递到支持的设备上的 SQL Server Mobile。可以脱机操作这些数据,并在以后将其同步到服务器。其体系结构如图 2.4所示。
图 2.4 SQL Server Mobile 体系结构
2.3.2 利用Internet信息服务建立连接
Internet信息服务器(IIS) 提供了集成 Web 服务器功能。在与 SQL Server Mobile 一起使用时,IIS 可以提供一种协议。通过这种协议,设备可以连接到服务器以便通过 RDA 或复制技术来传输与交换数据。用户编程时只需要把提交的信息交给SQL Server Mobile客户端代理, 客户端代理与服务器代理成功建立连接后就会把信息发送到应用程序池。
IIS 6.0 包括许多新功能,它们旨在帮助企业、IT 专业人士和 Web 管理员实现其网站(他们可能拥有位于单个 IIS 服务器或多个服务器上的数千个网站)在性能、可靠性、可伸缩性和安全性方面的目标。
2.3.3 Microsoft? SQL Server? 2000
Microsoft? SQL Server? 2000 数据库组件是基于结构化查询语言 (SQL) 的可伸缩的关系数据库,集成了对 Internet 应用程序的可扩展标记语言 (XML) 支持。Microsoft? SQL Server? 2000 的特性包括:
? ? ? ? ?
Internet 集成
可伸缩性和可用性 企业级数据库功能 易于安装、部署和使用 数据仓库
7
尽管 SQL Server 2000 被设计为用作通过网络连接的成千上万并发用户的
数据存储引擎,它仍可作为一个独立的数据库,像应用程序一样直接在同一台计算机上运行。SQL Server 2000 卓越的可伸缩性和便于使用的诸多功能使其能够在单个计算机上高效运行,既不占用过多的系统资源,也不需要专门的用户来管理。这些功能还使 SQL Server 2000 得以动态地获取支持上千用户所需的资源,同时将数据库的管理和调节工作减到最少。SQL Server 2000 关系数据库引擎动态调节自身以获取或释放适当的计算机资源,以支持在任何特定时间访问 SQL Server 2000 实例时不断变化的用户负荷之需。SQL Server 2000 关系数据库引擎的强大功能可以避免因某个用户读取或修改其他用户当前使用的数据而引起的逻辑问题。 2.4 客户机环境分析
客户端环境由SQL Server Mobile 客户端代理与应用程序组成。SQL Server Mobile包括数据库引擎、SQL Server Mobile客户端代理、查询处理器、编程框架等,SQL Server Mobile客户机代理通过Replication对象,RemoteDataAccess对象和Engine对象来实现与服务器环境中的SQL Server Mobile服务器代理进行HTTP通信,再与SQL Server连接。
2.4.1 SQL Server Mobile 客户端代理
SQL Server Mobile 客户端代理是在运行Windows CE备上与数据库服务器进行连接的主要组件。它可应用下列自定义的 SQL Server Mobile 对象:
? Replication 对象
? RemoteDataAccess 对象 ? Engine 对象
在应用程序中使用这些对象,可用编程方式控制与 SQL Server 的连接。
2.4.2 利用ADO.NET管理本地数据库
从基本角度来看,ADO.NET是一组类,这些类专门用来对数据进行访问,无论这些数据库是存储在数据库中,还是存储在XML中,松耦合的构架为搭建一个分布式的数据库环境创建了条件,ADO.NET可以访问Access数据库、SQL Server数据库、Orcal数据库,还可以被应用到桌面应用程序、Web应用程序、嵌入式设备应用程序中,而且无论你使用的是VB.NET还是C#,当然还包括托管C++。
在应用程序中开发者需要的是简单、一致的应用程序编程接口 (API),使应用程序能够访问和修改各种各样的数据源。数据源可能象文本文件一样简单,也可能象一堆异构数据库那样复杂,或者是尚未定型的某种数据。此外,API 不应该预先设定访问和操作数据源的方式。
客户端应用程序的开发主要使用了微软公司的ADO.NET(ActiveX Data Objects.NET) 技术,它是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的
8
代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO.NET中的命令对象来执行。 ADO.NET的对象模型如图 2.5所示。
图 2.5 ADO.NET对象模型
2.4.3 Windows? CE .NET环境
客户端环境的操作系统选择Microsoft? Windows? CE .NET,它是Windows CE 3.0的后续产品,它不仅是一个功能强劲的实时嵌入式操作系统,而且提供了众多强大工具,允许用户利用它快速开发出下一代的智能化小体积连接设备。WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。
Windows CE .NET 5.0对Windows CE先前版本的强大功能进行了进一步的扩充和丰富,它提供了:
? ? ? ? ?
对安全和可伸缩网络的支持 得到增强的实时处理能力 更为优秀的性能表现
更为丰富的多媒体和Web浏览功能
与个人计算机、服务器、Web服务以及其它设备更为出色的互操作性
2.5 软件开发环境分析
本设计总客户机软件的开发环境是一台安装Microsoft Visual Studio 2005的通用计算机,通过Microsoft Visual Studio 2005,可以使用Visual Basic 2005来开
9
发客户机的应用程序。
使用Visual Basic 2005进行托管用应用程序的开发,还需要安装专门的.NET Compact Framework。在进行Visual Basic 2005的安装组件选择时,可以进行.NET Compact Framework和SQL Server 2005 Mobile Edition的安装。 开发机的开发对象是客户机环境中的SQL Server Mobile的应用程序,对于有网络连接支持的设备,可以直接用HTTP通信,如果没有网络连接,可以使用ActiveSync来建立于桌面Windows的连接,再与IIS服务器进行HTTP通信。 开发环境的详细框架如图 2.6所示。
图 2.6 开发环境的框架图
10
第3章 数据库服务器设计
3.1 服务器运行的操作系统
Windows server 2003是微软公司开发的新一代网络服务器操作系统,与以前的同类操作系统相比,它更加安全、性能更加稳定,而操作和使用却更加轻松,因此,它不仅能够安装到服务器上设置成为主域控制服务器、文件服务器等各种服务器,也能安装在局域网的客户机上,作为客户端系统使用,当然也可以安装到个人电脑中,成为更加稳定、更加安全、更容易使用的个人操作系统。无论是服务器、客户机还是家庭用户,安装Windows2003都是非常轻松的。 Windows server 2003对硬件的要求并不是很高,建议系统的CPU主频不低于550MHz(支持最低主频为133MHz);建议系统内存在256 MB以上(最小支持128 MB,最大支持 32 GB);硬盘分区要具有足够的可用空间,最小要在2G以上; VGA 或更高分辨率的监视器(建议使用 SVGA 800x600 或更高)、键盘和鼠标。与微软的其他的操作系统一样安装过程采用图像化、向导化操作,这个过程比较简单所以不在这里描述。 3.2 配置IIS 服务对SQL Server Mobile 3.0 的支持
在成功安装好服务器环境所需要的组件后,就可以开始服务器的配置了。
3.2.1 配置服务器网络
当您使用远程数据访问 (RDA) 或复制功能时,SQL Server Mobile将通过 Microsoft Internet 信息服务 (IIS) 服务器连接到 SQL Server,因吃我们必须确定服务器上安装了网络的文件和打印机共享协议和TCP/IP协议,如图 3.1所示。
图 3.1 添加网络协议
11
3.2.2 创建共享文件夹
创建用于 SQL Server Mobile订阅服务器的快照文件夹,需要执行两个步骤。必须共享此文件夹,使其可以通过 UNC 路径访问;还必须分配适当的 NTFS 文件系统权限。在共享文件夹时,需要添加相应的用户,并将“读取”共享权限授予该用户,其设置对话框如图 3.2所示。
图 3.2 设置共享文件夹权限
3.2.3 配置SQL Server Mobile Web 同步向导
当您使用远程数据访问 (RDA) 或复制功能时,SQL Server Mobile将通过 Microsoft Internet 信息服务 (IIS) 服务器连接到 SQL Server。SQL Server Mobile 包括一个连接向导(配置 Web 同步向导),使用该向导可以配置 Microsoft SQL Server 和 SQL Server Mobile 之间的连接,以进行数据同步。单击“开始”→“程序”→“Microsoft SQL Server 2005 Mobile Edition”→“配置Web同步向导”,就可以打开Web 同步向导,如图 3.3所示。
12
图 3.3 配置 Web 同步向导
点击下一步后,进入服务器选择对话框,这里的IIS计算机名一半是本地上运行IIS的服务器,虚拟目录用于存放工作文件,如图 3.4所示。
图 3.4 选择服务器
Web同步配置完成后,打开IE浏览器,在地址栏上面输入虚拟目录的网路地址,如果配置成功,就会出现如图 3.5所示的文字。
13
图 3.5 Web同步配置
3.3 重新注册SQL Server
成功配置配置Web同步之后,为了更新SQL Server的数据库信息,需要把原来的SQL Server服务器注册信息删除,然后重新注册SQL Server服务器。新建SQL Server注册如图 3.6所示。
图 3.6 重新注册SQL Server
进入注册SQL Server后首先要求用户选择登陆方式,这一步很重要,它关系到远程访问是否能通过验证,通常情况下选择“用我的SQL Server登录名登陆”,如图 3.7所示。
14
图 3.7 SQL登录方式
15
第4章 客户机硬件设计
4.1 MagicARM2410教学实验开发平台概述
嵌入式设备主要由硬件和软件组成,一套嵌入式产品的稳定性不仅依赖于软件的稳定性,对于硬件平台能否提供良好的做工稳定性也有一定的要求,在本设计的设计阶段,使用广州致远电子有限公司开发的MagicARM2410教学实验开发平台,他不仅能提供一个可靠稳定的硬件平台,而且提供了丰富的外设支持。
广州致远电子有限公司开发的MagicARM2410教学实验开发平台,是一款可使用μC/OS-II、Linux和WinCE操作系统、支持QT、MiniGUI图形系统、集众多功能于一身的ARM9教学实验开发平台。MagicARM2410教学实验开发平台采用ARM920T内核的S3C2410A微处理器,扩展有充足的存储资源(SDRAM、NAND Flash、NOR Flash和E2PROM等),具有10/100Mbps以太网接口、USB HOST接口、USB Device接口、CAN接口、PCMCIA存储卡接口、IDE硬盘接口、CF卡接口、SD卡接口、IrDA接口、IIS数字音频接口,8英寸640×480真彩TFT液晶屏(带触摸屏),可使用JTAG仿真调试。模块化的功能设计,便于实验操作的工艺设计,保留有外设PACK和GPIO输出接口,可以实现目前几乎所有的嵌入式接口实验。MagicARM2410试验箱外观如图 4.1所示。
图 4.1 MagicARM2410试验箱外观
本系统采用MagicARM2410开发平台作为硬件环境。系统中使用到的硬件
16
电路分为5个主要模块,它们是核心板电路,以太网接口电路,JTAG调试接口电路,串口模块和电源模块。核心电路板的MCU采用Samsung公司的ARM920T处理器S3C210A,核心电路还扩展了2MB NOR Flash,64MB NAND Flash及64MB SDRAM,它还包括复位、时钟等电路。核心电路图是系统的核心模块,它为系统软件提供了可靠、稳定的运行环境。以太网接口电路包括DM9000以太网控制器、网络变压器和RJ-45接口组成,是TCP/IP协议栈中物理层的实现。串口模块打印调试信息。JTAG模块用于下载和调试程序。电源模块为系统提供5V,3.3V,1.8V的稳定电压。系统硬件框架如图 4.2所示。
图 4.2 系统硬件结构示意图
4.2 核心控制电路
核心板电路是能运行程序的最小系统电路。它包括微处理器S3C2410A,存储器电路,时钟电路,复位电路,及核心板使用的电源电路等。
系统中采用的S3C2410A(S3C2410系列,以下称为S3C2410)微处理器是一款由Samsung Electronics Co. Ltd 为手持设备、POS机、数字多媒体播放设备设计的低功耗、高度集成的微处理器,采用272脚FBGA封装,内含一个ARM920T内核和丰富的外围资源。
S3C2410集成了大量的功能单元,包括内部1.8V、存储器3.3V、外部I/O3.3V、16KB数据CACHE、16KB指令CACHE、MMU、内置外部存储器控制器(SDRAM 控制和芯片选择逻辑)、LCD控制器、一个LCD专用DMA、4个带外部请求线的DMA、3个通用异步串行端口(IrDA1.0、16-Byte Tx FIFO and 16-Byte Rx FIFO)、2通道SPI、一个多主I2C总线、一个I2S总线控制器、版本1.0的SD主接口、并与多媒体卡协议版本2.11兼容、两个USB HOST、
17
一个USB DEVICE(VER1.1)、4个PWM定时器和一个内部定时器、看门狗定时器、117个通用I/O、24个外部中断、4种电源控制模式(包括标准、慢速、休眠、掉电)、8通道10位ADC和触摸屏接口、带日历功能的实时时钟、芯片内置PLL;设计用于手持设备和通用嵌入式系统;16/32位RISC体系结构,使用ARM920T CPU核的强大指令集;带MMU的先进的体系结构支持WinCE、EPOC32、Linux;指令缓存(CACHE)、数据缓存、写缓冲和物理地址TAG RAM,减小了对主存储器带宽和性能的影响;ARM920T 核支持,并有支持ARM调试的体系结构;内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB)。S3C2410X芯片结构图如图 4.3所示。
图 4.3 S3C2410芯片内部结构图
18
S3C2410的系统管理有以下特点: 小端/大端支持;
地址空间:每个BANK128MB(全部为1GB); 每个BANK可编程为8/16/32位数据总线; BANK 0到BANK 6为固定起始地址; BANK 7可编程BANK起始地址和大小; 一共8个存储器BANK;
6个存储器BANK用于ROM、SRAM和其他; 两个存储器BANK用于ROM、SRAM和同步DRAM; 每个存储器BANK可编程存取周期; 支持等待信号用以扩展总线周期; 支持SDRAM掉电模式下的自刷新;
支持不同类型的ROM用于启动(NOR/NAND Flash、EEPROM和其他)。 本系统中,处理器被配置在小端格式。工作频率可设置在200MHz,AHB总线频率为100MHz。 4.3 存储器电路
4.3.1 NOR Flash存储器
核心板上扩展了1片存储容量为2MB的NOR Flash(SST39VF1601),为了使SST39VF1601能够引导和下载系统,将其分配在Bank0存储块空间,使用S3C2410的nGCS0片选线,基地址为0x00000000。
如图 4.4所示,SST39VF1601是16位宽度存储器,对与S3C2410A来说相应与半字对齐,操作地址的最小变化值是0x00000002,因此将S3C2410A的ADDR1脚与SST39VF1601的A0脚相连,忽略S3C2410A的ADDR0引脚,其他地址按顺序依次递增相连。
SST39VF1601的nRST引脚与系统复位信号nRESET引脚相连接,当系统复位时,SST39VF1601同时被复位,并返回到默认的读模式。
SST39VF1601的nWP是写保护引脚,低电平时写禁止,高电平时允许写SST39VF1601。电路中使用两个电阻进行选择,如虚线框内电路。
19
图 4.4 NOR Flash存储器电路
4.3.2 SDRAM存储器
FLASH存储器相比较,SDRAM不具有掉电保持数据的特性,但其操作都是由时钟作为同步,存取速度大大高于FLASH存储器,数据吞吐量更大,且具有读/写的属性。SDRAM在系统中主要用作程序的运行空间,当系统启动时,首先从复位地址0x00000000处读取启动代码,再完成系统的初始化后,启动程序将系统程序代码调入SDRAM中运行,以提高系统的运行速度。同时,系统及用户堆栈、运行数据也都放在SDRAM中。
SDRAM的存储单元可以理解为一个电容,总是倾向于放电,为避免数据丢失,必须定时刷新。因此,要在系统中使用SDRAM,就要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。S3C2410A在片内具有独立的SDRAM刷新控制逻辑,可方便的与SDRAM接口。
核心板扩展了2片16位总线宽度SDRAM(HY57V561620),存储容量64MB。SDRAM使用S3C2410A的nGCS6片选线,SDRAM的基地址为0x30000000,核心板使用两片HY57V561620组成32位总线宽度,即每进行一次读写可以操作4字节数据,对于S3C2410A来说相应于字对齐,操作地址的最小变化值为0x00000004。因此,S3C2410A的ADDR2引脚于HY57V561620的A0脚相连,忽略S3C2410A的ADDR0,ADDR1引脚。为了能够正确访问HY57V561620的高低字节数据,所以S3C2410A的nWBEx与HY57V561620的UDQM/LDQM相连。
HY57V561620的BA0、BA1引脚是SDRAM的内部bank选择线,也就是代表了SDRAM的内存地址的最高位。如果SDRAM内存共有64MB也就需要26(226=64M)根地址线来寻址,所以BA0、BA1应连接S3C2410A的ADDR24、
20
ADDR25引脚。另外,由于SDRAM的行地址和列地址是复用的,所以地址线的数目并部需要这么多。
SDRAM的其他控制线按照HY57V561620的引脚功能――与S3C2410的SDRAM控制信号线相连接。
SDRAM存储器电路如图 4.5所示。
图 4.5 SDRAM存储器电路
4.3.3 NAND Flash存储器
NAND Flash具有良好的性价比和系统接口,且S3C2410支持NAND ROM启动方式,所以核心板选用了三星公司的NAND Flash:K9F1208U0B-PCB0。该Flash是64MB的CMOS工艺制造的存储器。采用48脚TSOP封装,其工作电压为2.7V~3.6V,其I/O口为数据线和地址线的复用端口。通过对其内部的命令寄存器写入标准的命令序列,可对其进行编程、整片擦除、按扇区擦除以及其它操作。核心板使用K9F1208U0B-PCB0扩展了64M的NAND Flash存储器,K9F1208U0B-PCB0的I/O0~I/O7直接与S3C2410的DATA0~DATA7相连,通过数据总线发送地址、命令和数据。NAND Flash接口电路原理图如图 4.6所示。
21
图 4.6 NAND Flash存储器电路
4.4 时钟电路
S3C2410可以使用外部晶振或外部时钟输入作为系统时钟,外部晶振的频率范围是10MHz~20MHz,核心板采用12MHz的外部晶振,所以S3C2410A的OM2,OM1引脚接为低电平,将外部时钟输入引脚接为高电平(3.3V),电路如图 4.7所示。通过S3C2410的内部锁相环,可以将处理器时钟倍频至最高266MHz。
图 4.7 核心板时钟电路
4.5 复位电路
核心板的复位电路采用内置E2PROM存储器的专用电源监控复位芯片
22
CAT1025JI-30,提高了系统的可靠性。系统复位电路如图 4.8所示。
图 4.8 核心板复位电路
4.6 电源电路
由于ARM芯片的高速、低功耗、低工作电压导致了其噪声容限很低,对电源的纹波、瞬态响应、电源监控的可靠性等诸多方面提出了更高的要求。核心板使用的一组3.3V电源有外部提供,而S3C2410需要的1.8V电压是通过核心板上的LDO芯片(低压差电源芯片)得到的。核心板使用SPX1117M3-1.8将3.3电压转换为1.8V。使用时,其输出端需要一个至少10uF的钽电容来改善瞬态响应和稳定性。核心板的电源电路如图 4.9所示。
图 4.9 核心板电源电路
4.7 以太网接口电路
以太网规范规定以太网需要两种接口部件:MAC(Media Access Controller,媒体访问控制器)和PHY(Physical transceiver,物理收发器)。MAC是一种纯数字的设备,负责数据流的同步处理。而PHY在很大程度上是一种模拟器件,负责将数据转换成在特定的媒体上(常用双绞线)传输所需的信号电平。 本系统的以太网控制器(网卡)使用DAVICOM公司的10/100Mb/s自适应以太网芯片DM9000E(DM9000系列,以下称为DM9000)。DM9000是一个全集成、功能强大、性价比高的快速以太网MAC控制器,支持8位、16位、32位数据总线宽度,带有一个通用处理器接口、EEPROM接口、10/100Mb/s PHY和16KB的SRAM(13KB作为接收FIFO,3KB作为发送FIFO);包含一系列可被访问的控制状态寄存器,这些寄存器是字节对齐的,在硬件或软件复位时被设置成初始值;采用单电源供电,可兼容3.3V、5V的IO接口电平。DM9000同样支持MII(Media Independent Interface 介质无关接口)接口。
23
MagicARM2410实验箱主板上带有一路10/100M以太网接口电路,电路原理图如图 4.10所示。
DM9000的EEDO引脚和WAKEUP引脚的复位值决定了其数据位宽度。电路图中EEDO已接低电平,WAKEUP内部有60K下拉电阻,因此悬空该引脚时WAKEUP的复位值也是低电平。所以该电路中,DM9000的数据位宽度是16位,S3C2410的数据总线DATA0~DATA15与DM9000的SD0~SD15相连接。
DM9000E的AEN是芯片选通引脚,与S3C2410的片选线nGCS3相连,该引脚为低时才能进行读写操作。所以DM9000的片选地址为0x18000000。 S3C2410的地址线ADDR2与DM9000E的命令/数据使能端CMD相连,CMD引脚用于设置COMMAND模式,CMD为高时,选择数据端口,CMD为低时,选地址端口。DM9000默认工作基地址为300H。数据端口和地址端口的地址由下式决定:
DM9000地址端口=片选地址+0x300H+0x00 DM9000数据端口=片选地址+0x300H+0x04
由上式可以得到DM9000的地址端口为0x18000300,数据端口为0x18000304。
DM9000的INT与S3C2410的外部中断EINT0相连接,在系统中网卡的中断号为0,默认情况下,INT引脚为高电平时表示网卡中断产生。
DM9000的RST与S3C2410的GPG2引脚相连,系统软件通过配置GPG2的电平,产生由高到低电平变化使DM9000硬件复位。
IOR和IOW是DM9000的读写选择引脚,低电平有效,即低电平时进行读(IOR)写(IOW)操作。
24
图 4.10 以太网接口电路
4.8 JTAG调试接口电路
在现在系统中越来越强调可策性,调试、测试接口的设计也越来越受到重视。S3C2410中内置有一个JTAG调试接口,通过这个接口可以控制芯片的运行和获取内部信息。这部分的电路比较简单,电路原理如图 4.11所示。
图 4.11 JTAG调试接口电路
25
4.9 电源模块
MagicARM2410开发平台上有一个专门的电源板给系统供电,电源板提供的电压有+12V和+5V,所以开发平台上还需要一个系统电源电路,它使用LDO芯片将5V电源转换得到两组3.3V电源,一组给核心板供电,另一组给主板供电。系统电源电路原理图如图 4.12所示。
图 4.12 系统电源电路
26
第5章 客户机软件设计
5.1 软件功能模块的划分
客户机要实现的主要功能包括本地数据库的访问,远程数据库的访问,软件设置和打印模块。功能模块如图 2.1所示。
图 5.1 管理员客户机功能模块图
本地数据库访问模块主要对本地数据库进行访问,可以执行各种信息的查找,添加,删除和修改操作,一般情况下仓库管理员对产品信息的管理工作是在脱机模式下进行的,到需要与服务器进行数据交换的时候在与服务器进行数据同步。
权限认证模块是系统安全的保证,访问本地数据时,管理员需要提供创建本地数据库时使用的账号和密码;访问远程数据库时,管理员不仅要提本地数据库的供账号和密码,而且远程数据库服务器的登录名和密码,SQL服务器的用户名和密码。通过多重认证来保证数据使用的安全性。
远程数据库访问模块,远程数据库访问主要实现的功能是数据的同步,以保证客户端的修改能反馈到服务器端。
打印模块组要有两部分组成,一部分是串口设置模块,另一部分是驱动模块。串口设置模块主要实现对串口参数的设置,例如波特率,串口号,效验位,停止位和奇偶校验。驱动模块主要是对串口打印机命令的封装和串口类的调用。
27
5.2 客户机程序流程图
由于管理员客户机和普通工作人员客户机是分开设计的,所以程序流程图也分为管理员客户机程序流程图和普通工作人员考核及程序流程图。 管理员客户机功能比较丰富,其程序流程如图 5.2所示,其中对本地数据库中的数据记录操作包括添加、删除、修改和查找,对数据库系统的操作有同步合并,申请或提交数据等等,系统要求高可靠的保密功能,所以用户登陆时需要权限验证。
图 5.2 管理员客户机程序流程图
28
5.3 打印机通信模块设计
串口通信模块的设计包括硬件电路设计和软件代码设计,下面将进行详细叙述。
5.3.1 接口电路设计
在嵌入式系统的开发和应用中,经常需要使用上位机本身配置的串行口,通过串行通讯技术,和嵌入式设备进行连接通讯。串行口的典型代表是RS-232-C 及其兼容插口,用9、11、18、25 针来实现。RS-232-C 是美国电子工业协会EIA(Electronic IndustryAssociation)制定的一种串行物理接口标准。RS 是英文“推荐标准”的缩写,232 为标识号,C 表示修改次数。
RS-232-C 总线标准设有25 条信号线,常见的串行接口有9针和25针的,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。S3C2410共有3个UART接口,MagicARM2410实验箱将UART0、UART1用作RS232接口。但ZY2410的BSP只带了UTAR0的驱动,所以在本设计中使用UART0与PC机的串口相连接,作为调试信息的打印接口。UART0通过SP3232芯片跟S3C2410微处理器的串行口引脚连接,其电路如图 5.3 SP3232串行接口电路所示。
图 5.3 SP3232串行接口电路
九针串口的针脚功能如表 5.1所示。
表 5.1 九针串口引脚功能一览表
针脚
功能
29
针脚
功能
1 2 3 4 5
载波检测(DCD) 接收数据(RXD) 发送数据(TXD) 数据终端准备好(DTR)
信号地线(SG)
6 7 8 9
数据准备好(DSR) 发送请求(RTS) 发送清除(CTS) 振铃指示(RI)
本设计中所使用的串口打印机配备的是二十五针的串行接口,因此实验箱跟打印机还不能直接连接,还需要通过自制一根简易的转换线连接。打印机的25针的串行接口的外形如图 5.4所示。
图 5.4 二十五针的串行接口的外形
二十五针的串行接口的引脚功能很丰富,但实际应用中只需要用到几根,其功能如图 5.5所示。
图 5.5 二十五针的串行接口部分引脚功能图
引脚号 2 3 5 信号 RXD TXD BUSY 方向 入 出 出 说 明 打印机从主计算机接收数据 当使用X-ON/X-OFF握手时,打印机向上微机发送控制码 该信号高电平时,表示打印机正“忙”不能接受数据,而当该信号低电平时,表示打印机“准备好”,可以接收数据) 4 7 BUSY GND 出 — 同BUSY(TTL电平时,此引脚为空引脚) 信号地 5.3.2 串口API函数使用
虽然VB.net也具备访问设备驱动程序的功能,但是由于其对操作系统的数
据类型和程序接口没有很好的支持,所以使用VB.net直接访问驱动程序难度甚大,所以本设计选择利用VC++ 6.0编写DLL文件为VB.net应用程序提供函数接口,从而方便的实现了对串口驱动的访问。
对串口驱动进行操作通过编写一个类来实现,由于串口有多个,使用类的方式通过实例化多个类就可以对多个串口同时进行操作(前提是PDD层的支持)。在串口操作类中,应实现打开串口、关闭串口、查询打开状态、发送数据和接收数据的公共成员函数以及能传出串口配置和公共成员变量。打开串口函数应能够按照一定的DCB 格式配置串口再打开串口,接收数据的函数应在调用后立刻返回已接收的数据供应用程序使用。该串口操作类通过对串口驱动
30
进行操作实现对串口硬件的操作。由于串口驱动程序为流设备驱动,于是它将由设备管理器进行加载。
在Windows CE中,可以通过CreateFile函数打开串口,如果串口打开成功的话,将会返回打开串口的句柄,否则将返回INVALID_HANDLE_VALUE。在实际使用串口时,还必须设置好串口的波特率,奇偶校验和数据位等参数。Windows CE中提供了GetCommState和SetCommState函数,分别获取串口当前的参数和设置串口的参数。打开串口的代码如程序清单 5.1所示,epcSerialOpen方法根据指定的参数打开串口,并创建此串口的读线程和写线程,以实现串口的异步读写。在使用系统的串口API函数时,还要使用到一个名为DCB的结构体,在GetCommState函数中,它属于输出参数,在SetCommState函数中,它属于输入参数。
程序清单 5.1 串口控制类中的打开串口方法
int CCeSerial::epcSerialOpen (EPort Port, EBaudrate BaudRate, {
int iErr;
if (hCOM != INVALID_HANDLE_VALUE) { /* 判断串口是否已打开,打开则返回 */ return (COM_ERR_USING); } */ */
if (hCOM == INVALID_HANDLE_VALUE) { }
31
__messageDispDebug(_T(\无法打开端口或端口已打开!请检查是否已被占用.\return (COM_ERR_OPEN); }
if( (BaudRate > EBaud115200) || (BaudRate < EBaud110) ) { }
hCOM = CreateFile(GstrPortTbl[Port-1], GENERIC_READ | GENERIC_WRITE, 0, 0,
__messageDispDebug(_T(\波特率参数错误.\return (COM_ERR_PARA);
__messageDispDebug(_T(\打开串口号参数错误.\return (COM_ERR_PARA);
if ( (Port > ECOM9) || (Port < ECOM1) ) {
/* 参数判断
EDataBits DataBits, EStopBits StopBits, EParity Parity, BOOL bDTRShake, BOOL bRTSShake)
OPEN_EXISTING, 0, 0); /* 打开串口
*/
if (iErr != COM_OK) { return (iErr); } */ }
return (COM_OK);
PurgeComm(hCOM, PURGE_TXCLEAR | PURGE_RXCLEAR);
/* 清除收/发缓冲区 iErr = epcSerialSetCom(BaudRate, DataBits, StopBits, Parity, bDTRShake, bRTSShake);
/* 设置串口 (禁止硬件流控制)
使用完串口后,应该管关闭串口,程序清单 5.2 的epcSerialClose方法将实现串口读写线程并关闭串口,其首先调用SetEvent函数向串口线程发出一个通知,等待线程自动推出后再关闭接受线程句柄,最后关闭串口句柄。
程序清单 5.2 串口控制类的的关闭串口方法
BOOL CCeSerial::epcSerialClose (void) { */ */
CloseHandle(hRcvThread); */ */ */
}
return (FALSE);
32
hCOM = INVALID_HANDLE_VALUE; return (TRUE); }
if (hCOM != INVALID_HANDLE_VALUE) {
SetCommMask(hCOM, 0);
PurgeComm(hCOM, PURGE_TXCLEAR | PURGE_RXCLEAR); CloseHandle(hCOM);
/* 关闭串口操作句柄
hRcvThread = NULL;
CloseHandle(hExitThreadEvent);
/* 关闭线程退出事件句柄
/* 关闭接收线程句柄
WaitForSingleObject(hRcvThread, 500);
/* 等待线程退出
if (hRcvThread != NULL) {
SetEvent(hExitThreadEvent);
/* 通知串口接收线程退出
/* 清除收/发缓冲 */
}
epcSerialSendData方法使共外部使用的用来向串口发送数据,epcSerialSendData方法首先会把要发送的数据传递给写程序的消息队列,然后有写线程将数据发送出去,从而避免阻塞主线程,epcSerialSendData方法的详细代码如程序清单 5.3所示。
程序清单 5.3 串口控制类的的发送数据方法
BOOL CCeSerial::epcSerialSendData (BYTE *pucSendBuf, DWORD dwLength) {
if ( (pucSendBuf == NULL) || (dwLength < 1) ) { /* 参数判断 */ return (FALSE); } }
if (hCOM == INVALID_HANDLE_VALUE) { /* 判断串口是否已经打开 */ }
ClearCommError(hCOM, &dwErrorFlags, &comstatTest); /* 清除串口错误 */ WriteFile(hCOM, pucSendBuf, dwLength, &dwActLen, NULL); /* 发送数据 */ return (TRUE);
__messageDispDebug(_T(\串口未打开!\return (FALSE); DWORD dwActLen; COMSTAT comstatTest; DWORD dwErrorFlags;
接收串口数据使用epcSerialRcvDataTread函数,其采用的是线程方式,在建立数据库接收线程之前应该先确认当前串口串口没有被占用,然后再设置接收参数,如接收数据个数,读数据总超时常量,其详细代码如程序清单 5.4所示。
程序清单 5.4 串口控制类的的接收数据方法
BOOL CCeSerial::epcSerialRcvDataTread (DWORD dwLength, DWORD dwOutTime, {
DWORD dwThreadID; COMMTIMEOUTS ctoTimeOut;
PFUN_COMRCV pfunOnComRcv, LPVOID pvUserParam)
if ( (dwLength < 1) || (pfunOnComRcv == NULL) ) { return (FALSE); }
if (dwLength > (1024*8)) {
33
dwLength = 1024*8; }
if (dwOutTime < 10) { dwOutTime = 10; } */ */ }
}
__messageDispDebug(_T(\创建接收线程失败!\return (FALSE);
if (hRcvThread == NULL) {
CloseHandle(hExitThreadEvent);
/* 关闭线程退出事件句柄
hRcvThread = CreateThread(0, 0, epcSerialComRcvTread, this, 0, &dwThreadID);
hExitThreadEvent = CreateEvent(NULL, TRUE, FALSE, NULL); /* 创建串口接收线程退出事件 dwRcvLength = dwLength; pfunRcvOnComRcv = pfunOnComRcv; pvRcvUserParam = pvUserParam;
GetCommTimeouts(hCOM, &ctoTimeOut); ctoTimeOut.ReadTotalTimeoutMultiplier = 1; SetCommTimeouts(hCOM, &ctoTimeOut);
* 接收字符间最大时间间隔 */ * 读数据总超时常量 */
ctoTimeOut.ReadIntervalTimeout = dwOutTime; ctoTimeOut.ReadTotalTimeoutConstant = dwOutTime; if (hCOM == INVALID_HANDLE_VALUE) { }
if (hRcvThread != NULL) { }
return (FALSE);
__messageDispDebug(_T(\串口未打开!\return (FALSE);
__messageDispDebug(_T(\串口接收线程已建立过!\
return (TRUE);
5.3.3 VB.net调用DLL文件
虽然VB.net是个简单易用的开发环境,但是自身功能有限,限制了VB.net在某些方面的应用。微软提供了两种方式来增强VB的功能,一种是调用COM
34
组件,另一种就是调用Dll函数,本设计中就是通过在VB.net中动态调用DLL达到调用串口动态链接库中的函数的母的。
在VB.net中调用动态链接库的函数很简单,首先在类中使用Declare函数声明要调用的动态链接库和函数名,本设计中主要调用了打开串口关闭串口发送数据和接受数据四个函数其详细的代码清单如程序清单 5.5所示。
程序清单 5.5 声明调用动态链接库
?声明调用打开串口函数
Public Declare Function epcSerialOpen1 Lib %ucBaudRate As Byte, ByVal ucDataBit As Byte, ByVal ucStopBit As Byte, ByVal ucParity As Byte) As Integer ?声明调用关闭串口函数
Public Declare Function epcSerialClose Lib \Boolean
?声明调用发送数据函数
Public Declare Function epcSerialSendData Lib \ByVal pucSendBuf As Byte(), ByVal dwLength As UInteger) As Boolean ?声明调用接收数据函数
Public Declare Function epcSerialClose Lib \ByVal pucRcvBuf As Byte(), ByVal dwLength As Integer, ByVal dwOutTime As Integer, ByVal bClrComBuf As Boolean) As Integer
5.3.4 打印机驱动模块
本设计中使用的打印机属于微型的串口打印机,这种打印机的优点是不需要编写特定的驱动程序,打印机内部自带了控制器,用户只需要通过目标系统的标准RS232接口与打印机连接。然后按照厂家提供的打印指令表,即可控制打印机打印各种文字或图形。
由上一节可知道,系统的串口API已经被封装成一个串口类,并且打包成以标准C语言为导出函数的动态链接库,控制打印机的操作只需要调用串口类然后发送相应的指令和编辑好的数据,其策划年供需流程图如图 5.6所示。
35
正在阅读:
基于ARM9嵌入式微处理器的远程仓库管理系统- 张晓东 - 图文06-23
我的弟弟作文650字07-10
新托福模拟题 Test2 P1803-29
语文趣味故事04-12
2011-2012学年河南省实验中学八年级(上)期末数学模拟试卷06-19
中华人民共和国行政复议法试题及答案12-10
Linux的samba服务器在Windows 2003域环境中的配置10-08
渡槽施工组织方案09-24
13-14田径社团活动计划07-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 张晓东
- 式微
- 仓库
- 处理器
- 嵌入
- 远程
- 管理系统
- 基于
- 图文
- ARM9
- 大秦帝国经典台词
- 2014年公需科目考试-网络安全建设与网络社会治理试题库1
- 2015年《经济法基础》考试真题
- 中国民主同盟入盟申请表(填写样表)
- 2019年高考生物模拟试题9
- 中国货代市场调查及“十三五”行业前景预测报告 - 图文
- 土方开挖工程监理细则
- 金属的物理性质和某些化学性质教案
- 2016年三类人员继续教育考试题库
- 2018届浙江省金丽衢十二校高三第二次联考英语试题(含答案)
- 流感的预防 Microsoft Word 文档(3)
- 2011届高考物理(二轮)专题复习学案:专题7 物理实验 第2讲 力
- 350吨二级DTRO技术方案
- (强烈推荐)外立面改造项目施工组织设计(施工方案)方案(原件
- 东风标致307膜片弹簧离合器的设计大学论文
- 婚纱摄影的注意细节
- 降低小曲白酒的醛类、甲醇、杂醇油等有害成分工作分析
- 教学主管竞聘计划书
- 上海周浦镇八一中学学生留学程序
- 金融时间序列分析(非平稳部分)