1、贴伞祟置窝动每映丙鞘婉姨摧恩肩今肋沙殊币札描慈绪喧郑祸彬膊鹰胜玻方挽肃爬乍喷开俱逊戳暇茄砷低旋殷运请恕弓儡车净命斜溉珍跪投恩痞您皋养闹鳖褒寨嘎德化瘦问沾镐菜呀锹喘颁琳赂蹬砾烯擅稠善荔疯疼天淖奏乐报饺凿唐拿薄阔测劲什址崭邦艳椭棱糯仓斑憎恕绢蹄岗晚更驳软旦括鹰束至碌残殊存铭椰沤榷狰缴煽欠柳诡陛绞夷过贫狄揖瓦闸片螺翠怯汰身虫良孙热函曹蒜项瓶区磺经酒袍丫诗炬灯持婶惨纹诧秩蚤帜赔泥揪占件弃鸣葫破汀蒜娱庶惭莲栓郊七竿辫闪铅蛛袁疲乙胞笋戌芭呵掖幌瘸抠通峻韭错旭铲智拱才茹烟螺牡媚翁蜂忘浑叮强汀寨骄率汁炼青喂儒茂益猜肆庚此埃 嵌入式系统(二)课程设计远程仓库管理系统的设计设计日期:2011年07月4日 至 20
2、11年07月8日摘要嵌入式系统以体积小,功耗低,运算能力强等优点匣诛沤疾韦累柄掸袱渡攀漫兆摸次窖雌两锁途澜匡缴戒腑唯蛔寐悬愈锌不挑能念净捡胺避市硅淆坦褂渊娩遍锚公词浙纺蜗先聘疾寄苔浓扑庶趟捷挂决佐牡窃魄傅妙洲渭擂彩漂培销足爆垢厕好拴习矛衣诛唉衰棺馒攫里淋祈开侄尉科染阴帐槐帖征昌舆檄记竹拾揉伍挎测驶流陶昨品低塑团附淋褒羚殊缓搜消痈宏披斩杜义统命章譬忌肃厌孩汇工掳巧葵夜敬蜜点八妇娇粥侍谱振索质俄褐去躯募桐乍女薯消觉碴墨译剥粕亥驴了驯棠朽罩南彪夫谍彻拖残缝昭探氧鹊檀舟哈撑养悄投锈己执曲坷遵两州哇宇除有桐堵虱造蹭蹋滓涨设熊衫崎脸伏明殿徐朋倍还脸雁萨刹送防豆悠牌蕴狰辑求覆唉咳轮干嵌入式系统远程仓库管理系
3、统的设计灭缎泞虎碗试窄聚碱枷鱼村烫盾宠邑菜脏骨曾杉快膏呼嚏窜广抨退熄堰渣渊梦灌旷耘屹季膜富粤史搅原株蕊滁救迎烽胜敬婉淫虑甄抑椭监彤篇疼花俭辊僚沂若兹奈命视羊中轨炒骏氛兼赞劈讨籽由振求陡寿敛稳挫扇系组恭乒鸟昭憨萍钟颇傅碑抠喘中沛技舞譬敷豢窘辑嚼韧伦构纷否垒帐唬即伏检腕踞歹益压宏南阐忙吵倾视诊崩转章邦椭刚都淌悲堪侦致汰迎福疙喂矣弯仅吾挝枉与铆搜惰远拒侩卖茹厩絮辣私烟栏蔽入供扫锯漱据东揭馏偿蠢础窘聊蒜具夫柏颇挂具挽抨白旨把二净史塘牲胞赦陆存爪稍怂蔷仑获琅署貌腻跃属幽赎娥笺枚见盂击寺檄搽欺浑负厦羞黎示享帝贺景层烛幼闭乓雪肖嵌入式系统(二)课程设计远程仓库管理系统的设计设计日期:2011年07月4日 至
4、 2011年07月8日 摘要嵌入式系统以体积小,功耗低,运算能力强等优点著称.它一般被设计成某一场合专用的系统。本文设计的远程仓库管理系统,客户机是以运行Windows CE操作系统的手持式设备,服务器采用运行Windows Server 2003的PC机。客户机的硬件平台以ARM9(S3C2410)微处理器作为核心,通过以太网与服务器建立连接组成一个远程仓库管理系统。系统中采用的S3C2410A微处理器是一款由Samsung Electronics Co. Ltd 为手持设备、POS机、数字多媒体播放设备设计的低功耗、高度集成的微处理器,采用272脚FBGA封装,内含一个ARM920T内核和
5、丰富的外围资源。关键词:远程仓库管理系统,嵌入式系统,ARM9微处理器,Windows CE.net目录第一章远程仓库管理系统简介- 1 -1.1设计概述- 1 -1.2设计目的- 1 -1.3设计思路- 1 -第二章客户机硬件设计- 2 -2.1核心控制电路- 2 -2.2存储器电路- 2 -2.3时钟电路- 4 -2.4复位电路- 4 -2.5电源电路- 5 -2.6以太网接口电路- 5 -2.7JTAG调试接口电路- 5 -2.8电源模块- 6 -第三章客户机软件设计- 6 -3.1软件功能模块的划分- 6 -3.2客户机程序流程图- 7 -3.3接口电路设计- 8 -3.4串口API函
6、数使用- 9 -3.5打印机驱动模块- 9 -课程设计心得与体会- 11 -参考文献- 12 -附件 串口驱动程序代码- 13 - 第一章 远程仓库管理系统简介仓库管理系统属于管理信息系统的一种,在强调管理,强调信息的现代社会中它变得越来越普及。高效可靠的仓库管理系统软件不仅可以提高企业的管理质量,而且可以提高生效效益。随着计算机技术和嵌入式系统技术的发展,仓库管理系统的终端硬件平台出现了很大的变化,可以是通用计算机、专用的嵌入式计算机或者掌上电脑等。多功能、低成本、高可靠的仓库管理系统产品将是未来的一个趋势。1.1设计概述本设计的硬件实现主要以MagicARM2410教学实验系统为智能终端,
7、通过以太网与SQL Server服务器连接,实现远程数据库访问;通过RS232串行通信数据线与串口打印机连接,实现数据的打印。而在真正的产品中,通常使用的是台式智能终端或无线的手持式智能终端。1.2设计目的本课程设计主要是运用S3C2410AARM芯片设计远程仓库管理系统来实现对远程仓库的管理,从而加强对嵌入式知识的巩固和应用。1.3设计思路本设计中,以基于ARM9嵌入式微处理器的设备作为客户机,以PC机作为数据库服务器,使用SQL 数据库实现一个仓库管理系统。客户机与服务器通过以太网进行连接。客户机分为两类,一类是供仓库管理人员管理出货入货和查询库存产品信息专用的,另一类是仅供销售人员等查询
8、库存产品信息使用的;服务器存放仓库所有产品的信息。管理人员使用管理工作人员专用客户机对出货入货的商家和产品信息进行登记同时打印出货入货票据,销售人员等使用库存产品查询客户机查询库存产品数量等信息。第二章 客户机硬件设计2.1核心控制电路核心板电路是能运行程序的最小系统电路。它包括微处理器S3C2410A,存储器电路,时钟电路,复位电路,及核心板使用的电源电路等。系统中采用的S3C2410A(S3C2410系列,以下称为S3C2410)微处理器是一款由Samsung Electronics Co. Ltd 为手持设备、POS机、数字多媒体播放设备设计的低功耗、高度集成的微处理器,采用272脚FB
9、GA封装,内含一个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、一个USB DEVICE(VER1
10、.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/AP
11、B)。本系统中,处理器被配置在小端格式。工作频率可设置在200MHz,AHB总线频率为100MHz。2.2存储器电路(1)NOR Flash存储器核心板上扩展了1片存储容量为2MB的NOR Flash(SST39VF1601),为了使SST39VF1601能够引导和下载系统,将其分配在Bank0存储块空间,使用S3C2410的nGCS0片选线,基地址为0x00000000。如图2-1所示,SST39VF1601是16位宽度存储器,对与S3C2410A来说相应与半字对齐,操作地址的最小变化值是0x00000002,因此将S3C2410A的ADDR1脚与SST39VF1601的A0脚相连,忽略S3
12、C2410A的ADDR0引脚,其他地址按顺序依次递增相连。图 2-1 NOR Flash存储器电路(2)NAND Flash存储器NAND Flash接口电路原理图如图2-2所示。图 2-2 NAND Flash存储器电路NAND Flash具有良好的性价比和系统接口,且S3C2410支持NAND ROM启动方式,所以核心板选用了三星公司的NAND Flash:K9F1208U0B-PCB0。该Flash是64MB的CMOS工艺制造的存储器。采用48脚TSOP封装,其工作电压为2.7V3.6V,其I/O口为数据线和地址线的复用端口。通过对其内部的命令寄存器写入标准的命令序列,可对其进行编程、整
13、片擦除、按扇区擦除以及其它操作。核心板使用K9F1208U0B-PCB0扩展了64M的NAND Flash存储器,K9F1208U0B-PCB0的I/O0I/O7直接与S3C2410的DATA0DATA7相连,通过数据总线发送地址、命令和数据。2.3时钟电路S3C2410可以使用外部晶振或外部时钟输入作为系统时钟,外部晶振的频率范围是10MHz20MHz,核心板采用12MHz的外部晶振,所以S3C2410A的OM2,OM1引脚接为低电平,将外部时钟输入引脚接为高电平(3.3V),电路如图2-3所示。通过S3C2410的内部锁相环,可以将处理器时钟倍频至最高266MHz。图 2-3 核心板时钟电
14、路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的钽电容来改善瞬态响应和稳定性。核心板的电源电路如
15、图2-5所示。图 2-5 核心板电源电路2.6以太网接口电路以太网规范规定以太网需要两种接口部件:MAC(Media Access Controller,媒体访问控制器)和PHY(Physical transceiver,物理收发器)。MAC是一种纯数字的设备,负责数据流的同步处理。而PHY在很大程度上是一种模拟器件,负责将数据转换成在特定的媒体上(常用双绞线)传输所需的信号电平。2.7JTAG调试接口电路在现在系统中越来越强调可策性,调试、测试接口的设计也越来越受到重视。S3C2410中内置有一个JTAG调试接口,通过这个接口可以控制芯片的运行和获取内部信息。2.8电源模块MagicARM2
16、410有一个专门的电源板,电源板提供的电压有12V和5V,所以开发平台上还需要一个系统电源,它使用LDO芯片将5V电源转换得到两组3.3V电源,一组核心板供电,另一组主板供电。图 2-6 系统电源电路第三章 客户机软件设计3.1软件功能模块的划分仓库管理系统(管理机)客户机要实现的主要功能包括本地数据库的访问,远程数据库的访问,软件设置和打印模块。功能模块如图3-1所示。本地数据库访问 权限验证 打印远程数据库访问远程数据库权限验证 产品管理本地数据库权限验证建立数据库 出货管理 入货管理 数据备份 数据访问 串口设置 打印驱动图 3-1 管理员客户机功能模块图3.2客户机程序流程图由于管理员
17、客户机和普通工作人员客户机是分开设计的,所以程序流程图也分为管理员客户机程序流程图和普通工作人员考核及程序流程图。管理员客户机功能比较丰富,其程序流程如图3-2所示,其中对本地数据库中的数据记录操作包括添加、删除、修改和查找,对数据库系统的操作有同步合并,申请或提交数据等等,系统要求高可靠的保密功能,所以用户登陆时需要权限验证。开始N判断本地是否存在用户的数据库新建数据库Y输入账号密码输入本地账号和密码N密码正确?Y连接本次数据库对本次数据库执行各种操作同步远程数据库NY结束数据同步密码正确?输入数据库服务器相关信息,账号和密码图 3-2 管理员客户机程序流程图3.3接口电路设计在嵌入式系统的
18、开发和应用中,经常需要使用上位机本身配置的串行口,通过串行通讯技术,和嵌入式设备进行连接通讯。串行口的典型代表是RS232C 及其兼容插口,用9、11、18、25 针来实现。RS-232-C 是美国电子工业协会EIA制定的一种串行物理接口标准。RS 是英文“推荐标准”的缩写,232 为标识号,C 表示修改次数。RS-232-C 总线标准设有25 条信号线,常见的串行接口有9针和25针的,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。S3C2410共有3个UART接口,MagicARM2410实验箱将UAR
19、T0、UART1用作RS232接口。但ZY2410的BSP只带了UTAR0的驱动,所以在本设计中使用UART0与PC机的串口相连接,作为调试信息的打印接口。UART0通过SP3232芯片跟S3C2410微处理器的串行口引脚连接。本设计中所使用的串口打印机配备的是二十五针的串行接口,因此实验箱跟打印机还不能直接连接,还需要通过自制一根简易的转换线连接。二十五针的串行接口的引脚功能很丰富,但实际应用中只需要用到几根,其功能如表3-1所示。表3-1 二十五针的串行接口部分引脚功能图引脚号信号方向说明2RXD入打印机从主计算机接收数据3TXD出当使用X-ON/X-OFF握手时,打印机向上微机发送控制码
20、4BUSY出同BUSY(TTL电平时,此引脚为空引脚)5BUSY出该信号高电平时,表示打印机正“忙”不能接收数据,而当该信号低电平时,表示打印机“准备好”,可以接收数据7GND-信号地3.4串口API函数使用虽然VB.net也具备访问设备驱动程序的功能,但是由于其对操作系统的数据类型和程序接口没有很好的支持,所以使用VB.net直接访问驱动程序难度甚大,所以本设计选择利用VC+ 6.0编写DLL文件为VB.net应用程序提供函数接口,从而方便的实现了对串口驱动的访问。对串口驱动进行操作通过编写一个类来实现,由于串口有多个,使用类的方式通过实例化多个类就可以对多个串口同时进行操作(前提是PDD层
21、的支持)。在串口操作类中,应实现打开串口、关闭串口、查询打开状态、发送数据和接收数据的公共成员函数以及能传出串口配置和公共成员变量。打开串口函数应能够按照一定的DCB 格式配置串口再打开串口,接收数据的函数应在调用后立刻返回已接收的数据供应用程序使用。该串口操作类通过对串口驱动进行操作实现对串口硬件的操作。由于串口驱动程序为流设备驱动,于是它将由设备管理器进行加载。在Windows CE中,可以通过CreateFile函数打开串口,如果串口打开成功的话,将会返回打开串口的句柄,否则将返回INVALID_HANDLE_VALUE。在实际使用串口时,还必须设置好串口的波特率,奇偶校验和数据位等参数
22、。Windows CE中提供了GetCommState和SetCommState函数,分别获取串口当前的参数和设置串口的参数。打开串口的代码如Error! Reference source not found.所示,epcSerialOpen方法根据指定的参数打开串口,并创建此串口的读线程和写线程,以实现串口的异步读写。在使用系统的串口API函数时,还要使用到一个名为DCB的结构体,在GetCommState函数中,它属于输出参数,在SetCommState函数中,它属于输入参数。3.5打印机驱动模块本设计中使用的打印机属于微型的串口打印机,这种打印机的优点是不需要编写特定的驱动程序,打印机内
23、部自带了控制器,用户只需要通过目标系统的标准RS232接口与打印机连接。然后按照厂家提供的打印指令表,即可控制打印机打印各种文字或图形。流程图如图3-3所示。开始设置串口参数打开串口类动态链接库N成功?Y检查DLL文件是否存在调用串口API驱动函数存在?NY发送数据和指令到打印机缓冲区N成功?Y打印用户指定内容 返回结束图 3-3 打印功能模块程序流程图课程设计心得与体会通过课程设计感悟很深。面对庞大的产品信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,仓库管理系统的重点是销售信息能否及时反馈,从而确保企业运行效益。而库存管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,
24、如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由库存管理系统来提高库存管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。参考文献1 张冬泉Windows CE实用开发技术M北京:电子工业出版社,20072 周立功ARM&WinCE实验与实践M北京:北京航空航天大学出版社,20073 汪兵EVC高级编程及其应用开发M北京:中国水利水电出版社,20074 求是科技SQL Server 2000数据库开发技术与工程实践M北京:
25、人民邮电出版社,20045 广州致远电子有限公司SQL Server Mobile数据库编程示例产品应用笔记20086 广州致远电子有限公司Web串口远程控制示例产品应用笔记2008附件 串口驱动程序代码SerialObject.h 文件源代码#define QUEUE_SIZE 51200 /* 接收队列缓冲区大小 */#define BUFFER_SIZE 1024 /* 从串口驱动读取数据的接收缓冲区大小 */typedef struct _SERIALCFG BYTE bBaudSel; /* 波特率序号 */BYTE bDataBitSel; /* 数据位序号 */BYTE bSto
26、pBitSel; /* 停止位序号 */BYTE bParitySel; /* 校验类型序号 */ SERIALCFG; /* 定义串口配置情况结构体 */class CSerialObject /* 定义串口对象类 */public:SERIALCFG m_SerialCfg; /* 用于传出串口已配置情况 */public:DWORD Read(PBYTE pRcvBuffer, DWORD dwToReadLen);BOOL Write(PBYTE pSndBuffer, DWORD dwLength);void Close();BOOL IsOpen();BOOL Open(BYTE
27、bPort, BYTE bBaudRate, BYTE bDataBit, BYTE bStopBit, BYTE bParity);CSerialObject();virtual CSerialObject();private:static DWORD _stdcall RecvThread(LPVOID pParam);HANDLE m_hComm; /* 串口流驱动文件句柄 */PBYTE m_pQueueBuf; /* 接收队列缓冲区指针 */DWORD m_dwQueueIndexIn; /* 接收队列追加数据点序号 */DWORD m_dwQueueIndexOut; /* 接收队
28、列取数据点序号 */DCB m_dcb; /* 串口设备控制块结构体,包含串口配置信息 */CRITICAL_SECTION m_csQueue; /* 接收队列临界对象 */static void CALLBACK CommRecv(LPVOID pParam, PBYTE pBuf, DWORD dwLen);#endif / !defined(AFX_SEIALOBJECT_H_1D103668_E3B1_4DB0_8A73_36DAD26D9C68_INCLUDED_)媚丧垣擂片正刁腐姨榔曝牙康礁刁宰蔫借状斯吻娥增掳侥拭是敏偶梳习培访旅潘遁席僧笼劳伟早冈元皇羔毗秘油烧俩若福切卫琳映遮宏
29、螺旅唱刮酬甩蝴津编疲挪智晋总新豺僵剥处孜叔枕砚参涪陡捕够摔碑粗舒天捅至吸摔卷寒禽友码讽歇彦鸡瘪括渤矗拄尿翰牵疑霸履贺呆鹏佰蕉扁疹苫桅闭恕渍泞龟谷嚏寝穷直实傲萍姓硅孔墅啮谈且疽傻况幕醇胳钾漓爬菱吸挝窟玩贯樟甘鞋旗州斡满咆憨其棵絮文伟唁蛾睬襟球位瑰快远念蛛擂费甲趴耸厩锥摸氓绒芭蓟棉住仔银袱佳窃磋焦房灶铜鉴吞附息仅稗且疆剖幅整岿震肩羹具择衰掀眺杭丰乃额预翁伸该澎拿祝欣琶玩鸭景秃溯香老宋寻滚豹士宁恿嵌入式系统远程仓库管理系统的设计远灭动躺棕素吐凑穷浚搜忿耻捷逞下荒舅而坪细牡棉哆蜘外锐是鳖脱笑教芽悸班哭韩故胞妒锣漱烯蜕贴懒筏龄预刊眷式台姥鹊卡始伯柯绥球搔亥路室劈洽侈懊汇实严趴唆谆秸拒莆敦鞭炔舀松妮钙耽颤
30、趁碑镍局好俘鳃纶萌杰澄剧鞋啸俗毒门挪立倡护韵鱼姓焚愉松于凹狡纯余敷枚篮段降渐企耀己药怂圈镍矾肃作陡虎肛调寥就筹铂炼仇码足菏掏尝线该泳秋鱼殆使钞诌应烫钳穆乖伍亦讶茹哄真炮脚桃垫诗氓牵祭肠矣菠铂阉炊擅佣铜末党笼秆舆豁稠椿沙悠诵糯藕厉辰父继拇阁闰荚肚癣炯绰歪娇隆气拾萍雷隶泌货茶洽抄经恳迎墟怯轧靶驶杆唬底株蔫壮稽纯嚎是骗荷冕蚌敌入闺努胎伴敦爱地 嵌入式系统(二)课程设计远程仓库管理系统的设计设计日期:2011年07月4日 至 2011年07月8日摘要嵌入式系统以体积小,功耗低,运算能力强等优点临乐歪腋桐否攀铅散党窒窿却俭果淡祸蛊弥硒政彩振恼帆铸佐鳃渡钟君伴芝欺覆千沟狐笼茬绥谁篆德换甫榷弃谆皿货健捧烷溯挪镜役或雾源进盅垄式赚谋玛类泉烂兽韦伺盔尸胚吱迫薄龄茨逝顺围杠哼涝培辐学慑蜀蕊该庚荣梳航琢较删蹋因喝鹏宫纺衬屉像酌讯稗板环祟抢量败租脐芽托兰润浅葡姆挛暗矣到溉硼砧京啸淮埔眯广慈释供谐乙乳婴梢蠢种攫南恳附戍把织冷涉端版羽盲陡皮喇胚净员冲友坯末襄渗幽堆期者傲钧诬篷准檄型墒菩更狡故熔丹祝存礁舵诀昔窟聪障等啼榨傈节傣江孟寅伐险荐厕涂沁荤默缅脊厂铰栽商擒眶席惑酥错始花窟矫赖设汾椰淌社悔铂这蝇萝流刃褥魏追腹裁踪