新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM的CAN网络打印服务器设计

基于ARM的CAN网络打印服务器设计

作者:时间:2008-06-25来源:网络收藏
1 引言

随着科学技术水平的提高,智能仪器仪表或微机装置等智能电子设备(IED)已广泛应用于工业现场。(network print server)可为智能电子设备提供可靠的共享服务,节约系统成本。总线是一种支持分布或实时控制的现场总线,具有高可靠性、实时性和灵活性,广泛应用于汽车控制、工业控制、机器人、家用电器等领域。总线已成为工业现场首选现场总线之一。采用总线作为数据通讯,每个网络打印可与几十甚至上百个智能电子设备构成总线型网络,采用屏蔽双绞线作为通讯介质减少节点干扰。通讯速率在10 Kb/s~1 Mb/s范围内可选。CAN网络打印系统结构如图1所示。

2 系统硬件

网络打印服务器的核心处理器采用PHILIPS公司的LPC2129。LPC2129是一款支持实时仿真和跟踪的16/32位7TDMI-S CPU“微控制器”,带有256 KB的嵌入式高速Flash存储器,16 KB支持8/16/32位访问的静态RAM,128位宽度的存储器接口和独特的加速结构,可使32位代码在最大时钟速率下运行。而对代码有严格控制要求的应用则可使用16位Thumb模式。LPC2129采用64引脚封装,低功耗,内带有46个GPIO,2个32位定时器,2路CAN控制器,多路串行接口,9路外部中断。选取该处理器主要考虑其内部资源丰富,无需扩展存储器、CAN控制器,且性能优异,抗干扰能力强;价格低廉,具有极高的性价比。

系统硬件电路框图如图2所示。调试接口直接与LPC2129连接,用于调试开发;由MAX232-EPE等器件构成的串口电路用于程序下载;看门狗负责监控程序是否出现异常或跑飞,若出现故障时,看门狗使整个系统复位;而电源电路由SP220-15D5D和DUP75-05S05等器件构成,为网络打印服务器提供工作电源。

网络打印机服务器的核心电路是CAN及打印机接口电路,如图3所示。打印机接口电路部分由光耦PS2701和电容电阻等元件构成,LPC2129的P0和P1端口引脚经该接口电路与针式打印机连接,实现打印功能;CAN总线接口电路由6N137和PCA82-C250等器件构成,LPC2129内部CAN控制器完成CAN协议处理,PCA82-C250可提高节点的驱动能力。为了增强CAN总线节点的抗干扰能力,LPC2129的CNTX和CNRX不能直接与PCA82C250的TXD和RXD相连,应经高速光耦6N137后再与PCA82C250相连,从而实现总线上各CAN节点间的电气隔离。高速光耦电路中的电源VCC和VDD必须完全隔离,采用隔离型电源模块DUP75-05S05实现隔离。PCA82C250与CAN总线的接口部分也采取了抗干扰措施,CANH和CANL与地之间分别并联一只1 000 pF/2 kV的电容,用于滤除总线上的高频干扰,并具有一定的抗电磁辐射性能。另外,在CAN总线接人端与地之间连接一个瞬态电压抑制二极管(TVS),保护PCA82C250免受ESD和EMI浪涌脉冲。通讯信号传输到导线的端点时产生反射,并干扰正常信号传输,在PCA82C250的两根输出数据线之间接一120 Ω的终端电阻可抑制反射信号。若忽略该终端电阻,则大大降低通讯的抗干扰性和可靠性,甚至导致无法通讯。

3 系统软件设计

网络打印服务器与各个智能电子设备之间采用主从方式,通过查询完成工作。软件主要由网络打印服务主程序、CAN驱动程序、打印接口驱动程序、定时器中断程序以及LPC2129启动程序组成。

LPC2129启动程序采用汇编语言编写,主要包括异常中断向量表、堆栈初始化、目标板初始化、存储系统初始化等。定时器中断程序是定时器0的中断处理程序,用于完成各种定时或延时功能,为打印和CAN通讯提供必要支持。打印接口驱动程序包括打印初始化和发送打印数据。打印初始化程序用于设置的P0和P1端口部分引脚的工作方式,初始化打印机。发送打印数据程序首先检测打印机是否忙,若打印机忙则等待,若空闲则发送要打印的数据。然后选通打印机,最后回收打印机,即不选通并将数据寄存器置位。

CAN驱动程序主要包括初始化CAN控制器、发送报文和接收报文。初始化CAN控制器主要包括设置相应引脚功能、工作方式、波特率参数以及出错警告界限等。

LPC2129中有全局验收滤波器,该模块可为CAN控制器提供接收标识符的查询功能(验收滤波)。另外,验收滤波器为选择的标准标识符提供了FulICAN-style自动接收功能。在初始化CAN控制器中将验收滤波器设置为旁路,也可以根据实际需要进行设置,让其参与接收滤波的工作,有助于改善节点接收信息的选择性。完成初始化CAN控制器后,即可发送和接收报文信息。

发送报文驱动程序主要实现报文发送,发送报文流程如图4所示。发送报文时。将待发送的数据打包成符合CAN发送帧格式的数据送人CAN控制器的发送缓存区。在向发送缓冲区送报文之前,必须判断发送缓冲区是否空闲。若发送缓冲区繁忙则返回失败;若空闲则将数据写人发送缓冲区,写入完成后再判断写入是否成功,写入成功后启动发送命令,发送缓冲区中的数据,然后返回状态标志。

接收驱动程序主要完成报文接收以及其CAN异常情况处理。CAN发送报文流程如图5所示。接收报文驱动程序相对复杂些,因为在处理接收报文的过程中,同时也要处理总线关闭、错误报警、接收溢出等情况。该系统设计采片j中断接收方式获得较高的实时性,从而提高网络打印服务器性能。初始化CAN控制器必须使能接收中断。中断服务子程序读取CANICR控制器,判断是否为接收中断标志,若是则读取接收缓冲区数据;若是CAN异常情况,则进行相应处理。

在LPC2129启动程序后执行网络打印服务主程序,如图6所示。首先初始化,包括初始化看门狗、打印机、CAN控制器、定时器0及使能中断等;再与智能电子设备握手连接,然后打印首次握手成功的IED基本信息;最后执行无限循环程序代码。在这段程序中判断是否有定时器超时。若查询IED定时超时,则查询各个IED是否要打印,若无打印需求则进入下一循环状态;若有打印需求则申请数据信息完成打印。如果重新握手定时超时,则与IED设备重新握手连接,检测中途接人的智能电子设备可以满足系统需求,重新握手完成后执行无限循环程序。

在ADS1.2环境及EasyJTAG仿真器中进行软件调试。程序代码在ADS1.2环境下编译、连接后生成可执行文件,通过EasyJTAG仿真器仿真调试,最后写入Flash存储器中。经过现场调试使用,CAN总线的网络打印服务器能够可靠地完成网络打印功能。

4 结束语

CAN总线是一种高抗干扰性、高性价比的现场总线技术。该网络打印服务器设计采用CAN总线作为数据通讯网络既可抵抗工业现场强电磁干扰,又可满足工业现场需求,降低系统成本。该网络打印服务器与发电厂测控装置、保护装置等智能电子设备组成总线型CAN网络,完成各项打印工作,经现场验证,工作稳定可靠。



评论


相关推荐

技术专区

关闭