下位机与传感器通过串行数据总线连接,不同公司的产品支持不同的串行总线,这里采用了Philips公司的I2C总线,下位机的作用主要是控制传感器进行数据采集,并与主机进行数据通讯,下位机内置的单片机接收主机的指令,完成对传感器的 寻址、序号设定、数据传输以及CRC校验等工作,并提供传感器自身的故障检测和处理。
4 硬件结构
PC机与CAN总线的接口由CAN通信接口卡PCCAN完成,PCCAN为北京三兴公司开发的智能适配卡,该卡上有高性能的嵌入式微处理器80C188,有2 KB的高速双口RAM直接映射到主机内存空间。操作时,用户通过软件设置将卡上的双口RAM映射成PC机的物理内存,这样用户收发数据就相当于直接向内存读写数据,从而极大的提高了通信卡和PC总线的数据交换速率。连接时,只要将PC-CAN插入PC的ISA总线扩展槽,再将卡上的DB—9插座按CAN标准与双绞线相连即可。
CAN硬件接口电路由单片机、CAN协议控制器、CAN总线收发器组成(见图2),CAN控制器主要由实现CAN总线协议部分和与微控制器接口部分电路组成。对于不同型号的CAN总线通信控制器,实现CAN协议部分电路的结构基本相同,而与微控制器接口部分的结构及其方式存在一些差异,这里采用Philips的82C200为CAN协议控制器,它具有完成高性能通信协议所要求的全部必要特性,通过简单连接可以完成CAN协议的物理层和数据链路层的所有功能,应用层功能可以由微控制器完成。 [page]
CAN控制器与物理总线之间的接口由CAN总线收发器82C250完成,它最初是为汽车高速通信的应用而设计的,该器件提供对总线的差动发送和接收的功能,它可以增强总线的驱动能力,同时起到保护总线的作用。
由于作为下位机的节点比较多,单片机的选择主要从成本考虑,如果选择带CAN和I2C总线(数字式传感器需要用I2C总线驱动)接口功能的高级单片机,则系统成本太高,故选择AT89C51单片机,它片内含有4 K字节闪电存储器,数据可保存10年,且编程速度快(全4 K字节编程只要3 s),还可以实现在线编程,也可以借助电话线进行远距离编程。虽然AT89C51没有I2C总线接口功能,但在系统中,AT89C51和数字式传感器是属于单主机结构,在单主机结构中I2C总线数据传送状态非常简单,没有总线竞争与同步,只有单片机对I2C总线器件的读写操作,这就使通过I/O口用软件来模拟I2C总线成为了可能。
5 系统软件设计
上位机软件采用基于Windows2000平台的VC6.0编写,具有系统参数设置、监控状态设置、数据发送和接收、本机状态查询、节点状态查询、中断接收数据管理等功能。上位机首先对CAN总线适配卡及其自身初始化,然后发送命令通知特定的节点向CAN总线上发送数据,通过CAN总线适配卡转换后,再由上位机处理。上位机采用定时轮循方式向各个节点发命令,采用中断方式接收数据。
下位机部分采用汇编语言,主程序流程如图3所示。程序首先初始化AT89C51和CAN控制器,然 后通过用I/O口软件模拟I2C总线,初始化各个传感器,设置它们的地址代码(器件标识)、报警上下限、传感器状态等参数,接着程序进入等待上位机命令,同时也在监听I2C总线,以中断的方式响应I2C总线上的请求,对特定传感器进行读写、启动转换、设置报警阈值等操作,接收各个传感器发送的数据并进行处理,解决总线冲突,进行总线仲裁。
在下位机软件设计中,用普通I/O线模拟I2C总线数据传送时,必须遵守I2C总线的时序,否则将造成混乱导致系统工作不正常。
6 结束语
系统采用分层管理的方法实现了对多数字式传感器的集中管理,在控制现场底层,由于采用了数字化传感器并且挂接在I2C总线上,传感器数目变化后,系统软件只要稍加改动就能适应,所以添加和更换传感器非常方便。同时在上层管理中,系统使用CAN总线技术,它以其独特的设计思想、优良的性能和极高的可靠性提高了系统内部的通信速率、实时性,降低了误码传送率。上位机使用PC,以图形的方式方便直观的对各个节点进行监控,保证了系统的可靠运行。该系统已经在汽车行驶发电恒速驱动检测系统中投入运行,实际应用证明该系统具有控制效果好、可靠性高、控制灵活等优点。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』