基于LPC2292与CAN总线的电子结算终端设计

2018-02-12 20:56:26编辑:什么鱼 关键字:LPC2292  CAN总线  电子结算终端

    为了使农副产品电子交易系统满足交易管理、资金结算及市场各项费用的收缴,同时最大限度的提高交易的效率,提出一种新的数字交易终端,它是以ARM7处理器LPC2292为核心,分别采用SJAI000和PCA82C251作为CAN协议控制器和与物理总线之间的接口,移植了嵌入式实时操作系统μC/OS-Ⅱ来管理不同的任务模块,提高了系统的实时性及可靠性。经现场检验和运行,系统具有良好的实用性,可用于诸多电子结算领域。


    农副产品电子交易系统数字交易终端简称为IC卡智能交易一体机或者POS机。它应用在农副产品交易过程中,系统在供电和通信正常的情况下,可以为买卖双方提供可靠、快捷、方便的交易平台。买卖双方在IC卡交易终端机上进行交易,数字交易终端机通过读取并处理电子磅秤的数据能进行同一品种多笔累加过磅、去皮、预置去皮、按公斤过磅。IC卡数字交易终端在交易过程中自动识别买卖双方管理费费率,将交易双方的成交金额自动从买方IC卡转入卖方IC卡中,并从双方IC中自动扣除市场应收的管理费。

    1 系统总体结构设计

    电子结算系统是一个实时性很强的系统,如果逻辑和时序出现偏差将会引起严重后果。本文搭建一个集读卡、显示、键盘、称重、打印及通信功能于一体的新型电子结算终端

    在硬件上采用了Philips公司的LPC2292为中心处理器,并利用PCA82C251实现CAN协议控制器和物理总线之间的接口,使POS机具有双向通信的能力。在软件上,移植了嵌入式实时操作系统μC/OS-Ⅱ,以实现多任务调度的优势。在嵌入式平台上,写入控制程序完成对于各个功能模块的控制,以满足处理设备具有较高的处理速度和处理能力的要求,并且具备了较强的实时任务调度能力。

    2 系统硬件设计

    本系统的硬件平台主要由嵌入式处理器、电源、CAN总线接口以及各种外部设备等组成,系统总体结构框图如图1所示。

    2.1 微处理器

    主控芯片选用ARM7系列微处理器LPC2292。LPC2292是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMI-S核的微处理器,它对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30 %,而性能的损失却很小。带有16 KB片内静态RAM,256 KB片内FLAsH程序存储器。128位宽接口/加速器。2个互连的CAN接口,带有先进的验收滤波器,多达112个通用IO口(可承受5 V电压),9个边沿或电平触发外部中断引脚。多个串行接口,包括2个16C550工业标准UART、高速I2C接口(400 Kb/s)和2个SPI接口。内部集成PWM单元、实时时钟和看门狗等。丰富的片内资源,使得LPC2292特别适用于工业生产控制、医疗系统、访问控制和POS机。

    2.2 电源和复位电路

    为了保持各自电源的纯洁,采用LPC2292的内核和片内外设分别由1.8 V和3.3 V供电。LDO芯片采用了SPX1117M3-1.8,SPX1117M3-3.3,其特点为输出电流大,输出电压精度高。由于LPC2292ARM7控制器具有独立的模拟电源,模拟地引脚,为了降低噪声和出错机率,模拟电源与数字电源应该隔离,所以使用了10 mH电感实现隔离,并在设计PCB时采用大面积敷地,以降低噪声。图2和图3分别为1.8 V和3.3 V的电源接口电路。

    复位电路采用MAX811芯片。MAX811为4引脚微处理器电压监视器,具有精密电源监控和低功耗的特点,能监视3 V,3.3 V和5 V的电源电压,MAX811的工作电压为1.0~5.5 V,MAX811为低电平有效复位。MAX811具有手动复位功能,电源电流6μA,复位阈值电压有4.63 V,4.38 V,3.08 V,2.93 V和2.63 V五种,上电复位的脉冲宽度最小为140 ms。当微处理器的电压VCC低于MAX811的门限电压时,内部定时器复位到0,并保持复位输出端为低电平。当VCC高于门限电压时,内部定时器开始计数,计数到给定值(定时器的溢出期)时,输出端变为高电平。图4为MAX811的接口电路。



    
2.3 CAN总线
    选用独立的CAN协议控制器SJA1000。它是Philips半导体公司CA82CZOOCAN控制器(BasleCAN)的替代产品,而且还增加了一种新的操作模式——PelICAN,这种模式支持具有很多新特性的CAN 2.0B协议。主要用于移动目标和一般工业环境中的区域网络控制。从图5可以初步了解CAN控制器的内部结构和在现场总线系统中的位置。

    
    PCA82C251是CAN协议控制器和物理总线之间的接口,它主要在速度达1Mbaud的应用中使用。这个器件向总线提供了差动的发送能力,向CAN控制器提供了差动的接收能力。它完全符合ISO“11898—24 V”标准。一个限流电路可防止发送器的输出级对电池电压的正端和负端短路。虽然在出现这种故障条件时,功耗将增加,但这种特性可以防止破坏发送器的输出级。图6是PcA82C251内部结构图,图7是CAN协议控制器和物理总线之间的接口电路。

    
    PCA82C251与CAN总线的接口部分也采取了一定的安全和抗干扰的措施。PCA82C251的CANH和CANL引脚各自通过一个电阻与CAN总线相连,电阻可以起到一定的限流作用,保护PCA82C251免受过流的冲击。以CANH和CANL与地之间并联了两个30 pF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。


    3 电子交易系统的终端软件结构设计

    由于电子结算的特殊性,终端控制系统需要在短时间处理大量交易数据,并对外部的事件及时响应。选用开放源码的嵌入式操作系统μC/OS-Ⅱ。μC/OS-Ⅱ具有规模小、可裁剪、实时性好、易移植的特点。对实时性和稳定性要求很高的电子结算系统,引入μC/OS-Ⅱ无疑将大大改善其性能。在编程中使用ARM和Thumb指令集混合编程,优化代码密度。


    3.1 操作系统μC/OS-Ⅱ的移植

    μC/OS-Ⅱ操作系统具备很好的可移植性,如果硬件平台的组成发生改变,则只需要对操作系统代码中与硬件相关的内容进行修改即可,与硬件无关的应用代码无需修改。

    μC/OS-Ⅱ的软硬件体系结构如图8所示,从图中可以很清楚得看到,对μC/OS-Ⅱ的移植实际上就是对处理器有关的代码进行重写或修改。移植工作主要包括三个部分:OS_CPU.H文件的修改、OS_CPU_A.ASM文件的修改、OS_CPU_C.C文件的修改。

    3.2 系统主流程

    系统软件采用模块化设计,包括主程序、初始化程序、读卡子程序、键盘扫描子程序、显示子程序、传输子程序等。系统中软件部分采用模块化设计,若干个小的程序或模块,分别进行独立设计、编程、测试和查错,最后连接构成一个完整的应用程序。对每一个外设都有相应例程,可以方便地进行移植。系统的主流程如图9所示。

    
    示例代码(IC卡输入密码段)如下:
    

    4 结语

    系统采用LPC2292与CAN总线的组合可实现对电子结算系统中对数据库储存的行情信息快速实时采集,实现实时结算和交易费用的扣取。配置的液晶及按键模块使系统具有一定的独立工作能力。软件设计中采用了μC/OS-Ⅱ操作系统,使系统具有强大的多任务管理能力,大大提高了系统的稳定性和可靠性。良好的性能、较低的成本、优秀的扩展性使该终端在电子结算领域具有较大的推广价值。


关键字:LPC2292  CAN总线  电子结算终端

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2018021237757.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:μC/OS-Ⅱ在微处理器LH79520上的移植方案
下一篇:基于DLNA标准的数字媒体适配器的系统设计方案

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

LPC1788内部EEPROM使用的问题

最近使用LPC1788内部EEPROM存储数据时候发现问题:LPC1788的EEPROM扇区只有 0-62 63扇区不存在 uint32_t i, j; uint8_t count;    uint8_t error = 0;  debug_frmwrk_init(); _DBG(menu); EEPROM_Init();  count = sizeof(write_buffer);    count &= 0xFC;     _DBG_("Erase EEPROM");    for(i
发表于 2018-07-17 21:15:44

LPC17xx的MCPWM周期设置与计算

界限寄存器MCLIM0-2控制PWM的周期,假设MCLIM寄存器的值为 X,MCPWM的外甥时钟为PCLKy MHz,那么可以通过计算得到PWM的周期。计算如下 X/PCLKy = T周期例如,MCLIM为500时,f=50 kHz,周期T=20us,MCLIM为500*2时,f=20 kHz,周期T=40us,    计算过程:MCLIM/外设时钟PCLKy=500/25M (S)=500/25000000(s)=5/250000 * 1000 *1000 us= 20us用逻辑分析仪采集波形,看周期占空比,在此过程中,占空比控制寄存器MCMAT不能为0,逻辑分析仪参数设置1 M
发表于 2018-06-28 20:04:38

IAP一个实例---LPC2214的IAP实现方案

引  言IAP即在应用中编程,对于嵌入式产品,指在不影响产品正常运行的情况下实现应用程序的更新。许多ARM芯片都提供该操作接口,相对于ISP(在系统编程)方式,具有方便灵活且不需要借助专用boot装载程序或工具的特点,而且在不影响嵌入式产品正常运行的情况下即可完成应用程序的动态升级。在工业控制领域尤其是电力系统控制领域中,嵌入式产品必须保证连续、稳定、可靠地运行,由各种原因导致的应用程序的更新都必须在产品正常运行过程中完成,因此许多用户对相关产品的IAP功能都有明确的要求。LPC2214是Philips公司推出的一款32位ARM7TDMI-S工业用微控制器。内置256 KB高速Flash,128位宽度接口/加速器可以实现
发表于 2018-06-27 20:43:43
IAP一个实例---LPC2214的IAP实现方案

LPC1768以太网控制器

_EMAC->Command = EMAC_CR_REG_RES | EMAC_CR_TX_RES | EMAC_CR_RX_RES | EMAC_CR_PASS_RUNT_FRM;//(3)复位控制命令寄存器/* A short delay after reset. */for (tout = 100; tout; tout--);/* Initialize MAC control registers. */LPC_EMAC->MAC1 = EMAC_MAC1_PASS_ALL;//允许所有的帧信息传送,包括常规帧和控制帧,使能接收功能时生效LPC_EMAC->MAC2 = EMAC_MAC2
发表于 2018-06-27 20:42:47

LPC17XX之IAP升级

远程升级流程:协议升级。(1)IAP升级会使用芯片内部的RAM空间的顶部 32个字节(2)当前程序状态寄存器(CPSR):4个条件代码标志(负标志N,零标志N,进位标志C,溢出标志v),2个中断禁止位(IRQ和FIQ),5个当前处理器模式进行编码的位,一个用于指示当前执行指令的位(3)片内Flash系统分布:IAP代码位于BOOT扇区,所以IAP不允许对BOOT扇区进行写擦除操作(4)使用IAP将SRAM中的数据编程到FLASH时,只能使用片内部局部总线上的SRAM。(5)存储数据的对齐方式,如果一个数据是从偶地址开始存储,则是半字对齐,否则非半字对齐。如果一个数据是从被4整除的地址开始对齐,则是字对齐,否则是非半字对齐。(6)片内
发表于 2018-06-27 20:38:03
LPC17XX之IAP升级

LPC1768 IAP写入bin格式程序不能启动的解决办法

在为LPC1768做一个CAN总线在线升级功能的时候,使用IAP功能,将KEIL转换生成的bin文件写入lpc1768内部flash的起始地址,然后跳转到这个位置启动。自动跳转时能够正常启动,但是一复位或者断电重启就不能启动了,查找原因并求助论坛网友得到了问题原因和解决办法。程序写入内部flash时需要计算bin文件前28个字节的校验和(32位),然后将这个校验和替换bin文件第28到31字节的值,bin文件其他部分不变。计算方法:/******************************************************************* 名称    :Lpc
发表于 2018-06-27 20:34:07

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved