本文介绍了使用CAN总线技术,把商品存储环境条件检测装置用一根线连起来,就避免了每一单个检测装置都单独与主机相连的繁琐,降低了成本,同时也充分利用了主机的资源。而CAN总线技术也能保证不同类型的数据信号在总线上安全的进行传输。
在当今社会,人们的物质生活水平面日益提高,对商品的质量要求越来越高。这样,商品的存储环节的工作变得愈显重要,这关系到商品的质量保持的时间长短与否。而对存储最基本的要求就是存储区内的温度、湿度要求等。现在的存储环境条件检测大多是靠机械式仪表来进行,而且是利用人工定时进行记录数据,结果是数据精度低、不够实时。有一些大型仓库是采用了电子检测设备,但也是主要进行局部检测,不能覆盖整个仓库区域。且当检测位置多、检测数据类型多时,检测装置的安装和与主机的通信都显得过于复杂。这样,笔者就考虑使用CAN总线技术,把所有的检测装置用一根线连起来,就避免了每一单个检测装置都单独与主机相连的繁琐,降低了成本,同时也充分利用了主机的资源。而CAN总线技术也能保证不同类型的数据信号在总线上安全的进行传输。
1 CAN总线简介
CAN总线能在极端恶劣的环境下运作,具有抗瞬间干扰的能力,其控制器接口有降低射频干扰的斜率控制;有较强的检错能力。CAN节点可在不要求所有节点及其应用层改变任何软件或硬件的情况下被接于CAN网络中。由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点如下:
· CAN为多主方式工作,网络上任意一个节点均可在任意时刻主动地向网络上其它节点发送信息,而不分主从,通信方式灵活。
· 在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求。
· CAN采用非破坏性总线仲裁技术。CAN节点只需通过对报文的标识符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据。
· 报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率极低。
· CAN的每帧信息都有CRC校验及其他检错措施,具有极好的检错效果。
· CAN通信介质可为双绞线、同轴电缆或光纤,可通过标准插接件方便地连接。
· CAN节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其它节点的操作不受影响。
2 测控系统总体方案设计
环境参数测控系统设计为基于CAN总线的分布式测量控制显示系统,主要用于仓库等大型空间内的各种环境参数的测量、控制与显示,使环境参数达到物品存储的要求。
2.1 系统组成
环境参数测控系统包括4个主要的子系统,系统框图如图1所示。 (图片)
图1 系统结构框图 (1) 计算机子系统。由工业控制计算机、显示器和打印机等组成。
(2) 数据传输通信子系统。由装在上位机上的CAN总线通信适配卡、装在前端调节执行机构上的通信卡和数据传输通信介质组成。
(3) 测量传感器子系统。由电量传感器和CCD传感器组成。
(4) 调节执行机构控制子系统。由调节执行机构、力传感器和调节执行机构前端机组成。
2.2 系统工作原理
环境参数测控系统利用传输信号简单、通信速率高、实时性强的CAN总线将一台上位机与一台前端机和众多的传感器连接起来,完成存储空间内的环境参数测量,在经过主机处理后,再把控制信号传给执行前端机,以控制环境参数的变化。通信介质可采用双绞线,也可采用75Ω同轴电缆。
电量传感器和CCD传感器主要完成环境中各参数的测量任务。它包括CCD摄像机、信号采集板、A/D传感器、高速缓存等。调节执行机构主要完成对环境参数的调节作用,也就是根据主机的信号进行相应的操作,使各环境参数保持在预先规定的范围内。它主要由大功率继电器、传感器、电流控制装置、可调整支架等组成。主机采用高性能工控机,具有高抗扰工业级电源,硬盘及机箱防磁、防尘。作为测量控制通信中心,主机主要完成测控系统有关参数的设置、测试通信的分段标被测参数的整理计算、参数显示、打印输出、数据存盘及控制调节机构进行环境参数的调节动作。如此机接入了网络,也可实现与其它计算机的联网,实现数据共享。
3 测控系统主要分系统设计
3.1 数据传输通信子系统
此系统由装在主机中的CAN总线通信卡,装在调节执行机构中的通信卡和数据传输介质组成。在本系统中,方案设计为PCI-CAN控制通信卡,CAN控制器卡集成两路电气隔离的CAN通道,使工控机方便地连接到CAN总线上,实现CAN总线协议的连接通信。CAN控制器卡整体结构框图如图2所示。(图片)
图2 CAN控制器卡整体结构框图 3.2 调节执行机构控制子系统
此系统采用单片机构成一个控制系统。接收来自主机的控制信号,通过继电器来对机械执行机构进行控制,以调节诸如包括温度、湿度、气体压力和气体百分比容量等参数。此系统框图如图3所示。(图片)
图3 机械执行机构框图 4 系统主要软件设计
4.1 CAN总线接口的初始化设计
CAN控制器卡的软件设计主要分为三部分:CAN初始化、数据发送及数据接收。系统软件设计的指导思想是:系统上电后,首先对SJA1000进行初始化,配置SJA1000的控制段寄存器内容以设定通信参数(如:模式、位速率、验收码、屏蔽码、字段长、总线定时、波特率、输出特性等)。初始化完成后,SJA1000按设定值控制CAN总线上的通信。系统是否能正常地工作,初始化程序的设计是个关键。CAN初始化主要是设置CAN的通信参数,即通过对CAN控制器段中的寄存器进行设置,从而确定CAN控制器的工作方式等。初始化程序的流程图如图4所示。(图片)
图4 SJA1000初始化流程图 总线定时寄存器的设置极大地影响了CAN性能的发挥。一般来说,若硬件连接无误,通信失败的主要原因在于总线定时寄存器设置不当。它确定了3个时间—时钟周期、系统周期和位周期之间的关系。对BTR0操作,可决定波特率预分频器BRP和同步跳转宽度SJW的数值;对BTR1进行写操作,可决定位周期的宽度、采样点的位置及在每个采样点进行采样的次数。这两个寄存器的内容,可唯一确定波特率及同步跳转宽度。只有当系统中的所有节点的BTR0和BTR1的内容都相同时,才能正常通信。关于CAN总线波特率的设置参见表1。(图片)
表1 CAN总线波特率设置 4.2 驱动程序开发
PCI总线接口设备的一大特点是即插即用。因此,在软件上必须编写能够实现即插即用功能的设备驱动程序。从广义上来说,驱动程序就是控制硬件的一组函数。PCI设备驱动程序的开发,就是取得PCI板卡所占用的各种资源(内存、端口、中断和DMA等),并提供给用户一条可以访问这些资源的途径。在本设计中,由于PCI9052的中断、I/O端口、映射内存等资源都是动态分配的,必须编写驱动程序来管理硬件,才能供用户编程使用。
WinDriver是专业的设备驱动程序开发工具。利用它的驱动程序向导(Driver Wizard),可以快速测试新硬件,并生成设备驱动程序框架。在写设备驱动程序之前,重要的一点是确保硬件准确无误。用WinDriver的驱动程序向导DriverWizard 提供的诊断程序Diagnostic Program来诊断CAN控制器卡。此诊断程序支持多种类型的芯片,本设计采用PCI9052作为PCI接口芯片,由于WinDriver PLX 9050的库完全与PLX 9052兼容,可以选择PLX 9050诊断程序9050Diag.exe,它通过WinDriver的程序访问硬件。
5 结语
由于工控机及先进的数据采集处理技术的应用,大大提高了对环境参数的测控,并提高了测控精度。CAN总线的使用使整个复杂的系统更加简洁、紧凑,提高了测控系统的抗干扰能力,同时也增强了系统的安全性。接入局域网,可使操作人员远距离对测控系统进行控制,实现测控数据的远距离传输。
11/12/2004
|