CN102902544B - 一种电话支付终端软件平台的实现方法 - Google Patents
一种电话支付终端软件平台的实现方法 Download PDFInfo
- Publication number
- CN102902544B CN102902544B CN201210376484.0A CN201210376484A CN102902544B CN 102902544 B CN102902544 B CN 102902544B CN 201210376484 A CN201210376484 A CN 201210376484A CN 102902544 B CN102902544 B CN 102902544B
- Authority
- CN
- China
- Prior art keywords
- software
- module
- file
- software platform
- product
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种电话支付终端软件平台的实现方法,将同一型号的产品的软件平台自下而上设置底层、第二层、第三层及最上层,底层设置有引导和升级程序模块、电源管理模块、内存管理模块以及中断前后台管理模块,第二层设置有事件管理模块、设备管理模块、硬件配置模块以及通用驱动逻辑,最上层设置有测试程序模块;其中处于下层的组成部分为被上层的组成部分所依赖,同一层次的组成部分可以互相依赖,所述软件平台还包括不严格属于所述第二层及最上层的数据库模块和金融业务工具函数库。本发明基于凌阳的16位处理器环境的电话支付终端软件平台,能够有效降低上层应用软件与硬件耦合度,简化上层软件开发细节,加速在不同型号硬件产品上迁移。
Description
【技术领域】
本发明涉及一种基于凌阳的16位处理器环境的电话支付终端软件平台的实现方法。
【背景技术】
电话支付是一种新兴的金融支付模式。由于具有使业务流程可以灵活定制、业务功能丰富、终端布放成本低,接入门槛低等特点,电话支付业务目前的发展非常迅速。电话支付终端是一种嵌入式产品,用于采集交易信息,并配合电话支付平台完成电话支付业务。
常见的电话支付终端可能有多种功能性设备。一般而言,一台电话支付终端具有一个液晶显示器、一组按键、一个磁条卡读卡器、一组智能卡读卡器、一个打印机、一组用于电话功能的手柄等设备。根据具体业务、应用环境、终端产品型号的差异,电话支付终端也可以增加、删减部分功能设备,或者可以调整部分功能设备的数量。相对于传统POS终端,目前电话支付终端的整体成本比较低廉。在设计开发电话支付终端设备时,有多种硬件平台和软件环境方案可供选择。
例如,采用基于ARM7/ARM9/ARM11的等功能比较强劲的处理器作为硬件基础平台,进而搭建整个电话支付终端设备的软硬件平台的方案。传统POS终端的厂家一般采用这种方案。在这种方案环境中,由于处理器功能强、硬件资源丰富,多数情况下其软件平台会基于ucLinux等嵌入式操作系统、或者uCOS等嵌入式多任务系统核心而搭建。但是,这种软件平台存在一些不足。首先,这类多任务操作系统需要占用较多资源,这就抬高了电话支付终端硬件的最低配置要求,增加了设备的成本;其次,虽然这类软件平台具有多任务功能,但是电话支付业务本身可以不依赖多任务机制来实现,因此该类软件平台的投入产出比比较低;再次,虽然ucLinux、uCOS等系统或核心具备操作系统层的设计,但是缺乏一个统一的对于相似硬件方案的软件的工程管理方案,这使得这类软件平台在迁移到不同相似硬件方案、但不同型号硬件产品上时,需要频繁修改驱动程序、业务应用等软件代码,使其在不同型号产品间迁移的成本比较高。
又如,采用51单片机等功能性能有限的低端处理器作为硬件基础平台,进而搭建整个电话支付终端设备的软硬件平台的方案。在这种方案环境中,由于硬件方案比较低端,所以整体成本不高。但是,由于硬件功能和性能比较低,无法迁移ucLinux等操作系统或系统核心,或者迁移这些系统或系统核心后产品的性价比不高。所以在这类低端硬件方案构建的产品中,多数厂家采用裸板方式构建其软件。也就是说,其软件没有严格的操作系统或调度系统、驱动程序、应用程序的区分;所有的软件都可以直接操作硬件来完成功能;所有的软件代码都集中在一个工程中开发和编译。这种软件环境中不存在软件平台的概念。这种软件环境的缺点有:整个工程的软件代码量大而复杂,开发其上层应用需要具备上层业务知识和底层驱动知识,才能顺利解决开发中的各种问题;整个软件与硬件的耦合度很高,一旦迁移到某个新型号的产品上,上层应用和下层驱动软件都需要进行大量的修改;缺乏调度和管理机制,使得软件过程很容易出现各类异常,进而影响整机软件的性能;缺乏上层软件与底层软件的区隔机制,使得任意层次或模块的软件需要修改时,都会影响到整体软件工程的重编译,维护成本比较高。
在选择电话支付终端的基础硬件方案时,还有一点值得考虑的是,采用通用的处理器时,其处理器中不具备电话支付终端通信所需的硬件模块,因此必须外括一个通信模块完成通信功能。这样就增加了电话支付终端的硬件成本。台湾的凌阳科技股份有限公司是一家从事电子芯片设计和制造的公司,其生产的16位单片机中有部分型号具有电话通信的编解码功能,可以适用于电话支付终端产品的通信方案。若采用这类凌阳的16位单片机处理器构建整个电话支付终端产品,则其软件环境就会遇到上述所说的基于低端硬件方案产品的软件环境的各种问题。
【发明内容】
本发明要解决的技术问题,在于提供一种电话支付终端软件平台的实现方法,基于凌阳的16位处理器环境,建立一套能够有效降低上层应用软件与硬件耦合度,简化上层软件开发细节,加速软件稳定,加速软件在不同型号硬件产品上迁移的软件平台。
本发明是这样实现的:一种电话支付终端软件平台的实现方法,该方法针对同一型号的产品时,将所述软件平台自下而上设置底层、第二层及最上层,所述底层设置有引导和升级程序模块、电源管理模块、内存管理模块以及中断前后台管理模块,所述第二层设置有事件管理模块、设备管理模块、硬件配置模块以及通用驱动逻辑模块,所述最上层设置有测试程序模块;其中处于下层的组成部分为被上层的组成部分所依赖,同一层次的组成部分可以互相依赖;所述软件平台还包括数据库模块和金融业务工具函数库,该数据库模块和金融业务工具函数库最多只有部分代码需要依赖底层中的硬件管理功能及第二层中的部分驱动;所述引导和升级程序模块:用于实现在电话支付终端产品上加载该软件平台环境,以及对电话支付终端产品的软件进行升级;所述电源管理模块:用于识别电话支付终端产品的启动模式、运行时的电源供电状态、并对外提供电源状态发生变化的事件,同时,通知上层次的软件响应电源状态的变化以进行对应的处理;所述内存管理模块:用于管理电话支付终端产品的内存分配,并统计软件运行过程中的内存使用情况、监控软件运行过程中出现的内存异常;所述内存管理模块针对凌阳的16位单片机环境内存高度有限的特点,采用了堆栈共生的模式进行设计,堆栈均不固定大小,堆栈是否有空间进行再分配,以堆实际使用内存的结束地址和栈顶地址是否出现冲突作为判断标准;所述中断前后台管理模块:用于管理电话支付终端产品上的中断处理程序,并通过软件模拟一套可以修改优先级中断体系,且所描述的优先级为中断等待的优先级,而不指中断重入的优先级;所述事件管理模块:用于管理该软件平台上所产生的所有事件,并分发事件给对应的处理程序进行处理,同时定义了一套在所有电话支付终端产品上可通用的事件索引号,并预留了部分索引号空间供应用程序和具体型号的产品自行定义和扩展新的事件;所述设备管理模块:用于管理一个产品上所有功能设备的调度流程,调度流程包括产品启动时的设备初始化、设备的打开、设备的关闭、对设备的读数据访问、对设备的写数据访问、对设备的通用控制访问、以及对设备的电源事件转达处理;所述设备管理模块定义了设备访问的统一接口,供上层次的软件以相同的接口形式访问所有设备,该统一接口采用了不定参数的调用约定,可以便于后续设备驱动接口扩展时对旧接口的兼容;所述硬件配置模块:用于实现在具体产品上功能设备的数量定义、功能设备的组合定义、以及功能设备对应的硬件引脚和参数等信息的定义;所述通用驱动逻辑模块:用于实现各功能设备的与硬件管脚定义等硬件参数无关的驱动功能,该模块通过调用硬件配置模块中的硬件定义和参数定义,驱动各硬件模块完成对应功能设备的功能;所述数据库模块:用于实现一个为电话支付应用所定制的数据存储功能,所述的数据库是由一组数据表配置信息、以及一组数据库操作接口组成;该数据表配置信息包含了应用数据的版本信息、数据表的数量、各数据表的存储空间大小、以及各数据表的存储位置信息,并在实际数据存储区内的数据信息与该配置信息不匹配的时候将提示异常,格式化数据存储区内的空间,以避免数据错误而引起金融功能的差错,所述数据库模块定义的一组数据库操作接口,包括打开关闭数据表、增加、删除、修改数据记录、查询数据记录、更新数据索引、查询数据库容量接口;所述金融业务工具函数库:用于实现金融业务常用的功能函数,主要包括标准的金融加解密函数和金融数据格式转换函数;所述测试程序模块:用于实现一组标准的生产测试程序模块,以给工厂生产、以及售后维修提供一个测试设备功能正常性的标准化的软件通道;该方法还针对多个不同型号的产品时建立一在所有型号产品上通用的公共软件文件集合、一在不同型号产品上具有差异的差异软件文件集合以及一为了支撑在该电话支付终端软件平台上完成上层应用开发而提供的软件开发包资料集合,形成文件管理结构;所述公共软件文件集合包括所述电源管理模块、内存管理模块、中断前后台管理模块、事件管理模块、设备管理模块、通用驱动逻辑模块、数据库模块以及金融业务工具函数库;且包括代码源文件、资源文件、配置文件等支撑软件开发的文件资料,这个集合的文件在不同型号产品的开发过程存在且只存在一份,不会随同不同型号产品的开发和维护而产生新的副本;所述差异软件文件集合包括所述的引导和升级程序模块、硬件配置模块以及测试程序模块;所述软件开发包资料集合包括匹配不同型号产品的成套的SDK资料,任一套SDK资料集合包含了至少1份C语言头文件,至少为1份库文件。
进一步的,本发明还根据具体实施的产品需求,在所述引导和升级程序模块中增加软件校验功能。
进一步的,本发明所述第二层与最上层之间还包括第三层,所述第三层包括界面管理模块:用于实现一个基于事件机制的界面框架,在该框架下,硬件事件被映射为人机交互的界面事件,并提供编辑框和输入法标准控件,用于实现金融信息的输入采集,这些标准控件可以在事件机制的作用下,被具体的应用程序以不修改控件代码为前提而进行扩展;在该框架下,还提供了菜单机制,该机制完全符合电话支付终端的菜单操作规范,便于上层应用实现电话支付终端的菜单界面;且所述公共软件文件集合还包括该界面管理模块。
进一步的,本发明所述最上层还包括通用应用程序模块:实现了电话功能、参数设置与具体金融业务应用无关的通用应用功能,这些通用应用功能以代码、库和/或资源文件的集合形式存在;且所述公共软件文件集合还包括该通用应用程序模块。
进一步的,本发明所述软件开发包资料集合中任一套SDK资料还包括资源文件和开发配置文件。
进一步的,本发明方法在不同型号产品上开发迁移的过程中建立一管理整个软件平台的总makefile文件、一型号路由makefile文件以及一系列不同型号产品的软件平台工程配置文件集合;所述总makefile文件定义了软件平台编译的总体过程,描述了所述公共软件文件集合中文件的编译规则,定义了各项编译参数配置的默认值;定义了软件平台默认的软件组件选择方法;所述型号路由makefile文件帮助所述总makefile文件选择一个具体硬件型号工程配置文件,该型号路由makefile文件以一个makefile文件片断的形式存在,其内容由一系列的makefile条件分支宏所区隔出的若干个分支组成;每一个条件分支均以一个特定的产品型号的名称作为判别条件;每个条件分支中用include语句,将具体硬件型号的工程配置文件引入软件平台的工程管理中;所述软件平台工程配置文件集合包括每个具体型号的产品的由1个或多个makefile片断文件组成的软件工程平台配置文件;所述软件平台工程配置文件集合的内容有:定义了在目标编译链接输出物中,对软件平台公共文件的选择;能根据需求增加目标输出物中参与编译链接的软件文件;能根据需求增加自定义的软件文件的编译规则;能根据需求修改各种编译参数配置值;能根据需求定义目标输出物的输出路径。
本发明具有如下优点:
1、本发明实现的软件平台可以在低配置的凌阳16位单片机处理器上运行,能有效控制电话支付终端的整体硬件成本。
2、本发明实现的软件平台中,所有功能设备的通用控制逻辑代码和软件系统核心代码是集中管理的一套公共代码,当软件迁移到新的硬件型号产品上时,只需要新建和实现具体硬件的IO配置代码文件,就可以驱动硬件设备工作,其迁移过程不需要对这些公共代码产生任何副本,也不需要对这些公共代码进行移植修改,因此,底层软件迁移到新硬件上的速度很快。
3、本发明实现的软件平台中,所有功能设备的通用控制逻辑代码、软件系统核心代码、纯软件逻辑的功能代码是集中管理的一套公共代码。软件迁移到新硬件型号的产品上时,不需要修改上述公共代码。因此,这类公共代码所控制的软件功能和性能在不同型号的产品上将高度一致;这类公共代码所控制的功能设备的功能和性能也将高度一致。这使得基于本软件平台开发的硬件产品、设备和软件的优良特性能够得到很好地延续,并保持产品整体性能的一致性。
4、本发明实现的软件平台中,所有系统核心的代码、纯软件逻辑的功能代码是集中管理的一套公共代码。这些公共代码在所有硬件型号的产品上是一致的。同时,该软件平台上,所有功能设备的访问被归纳为打开、关闭、读、写、通用操作等固定接口;并且对于同一个设备,在不同硬件型号的产品上,其固定接口的参数和行为都是一致的。这两个一致性保证了上层应用软件在不同型号硬件产品上进行迁移的时候,其访问的底层接口都是一致的。因此,上层应用软件迁移到不同型号硬件产品上时,需要做的修改极小,有效加速了上层应用软件在不同型号硬件产品上迁移的速度。
5、本发明实现的软件平台,在不同硬件型号的产品间迁移的时候,无论上层应用软件,还是底层软件,需要修改的代码量很少,保持统一不变的代码量很多。这就使得软件在不同型号硬件产品间迁移的时候,会由于软件变更而带来逻辑差错的可能性大幅降低,可以有效加速软件迁移时的稳定速度。
6、本发明的实现软件平台,其底层环境具备了一套为电话支付业务而定制的界面管理程序、具备了一套通用的金融功能工具函数库、具备了一套通用的功能设备访问接口。这使得上层软件不需要为界面处理考虑和编码细节控制代码、不需要为通用的金融功能编码具体的功能代码、不需要直接关注处理器与功能设备之间的硬件访问和操作。因此,上层软件需要关注的细节得到大量减少,只需要关注业务功能;同时,上层软件与底层硬件之间的耦合度也得到大量降低。
【附图说明】
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法在单一型号产品实现的软件平台的结构图。
图2为本发明方法在多个不同型号的产品上的软件平台的文件管理结构图。
图3为本发明方法在不同型号产品上开发迁移时的软件平台工程管理体系结构图。
【具体实施方式】
本发明方法实现的软件平台,包括在单一型号产品上所展示出来的软件平台结构,在多个不同型号的产品上所展示出来的软件平台软件文件的管理和维护结构,以及在该软件平台上不同型号的产品间迁移应用软件的方法三个方面。
如图1所示,为本发明方法在单一型号产品上,展示出来的软件平台的结构。将所述软件平台自下而上设置底层、第二层、第三层及最上层,所述底层设置有引导和升级程序模块1、电源管理模块2、内存管理模块3以及中断前后台管理模块4,所述第二层设置有事件管理模块5、设备管理模块6、硬件配置模块7以及通用驱动逻辑模块8,第三层设置有界面管理模块11,所述最上层设置有测试程序模块12和通用应用程序模块13;其中处于下层的组成部分为被上层的组成部分所依赖,同一层次的组成部分可以互相依赖;所述软件平台还包括数据库模块9和金融业务工具函数库10,数据库模块9和金融业务工具函数库10不严格属于所述第二层及最上层,其最多只有部分代码需要依赖底层中的硬件管理功能及第二层中的部分驱动,即有部分代码可能需要依赖底层中的硬件管理功能及第二层中的部分驱动,但部分代码是完全无依赖关系的。
所述引导和升级程序模块1用于实现在电话支付终端产品上加载该软件平台环境,以及对电话支付终端产品的软件进行升级的功能。除此之外,引导和升级程序模块1还可以根据具体实施的产品的需求,增加软件校验等功能。这些增加的功能以可选形态出现与该软件平台中。
所述电源管理模块2用于识别电话支付终端产品的启动模式、运行时的电源供电状态、并对外提供电源状态发生变化的事件,同时,通知上层次的软件响应电源状态的变化以进行对应的处理。电源管理模块2的对外接口是必选的,但是其内部处理逻辑以可选状态出现。在部分没有复杂电源状态的电话支付终端产品上,电源管理模块2可以只保留接口,但不实现、或只实现部分功能。
所述内存管理模块3用于管理电话支付终端产品的内存分配,并统计软件运行过程中的内存使用情况、监控软件运行过程中出现的内存异常。针对凌阳的16位单片机环境内存高度有限的特点,内存管理模块3采用了堆栈共生的模式进行设计,堆栈均不固定大小,堆栈是否有空间进行再分配,以堆实际使用内存的结束地址和栈顶地址是否出现冲突作为判断标准。
所述中断前后台管理模块4用于管理电话支付终端产品上的中断处理程序。其中所述的前后台概念中,后台指的是中断发生后,在中断环境中运行的软件逻辑;前台指不在中断环境中运行的软件逻辑。当中断发生后,中断前后台管理模块4会将中断转义为事件,提供给上层处理。该转义过程可以在中断前后台管理模块4中直接实现,也可以通过中断前后台管理模块4调用具体的设备驱动来实现。由于凌阳16位处理器的硬件中断是固定优先级的,中断前后台管理模块4通过软件模拟一套可以修改优先级中断体系,以弥补凌阳16位处理器的硬件不足,提高中断定义的灵活性。同时,为了与凌阳16位处理器原生的硬件中断的行为效果相似,中断前后台管理模块4软件模拟的可修改优先级中断体系中,所描述的优先级为中断等待的优先级,而不指中断重入的优先级。
所述事件管理模块5用于管理该软件平台上所产生的所有事件,并分发事件给对应的处理程序进行处理。事件管理模块5部分所管理的事件包括硬件事件,也包括软件事件。事件管理模块5定义了一套在所有电话支付终端产品上可通用的事件索引号,同时也预留了部分索引号空间供应用程序和具体型号的产品自行定义和扩展新的事件。
设备管理模块6用于管理一个产品上所有功能设备的调度流程。调度流程包括产品启动时的设备初始化、设备的打开、设备的关闭、对设备的读数据访问、对设备的写数据访问、对设备的通用控制访问、以及对设备的电源事件转达处理。设备管理模块6定义了设备访问的统一接口,供上层次的软件以相同的接口形式访问所有设备。在本发明中,结合C开发语言的特性,设备管理模块6定义的设备访问统一接口采用了不定参数的调用约定,可以便于后续设备驱动接口扩展时对旧接口的兼容。
硬件配置模块7用于实现在具体产品上功能设备的数量定义、功能设备的组合定义、以及功能设备对应的硬件引脚和参数等信息的定义。硬件配置模块7部分仅实现这些信息的定义,不实现这些信息对应的功能。具体的设备功能通过通用驱动逻辑模块8部分实现。硬件配置模块7对通用驱动逻辑模块8的引用,通过C开发语言的引入预处理(include预处理命令)来实现。例如,通用驱动逻辑模块8中有某个代码文件为A,硬件配置模块7中有某个代码文件为B,则B对A引用以实现A的具体功能,是通过在B中写入代码“#include A”来实现的。该设计可以使硬件配置模块7的功能可以由多个通用驱动逻辑模块8的功能组合实现,而且该组合中对通用驱动逻辑模块8的文件需求不必反应到工程管理文件中。
数据库模块9用于实现一个为电话支付应用所定制的数据存储功能。数据库模块9所述的数据库是由一组数据表配置信息、以及一组数据库操作接口组成。数据表配置信息包含了应用数据的版本信息、数据表的数量、各数据表的存储空间大小、以及各数据表的存储位置等信息。当实际数据存储区内的数据信息,与该配置信息不匹配的时候,数据库模块9将提示异常,并格式化数据存储区内的空间,以避免数据错误而引起金融功能的差错。数据库模块9定义的一组数据库操作接口,包括打开关闭数据表、增加、删除、修改数据记录、查询数据记录、更新数据索引、查询数据库容量等接口。这些接口以标准C语言的形式出现,以提高调用的效率。
金融业务工具函数库10用于实现金融业务常用的功能函数。其内容包括标准的金融加解密函数、金融数据格式转换函数。根据具体产品的需求,金融业务工具函数库10也可以添加其他功能函数的实现。
界面管理模块11实现了一个基于事件机制的界面框架。在该框架下,硬件事件被映射为人机交互的界面事件,使得在该单任务的软件环境中,设备操作和界面操作不会互相阻塞。该框架中,提供编辑框和输入法标准控件,用于实现金融信息的输入采集。这些标准控件可以在事件机制的作用下,被具体的应用程序以不修改控件代码为前提而进行扩展。在该框架下,还提供了菜单机制,该机制完全符合电话支付终端的菜单操作规范,便于上层应用实现电话支付终端的菜单界面。对于标准的电话支付终端产品,界面管理模块11部分是必选的。但针对一些特殊的电话支付终端,其业务中不需要做任何显示作用,则界面管理模块11可以被移除。
测试程序模块12实现了一组标准的生产测试程序模块,用于给工厂生产、以及售后维修提供一个测试设备功能正常性的标准化的软件通道。
通用应用程序模块13实现了电话功能、参数设置等与具体业务应用无关的通用应用功能。这些通用应用功能以集合形式存在。在不同产品中,通用应用程序模块13的内容是可选的。具体产品的实施人员可以根据需求,选取通用应用程序模块13中的1个或多个应用程序来构建产品软件,也可以完全删除通用应用程序模块13而构建产品软件。
如图2所示,为本发明方法在多个不同型号的产品上的文件管理结构示意图,在多个不同型号的产品上,本发明所有的公共软件逻辑采用唯一一套的软件文件进行管理,具体型号的产品只需要实现具体硬件差异的配置和少数定制功能通过新建的软件文件集来管理。具体地,本发明方法针对多个不同型号的产品时建立一在所有型号产品上通用的公共软件文件集合620、一在不同型号产品上具有差异的差异软件文件集合621以及一为了支撑在该电话支付终端软件平台上完成上层应用开发而提供的软件开发包资料集合622,形成文件管理结构;
公共软件文件集合620是在所有型号产品上通用的公共软件文件的集合。这个集合包含了图1中电源管理模块2、内存管理模块3、中断前后台管理模块4、事件管理模块5、设备管理模块6、通用驱动逻辑模块8、数据库模块9、金融业务工具函数库10、界面管理模块11、通用应用程序模块13的内容。这个集合中包含的公共软件文件包括代码源文件、资源文件、配置文件等支撑软件开发的文件资料。这个集合的文件在不同型号产品的开发过程存在且只存在一份,不会随同不同型号产品的开发和维护而产生新的副本。所有型号的产品,可以从公共软件文件集合620中选取出需要的组件完成其软件的构建。
差异软件文件集合621是在不同型号产品上有差异的软件文件的集合。对于任意一个型号的产品,必然存在一套其匹配的硬件配置和功能定制的软件文件集合。多个型号的产品,就存在多个不同的硬件配置和功能定制的软件文件集合。差异软件文件集合621中的一套软件文件集合,包含了图1中引导和升级程序模块1、硬件配置模块7、测试程序模块12的部分、对于公共软件文件集合620中公共软件文件的选择配置。同时,根据具体型号产品的需求,差异软件文件集合621中还可以包含特殊定制功能软件的实现文件。
软件开发包资料集合622是为了支撑在该软件平台上完成上层应用开发而提供的软件开发包(SDK)的资料集合。对于任意一个型号的产品,必然存在一套其匹配的SDK资料集合。多个型号的产品,就存在多个不同的SDK资料集合。在不同型号的产品上,SDK资料集合的差别只在于其内容上,凡是不同型号的产品都具备的功能的SDK资料文件,其在整个SDK资料集的相对路径和文件名是相同的。若是具体型号特别拥有的功能的SDK可以采用新增的SDK资料文件来提供,也可以包含在一个已经存在的SDK资料文件中。一套SDK资料集合,包含了:若干份C语言头文件,文件数量至少为1;若干份库文件,文件数量至少为1;若干份资源文件,若具体型号不存在资源,则文件数量可以为0;若干份开发配置文件,若具体型号不存在特别的开发配置,则文件数量可以为0。
如图3所示,本发明的软件平台,在不同型号产品上开发迁移时,建立一套专用的软件平台工程管理体系。该管理体系采用make工程管理工具为基础实施。make工程管理是通过makefile作为信息承载体来实现的。本发明的软件平台工程管理体系包括一管理整个软件平台的总makefile文件630、一型号路由makefile文件631以及一系列不同型号产品的软件平台工程配置文件集合632;。
总makefile文件630是管理整个软件平台的总makefile文件。该文件定义了软件平台编译的总体过程;描述了公共软件文件集合620中文件的编译规则;定义了各项编译参数配置的默认值;定义了软件平台默认的软件组件选择方法。该文件需要依赖型号路由makefile文件631选择一个具体的硬件型号工程配置文件后,才能正常工作。在本发明的软件平台管理中,总makefile文件630存在且只存在一份。
型号路由makefile文件631的作用是帮助总makefile文件630文件选择一个具体硬件型号工程配置文件。型号路由makefile文件631以一个makefile文件片断的形式存在。其内容由一系列的makefile条件分支宏所区隔出的若干个分支组成;每一个条件分支均以一个特定的产品型号的名称作为判别条件;每个条件分支中用include语句,将具体硬件型号的工程配置文件引入软件平台的工程管理中。在本发明的软件平台管理中,总makefile文件630存在且只存在一份。
软件平台工程配置文件集合632是一系列不同型号产品的软件平台工程配置文件的集合。每个具体型号的产品,必然存在由1个或多个makefile片断文件组成的软件工程平台配置文件。对于一个具体型号产品的软件平台工程配置文件集合632文件,其内容中:定义了在目标编译链接输出物中,对软件平台公共文件的选择;可以根据需求增加目标输出物中参与编译链接的软件文件;可以根据需求增加自定义的软件文件的编译规则;可以根据需求修改各种编译参数配置值;可以根据需求定义目标输出物的输出路径。
本发明的软件平台通过make工具的标准命令行开启针对某个具体硬件型号产品的编译链接过程。命令中至少需要传递入要编译的产品型号的名称,可选地传递入其他make过程的参数。make工具会从总makefile文件630中加载型号路由makefile文件631,并通过型号路由makefile文件631和产品型号名称选择软件平台工程配置文件集合632中的对应的配置文件,然后通过总makefile文件630和软件平台工程配置文件集合632约定的编译链接规则,驱动完成软件平台的编译工作。
这种由图2和图3共同展现的软件平台工程管理的好处是,可以使公共软件相对稳定;可以使不同硬件型号产品对软件平台的配置修订不会互相干扰;可以在不修改公共文件,不修改既有型号工程文件的基础上,通过新增文件的形式,快速迭代出针对一个新型号产品的软件平台工程。
基于本发明的软件平台开发的应用软件,当其需要在不同型号的产品上进行迁移的时候,要做的基础工作是,修改应用软件编译过程中C语言头文件的搜索路径及库文件的搜索路径为目标型号产品的SDK指定路径。由于本发明的软件平台,所有基础软件逻辑和接口是通用的,所有的硬件相关内容已经被抽象为事件传导以及统一的设备访问接口,并且所有的硬件型号的SDK资料内部文件的相对路径和资料文件名均一致。所以,只要完成该基础工作,一个应用软件基本就可以完成编译,并且基础的按键界面组成的人机交互也能正常运行。迁移过程所需要做的修改是,针对具体硬件型号的产品,增加部分应用功能,或者删除部分不使用的功能调用。
综上所述,本发明的总体思路:
1、在基于凌阳16位单片机构建的电话支付终端中,其软件上通用且常用的基础调度和管理功能包括硬件事件的传递和分派处理、存储资源的管理等功能。本发明将这些功能进行封装、定位为一套通用的接口形式可以形成一个基础的系统核心。同时,按照凌阳16位处理器的特性,对这些接口功能的软件实现进行高度优化,就可以形成一套能够在凌阳16位处理器上高效运行的系统核心。然后再在该核心上构件广泛意义的软件平台。在基于凌阳16位单片机构建的电话支付终端中,影响软件与硬件耦合度的主要内容,包括硬件事件的定义和传达、功能设备的访问等部分。本发明将这些部分抽象定义为一组与具体硬件无关的对象、数据或者接口,同时将一些访问接口定义为在所有设备上通用的形态,以及约定固定的参数和功能,就可以使以上所描述的系统核心具备一定的软硬件解耦特性。然后再在该核心上构件广泛意义上的软件平台。本发明在基于凌阳16位单片机构建的电话支付终端中统一实现一套符合电话支付界面需求的界面管理和实施框架,可以帮助上层快速实现电话支付应用的界面功能。电话支付应用也属于标准的金融应用模式,其数据加解密、数据格式等都符合标准的金融规范,或者在标准的金融规范上扩展而成。在基于凌阳16位单片机构建的电话支付终端中,封装并提供标准的金融加解密运算、数据格式处理等功能接口,并约定一致的接口形式,可以帮助上层快速实现电话支付应用中的金融功能。因此,在上述系统核心上,统一实现符合电话支付业务需求的界面框架、金融功能接口等框架和接口集,就能够构建出一套可以支撑电话支付应用的软件平台。
2、本发明的一个目标是使软件平台可以在不同型号硬件产品上进行快速迁移。实现该目标的思路是使软件平台的代码在迁移过程中尽量少被修改。这首先要能够有效区分出软件平台的代码中,哪些会随着硬件型号的差异而变化,哪些在各种硬件型号上都保持一致。通过多个型号产品代码的对比分析,可以得出,纯软件的逻辑代码(例如界面管理代码、金融功能函数、存储管理代码、功能设备的控制逻辑等)在各产品上是保持一致的,在不同型号产品上,主要发生变化的有具体功能设备的硬件引脚和硬件参数、以及对应型号产品上功能设备的组合与数量。所以,将这些易变动的代码和不易变动的代码在文件形式上区隔开来,可以减少软件在不同型号产品上迁移时要修改的代码文件量和代码量,可以促进软件在不同型号产品上迁移的速度。同时,辅助以软件平台的工程管理文件(例如使用make工具进行工程管理时的makefile文件)的结构优化,以及对于C编程语言上预处理功能的灵活应用,可以使新型号产品软件平迁移开发时,工程管理的工作量减少,代码文件的架构清晰易维护,进而提高软件平台的迁移速度。
3、另外,生产和维护方面,影响产品生产和维护主要包括生产测试程序模块和升级程序。因此,本发明统一规划一套流程和功能相似的测试程序模块,作为软件平台的组成部分;并且统一规划一套产品的通用升级流程和协议框架,也作为软件平台的组成部分;可以使基于该软件平台开发的产品具有高度相似的生产测试程序模块和升级程序。进而提高产品的可维护性。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (7)
1.一种电话支付终端软件平台的实现方法,其特征在于:该方法针对同一型号的产品时,将所述软件平台自下而上设置底层、第二层及最上层,所述底层设置有引导和升级程序模块、电源管理模块、内存管理模块以及中断前后台管理模块,所述第二层设置有事件管理模块、设备管理模块、硬件配置模块以及通用驱动逻辑模块,所述最上层设置有测试程序模块;其中处于下层的组成部分为被上层的组成部分所依赖,同一层次的组成部分可以互相依赖;所述软件平台还包括数据库模块和金融业务工具函数库,该数据库模块和金融业务工具函数库最多只有部分代码需要依赖底层中的硬件管理功能及第二层中的部分驱动;
所述引导和升级程序模块:用于实现在电话支付终端产品上加载该软件平台环境,以及对电话支付终端产品的软件进行升级;
所述电源管理模块:用于识别电话支付终端产品的启动模式、运行时的电源供电状态、并对外提供电源状态发生变化的事件,同时,通知上层次的软件响应电源状态的变化以进行对应的处理;
所述内存管理模块:用于管理电话支付终端产品的内存分配,并统计软件运行过程中的内存使用情况、监控软件运行过程中出现的内存异常;所述内存管理模块针对凌阳的16位单片机环境内存高度有限的特点,采用了堆栈共生的模式进行设计,堆栈均不固定大小,堆栈是否有空间进行再分配,以堆实际使用内存的结束地址和栈顶地址是否出现冲突作为判断标准;
所述中断前后台管理模块:用于管理电话支付终端产品上的中断处理程序,并通过软件模拟一套可以修改优先级中断体系,且所描述的优先级为中断等待的优先级,而不指中断重入的优先级;
所述事件管理模块:用于管理该软件平台上所产生的所有事件,并分发事件给对应的处理程序进行处理,同时定义了一套在所有电话支付终端产品上可通用的事件索引号,并预留了部分索引号空间供应用程序和具体型号的产品自行定义和扩展新的事件;
所述设备管理模块:用于管理一个产品上所有功能设备的调度流程,调度流程包括产品启动时的设备初始化、设备的打开、设备的关闭、对设备的读数据访问、对设备的写数据访问、对设备的通用控制访问、以及对设备的电源事件转达处理;所述设备管理模块定义了设备访问的统一接口,供上层次的软件以相同的接口形式访问所有设备,该统一接口采用了不定参数的调用约定,可以便于后续设备驱动接口扩展时对旧接口的兼容;
所述硬件配置模块:用于实现在具体产品上功能设备的数量定义、功能设备的组合定义、以及功能设备对应的硬件引脚和参数信息的定义;
所述通用驱动逻辑模块:用于实现各功能设备的与硬件管脚定义硬件参数无关的驱动功能,该模块通过调用硬件配置模块中的硬件定义和参数定义,驱动各硬件模块完成对应功能设备的功能;
所述数据库模块:用于实现一个为电话支付应用所定制的数据存储功能,所述的数据库是由一组数据表配置信息、以及一组数据库操作接口组成;该数据表配置信息包含了应用数据的版本信息、数据表的数量、各数据表的存储空间大小、以及各数据表的存储位置信息,并在实际数据存储区内的数据信息与该配置信息不匹配的时候将提示异常,格式化数据存储区内的空间,以避免数据错误而引起金融功能的差错,所述数据库模块定义的一组数据库操作接口,包括打开关闭数据表、增加、删除、修改数据记录、查询数据记录、更新数据索引、查询数据库容量接口;
所述金融业务工具函数库:用于实现金融业务常用的功能函数,主要包括标准的金融加解密函数和金融数据格式转换函数;
所述测试程序模块:用于实现一组标准的生产测试程序模块,以给工厂生产、以及售后维修提供一个测试设备功能正常性的标准化的软件通道;
该方法还针对多个不同型号的产品时建立一在所有型号产品上通用的公共软件文件集合、一在不同型号产品上具有差异的差异软件文件集合以及一为了支撑在该电话支付终端软件平台上完成上层应用开发而提供的软件开发包资料集合,形成文件管理结构;
所述公共软件文件集合包括所述电源管理模块、内存管理模块、中断前后台管理模块、事件管理模块、设备管理模块、通用驱动逻辑模块、数据库模块以及金融业务工具函数库;且包括代码源文件、资源文件、配置文件支撑软件开发的文件资料,这个集合的文件在不同型号产品的开发过程存在且只存在一份,不会随同不同型号产品的开发和维护而产生新的副本;
所述差异软件文件集合包括所述的引导和升级程序模块、硬件配置模块以及测试程序模块;
所述软件开发包资料集合包括匹配不同型号产品的成套的SDK资料,任一套SDK资料集合包含了至少1份C语言头文件,至少为1份库文件。
2.根据权利要求1所述的电话支付终端软件平台的实现方法,其特征在于:还根据具体实施的产品需求,在所述引导和升级程序模块中增加软件校验功能。
3.根据权利要求1所述的电话支付终端软件平台的实现方法,其特征在于:所述第二层与最上层之间还包括第三层,所述第三层包括
界面管理模块:用于实现一个基于事件机制的界面框架,在该框架下,硬件事件被映射为人机交互的界面事件,并提供编辑框和输入法标准控件,用于实现金融信息的输入采集,这些标准控件可以在事件机制的作用下,被具体的应用程序以不修改控件代码为前提而进行扩展;在该框架下,还提供了菜单机制,该机制完全符合电话支付终端的菜单操作规范,便于上层应用实现电话支付终端的菜单界面;
且所述公共软件文件集合还包括该界面管理模块。
4.根据权利要求1或3所述的电话支付终端软件平台的实现方法,其特征在于:所述最上层还包括
通用应用程序模块:实现了与具体金融业务应用无关的通用应用功能,这些通用应用功能以代码、库和/或资源文件的集合形式存在;
且所述公共软件文件集合还包括该通用应用程序模块。
5.根据权利要求1所述的电话支付终端软件平台的实现方法,其特征在于:所述软件开发包资料集合中任一套SDK资料还包括资源文件和开发配置文件。
6.根据权利要求1或5所述的电话支付终端软件平台的实现方法,其特征在于:该方法在不同型号产品上开发迁移的过程中建立一管理整个软件平台的总makefile文件、一型号路由makefile文件以及一系列不同型号产品的软件平台工程配置文件集合;
所述总makefile文件定义了软件平台编译的总体过程,描述了所述公共软件文件集合中文件的编译规则,定义了各项编译参数配置的默认值;定义了软件平台默认的软件组件选择方法;
所述型号路由makefile文件帮助所述总makefile文件选择一个具体硬件型号工程配置文件,该型号路由makefile文件以一个makefile文件片断的形式存在,其内容由一系列的makefile条件分支宏所区隔出的若干个分支组成;每一个条件分支均以一个特定的产品型号的名称作为判别条件;每个条件分支中用include语句,将具体硬件型号的工程配置文件引入软件平台的工程管理中;
所述软件平台工程配置文件集合包括每个具体型号的产品的由1个或多个makefile片断文件组成的软件工程平台配置文件;所述软件平台工程配置文件集合的内容有:定义了在目标编译链接输出物中,对软件平台公共文件的选择;能根据需求增加目标输出物中参与编译链接的软件文件;能根据需求增加自定义的软件文件的编译规则;能根据需求修改各种编译参数配置值;能根据需求定义目标输出物的输出路径。
7.根据权利要求4所述的电话支付终端软件平台的实现方法,其特征在于:该方法在不同型号产品上开发迁移的过程中建立一管理整个软件平台的总makefile文件、一型号路由makefile文件以及一系列不同型号产品的软件平台工程配置文件集合;
所述总makefile文件定义了软件平台编译的总体过程,描述了所述公共软件文件集合中文件的编译规则,定义了各项编译参数配置的默认值;定义了软件平台默认的软件组件选择方法;
所述型号路由makefile文件帮助所述总makefile文件选择一个具体硬件型号工程配置文件,该型号路由makefile文件以一个makefile文件片断的形式存在,其内容由一系列的makefile条件分支宏所区隔出的若干个分支组成;每一个条件分支均以一个特定的产品型号的名称作为判别条件;每个条件分支中用include语句,将具体硬件型号的工程配置文件引入软件平台的工程管理中;
所述软件平台工程配置文件集合包括每个具体型号的产品的由1个或多个makefile片断文件组成的软件工程平台配置文件;所述软件平台工程配置文件集合的内容有:定义了在目标编译链接输出物中,对软件平台公共文件的选择;能根据需求增加目标输出物中参与编译链接的软件文件;能根据需求增加自定义的软件文件的编译规则;能根据需求修改各种编译参数配置值;能根据需求定义目标输出物的输出路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210376484.0A CN102902544B (zh) | 2012-09-29 | 2012-09-29 | 一种电话支付终端软件平台的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210376484.0A CN102902544B (zh) | 2012-09-29 | 2012-09-29 | 一种电话支付终端软件平台的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102902544A CN102902544A (zh) | 2013-01-30 |
CN102902544B true CN102902544B (zh) | 2015-07-22 |
Family
ID=47574791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210376484.0A Active CN102902544B (zh) | 2012-09-29 | 2012-09-29 | 一种电话支付终端软件平台的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102902544B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777942A (zh) * | 2013-12-06 | 2014-05-07 | 深圳市证通电子股份有限公司 | 应用于金融终端的嵌入式软件产品的开发框架 |
CN104038605B (zh) * | 2014-06-04 | 2016-08-17 | 福建升腾资讯有限公司 | 电话pos支付终端交易测试的方法 |
CN107291436B (zh) * | 2016-04-13 | 2020-11-27 | 上海思立微电子科技有限公司 | Sdk包产生方法、装置及终端 |
CN106874031B (zh) * | 2017-01-03 | 2020-08-28 | 海信视像科技股份有限公司 | 一种终端设备系统程序的启动方法及装置 |
CN109144491B (zh) * | 2017-06-27 | 2023-09-29 | 中兴通讯股份有限公司 | 单片机开发平台 |
CN108415922B (zh) * | 2017-09-30 | 2021-10-22 | 平安科技(深圳)有限公司 | 数据库修改方法及应用服务器 |
CN108062219B (zh) * | 2017-11-16 | 2019-05-07 | 上海圆擎信息科技有限公司 | 一种分布式软件开发过程管理方法 |
CN108984223B (zh) * | 2018-05-31 | 2021-04-02 | 北京三快在线科技有限公司 | 一种程序调用解耦方法、装置、电子设备及存储介质 |
CN111580829B (zh) * | 2020-05-09 | 2023-08-04 | 广东天波信息技术股份有限公司 | 一种适用多种红外热成像测温模组的sdk开发装置 |
CN112925572B (zh) * | 2021-03-01 | 2023-05-23 | 联想(北京)有限公司 | 一种控制方法、装置及电子设备 |
CN113094001B (zh) * | 2021-05-11 | 2022-04-22 | 浙江争游网络科技有限公司 | 一种基于云平台的软件代码管理系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102656599A (zh) * | 2009-09-30 | 2012-09-05 | 维萨国际服务协会 | 移动支付应用程序体系结构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635157B2 (en) * | 2010-07-19 | 2014-01-21 | Payme, Inc. | Mobile system and method for payments and non-financial transactions |
-
2012
- 2012-09-29 CN CN201210376484.0A patent/CN102902544B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102656599A (zh) * | 2009-09-30 | 2012-09-05 | 维萨国际服务协会 | 移动支付应用程序体系结构 |
Non-Patent Citations (2)
Title |
---|
孔祥洪 等.unsp的结构与原理.《凌阳16位单片机实训教程》.北京航空航天大学出版社,2009,11-16. * |
马洪连 等.嵌入式软件系统.《物联网感知与控制技术》.清华大学出版社,2012,101-103. * |
Also Published As
Publication number | Publication date |
---|---|
CN102902544A (zh) | 2013-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102902544B (zh) | 一种电话支付终端软件平台的实现方法 | |
CN110825362B (zh) | 低代码应用软件开发系统及方法 | |
Loutas et al. | A semantic interoperability framework for cloud platform as a service | |
CN100435094C (zh) | 为组件应用程序建立混合模式执行环境的系统和方法 | |
CN101432690B (zh) | Bios配置更新技术 | |
CN102567839A (zh) | 混合式的任务板和基于关键路径方法的项目应用 | |
CN103501308A (zh) | 分布式云应用部署系统和/或相关的方法 | |
CN107992291A (zh) | 应用于嵌入式应用程序的Ruff OS物联网操作系统 | |
US20080250071A1 (en) | Systems and methods for business applications | |
CN101763280A (zh) | 编译模型 | |
CN104657149A (zh) | 一种存储系统的管理模块的软件框架实现方法 | |
CN102393889A (zh) | 一种权限配置管理系统 | |
CN100437478C (zh) | 交互式无线应用程序系统和方法 | |
CN101894039A (zh) | 一种嵌入式设备驱动程序辅助生成方法及系统 | |
CN102707983A (zh) | 客户端/驱动器通信接口的自动生成 | |
CN103092645A (zh) | 一种基于微内核技术的地理空间信息应用系统及其实现方法 | |
CN101384994B (zh) | 用于逐级披露信息的装置、系统和方法 | |
US7437708B2 (en) | Enhanced software components | |
CN116319390A (zh) | 一种多模态网络资源抽象及编排方法和系统 | |
EP3640805B1 (en) | Method and apparatus for implementing white-box otn hardware device, and storage medium | |
CN110688145A (zh) | Android MVP代码自动生成方法、装置、介质、电子设备 | |
CN205103599U (zh) | 一种跨境贸易bpo应用云终端装置 | |
CN104731600A (zh) | 一种将安卓系统服务插件化的实现方法 | |
CN101685396A (zh) | 对功能图标进行控制的系统及方法 | |
CN110427260A (zh) | 主机作业调度方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |