论文部分内容阅读
摘要:CAN总线在数据传输方面具有较好的实时性和灵活性,本文提出了一种基于STC89C52和CAN总线的智能控制器设计方案,设计了基本硬件电路和基波及其二级谐波干扰的滤波电路,同时编制了系统软件。实际应用证明,本控制器实时性好和灵活性较好,数据传输及时有效,对井下常见的有线传输的干扰抗干扰能力好。
关键词:矿井;CAN总线;智能控制;单片机
TD67 文献标识码: A
0. 引言
RS485总线在抑制共模干扰和灵敏度上表现出很好的特性[1][2],在煤矿井下得到了广泛的应用,但是RS485是一种主从式结构的现场总线,这种结构决定了它通信的时候只能采用主站轮流询问的方法进行,制约了系统的总线利用率和数据的及时有效。同时它的传输距离有限。RS485在这种分布范围大却管理集中的项目上的表现不尽人意 [3]。德国BOSCH公司开发的通信协议CAN总线,错误检测能力良好,可靠性高[4];多主工作方式和仲裁技术提高了数据的时效性;传输距离最大可以达到;错误检测和处理机制提高了系统的容错能力[5],提高了系统的通信有效性;错误节点可以自动关闭,不会对整个网络造成影响,降低了后期维护的成本。本文设计了一种基于STC89C52单片机和CAN总线的智能控制器,并设计了干扰的滤波电路。这种控制器对提高煤矿测量的及时有效、监控成本和安全生产的保障上有一定的作用。
1. 控制器组成及工作原理
微控制器是整个控制器的核心,CAN控制器的工作方式是通过微控制器编程来完成的,工作状态和报文的收发也是由微控制器控制。CAN控制器为微控制器的数据传输提供了接口,相当于协议中的数据链路层。CAN控制器一方面将控制器发送的信号变为符合CAN物理层的信号并放大传输,另一方面将收到的总线上的信号变成控制器能够接收的信号,实现了物理层的功能。CAN收发器为控制器和物理总线提供了连接,同时增加了系统通信距离。滤波电路使用有源的带阻滤波器消除了有线传输中的常见干扰。控制器的结构框图如图1所示。
2. 控制器硬件设计
2.1 微控制器
微控制器选用STC89C52单片机。STC89C52是一种增强型51单片机,兼容以前的51单片机,又有自己的特性:宽电压(3.3v~5.5v)、8KB的Flash存储器、的EEPROM、宽工作频率(0~40MHz)、512KB RAM。本设计中使用单片机的外部中断0控制CAN控制器中断,进而实现其他功能。
2.2 CAN控制器
控制器选用SJA1000。该控制器为独立控制器,有两种工作模式,第二种工作模式PeliCAN支持有很多新特性的CAN2.0B协议。SJA1000兼容性好,两种模式的切换可以通过时钟分频器完成[6]。该控制器的采用实现了单片机的数据通信。
单片机和控制器SJA1000的连接电路如图2所示。在P2.0低电平时,单片机片外存储器可选中控制器,对控制器进行读/写操作。单片机通过INT0口控制 SJA1000中断。单片机通过P2.3口完成控制器的复位。
2.2 CTM8250T介绍
CTM8250T是一款适用范围广的收发器,而且具有隔离功能,提高了系统的整体抗干扰能力。该芯片内部包含了普通收发器和隔离电路,可实现隔离、收发等功能。该芯片接口简单,使用方便,并且带有瞬态电压抑制器(TVS),具有CAN-bus总线过电压保护作用,适合控制器的设计。SJA1000和CTM8250T的连接电路如图3所示。
处于网络端点时,上述电路必须要接电阻120Ω。没有该电阻,数据传输会受到很大影响,甚至不能传输。
1.3 抗电磁干扰设计
对于本控制器的通信而言,物理传输线都是屏蔽的,所以不会受到辐射干扰的影响,但是会受到传导耦合干扰的影响。在井下,这些干扰主要来自各种强电传输线产生的50Hz基波以及各级谐波[7]。为此,本文设计了滤波电路以保证控制器数据的有效性。由于干扰主要是50Hz这一波段,所以设计的时候选用消除特定波段的带阻滤波器,它的设计如图4所示。
该滤波器阻带宽度为1Hz,左边电路是消除50Hz基波,右边电路是消除100Hz二次谐波。左边电路的中心截止频率f0的计算公式为:
■
■,取■,可计算出■。阻带带宽的计算公式为:
■
阻带带宽bW=1Hz,则品质因数Q=50。Q的计算公式为:
■
则通带放大倍数■或者■,这里我们取前者1.99。其中
■
则■,取■,则■。
另外芯片的电源和接地都接了的电容,通过地线释放信号线上的干扰。
3. 控制器软件设计
软件设计主要有三部分:控制器初始化、发送和接收报文。主程序流程如图5所示:
控制器化初始化主要是对单片机和控制器的使用到的寄存器进行配置和给变量赋值。控制器初始化流程如图6所示。
2.2 数据的发送程序
在数据发送过程中,控制器根据要发送的报文配置正确的报文标识符寄存器和长度信息,根据待发送的数据配置相应的寄存器,发送报文。
…
do
{
Judge=SR;
LED_RED=0;
}
while(Judge&0x10);
do
{
Judge=SR;
LED_RED=0;
}
while(!(Judge&0x08));
do
{ Judge=SR;
LED_RED=0;
}
while(!(Judge&0x04));
…
2.3 数据的接收程序
数据是由SJA1000完成接收的。控制器根据控制器中的状态,确定接收缓冲器中有可读取的报文,然后读取报文并释放接受缓冲器,还要读取错误代码捕捉寄存器和仲裁丢失捕捉寄存器,让他们再次激活 [8]。
...
if(Judge&0x01)
{
CanDataLength=RBSR&0X0F;
P=&RBSR;
for(i=1;i<=(CanDataLength+5);i++)
{
RX_buffer[i]=*p++;
}
RXD_flag=1;
CMR=0X04;
Judge=ALC;
Judge=ECC;
}
...
4. 结语
控制器作为煤矿监测点和监控计算机之间的通信桥梁,要满足井下安全生产要求,能够适应井下恶劣的工作环境;同时要有良好的兼容性和实时性。控制器的设计在能够实现基本功能外,还要考虑可靠性、兼容性和抗干扰性,提高控制器的整体性能,对煤矿的安全生产提供应有的保障。其可靠性还降低了煤矿安全生产的投入成本,提高煤矿的经济效益。
5. 参考文献
[1] 徐乐年,高爽,李文静.一种新型通信分站的设计[J].工矿自动化,2011,(3):70-73.
[2] 冀红举,段朝伟,张孟超. 基于RS-485总线的温室远程监控系统[J].测控自动化,2012,28(4):43-45.
[3] 胡 波,朱宗玖,田红光.基于CAN总线的煤矿安全监控系统[J].煤矿机械,2012,33(2):230-232.
[4] 纪文志,陈国忠,唐家山. 基于 CAN总线智能节点的设计与实现 [J].微型计算机与应用,2012,31(2):44-49.
[5] 刘增环,高敬格,郭佳,张书强,韩昱. CAN总线技术在矿井环境监测系统的应用[J].煤矿机械,2009,29(9):153-155.
[6] 陈祖海,潘明. 基于SJA1000IP核的CAN总线通信系统[J].单片机与嵌入式系统应用,2012,(7):37-40.
[7] 孙继平,王福增.煤矿井下电磁干扰对通信和监控系统的影响分析[J].工矿自动化,2009,(2):23-26.
[8] 李真花,崔健. CAN总线轻松入门与实践[M].北京:北京航空航天大学出版社,2010:208-209.
关键词:矿井;CAN总线;智能控制;单片机
TD67 文献标识码: A
0. 引言
RS485总线在抑制共模干扰和灵敏度上表现出很好的特性[1][2],在煤矿井下得到了广泛的应用,但是RS485是一种主从式结构的现场总线,这种结构决定了它通信的时候只能采用主站轮流询问的方法进行,制约了系统的总线利用率和数据的及时有效。同时它的传输距离有限。RS485在这种分布范围大却管理集中的项目上的表现不尽人意 [3]。德国BOSCH公司开发的通信协议CAN总线,错误检测能力良好,可靠性高[4];多主工作方式和仲裁技术提高了数据的时效性;传输距离最大可以达到;错误检测和处理机制提高了系统的容错能力[5],提高了系统的通信有效性;错误节点可以自动关闭,不会对整个网络造成影响,降低了后期维护的成本。本文设计了一种基于STC89C52单片机和CAN总线的智能控制器,并设计了干扰的滤波电路。这种控制器对提高煤矿测量的及时有效、监控成本和安全生产的保障上有一定的作用。
1. 控制器组成及工作原理
微控制器是整个控制器的核心,CAN控制器的工作方式是通过微控制器编程来完成的,工作状态和报文的收发也是由微控制器控制。CAN控制器为微控制器的数据传输提供了接口,相当于协议中的数据链路层。CAN控制器一方面将控制器发送的信号变为符合CAN物理层的信号并放大传输,另一方面将收到的总线上的信号变成控制器能够接收的信号,实现了物理层的功能。CAN收发器为控制器和物理总线提供了连接,同时增加了系统通信距离。滤波电路使用有源的带阻滤波器消除了有线传输中的常见干扰。控制器的结构框图如图1所示。
2. 控制器硬件设计
2.1 微控制器
微控制器选用STC89C52单片机。STC89C52是一种增强型51单片机,兼容以前的51单片机,又有自己的特性:宽电压(3.3v~5.5v)、8KB的Flash存储器、的EEPROM、宽工作频率(0~40MHz)、512KB RAM。本设计中使用单片机的外部中断0控制CAN控制器中断,进而实现其他功能。
2.2 CAN控制器
控制器选用SJA1000。该控制器为独立控制器,有两种工作模式,第二种工作模式PeliCAN支持有很多新特性的CAN2.0B协议。SJA1000兼容性好,两种模式的切换可以通过时钟分频器完成[6]。该控制器的采用实现了单片机的数据通信。
单片机和控制器SJA1000的连接电路如图2所示。在P2.0低电平时,单片机片外存储器可选中控制器,对控制器进行读/写操作。单片机通过INT0口控制 SJA1000中断。单片机通过P2.3口完成控制器的复位。
2.2 CTM8250T介绍
CTM8250T是一款适用范围广的收发器,而且具有隔离功能,提高了系统的整体抗干扰能力。该芯片内部包含了普通收发器和隔离电路,可实现隔离、收发等功能。该芯片接口简单,使用方便,并且带有瞬态电压抑制器(TVS),具有CAN-bus总线过电压保护作用,适合控制器的设计。SJA1000和CTM8250T的连接电路如图3所示。
处于网络端点时,上述电路必须要接电阻120Ω。没有该电阻,数据传输会受到很大影响,甚至不能传输。
1.3 抗电磁干扰设计
对于本控制器的通信而言,物理传输线都是屏蔽的,所以不会受到辐射干扰的影响,但是会受到传导耦合干扰的影响。在井下,这些干扰主要来自各种强电传输线产生的50Hz基波以及各级谐波[7]。为此,本文设计了滤波电路以保证控制器数据的有效性。由于干扰主要是50Hz这一波段,所以设计的时候选用消除特定波段的带阻滤波器,它的设计如图4所示。
该滤波器阻带宽度为1Hz,左边电路是消除50Hz基波,右边电路是消除100Hz二次谐波。左边电路的中心截止频率f0的计算公式为:
■
■,取■,可计算出■。阻带带宽的计算公式为:
■
阻带带宽bW=1Hz,则品质因数Q=50。Q的计算公式为:
■
则通带放大倍数■或者■,这里我们取前者1.99。其中
■
则■,取■,则■。
另外芯片的电源和接地都接了的电容,通过地线释放信号线上的干扰。
3. 控制器软件设计
软件设计主要有三部分:控制器初始化、发送和接收报文。主程序流程如图5所示:
控制器化初始化主要是对单片机和控制器的使用到的寄存器进行配置和给变量赋值。控制器初始化流程如图6所示。
2.2 数据的发送程序
在数据发送过程中,控制器根据要发送的报文配置正确的报文标识符寄存器和长度信息,根据待发送的数据配置相应的寄存器,发送报文。
…
do
{
Judge=SR;
LED_RED=0;
}
while(Judge&0x10);
do
{
Judge=SR;
LED_RED=0;
}
while(!(Judge&0x08));
do
{ Judge=SR;
LED_RED=0;
}
while(!(Judge&0x04));
…
2.3 数据的接收程序
数据是由SJA1000完成接收的。控制器根据控制器中的状态,确定接收缓冲器中有可读取的报文,然后读取报文并释放接受缓冲器,还要读取错误代码捕捉寄存器和仲裁丢失捕捉寄存器,让他们再次激活 [8]。
...
if(Judge&0x01)
{
CanDataLength=RBSR&0X0F;
P=&RBSR;
for(i=1;i<=(CanDataLength+5);i++)
{
RX_buffer[i]=*p++;
}
RXD_flag=1;
CMR=0X04;
Judge=ALC;
Judge=ECC;
}
...
4. 结语
控制器作为煤矿监测点和监控计算机之间的通信桥梁,要满足井下安全生产要求,能够适应井下恶劣的工作环境;同时要有良好的兼容性和实时性。控制器的设计在能够实现基本功能外,还要考虑可靠性、兼容性和抗干扰性,提高控制器的整体性能,对煤矿的安全生产提供应有的保障。其可靠性还降低了煤矿安全生产的投入成本,提高煤矿的经济效益。
5. 参考文献
[1] 徐乐年,高爽,李文静.一种新型通信分站的设计[J].工矿自动化,2011,(3):70-73.
[2] 冀红举,段朝伟,张孟超. 基于RS-485总线的温室远程监控系统[J].测控自动化,2012,28(4):43-45.
[3] 胡 波,朱宗玖,田红光.基于CAN总线的煤矿安全监控系统[J].煤矿机械,2012,33(2):230-232.
[4] 纪文志,陈国忠,唐家山. 基于 CAN总线智能节点的设计与实现 [J].微型计算机与应用,2012,31(2):44-49.
[5] 刘增环,高敬格,郭佳,张书强,韩昱. CAN总线技术在矿井环境监测系统的应用[J].煤矿机械,2009,29(9):153-155.
[6] 陈祖海,潘明. 基于SJA1000IP核的CAN总线通信系统[J].单片机与嵌入式系统应用,2012,(7):37-40.
[7] 孙继平,王福增.煤矿井下电磁干扰对通信和监控系统的影响分析[J].工矿自动化,2009,(2):23-26.
[8] 李真花,崔健. CAN总线轻松入门与实践[M].北京:北京航空航天大学出版社,2010:208-209.