自动售货机、指令解析方法、存储介质及其从设备与流程

文档序号:29635652发布日期:2022-04-13 17:05阅读:216来源:国知局
自动售货机、指令解析方法、存储介质及其从设备与流程

1.本发明涉及一种自动售货机、指令解析方法、存储介质及其从设备。


背景技术:

2.目前,mdb协议又名icp协议是由国家自动机械销售协会(nama)和欧洲售货机协会(eva)的有关成员制订,是一套用于自动售卖机的主控制器(vending machine controler,vmc)与多个从设备外设之间的通信协议规范。
3.mdb接口为工作于9600波特率的主从型串行总线接口,所有外围设备均为主控制器vmc的从设备。
4.从mdb协议规范可以看出mdb对设备端的软硬件实现都提出了较高的要求,在从设备端的系统实现上主要有以下两个难点:首先,从设备硬件上需要支持9位串口,而目前市面上大多数通用cpu都只支持8位串口;第二,在编程规范上对系统实时性要求高,规范要求从设备端系统软件能够在收到vmc主设备端的指令后5ms内即返回ack。这对于使用非实时操作系统的设备来说具有较高的实现难度,硬币机、纸币机这类受理简单业务逻辑的外设可以采用实时操作系统来实现,而处理复杂支付场景的非现金类cashless设备则多需要基于非实时的多任务操作系统设计,以linux系统为例,linux系统中一次线程调度即需要约10ms的处理时间,如何在使用linux操作系统的从设备上满足mdb规范对实时性的要求是一个复杂的系统难题。
5.当然mdb协议也约定了vmc在5ms内未能及时受到从设备响应时,可以通过重发机制来恢复通讯。然而寄希望于vmc的重发机制一方面必然造成了性能的损耗,另一方面这也要求vmc具备完备的重发恢复机制,从而导致无法满足5ms实时通讯要求的从设备在对接不同的vmc设备时,往往兼容性不佳,需要反复进行调试。


技术实现要素:

6.本发明提供了一种自动售货机、指令解析方法、存储介质及其从设备,可以有效解决上述问题。
7.本发明是这样实现的:
8.本发明提供一种自动售货机,包括:
9.主控制器以及用于支付的从设备,其中,所述主控制器支持mdb协议;
10.所述从设备包括:
11.主控芯片;以及
12.分别与所述主控芯片以及所述主控制器通信连接的辅助芯片;
13.其中,所述辅助芯片为支持9位串口的辅助芯片,且所述辅助芯片用于向所述主控芯片提供mdb底层协议的配置和读写接口;且所述辅助芯片用于负责处理mdb协议底层驱动相关的功能;以及用于在所述主控芯片以及所述主控制器之间传递数据。
14.作为进一步改进的,所述用于支付的从设备包括现金支付设备、刷卡支付设备、扫
码支付设备中的至少一种。
15.作为进一步改进的,所述辅助芯片的串口接收采用中断的方式接收,包括有四个全局的数据缓冲区。
16.作为进一步改进的,所述数据缓冲区包括:mdb_uart_fifo、master_uart_fifo、request_data_buffer、response_data_buffer;其中,所述mdb_uart_fifo用于与所述主控制器通讯的指令数据缓存;所述master_uart_fifo用于与所述主控芯片通讯的指令数据缓存;所述request_data_buffer用于缓存待发送给所述主控芯片的所述主控制器请求指令数据,待所述主控芯片查询时逐条返回给所述主控芯片;所述response_data_buffer用于缓存待发送给所述主控制器的所述主控芯片响应指令数据,待下一次所述主控制器查询时逐条返回给所述主控制器。
17.本发明进一步提供一种上述自动售货机的指令解析方法,包括以下步骤:
18.s1,启动所述辅助芯片,并判断与所述主控芯片通讯的第一指令数据缓存是否为空,否进入s11;
19.s11,所述辅助芯片对与所述主控芯片通讯的第一指令数据进行解析;
20.s12,所述辅助芯片判断解析后的第一指令类型,当第一指令类型为需要发送所述主控制器的指令类型则进入s13,当第一指令类型为需要执行的指令类型则进入s14;
21.s13,将指令存入response_data_buffer,并返回到s1;
22.s14,执行相应指令,并返回到s1。
23.作为进一步改进的,在步骤s1中,判断与所述主控芯片通讯的第一指令数据缓存是否为空,是进入s21;
24.s21,判断与所述主控制器通讯的第二指令数据缓存是否为空,是,返回s1,否进入s22;
25.s22,所述辅助芯片对与所述主控制器通讯的第二指令数据进行解析;
26.s23,所述辅助芯片判断解析后的第二指令类型是否为polling指令,是进入s25,否进入s24;
27.s24,回复确认应答,并将数据添加request_data_buffer中等待主控芯片读取,并返回到到s1;
28.s25,判断response_data_buffer中是否有所述主控芯片的应答数据,是则进入s26,否进入s27;
29.s26,回复数据报文,并返回到到s1;
30.s27,直接回复确认应答,并返回到到s1。
31.本发明进一步提供一种上述自动售货机的指令解析方法,包括以下步骤:
32.s2,启动所述主控芯片;
33.s3,所述主控芯片将其设备地址信息设置给所述辅助芯片;
34.s4,所述主控芯片接收所述辅助芯片返回的指令数据,并解析;
35.s5,所述主控芯片根据所述指令回调执行应用程序相关流程,并通过应答报文发送给所述辅助芯片,由所述辅助芯片发送给所述主控制器。
36.本发明进一步提供一种计算机可读存储介质,其上存储有程序文件,所述程序文件在被处理器执行时,执行上述的方法。
37.本发明进一步提供一种用于自动售货机的从设备,所述从设备用于支付,所述从设备包括:
38.主控芯片;以及
39.分别与所述主控芯片以及自动售货机的主控制器通信连接的辅助芯片;
40.其中,所述辅助芯片为支持9位串口的辅助芯片,且所述辅助芯片用于向所述主控芯片提供mdb底层协议的配置和读写接口;且所述辅助芯片用于负责处理mdb协议底层驱动相关的功能;以及用于在所述主控芯片以及所述主控制器之间传递数据。
41.本发明的有益效果是:本发明提供的自动售货机、指令解析方法、存储介质及其从设备,通过使用专门的支持9位串口的辅助芯片来连接主控制器(vmc),主控芯片与辅助芯片间则可通过任意硬件接口连接通讯,从而解决主控芯片选型困难的问题,保证主控芯片方案选型的灵活,有利于降低mdb产品的成本。将mdb模块设计为独立组件,实现mdb模块的标准化,从而能够在其他产品中快速集成mdb模块,实现mdb功能。进一步的,本发明将mdb协议中需要实时响应的部分逻辑放在辅助芯片实现,辅助芯片上运行的是实时操作系统,可以及时响应并缓存来自vmc的指令,运行在主控芯片的应用程序从辅助芯片查询指令并进行处理,既利用了主控芯片的运算性能,也解决了mdb协议中实时性难以满足的困难。
附图说明
42.为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
43.图1是本发明实施例提供的自动售货机的架构图图。
44.图2是本发明实施例提供的自动售货机中的辅助芯片的指令解析方法流程图。
45.图3是本发明实施例提供的自动售货机中的主控芯片的指令解析方法流程图。
具体实施方式
46.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
47.在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
48.参照图1所示,本发明实施例提供提供一种自动售货机,包括:
49.主控制器10(vending machine controler,vmc)以及用于支付的从设备20,其中,所述主控制器10支持mdb协议;
50.所述从设备20包括:
51.主控芯片21(master);以及
52.分别与所述主控芯片21以及所述主控制器10通信连接的辅助芯片22;
53.其中,所述辅助芯片22为支持9位串口的辅助芯片22,且所述辅助芯片22用于向所述主控芯片21提供mdb底层协议的配置和读写接口;且所述辅助芯片22用于负责处理mdb协议底层驱动相关的功能;以及用于在所述主控芯片21以及所述主控制器10之间传递数据。
54.在本发明实施例中,所述主控芯片21为bcm5830芯片、所述辅助芯片22为stm32芯片。
55.所述辅助芯片22的主要功能如下:
56.mdb串口数据的接收和转发;数据模式位的处理;设备地址信息的解析和指令过滤;与vmc间的ack/ret重传机制;checksum的计算和校验;与vmc的连接状态管理;mdb指令收发缓存的维护管理;vmc polling指令的处理。
57.所述主控芯片21的主要功能如下:从设备20(尤其是cashless设备,即非现金设备)上层协议的解析处理;状态机的实现;面向应用开发者的mdb编程接口实现;stm32端固件的升级;stm32的状态查询。
58.作为进一步改进的,所述用于支付的从设备20包括现金支付设备、刷卡支付设备、扫码支付设备中的至少一种。在本实施例中,所述用于支付的从设备20为刷卡支付设备,即cashless设备。
59.作为进一步改进的,stm32作为从设备20,需要处理来自vmc和主控芯片21两端的指令调用,为了在5ms内完成两个串口的轮询,stm32端的串口接收必须采用中断的方式接收,且包括有四个全局的数据缓冲区。
60.所述数据缓冲区包括:mdb_uart_fifo、master_uart_fifo、request_data_buffer、response_data_buffer;其中,所述mdb_uart_fifo用于与所述主控制器10通讯的指令数据缓存;所述master_uart_fifo用于与所述主控芯片21通讯的指令数据缓存;所述request_data_buffer用于缓存待发送给所述主控芯片21的所述主控制器10请求指令数据,待所述主控芯片21查询时逐条返回给所述主控芯片21;所述response_data_buffer用于缓存待发送给所述主控制器10的所述主控芯片21响应指令数据,待下一次所述主控制器10查询时逐条返回给所述主控制器10。
61.请参见图2,本发明进一步提供一种上述自动售货机的指令解析方法,包括以下步骤:
62.s1,启动所述辅助芯片22,并判断与所述主控芯片21通讯的第一指令数据缓存是否为空,否进入s11。即,判断master_uart_fifo是否有主控芯片21端发送过来的数据。
63.s11,所述辅助芯片22对与所述主控芯片21通讯的第一指令数据进行解析。
64.s12,所述辅助芯片22判断解析后的第一指令类型,当第一指令类型为需要发送所述主控制器10的指令类型则进入s13,当第一指令类型为需要执行的指令类型则进入s14。
65.s13,将指令存入response_data_buffer,并返回到s1。
66.s14,执行相应指令,并返回到s1。即,需所述辅助芯片22(本地处理类)的命令则直
接执行。
67.作为进一步改进的,在步骤s1中,判断与所述主控芯片21通讯的第一指令数据缓存是否为空,是进入s21。
68.s21,判断与所述主控制器10通讯的第二指令数据缓存是否为空,是,返回s1,否进入s22。即,判断mdb_uart_fifo是否有主控制器10端发送过来的数据。
69.s22,所述辅助芯片22对与所述主控制器10通讯的第二指令数据进行解析。所述辅助芯片22对与所述主控制器10通讯的第二指令数据进行解析的步骤包括:过滤非本机地址指令,校验指令的chk和nak/ret重发机制的处理等。
70.s23,所述辅助芯片22判断解析后的第二指令类型是否为polling指令,是进入s25,否进入s24;
71.s24,回复确认应答(ack),并将数据添加request_data_buffer中等待主控芯片21读取,并返回到到s1;
72.s25,判断response_data_buffer中是否有所述主控芯片21的应答数据,是则进入s26,否进入s27;
73.s26,回复数据报文,并返回到到s1;
74.s27,直接回复确认应答(ack),并返回到到s1。
75.stm32与主控制器10详细的通讯设计如下:
76.协议包格式:
77.vmc-》stm32:
78.addr*(1byte)data(34byte max)chk(1byte)
79.stm32-》vmc:
80.data(35byte max)chk*(1byte)
81.stm32于vmc数据收发接口使用单字节中断接收的方式实现。驱动设置有一个可存储最多5条指令的环形缓冲区mdb_uart_fifo用于存放vmc发送过来的数据。单条vmc指令接收完成以串口驱动的idle_flag为标志,在9600波特率下若1ms内没收到下一个字节的数据驱动会将idle_flag置位,程序根据idle_flag判断一条vmc指令是否已接收完毕。
82.stm32与master间通讯设计如下:
83.stm32与主控芯片21严格按照一问一答进行处理,由主控芯片21发起请求,stm32返回执行结果。
84.协议包格式:
85.stxlengthtypedatalrcetx0x021bytes1bytedata up to 35bytes1byte0x03
86.length表示报文的长度域,用一个字节表示,其表示的长度为从type域到data域的数据字节数。
87.type域表示报文的类型,具体类型定义如下表所示:
88.[0089][0090]
data frame为需要发送给主控制器10的数据;
[0091]
cmd frame为命令数据,用于主控芯片21对stm32的进行一些配置和查询操作;
[0092]
stm32与主控芯片21数据收发接口使用中断方式实现;
[0093]
驱动设置有一个可存储最多5条指令的环形缓冲区master_uart_fifo用于存放master端发送过来的指令数据;
[0094]
stm32从缓冲区中获取相应的指令数据,依次处理。
[0095]
请参见图3,本发明进一步提供一种上述自动售货机的指令解析方法,包括以下步骤:
[0096]
s2,启动所述主控芯片21;
[0097]
s3,所述主控芯片21将其设备地址信息设置给所述辅助芯片22;
[0098]
s4,所述主控芯片21接收所述辅助芯片22返回的指令数据,并解析;
[0099]
s5,所述主控芯片21根据所述指令回调执行应用程序相关流程,并通过应答报文发送给所述辅助芯片22,由所述辅助芯片22发送给所述主控制器10。
[0100]
mdb应用库接口设计
[0101]
mdb应用库封装出stm32提供的具体功能接口,应用可以基于mdb应用库实现与vmc之间的功能交互,主要包括以下功能接口:
[0102]
1.mdbsetcardreaderaddress
[0103][0104]
2.mdbgetcardreaderadderss
[0105][0106]
3.mdbinit
[0107][0108]
4.mdbsend
[0109][0110][0111]
5.mdbreceive
[0112][0113]
6.mdbclearrecbuf
[0114][0115]
7.mdbtimesincelastpoll
[0116][0117]
8.mdbdisableirq
[0118][0119][0120]
9.mdbenableirq
[0121][0122]
10.mdbgetdrvver
[0123][0124]
11.mdbupdatedrv
[0125][0126]
本发明进一步提供一种计算机可读存储介质,其上存储有程序文件,所述程序文件在被处理器执行时,执行上述的方法。
[0127]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0128]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0129]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0130]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0131]
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0132]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0133]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围
之内,则本发明也意图包含这些改动和变型在内。
[0134]
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0135]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0136]
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0137]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1