关键词:实时通信,SJA1000,CAN总线
Abstract:According to the problem in the multichannel and multicomputer TV supervisory system,this article discusses how to use the Single Chip Microcomputer and the theory of area network to investigate the CAN industrial network with SJA1000 and the Single ChipMicrocomputer.Fact shows that it solves the real-time problem of system and it also shows the superioroty the CAN bus as one of the field bus.
Keyword:real-time , SJA1000,CAN industrial network
随着计算机技术,通信技术和电视技术的发展,在许多场合,为了监视和控制现场的运行状况,提出了电视监控系统,用以实施集中控制,尤其是控制点与现场较远,需要的监视点比较多时,控制点和各个监视点形成多微机系统。随着现场总线技术的发展,CAN总线以其独特的优点,开始登上舞台。CAN总线的传输距离可以达到10km,数据传输速率高达1Mbit/s,很好的解决了本电视监控系统中的要求传输距离远、实时性强的问题。同时,CAN总线在报文传送中不包含目的地址,以全网广播为基础,各接收站根据报文中反映数据性质的标识过滤报文[1]。这种报文中不含目的地址的报文格式缩短了帧的长度,减少了传输中地址匹配的麻烦,提高了传输速率。而这种全网广播形式,使各个节点站没有主从之分,可以平等的向其他节点发送报文,减轻了将作为主节点的节点负担,也避免了主从机之间的通信。这种多主式总线局域网实现了本电视监控系统的实时、较高数据要求的系统功能。
1 多通道多微机电视监控系统简介
如图1所示,本系统设有64台彩色摄像机,每台摄像机配有可自动调整的镜头和云台,每个单元作为CAN总线网络的一个节点,64个节点构成被控单元。这64台设备分布在室外、室内、广场、站台等场所。其中每一个节点以主控室为中心,通过CAN总线和64条视频电缆与主控制室的上位机连接。
图1 多通道多微机电视监控系统组成
主控制室为系统控制中心,在CAN总线网络中充当上位机的角色。本系统虽为多主式控制系统,但需要一个总控制中来对各个子控制室进行协调和管理。主控制室主要由一个带有CAN接口的上位机构成,还有一个用彩色监视器组成的电视屏幕墙,作为系统的总监视。其余个控制台设1太彩色监视器作为辅助监视。
本系统可连接4个独立的控制台终端,每个控制台终端与彩色摄像机和云台的角色一样,构成一个CAN总线网络节点。4个控制台形成主控单元,但必须听从上位机主控室的协调。它是编程,设定摄像机控制的发令终端。4个控制台分别设在各楼的主管部门,与主调度室最远可达1km。
2 通信电路设计原理
2.1 云台、镜头控制器
云台有上、下、左、右旋转控制,是通过控制2台电机正反转来实现的,镜头有光圈大、小,焦距远、近,变倍大、小6个通电和断点开关控制。此外,还有雨刷动作控制。
如图2所示,89C51作为CPU控制器,TXD和RXD两条通讯线分别经过光隔和CAN控制器连接,通过CAN总线收发器连接到CAN总 线上,完成与带有CAN接口卡的上位机的连接电路,使用CAN总线协议。另外,2732是一个EPROM,存放控制程序。P1口P3口作为11个开关量。P1口除了作为8个开关量输入输出以外,还用2个74LS244实现8位拨码开关作为输入64个控制器的硬件序号设定。
图2 云台、镜头控制器电路原理图
2.2控制台电路设计
控制台电路基本有以下三部分组成:
1. 键盘接口。采用行输出列输入程序实时扫描方案。74LS373作为行输出接口,74LS244作为列出入接口。按键分为三类:0~9为数字键;一类功能键,包括动作、执行、左移、右移、锁定、循环、方式、读出、时间等功能;另一类就是摄象机动作控制键,包括了上、下、左、右、光圈大、小,焦距远、近,变倍大、小,雨刷动等。
2. LED数码显示接口。
3. 拨码开关接口。参考图2。
4. 发光二极管显示灯。作为运行状态指示。
5. CAN控制单元接口。这是一个与云台、镜头控制电路中相同功能的接口。
2.3主控制室电路设计
从图1可知,该系统所形成网络结构为分布式网络。接口电路有两种接口,视频矩阵切换控制电路和多路控制的串行接口——-CAN总线。主控室的上位机通过CAN接口卡(以SJA1000为控制器)实现与下位机节点的连接。视频矩阵切换控制电路主要是接收摄像机与云台传送过来的视频图像,并将视频图像输出到各个子控制室。由于视频信号要经过CAN总线的数字通道传输,必须通过A/D、D/A转换,这样增加了整个系统的设计复杂度。所以,在进行视频信号的传输时,采用了专用模拟通道——-视频电缆。为提高其工作效率,采用DS87C520单片机来控制DG884芯片进行图像信号切换。
1. CAN接口卡
这是一个位于上位机的接口卡,用来连接下位机的单片机与上位机的PC机。这个卡采用的控制器收发器均和云台、镜头控制器电路以及控制器电路中的一样,下面详细的介绍这个接口的典型电路。
该接口电路主要微控制器89C52、PHILIPS公司的CAN控制器SJA1000及收发器PCA82C250组成。CAN 控制器功能像是一个时钟源复位信号,由外部复位电路产生。SJA1000 的片选由微控制器的P2.7口控制[3]。
图3 CAN控制器接口连接图
PCA82C250与CAN总线接口部分采用了一定的安全和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5欧姆的电阻与CAN总线相连电阻可起到一定的限流作用,保护82C250免受过流的冲击。CANL何CANH与地之间并联了两个30P的小电容可以起到滤除总线上的高频干扰和一定的放电磁辐射的能力。另外,在两根CAN总线接入端与地之间分别反接了一个保护二极管,当CAN总线有较高的负电压时通过二极管的短路起到一定的过压保护作用。82C250的RS脚上接有一个斜率电阻,斜率电阻大小可根据通信速度适当调整一般在16K-140K之间。
2. 视频切换矩阵电路设计
主控制室中可接视频64路,视频输出16通道,而每一个输出通道均可接入64路中任一路输入。将这个矩阵分为8块标准的8入16出的切换板,只加一个8选1的板号即可,每块板上有4片DG884电路,每片DG884的视频输入信号IN1~IN8构成8个视频输入信号;每个DG884的视频输出信号OU1~OUT4各自独立输出,构成每板16通道输出。8块输入切换板的16通道对应输出通道均相连,则构成了64路输入16通道输出的切换矩阵。
图4 DG884逻辑图
DG884是一个数码型可选择的8路输入4路输出单片矩阵开关切换集成电路,其内部功能如图4。信号通道由矩阵里的T形开关和串联于每个输出的附加低阻值开关组成。
DG884与DS87C520单片机接口的数字信号中,RESET用作电源复位,它把现存项目锁定器的资料去除,并使所有输出关断。RESET只对现存项目地址锁定器有效,而对存放在另一组设定资料的锁存器是无效的。A2A1A0为8路选入地址,A3=1时为导通,A3=0时为关断。B1B0为输出通道选择地址,WR为写信号,置低后再返回高,这一动作重复3次,可将4个通道设定。但是,内部逻辑禁止把两个不同输入连到同一个输出地址上。当存入4个输入输出通路的资料后,只要把SALVO变低后再返回高,现存项目锁存器就把旧资料去除并载入了新的设定信息。
3 软件设计
本系统的软件设计主要集中在信息的传递上,以CAN2.0协议为基础,自定义通信协议,采用模块化设计。
3.1用户协议
在动作帧中,000是帧号,用来识别帧的类型。根据验收滤波器中的内容来选择传送帧的目的地。这利用了CAN2.0协议的特点。动作包括了对摄像机的动作控制命令和对图像切换的控制命令,根据前面的内容而定。
切换帧中,001为帧号。工作方式有四种:00为定点;01为循环;10为四画面循环[4]。
图5 用户协议
数据部分主要根据工作方式的不同,来确定所传输的通道号、定点路号、循环路号等等。
时间帧中,010为帧号。循环时间是指画面的循环时间[4]。
在CAN系统中,数据在节点间发送和接收以四种不同类型的帧出现和控制,其中:数据帧将数据由发送器传至接收器;远程帧由节点发送,以请求发送具有相同标志符的数据帧;出错帧可由任何节点发送,以检测总线错误,而超载帧用于提供先前和后续数据帧或远程帧之间的附加延时。另外,数据帧和远程帧以帧间空间隔同先前帧隔开。
有了完整的底层和上层协议,就可以设计本系统的软件部分。主要集中在信息传送上,采用模块化设计。以下具体描述信息传递的程序设计,其他的部分读者可参阅参考文献中的涉及论文[4]。
3.2软件框图
1. 主程序模块
主程序模块如图6所示,对系统进行统一的管理和调度。
图6 主程序框图
2. 初始化模块
在这个模块中主要是对系统的初始化,其中包括了CAN控制器SJA1000、DG884等的初始化。在这里详细的介绍SJA1000的初始化程序流程。由于独立的CAN控制器SJA1000有两种不同的工作模式BasicCan 模式和PeliCan模式。上电时BasicCan模式是默认工作模式。PeliCan是新的工作模式,它能够处理所有的CAN2.0定义的帧了类型。还提供一些增强功能,本系统采用PeliCan模式。在进行信息传递时,首先必须对SJA1000进行初始化,这对SJA1000是一项很重要的工作。分别对其模式寄存器、时钟分频寄存器、接收代码寄存器、接收屏蔽寄存器、总线定时寄存器0、1、输出控制寄存器、发送错误计数器、错误代码捕捉寄存器及中断使能寄存器按照PeliCan的模式进行初始化。接下来才能进行信息的接收和发送。
3. 发送信息和接收信息模块
根据CAN协议的约定,信息的发送和接收由SJA1000初始化完成。如图7和图8。
图7 发送信息模块 图8 接收信息模块
当SJA1000初始化完成后,SJA1000进入了工作模式。可以读状态寄存器中的内容,判断其中的发送完成状态位、接收状态位、发送缓冲器状态位是否符合允许发送的前提条件。当状态寄存器中的内容完全符合发送数据的要求,将要发送的数据放入到发送缓冲区,然后将命令寄存器中的“发送请求”标志置位标志控制。本系统中,采用中断发送。
收到的信息放到接受缓冲器中。可以发送给主控制器的信息,有状态寄存器地接受缓冲器状态标志“RBS”标出和接收中断标志“RI”标出。主控制器会将这条信息发送到本地的信息存储器,然后释放接受缓冲器并对信息进行操作。接收过程采用查询接受的方式。
4. 帧信息处理模块[2]
主要是从缓冲区中把各帧的信息存入。从用户协议可知,帧有动作帧、切换帧和时间帧三种类型。所以,在这个模块中,根据判断接收到的是哪一种的帧来具体执行相应的内容。
5. 图象切换模块[2]
按通道顺序逐个的切换。
4 结束语
本系统采用CAN工业 网真正实现了实时通讯,发挥了CAN总线的优势。CAN作为多主总线,传输速率可以达到1Mbps[1],这个速度很好的满足了工业控制的需要,也提高了本系统的整体性能。同时CAN的网络节点不受限制,最多可以挂接110个节点[1],方便了大型工业控制网的组建,在传输距离上,最远可以传输10Km[1],达到了远距离传输的要求;实践证明,CAN总线网通讯效率高,准确度高,值得在工业控制系统中推广。
参考文献
[1] 邬宽明. CAN总线原理和应用系统设计.北京航空航天大学出版社.1996
[2] 马崇良 王金海 .多通道多微机电视监控系统. 天津纺织工学院学报 1997第16卷第4期
[3] SJA1000用户指南.Philips Com.
[4] 王金海 马崇良.多路视频信号交叉点开关器的计算机控制研究.天津纺织工学院学报 1997 第16卷第4期