1 导言
现场总线及其运用技能日益成为世界主动控制范畴重视的一个焦点。CAN总线是现在公认的几种最有出路的现场总线之一。通讯介质可所以双绞线、同轴电缆和光纤,其通讯速率可达1mbps。can世界规范的拟定愈加推动了它的开展和运用,根据can总线的工业运用体系业很多出现。其首要运用范畴包含大型仪器设备、传感器技能及数据搜集体系和工业现场监控体系等[1][2]。本文结合can总线的特色,介绍了根据can总线的数据搜集与处理的一种规划办法。
2 体系规划
2.1 can体系概要
图1 结构简图
本体系由两个cpu经过双口 ram相互衔接组成,一片cpu(p87c591)担任can信号的发送与接纳,另一片cpu(p89c58ba)担任 rs-485 信号的发送与接纳。规划中通讯控制器选用了集成有can控制器的p87c591单片机。它自带的can控制器彻底具有sja1000的功用,可完结can协议中规则的一切数据链路层和物理层的功用。且p87c591自带了15个中止源和看门狗定时器(wdt),运用非常便利。体系结构简图如图1所示。图中各部分所完结的首要功用如下:
(1) cpu-1:该芯片带有can接口,故可与下位机进行can通讯。经过can总线发送上位机的设定信息给下位机,一起接纳下位机供给的数据信息,将其存入双口ram中,以供cpu-2来查询。
(2) cpu-2:该芯片衔接有max491和max485 芯片,故可与外部进行422或485通讯,上位机的信息经过485通讯读入cpu-2之中,cpu-2再将其存入双口ram之中,以供cpu-1来查询,cpu-1再经过can总线将此设定信息传送给上位机。反之,下位机的一切已存入双口ram的检测值信息,也是经过该单片机的读取,并经过485通讯,将一切显现信息在人机界面上显现。
(3) 双口ram:双口ram用于存储体系的设置信息和状况信息,完结各种信息存储与交流。选用存储容量为16k的idt7006系列,并选用后备电池支撑,确保掉电时存储的信息不丢掉。双口ram按存储内容不同,分为设置区、状况区和预留区。设置区用来存储上位机的信息;状况区用来存储从下位机搜集的体系状况信息;预留区则作为预留备用。
2.2 p87c591单片机概要
在体系中选用philips公司出产的p87c591单片机,该单片机是一个8 位高性能微控制器具有片内can控制器[3],大大简化了硬件电路的规划,提高了can接口的稳定性。p87c591 选用了强壮的80c51指令集,并集成了sja1000 can控制器的pelican功用。首要有以下功用特色:can2.0b控制器,支撑11位规范标识符和29位扩展标识符,4个可独立装备的检验滤波器,都可“在运转中改动”。can控制器的发送缓冲区能够保存一个完好的can信息帧(规范或扩展帧格局),只需经过cpu发动发送,信息字节就从发送缓冲区传输到can内核模块完结发送。can接口包含5个完结cpu与can控制器衔接的特别功用寄存器,对重要can寄存器的拜访经过快速主动添加的寻址和对特别功用寄存器的位寻址完结。接纳一个信息时,can内核模块将串行位流通换成并行数据输入到检验滤波器,经过该可编程滤波器,p87c591能够确认实践接纳到的信息。
p87c591衔接的can节点电路规划比较简略,所需的外部元件仅仅一个晶振加两个电容驱动片内震动器、一个衔接到复位脚的电阻、%&&&&&%。运用片内上电复位电路以及一个收发器将p87c591衔接到can总线上。如图2所示。
图2 can 节点电路
2.3 can总线p87c591单片机侧的首要使命
在整个体系中591起到数据传输和处理的效果,经过can总线接纳数据搜集节点接纳来的信息,收拾后按协议存储到双口ram中。其首要使命有以下两点:其一搜集下位机的数据信息;其二将搜集来的信息依照协议的约好存储到双口ram中的固定的方位,便于58查询显现。
3 can总线软件规划
can总线软件规划首要包含两大部分:通讯网络的运用层协议和功用完结的流程和编码。can通讯软件首要由初始化、接纳处理、发送处理及中止处理等组成。本文要点介绍发送、接纳处理子程序。
3.1 发送程序
发送子程序担任节点报文的发送。信息从can控制器发送到can总线是由can控制器主动完结的。其流程图如图3所示。
图3 查询发送流程图
3.2 接纳程序
接纳子程序担任接纳节点报文的接纳。信息从can总线到can缓冲区是由can控制器主动完结的,接纳程序只需从接纳缓冲区读取要接纳的信息。其流程图如图4所示。
图4 中止接纳流程图
4 问题评论
本规划的硬件电路中, 选用双cpu体系,即用一个cpu完结测控功用,另一个cpu完结体系联网和接口通讯功用。cpu间的通讯能够选用串口、并口等方法,但它们一起的缺陷是操作杂乱、速度慢。因而,选用双口ram方法在两个cpu体系间交流数据是一个不错的挑选。但双口ram有时会产生同享抵触问题。
一般双口ram都供给了两个彻底独立的端口,每个端口都有自己的控制线、地址线和数据线,cpu对双口ram端口的操作等效于对它对外部ram进行操作。双口ram在运用上要注意的问题是怎么防止两头cpu对同一ram单元的争用,双口ram可供给三种防抵触方法:刺进等候状况的防抵触方法;信号灯防抵触方法;中止防抵触方法。本规划中双口ram首要用于两个cpu之间交流数据,因为交流的实时性很难用软件来确保,所以选用中止方法处理抵触问题。
双口ram被划分为两个区域,其间数据接纳缓冲区是通讯cpu插件向其发送指令和数据的区域;数据发送缓冲区是它向通讯cpu插件发送数据的区域。为了确保数据交流的实时性和有效性,可选用双口ram的中止方法告诉对方,信号intl和intr可作为cpu的一个中止输入。数据交流时,先将数据放入对应的双口ram存储区,然后写入对方信箱,以告诉对方有数据发送;接纳方在相应的中止中对数据进行处理,一起读自己的信箱以铲除中止信号,然后再写入对方信箱以奉告其数据已处理完毕。
5 结束语
所规划的体系可用于电力参数监控和其他工业主动化场合。使用can总线结构灵敏简略,可靠性高,适应性好,易于保护等长处。经过rs485/422和can 总线转换器完结现场智能设备与上位机间或其他监控设备的数据交流,使用上位机强壮的数据处理才能,完结事情记载、数据处理等功用。因而该体系用于工业范畴性价比较高。