来源:微计算机信息 作者:陈曦婉 徐群 发布时间:2008-01-29 16:30:17 字体:[大 中 小]
摘 要:介绍了一种基于DS80C410内嵌CAN总线网络的食堂售饭系统的设计,包括系统的网络结构和硬件设计。重点介绍了系统中窗口机的硬件、软件设计,并详细描述了DS80C410内嵌CAN模块的初始化过程和报文收发过程。
1.引言
CAN总线(Controller Area Network Bus)是一种有效支持分布式控制的串行通信网络。它比一般的通信总线具有更高的可靠性、实时性和灵活性。CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而且不分主从,通信方式灵活,无需站地址等节点信息。CAN总线现已广泛应用于工业现场控制、小区安防、环境监控等众多领域中。
2.系统结构
实时通信的食堂售饭系统的通信特点非常适合于采用CAN总线。它的短帧结构非常适合系统对抗干扰能力和实时通信能力要求较高,单次通信量很小的场合;灵活的组网特点完全可以解决大型食堂售饭系统中多个食堂和营业网点较分散的问题。
基于CAN总线的食堂售饭系统网络结构如图1所示。采用总线型接法,主要包含三层:服务器、中继器和终端。其中服务器包括工作服务器和备用服务器,这两个服务器在营业时同时工作,互为备用,保证系统的稳定可靠。中继器可以延伸通信距离,增加终端数目,变换通信速率,并能起到滤波和隔离作用。终端主要是销售用的窗口机,还包括挂失机、解挂机、发卡/充值机等。
图1 食堂售饭系统网络结构图
图2 窗口机硬件结构框图
3.窗口机硬件设计
窗口机是直接与售饭人员和用户打交道的主要前台设备。图2为窗口机的硬件结构框图。采用Dallas内嵌CAN控制器的高速网络微控制器 DS80C410作为窗口机的微处理器,负责整个窗口机和键盘的监控。MMM为非接触式IC(Mifare)卡读/写器模块。该模块在微处理器的控制下,可完成对卡片的非接触式读/写等操作。窗口机的通信任务是DS80C410内嵌的CAN控制器在CPU控制下完成的,CAN控制器通过CAN总线收发器PCA82C250接收总线上的数据,供CPU读取,也可以将CPU送来的数据发送到CAN总线上。内嵌CAN控制器通过DS80C410芯片上的P5.1(C0RX-CAN接收)和P5.0(C0TX-CAN发送)脚分别与收发器的RXD(接收数据输出)和TXD(发送数据输入)脚相连。窗口机硬件还包括一个4×4键盘(10个数字键、6个功能键)、前后各10位数码显示(显示内容完全相同)、32KB的EEPROM(用来存储消费记录)、看门狗等部分电路。
4.窗口机软件设计
4.1主程序设计
窗口机具有连网和脱网两种运行方式。窗口机的默认工作方式分为连网运行,只有在出现网络故障或其他原因无法连网运行时,才通过开关设定为脱网运行。图3为窗口机运行的主程序流程图。窗口机初始化后,先进行键盘处理,LED显示处理,并判断是否回收消费记录。然后查询是否读到卡,读到卡后,调用相应连网或脱网子程序,进行营业操作。
图3 窗口机主程序流程图
4.1.1 CAN的初始化
窗口机的初始化,包括对CAN模块的初始化。当系统硬件复位后,首先屏蔽CAN中断,然后将位于DS80C410的SFR(特殊功能寄存器)中的 C0C(CAN控制寄存器)中的CRST(复位) 位清0,即清除了CAN控制器的复位状态,同时 SWINT(软件初始化) 位要置 1,即禁止CAN 的总线活动,这样才允许程序对 CAN 模块中的控制寄存器和扩展帧的屏蔽寄存器(C0EGM0~C0EGM3)进行写操作,并设置通信波特率、窗口机ID、窗口机号、CAN状态、CAN口使能、CAN定时等参数, 初始化CAN模块。最后恢复CAN中断。初始化结束后,要清 SWINT位,恢复 CAN 总线的活动。
推荐文章
论坛热帖