APP下载

微信订餐系统下位机的设计与应用

2019-12-04唐建祥廖根兴

数字技术与应用 2019年8期
关键词:读卡器通信协议

唐建祥 廖根兴

摘要:企業单位食堂每餐做多少量较难控制,为了避免浪费和方便输出统计报表,本文设计开发了一套微信点餐系统。

关键词:微信订餐;读卡器;以太网通信;串口屏;通信协议

中图分类号:TP311.56 文献标识码:A 文章编号:1007-9416(2019)08-0133-01

0 引言

在一些大型的企业、事业单位中,每天工作餐的就餐人数不固定,且变化较大,如何避免饭菜做多导致食材的浪费是一些企业必须要考虑的问题。根据企业的需求,设计了一套应用在企事业单位食堂中的微信点餐系统,本文着重介绍微信点餐系统中下位机的设计与实现方法。

1 微信订餐系统下位机的设计

下位机硬件系统主要由主控系统、读卡器电路、以太网通信电路、RS485双串口屏屏显示电路组成,如图1所示。所有的硬件电路都放在下位机的机壳当中,两个7寸的全彩显示屏分别位于刷卡机的两侧,方便食堂工作人员和就餐人员查看信息。下位机的实物图如图2所示。

1.1 主控MCU及所实现的功能

主控MCU选择ATmega2560单片机。该单片机运行在16M的频率下有16MIPS的处理速度;多达四个串行通信端口,能满足系统对多串口的设计需求;单片机内部256KB的程序存储器能够满足存储大量图表、图片信息,能够满足系统的设计要求。单片机的主要功能是实现整体控制。主程序中首先对单片机寄存器进行初始化操作,随即对串口屏进行初始化操作。单片机转入等待读取卡号环节,当读到有效卡号则通过以太网口把卡号发到上位机。单片机马上处于接收状态,用于接收以太网发回来的信息,并对接收到的合法信息进行分析[1]。

1.2 读卡器与读卡程序的实现

读卡器的作用是实时读取放置在下位机顶端的射频卡的信息,并经过单片机软件处理得到真实的卡号,该卡号与企业财务系统中的卡号相吻合。读卡器选用通用性强、稳定性强的读卡器,具有体积小、灵敏度高的特点,能够方便地嵌入到下位机的机壳内。由单片机的UART3串口对读卡器进行读写操作。读卡器的电平是RS232,因此单片机的TTL电平通过MAX232芯片进行电平转换后与读卡器相连。操作单片机的UART3即可以方便地进行读卡的操作。单片机与读卡器的通信比特率设定在9600bPS。设定单片机的UART3工作在中断状态下,中断服务函数把接收到的12个字节的数据存入数组并把读卡标志位置“1”。主程序查询到读卡标志位为“1”时进入提取卡号环节,程序判断帧头、帧尾的的标志性数据是否合法,如果合法则显示“读卡成功”,并把卡号发给上位机,否则显示“读卡失败”,等待下一次刷卡。

1.3 串口显示屏与驱动程序

显示屏的作用是实时显示就餐者的姓名、工号、所点菜品、菜品金额、卡余额等信息,方便就餐者和工作人员进行信息的查看。下位机的显示屏选用两个带组态的全彩7寸串口屏,分辨率为800×480像素,支持最大64×64像素的汉字显示。该显示屏采用RS485通信接口,具有供电范围宽、操作方便、相应速度快、使用寿命长的优点,每个显示屏可以设定唯一的ID,单片机可以方便地控制RS485总线上的任何一个显示屏进行显示。下位机的两个显示屏由单片机的UART0串口进行控制。单片机的UART0通过MAX485电平转换芯片与串口屏相连,两个屏幕采用并联的连接方式,程序中采用广播的方式显示信息。

显示屏在使用前,首先使用VisualTFT软件对其工作参数进行设置。在VisualTFT软件中,新建项目的工程文件,设定显示屏的开机画面为带有企业LOGO的图片;在参数设置选项中,设置显示屏工作在水平显示状态,显示屏与单片机的通信比特率设定在9600bPS,并设置每个显示屏的ID。设置完毕后把固件固化到显示屏中。在显示屏的驱动程序中,按照显示屏的数据手册编写了对该显示屏常用操作的所有函数,单片机只要调用相关函数便可对显示屏进行操作[2]。

1.4 以太网通信与程序的实现

下位机与上位机的通信采用串口转以太网口的有线网络通信方式。有线通信能够有效避免干扰,保证上下行通信的误码率较低。以太网通信模块选用型号为K3的串口转以太网通信模块。K3模块具有体积小、稳定高、可靠性高、开发高效的特点,能够方便地集成在主控板上。K3模块内部集成了经过配置优化的TCP/IP协议栈,并支持TCP Client、TCP Sever、UDP Client、UDP Sever和Http Client五种工作模式。通过网页访问K3的IP地址,可以方便地进行工作模式的设定。在本应用中,设定K3工作在“UDP Client”工作模式。单片机的UART2串口负责通过K3与上位机进行通信,采用双向通信的方式。单片机与以太网口的通信比特率设定在9600bPS。

下位机与上位机通过K3模块进行通信,采用自编的通信协议:上行数据数据格式为固定11个字节,帧头为0x55,帧尾为0xAA,中间为卡号和校验;下行数据格式固定为64个字节,帧头为0xAA,帧尾为0x55,中间62个字节为刷卡人员的姓名、部门、所点菜品、金额、余额、校验等信息。单片机的UART2串口工作于中断状态,接收到的64帧数据存储在数组中,通过分析接收到的数据作出相应的控制与显示。

1.5 系统测试

微信订餐系统搭建完成后,开启上位机服务器进行系统测试。测试了多张射频卡连续在多个下位机上刷卡100次的通讯情况。通过查看上位机后台日志数据得出读卡100%成功,上位机下发的数据单片机能够100%接收到,偶有个别汉字显示错误的情况,并不妨碍正常使用。一个刷卡周期,整机执行时间小于0.3秒,整个操作没有迟钝感,用户体验良好。

2 结语

微信订餐系统在星光农机有限公司的食堂做过系统测试并投入使用,采用1个上位机服务器带动8个下位机的模式。该系统能够有效地统计就餐人员的数量,并根据所点菜品生成原材料的采购表格,在一定程度上节约了不必要的浪费。工作人员在后台可以方便地进行菜品的设定,并能随时导出每月所有员工的就餐报表,使管理更加精细、精准。具有一定的推广价值。

参考文献

[1] 刘颖等,王敏,文渊,等.低功耗刷卡器的设计[J].电子测量技术,2017(11):197-199.

[2] 蔡华锋,廖冬初,王小平,等.嵌入式以太网串口服务器设计[J].湖北工业大学学报,2018(2):9-12.

Design and Application of Subordinate Computer in Wechat Dining System

TANG Jian-xiang,LIAO Gen-xing

(China Jiliang University, Hangzhou Zhejiang  310018)

Abstract:It is difficult to control the quantity of each meal in enterprise dining hall, in order to avoid waste and facilitate the output of statistical reports, this paper designed and developed a set of WeChat ordering system.

Key words:wechat ordering; card reader; Ethernet communication; serial interface screen; communication protocol

猜你喜欢

读卡器通信协议
DCS本地总线通信协议与FFH1设备互操作技术研究与实现
电子计算机联锁系统通信协议设计和应用
基于Z-Stack通信协议栈的红外地温采集电路设计
为二维码识别的献礼之作——评测平治二维码门禁读卡器
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
MATLAB实现组态王中TCP/IP读卡器监控方法
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介