基于CAN总线智能窗户系统的设计实现
2.2系统的硬件选取
在本系统中,总线控制器和收发器分别采用Philip公司的P8xC592和PCA83C250。P8xC592单片机是用COMS工艺制造的具有CAN功能的8位单片机其指令集与80C51完全兼容,这样就有利于编程。PCA83C250是CAN控制器与物理总线的接口,可以提供对总线的差动发送和接收功能。在此特别注意 P8xC592单片机是一种集成CAN控制器的高性能微处理器,所以在该系统中,P8xC592不仅仅要与CAN相连接,同时还要对各个窗户子系统进行控制。
同时传输介质只要使用双铰线,在短距离(40m)条件下就具有高速(1Mbit/s)数据传输能力,而在最大距离10000m时具有低速(5kbits/s)传输能力。而主控制器采用的是性价比高,结构简单,便于编程的89S51单片机,主要用于对CAN控制器P8xC592及其串口RS232初始化,并通过对CAN控制器8xC592及其串口RS232的控制操作实现现场CAN总线与管理层PC机的数据交换等通信任务。
3 用户通信协议设计
3.1 通信协议
这里采用的是CAN2.0A标准,该协议最大的优点是废除了传统的站地址编码,因此CAN没有节点地址的概念,代之以通信数据块进行编码,支持以数据为中心的通信模式.当窗户节点不同时,只需要在总线上增减控制器的节点数,并对相应的数据帧进行适当的修改. CAN上的节点数主要取决于总线驱动线路,当采用PCA82C250时,最多可达110个。
3.2 数据帧
数据帧如图2所示,包括七个部分:帧起始,仲裁场,控制场,数据场,CRC序列,ACK场,帧结束.仲裁场包括有报文标识符(11位)和远程发送申请位(RTR);控制场由六位组成,如图3所示,后四位位数据长度码,代表数据场字节数,这里设为02H;传输信号每一帧数据长度为16位,高字节用D8到D15八位编码表示节点在大楼的位置,低字节设为控制字,控制字各位均为高电平有效。如下图4所示,例如:数据场为0801H,表示8号窗户节点要求托管;0802H表示8号窗户节点处于开启状态,0804H表示8号窗户处于关闭状态,0808H表示8号窗户要执行开窗指令,080F H表示8号窗户要执行关窗指令。对于上位机和下层的各个节点来说,它们需要发送的数据帧信息是不同的。
图 4 数据场组成
3.3 多主广播方式
总线空闲时,任意节点均可发送数据,其它节点都可接收总线上的数据,CAN只需通过报文滤波就可以实现点对点,一点对多点及全局广播等传收方式,无须专门调度。这里用接受码寄存器,接收码屏蔽寄存器实现报文滤波,使上位机收总线上的一切信息,而层站控制器只接受上位机的CAN控制器发出的信号,并且使不同的节点可以同时接受上位机CAN控制器发出的数据。这点非常有用,采用广播方式,可极大地节省传输时间,提高传输速率,增强系统地实时性和可靠性。
评论