嵌入式系统远程仓库管理系统的设计.docx

上传人:b****1 文档编号:1753789 上传时间:2023-05-01 格式:DOCX 页数:15 大小:409.31KB
下载 相关 举报
嵌入式系统远程仓库管理系统的设计.docx_第1页
第1页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第2页
第2页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第3页
第3页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第4页
第4页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第5页
第5页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第6页
第6页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第7页
第7页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第8页
第8页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第9页
第9页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第10页
第10页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第11页
第11页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第12页
第12页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第13页
第13页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第14页
第14页 / 共15页
嵌入式系统远程仓库管理系统的设计.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

嵌入式系统远程仓库管理系统的设计.docx

《嵌入式系统远程仓库管理系统的设计.docx》由会员分享,可在线阅读,更多相关《嵌入式系统远程仓库管理系统的设计.docx(15页珍藏版)》请在冰点文库上搜索。

嵌入式系统远程仓库管理系统的设计.docx

嵌入式系统远程仓库管理系统的设计

嵌入式系统

(二)课程设计

 

远程仓库管理系统的设计

 

设计日期:

2011年07月4日至2011年07月8日

摘要

嵌入式系统以体积小,功耗低,运算能力强等优点著称.它一般被设计成某一场合专用的系统。

本文设计的远程仓库管理系统,客户机是以运行WindowsCE操作系统的手持式设备,服务器采用运行WindowsServer2003的PC机。

客户机的硬件平台以ARM9(S3C2410)微处理器作为核心,通过以太网与服务器建立连接组成一个远程仓库管理系统。

系统中采用的S3C2410A微处理器是一款由SamsungElectronicsCo.Ltd为手持设备、POS机、数字多媒体播放设备设计的低功耗、高度集成的微处理器,采用272脚FBGA封装,内含一个ARM920T内核和丰富的外围资源。

关键词:

远程仓库管理系统,嵌入式系统,ARM9微处理器,WindowsCE.net

第一章远程仓库管理系统简介-2-

1.1设计概述-2-

1.2设计目的-2-

1.3设计思路-2-

第二章客户机硬件设计-3-

2.1核心控制电路-3-

2.2存储器电路-3-

2.3时钟电路-5-

2.4复位电路-5-

2.5电源电路-6-

2.6以太网接口电路-6-

2.7JTAG调试接口电路-6-

2.8电源模块-7-

第三章客户机软件设计-7-

3.1软件功能模块的划分-7-

3.2客户机程序流程图-8-

3.3接口电路设计-9-

3.4串口API函数使用-10-

3.5打印机驱动模块-10-

课程设计心得与体会-12-

参考文献-13-

附件串口驱动程序代码-14-

 

第一章远程仓库管理系统简介

仓库管理系统属于管理信息系统的一种,在强调管理,强调信息的现代社会中它变得越来越普及。

高效可靠的仓库管理系统软件不仅可以提高企业的管理质量,而且可以提高生效效益。

随着计算机技术和嵌入式系统技术的发展,仓库管理系统的终端硬件平台出现了很大的变化,可以是通用计算机、专用的嵌入式计算机或者掌上电脑等。

多功能、低成本、高可靠的仓库管理系统产品将是未来的一个趋势。

1.1设计概述

本设计的硬件实现主要以MagicARM2410教学实验系统为智能终端,通过以太网与SQLServer服务器连接,实现远程数据库访问;通过RS232串行通信数据线与串口打印机连接,实现数据的打印。

而在真正的产品中,通常使用的是台式智能终端或无线的手持式智能终端。

1.2设计目的

本课程设计主要是运用S3C2410AARM芯片设计远程仓库管理系统来实现对远程仓库的管理,从而加强对嵌入式知识的巩固和应用。

1.3设计思路

本设计中,以基于ARM9嵌入式微处理器的设备作为客户机,以PC机作为数据库服务器,使用SQL数据库实现一个仓库管理系统。

客户机与服务器通过以太网进行连接。

客户机分为两类,一类是供仓库管理人员管理出货入货和查询库存产品信息专用的,另一类是仅供销售人员等查询库存产品信息使用的;服务器存放仓库所有产品的信息。

管理人员使用管理工作人员专用客户机对出货入货的商家和产品信息进行登记同时打印出货入货票据,销售人员等使用库存产品查询客户机查询库存产品数量等信息。

第二章客户机硬件设计

2.1核心控制电路

核心板电路是能运行程序的最小系统电路。

它包括微处理器S3C2410A,存储器电路,时钟电路,复位电路,及核心板使用的电源电路等。

系统中采用的S3C2410A(S3C2410系列,以下称为S3C2410)微处理器是一款由SamsungElectronicsCo.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-ByteTxFIFOand16-ByteRxFIFO)、2通道SPI、一个多主I2C总线、一个I2S总线控制器、版本1.0的SD主接口、并与多媒体卡协议版本2.11兼容、两个USBHOST、一个USBDEVICE(VER1.1)、4个PWM定时器和一个内部定时器、看门狗定时器、117个通用I/O、24个外部中断、4种电源控制模式(包括标准、慢速、休眠、掉电)、8通道10位ADC和触摸屏接口、带日历功能的实时时钟、芯片内置PLL;设计用于手持设备和通用嵌入式系统;16/32位RISC体系结构,使用ARM920TCPU核的强大指令集;带MMU的先进的体系结构支持WinCE、EPOC32、Linux;指令缓存(CACHE)、数据缓存、写缓冲和物理地址TAGRAM,减小了对主存储器带宽和性能的影响;ARM920T核支持,并有支持ARM调试的体系结构;内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB)。

本系统中,处理器被配置在小端格式。

工作频率可设置在200MHz,AHB总线频率为100MHz。

2.2存储器电路

(1)NORFlash存储器

核心板上扩展了1片存储容量为2MB的NORFlash(SST39VF1601),为了使SST39VF1601能够引导和下载系统,将其分配在Bank0存储块空间,使用S3C2410的nGCS0片选线,基地址为0x00000000。

如图2-1所示,SST39VF1601是16位宽度存储器,对与S3C2410A来说相应与半字对齐,操作地址的最小变化值是0x00000002,因此将S3C2410A的ADDR1脚与SST39VF1601的A0脚相连,忽略S3C2410A的ADDR0引脚,其他地址按顺序依次递增相连。

图2-1NORFlash存储器电路

(2)NANDFlash存储器

NANDFlash接口电路原理图如图2-2所示。

图2-2NANDFlash存储器电路

NANDFlash具有良好的性价比和系统接口,且S3C2410支持NANDROM启动方式,所以核心板选用了三星公司的NANDFlash:

K9F1208U0B-PCB0。

该Flash是64MB的CMOS工艺制造的存储器。

采用48脚TSOP封装,其工作电压为2.7V~3.6V,其I/O口为数据线和地址线的复用端口。

通过对其内部的命令寄存器写入标准的命令序列,可对其进行编程、整片擦除、按扇区擦除以及其它操作。

核心板使用K9F1208U0B-PCB0扩展了64M的NANDFlash存储器,K9F1208U0B-PCB0的I/O0~I/O7直接与S3C2410的DATA0~DATA7相连,通过数据总线发送地址、命令和数据。

2.3时钟电路

S3C2410可以使用外部晶振或外部时钟输入作为系统时钟,外部晶振的频率范围是10MHz~20MHz,核心板采用12MHz的外部晶振,所以S3C2410A的OM2,OM1引脚接为低电平,将外部时钟输入引脚接为高电平(3.3V),电路如图2-3所示。

通过S3C2410的内部锁相环,可以将处理器时钟倍频至最高266MHz。

图2-3核心板时钟电路

2.4复位电路

核心板的复位电路采用内置E2PROM存储器的专用电源监控复位芯片CAT1025JI-30,提高了系统的可靠性。

系统复位电路如图2-4所示。

图2-4核心板复位电路

2.5电源电路

由于ARM芯片的高速、低功耗、低工作电压导致了其噪声容限很低,对电源的纹波、瞬态响应、电源监控的可靠性等诸多方面提出了更高的要求。

核心板使用的一组3.3V电源有外部提供,而S3C2410需要的1.8V电压是通过核心板上的LDO芯片(低压差电源芯片)得到的。

核心板使用SPX1117M3-1.8将3.3电压转换为1.8V。

使用时,其输出端需要一个至少10uF的钽电容来改善瞬态响应和稳定性。

核心板的电源电路如图2-5所示。

图2-5核心板电源电路

2.6以太网接口电路

以太网规范规定以太网需要两种接口部件:

MAC(MediaAccessController,媒体访问控制器)和PHY(Physicaltransceiver,物理收发器)。

MAC是一种纯数字的设备,负责数据流的同步处理。

而PHY在很大程度上是一种模拟器件,负责将数据转换成在特定的媒体上(常用双绞线)传输所需的信号电平。

2.7JTAG调试接口电路

在现在系统中越来越强调可策性,调试、测试接口的设计也越来越受到重视。

S3C2410中内置有一个JTAG调试接口,通过这个接口可以控制芯片的运行和获取内部信息。

2.8电源模块

MagicARM2410有一个专门的电源板,电源板提供的电压有+12V和+5V,所以开发平台上还需要一个系统电源,它使用LDO芯片将5V电源转换得到两组3.3V电源,一组核心板供电,另一组主板供电。

图2-6系统电源电路

第三章客户机软件设计

3.1软件功能模块的划分

仓库管理系统(管理机)

权限验证

打印

本地数据库访问

远程数据库访问

远程数据库权限验证

本地数据库权限验证

建立数据库

产品管理

出货管理

入货管理

数据访问

数据备份

打印驱动

串口设置

客户机要实现的主要功能包括本地数据库的访问,远程数据库的访问,软件设置和打印模块。

功能模块如图3-1所示。

 

图3-1管理员客户机功能模块图

3.2客户机程序流程图

开始

判断本地是否存在用户的数据库

输入本地账号和密码

密码正确?

连接本次数据库

对本次数据库执行各种操作

同步远程数据库

输入数据库服务器相关信息,账号和密码

密码正确?

数据同步

结束

新建数据库

输入账号密码

N

N

N

Y

Y

Y

由于管理员客户机和普通工作人员客户机是分开设计的,所以程序流程图也分为管理员客户机程序流程图和普通工作人员考核及程序流程图。

管理员客户机功能比较丰富,其程序流程如图3-2所示,其中对本地数据库中的数据记录操作包括添加、删除、修改和查找,对数据库系统的操作有同步合并,申请或提交数据等等,系统要求高可靠的保密功能,所以用户登陆时需要权限验证。

 

图3-2管理员客户机程序流程图

3.3接口电路设计

在嵌入式系统的开发和应用中,经常需要使用上位机本身配置的串行口,通过串行通讯技术,和嵌入式设备进行连接通讯。

串行口的典型代表是RS-232-C及其兼容插口,用9、11、18、25针来实现。

RS-232-C是美国电子工业协会EIA制定的一种串行物理接口标准。

RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。

RS-232-C总线标准设有25条信号线,常见的串行接口有9针和25针的,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。

S3C2410共有3个UART接口,MagicARM2410实验箱将UART0、UART1用作RS232接口。

但ZY2410的BSP只带了UTAR0的驱动,所以在本设计中使用UART0与PC机的串口相连接,作为调试信息的打印接口。

UART0通过SP3232芯片跟S3C2410微处理器的串行口引脚连接。

本设计中所使用的串口打印机配备的是二十五针的串行接口,因此实验箱跟打印机还不能直接连接,还需要通过自制一根简易的转换线连接。

二十五针的串行接口的引脚功能很丰富,但实际应用中只需要用到几根,其功能如表3-1所示。

表3-1二十五针的串行接口部分引脚功能图

引脚号

信号

方向

说明

2

RXD

打印机从主计算机接收数据

3

TXD

当使用X-ON/X-OFF握手时,打印机向上微机发送控制码

4

BUSY

同BUSY(TTL电平时,此引脚为空引脚)

5

BUSY

该信号高电平时,表示打印机正“忙”不能接收数据,而当该信号低电平时,表示打印机“准备好”,可以接收数据

7

GND

-

信号地

3.4串口API函数使用

虽然VB.net也具备访问设备驱动程序的功能,但是由于其对操作系统的数据类型和程序接口没有很好的支持,所以使用VB.net直接访问驱动程序难度甚大,所以本设计选择利用VC++6.0编写DLL文件为VB.net应用程序提供函数接口,从而方便的实现了对串口驱动的访问。

对串口驱动进行操作通过编写一个类来实现,由于串口有多个,使用类的方式通过实例化多个类就可以对多个串口同时进行操作(前提是PDD层的支持)。

在串口操作类中,应实现打开串口、关闭串口、查询打开状态、发送数据和接收数据的公共成员函数以及能传出串口配置和公共成员变量。

打开串口函数应能够按照一定的DCB格式配置串口再打开串口,接收数据的函数应在调用后立刻返回已接收的数据供应用程序使用。

该串口操作类通过对串口驱动进行操作实现对串口硬件的操作。

由于串口驱动程序为流设备驱动,于是它将由设备管理器进行加载。

在WindowsCE中,可以通过CreateFile函数打开串口,如果串口打开成功的话,将会返回打开串口的句柄,否则将返回INVALID_HANDLE_VALUE。

在实际使用串口时,还必须设置好串口的波特率,奇偶校验和数据位等参数。

WindowsCE中提供了GetCommState和SetCommState函数,分别获取串口当前的参数和设置串口的参数。

打开串口的代码如Error!

Referencesourcenotfound.所示,epcSerialOpen方法根据指定的参数打开串口,并创建此串口的读线程和写线程,以实现串口的异步读写。

在使用系统的串口API函数时,还要使用到一个名为DCB的结构体,在GetCommState函数中,它属于输出参数,在SetCommState函数中,它属于输入参数。

3.5打印机驱动模块

本设计中使用的打印机属于微型的串口打印机,这种打印机的优点是不需要编写特定的驱动程序,打印机内部自带了控制器,用户只需要通过目标系统的标准RS232接口与打印机连接。

然后按照厂家提供的打印指令表,即可控制打印机打印各种文字或图形。

 

流程图如图3-3所示。

 

图3-3打印功能模块程序流程图

 

课程设计心得与体会

通过课程设计感悟很深。

面对庞大的产品信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,仓库管理系统的重点是销售信息能否及时反馈,从而确保企业运行效益。

而库存管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由库存管理系统来提高库存管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。

参考文献

[1]张冬泉.WindowsCE实用开发技术[M].北京:

电子工业出版社,2007.

[2]周立功.ARM&WinCE实验与实践[M].北京:

北京航空航天大学出版社,2007.

[3]汪兵.EVC高级编程及其应用开发[M].北京:

中国水利水电出版社,2007.

[4]求是科技.SQLServer2000数据库开发技术与工程实践[M].北京:

人民邮电出版社,2004.

[5]广州致远电子有限公司.SQLServerMobile数据库编程示例.产品应用笔记.2008

[6]广州致远电子有限公司.Web串口远程控制示例.产品应用笔记.2008

附件串口驱动程序代码

SerialObject.h文件源代码

#defineQUEUE_SIZE51200/*接收队列缓冲区大小*/

#defineBUFFER_SIZE1024/*从串口驱动读取数据的接收缓冲区大小*/

typedefstruct_SERIALCFG{

BYTEbBaudSel;/*波特率序号*/

BYTEbDataBitSel;/*数据位序号*/

BYTEbStopBitSel;/*停止位序号*/

BYTEbParitySel;/*校验类型序号*/

}SERIALCFG;/*定义串口配置情况结构体*/

classCSerialObject/*定义串口对象类*/

{

public:

SERIALCFGm_SerialCfg;/*用于传出串口已配置情况*/

public:

DWORDRead(PBYTEpRcvBuffer,DWORDdwToReadLen);

BOOLWrite(PBYTEpSndBuffer,DWORDdwLength);

voidClose();

BOOLIsOpen();

BOOLOpen(BYTEbPort,BYTEbBaudRate,BYTEbDataBit,BYTEbStopBit,BYTEbParity);

CSerialObject();

virtual~CSerialObject();

private:

staticDWORD__stdcallRecvThread(LPVOIDpParam);

HANDLEm_hComm;/*串口流驱动文件句柄*/

PBYTEm_pQueueBuf;/*接收队列缓冲区指针*/

DWORDm_dwQueueIndexIn;/*接收队列追加数据点序号*/

DWORDm_dwQueueIndexOut;/*接收队列取数据点序号*/

DCBm_dcb;/*串口设备控制块结构体,包含串口配置信息*/

CRITICAL_SECTIONm_csQueue;/*接收队列临界对象*/

staticvoidCALLBACKCommRecv(LPVOIDpParam,PBYTEpBuf,DWORDdwLen);

};

#endif//!

defined(AFX_SEIALOBJECT_H__1D103668_E3B1_4DB0_8A73_36DAD26D9C68__INCLUDED_)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2