论文部分内容阅读
摘要:介绍CAN(控制局域网)总线的特点,对CAN总线智能通信节点的工作原理进行了分析,给出了采用AT89S52型单片机构成的通信节点电路原理图和应用单片机汇编语言编写的SJA1000初始化程序,通过节点的软硬件设计,说明了CAN总线的技术优势和应用前景。
关键词:CAN总线; SJA1000; 智能节点; AT89S52
中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)17-31234-02
The Design of CAN Intelligent Communication Node Based on AT89S52
CHEN Qiang
(Zhonghua Science University Wuchang Branch Automatic Division, Wuhan 430064, China)
Abstract:Introduced characteristics of CAN (Control LAN) bus, Analysis principle of the CAN Bus Intelligent Communication Node. Given the circuit schematic of Intelligent communication Node by AT89S52 MCU.Given the SJA1000 initialization program written by assembly language. Through the software and hardware design of node, described technical superiority of CAN bus and applications prospects.
Key words:CAN Bus; Intelligent Node; AT89S52; SJA1000
1 引言
CAN总线[1](Controller Area Network控制器局域网络)是现场总线的一种。它是由德国BOSCH公司在1986年为解决现代汽车中众多控制与检测仪器之间的数据交换而开发设计的一种总线式串行通信网络。与一般通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,其特点可概括如下:
CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上任一节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息,利用这一特点可方便地构成多机备份系统。
CAN节点只需对报文的标识符滤波即可实现点对点,点对多点及全局广播方式发送和接收数据,其节点可分成不同的优先级,节点的优先级可通过报文标识符进行设置,优先级高的数据最多可在134微秒内传输,可满足不同的实时要求。
CAN采用非破坏性总线仲裁技术[2],当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况。
CAN总线通信格式采用短帧格式,每帧字节数最多为8个字节,可满足一般工业领域中控制命令,工作状态及测试数据的要求,8个字节不会占用总线时间过长,保证了通信的实时性。
CAN总线直接通信距离最大可达10Km(速率在5Kb/s以下),最高通信速率可达1Mb/s(此时距离最长为40m),节点数可达110个,通信介质可以是双绞线,同轴电缆或光导纤维。
CAN总线采用CRC检验并可提供相应的错误处理功能,保证数据通信的可靠性,其节点在错误严重的情况下,具备有自动关闭输出功能,使总线上其他节点的操作不受影响。
2 CAN总线系统结构
由于CAN总线采用多主方式工作,所以具有与DCS(分布式控制系统)不一样的拓扑结构。其控制系统由计算机和智能节点组成,如图1所示。
该系统的特点是所有的节点都能以平等的地位挂接在总线上。1个总线节点[3]通常至少包括3部分:控制节点任务的单片机,总线控制器及总线收发器,本文主要介绍CAN总线智能节点的设计原理。智能节点由AT89S52型单片机,SJA1000型总线控制器,82C250型总线收发器构成。在实际应用中可以连接不同的传感器。完成数据的采集和传输。
图1 CAN总线节点结构示意图
3 节点硬件设计
图2是节点的电路原理图。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供灵活、有效的解决方案。 总线控制器SJA1000的11脚MODE接高电平,选择Intel二分频模式。SJA1000的16脚是中断信号输出端,在中断允许情况下,有中断发生时,16脚出现有高电平到低电平的跳变,因此16脚可以直接与AT89S52的外部中断输入脚连接。在该设计中选择82C250型总线收发器芯片,是因为其具有高速性(最高可达1Mbps),具有抗瞬间干扰保护总线的能力,具有降低射频干扰的斜率控制。此外,它可与110个节点相连,当某个节点掉电时,不会影响总线。在设计节点电路时,还要注意一下几点:
①SJA1000通过光耦与82C250的连接是电流隔离的接法,这样可以防止线路间的串扰。在总线两端要接2个120Ω的总线阻抗匹配电阻,忽略掉它们会降低总线的抗干扰能力,甚至导致无法通信。
②通过在地和82C250的8脚(RS)之间接不同阻值的电阻,可选择三种不同的工作方式:高速、斜率控制和待机,如表1所示。
在高速工作方式下,发送器输出晶体管简单地以尽可能快的速度启闭。在这种方式下,不采取任何措施限制上升和下降斜率。建议使用屏蔽电缆以避免射频干扰问题。通过将引脚8接地,可选择高速方式。
表1
对于较低速度或较短总线长度,可用非屏蔽双绞线或平行线作总线。为降低射频干扰,应限制上升和下降斜率。上升和下降斜率可通过由引脚8至地连接的电阻进行控制。斜率正比于引脚8上的电流输出。
若引脚8加有高电平,则电路进入低电流待机方式。在这种方式下,发送器被关掉,而接收器转至低电流。由于在待机方式下,接收器是慢速的,因此第一个报文将被丢失。
③SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5Vcc上,否则将不能形成CAN协议所要求的电平逻辑。
图2 CAN总线系统智能节点硬件电路
4 节点软件设计
根据节点电路原理图,SJA1000的首地址为0000H。用MCS-51汇编语言[4]编制的初始化程序如下:
CR EQU 0000H ;控制寄存器
CMR EQU 0001H ;命令寄存器
SR EQU 0002H ;状态寄存器
IR EQU 0003H ;中断寄存器
ACR EQU 0004H ;接收代码寄存器
AMR EQU 0005H ;接收屏蔽寄存器
BTR0 EQU 0006H ;总线时序寄存器0
BTR1 EQU 0007H ;总线时序寄存器1
OCR EQU 0008H ;输出控制寄存器
MOV DPTR,#CR
MOV A,#1BH ;开放接收、出错、溢出中断
MOVX @DPTR,A ;置位复位请求,开始初始化
MOV DPTR,#ACR
MOV A,#03H ;接收代码寄存器为03H
MOVX @DPTR,A
INC DPTR
MOV A,#0FCH ;接收屏蔽寄存器为0FCH
MOVX @DPTR,A
INC DPTR
MOV A,#00H
MOVX @DPTR,A
INC DPTR
MOV A,#1CH ;500kbps
MOVX @DPTR,A
INC DPTR
MOV A,#0AAH ;正常输出模式
MOVX @DPTR,A
MOV DPTR,#CR
MOV A,#1AH ;初始化结束,SJA1000进入工作状态
MOVX @DPTR,A
RET
注意:SJA1000初始化程序中,只有当控制寄存器CR中的复位请求为1时(SJA1000工作在复位模式),允许访问上述寄存器,否则既写不进去也读不进去正确的内容。在接收寄存器(RXB)为空,满足下述条件时,报文可被正确地接收。
报文接收条件:接收代码位(AC.7~AC.0)和信息识别码的高8位(ID.10~ID.3)相等,且与接收屏蔽位(AM.7~AM.0)的相反位相或为1,则报文被接收。例如:在初始化程序中,ACR=03H,AMR=0FCH,由此只有信息识别码的高8位为XXXXXX11的数据帧被接收,BTR0的值可决定波特率预分频器(BRP)和同步跳转宽度(SJW)的数值。
BTR1可决定位周期的宽度,采样点的位置及在每个采样点进行采样的次数。程序中BTR0=00H,BTR1=1CH,则波特率为500kbps,有一点必须要注意,系统中所有的节点的BTR0和BTR1的内容都应该相同,否则将无法进行通信,对CR的第二次写访问是清除复位请求位,使SJA1000返回工作模式。
5 结束语
在CAN总线智能通信节点的开发应用中证明,CAN总线具有以下优点:组网自由,扩展性强;自动错误界定,简化了通信的操作;可根据数据内容确定优先权,解决通信的实时性问题。CAN总线网络已在众多工业控制系统中应用,尤其在传输速度较高而且对实时性及可靠性要求高的场合,CAN总线将有更广阔的应用前景。
参考文献:
[1]阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,2002.
[2]饶运涛.现场总线CAN原理及应用技术[M].北京:北京航空航天大学出版社,2003.
[3]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.
[4]马忠梅.单片机语言应用程序设计[M].北京:北京航空航天大学出版社,2003.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:CAN总线; SJA1000; 智能节点; AT89S52
中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)17-31234-02
The Design of CAN Intelligent Communication Node Based on AT89S52
CHEN Qiang
(Zhonghua Science University Wuchang Branch Automatic Division, Wuhan 430064, China)
Abstract:Introduced characteristics of CAN (Control LAN) bus, Analysis principle of the CAN Bus Intelligent Communication Node. Given the circuit schematic of Intelligent communication Node by AT89S52 MCU.Given the SJA1000 initialization program written by assembly language. Through the software and hardware design of node, described technical superiority of CAN bus and applications prospects.
Key words:CAN Bus; Intelligent Node; AT89S52; SJA1000
1 引言
CAN总线[1](Controller Area Network控制器局域网络)是现场总线的一种。它是由德国BOSCH公司在1986年为解决现代汽车中众多控制与检测仪器之间的数据交换而开发设计的一种总线式串行通信网络。与一般通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,其特点可概括如下:
CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上任一节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息,利用这一特点可方便地构成多机备份系统。
CAN节点只需对报文的标识符滤波即可实现点对点,点对多点及全局广播方式发送和接收数据,其节点可分成不同的优先级,节点的优先级可通过报文标识符进行设置,优先级高的数据最多可在134微秒内传输,可满足不同的实时要求。
CAN采用非破坏性总线仲裁技术[2],当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况。
CAN总线通信格式采用短帧格式,每帧字节数最多为8个字节,可满足一般工业领域中控制命令,工作状态及测试数据的要求,8个字节不会占用总线时间过长,保证了通信的实时性。
CAN总线直接通信距离最大可达10Km(速率在5Kb/s以下),最高通信速率可达1Mb/s(此时距离最长为40m),节点数可达110个,通信介质可以是双绞线,同轴电缆或光导纤维。
CAN总线采用CRC检验并可提供相应的错误处理功能,保证数据通信的可靠性,其节点在错误严重的情况下,具备有自动关闭输出功能,使总线上其他节点的操作不受影响。
2 CAN总线系统结构
由于CAN总线采用多主方式工作,所以具有与DCS(分布式控制系统)不一样的拓扑结构。其控制系统由计算机和智能节点组成,如图1所示。
该系统的特点是所有的节点都能以平等的地位挂接在总线上。1个总线节点[3]通常至少包括3部分:控制节点任务的单片机,总线控制器及总线收发器,本文主要介绍CAN总线智能节点的设计原理。智能节点由AT89S52型单片机,SJA1000型总线控制器,82C250型总线收发器构成。在实际应用中可以连接不同的传感器。完成数据的采集和传输。
图1 CAN总线节点结构示意图
3 节点硬件设计
图2是节点的电路原理图。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供灵活、有效的解决方案。 总线控制器SJA1000的11脚MODE接高电平,选择Intel二分频模式。SJA1000的16脚是中断信号输出端,在中断允许情况下,有中断发生时,16脚出现有高电平到低电平的跳变,因此16脚可以直接与AT89S52的外部中断输入脚连接。在该设计中选择82C250型总线收发器芯片,是因为其具有高速性(最高可达1Mbps),具有抗瞬间干扰保护总线的能力,具有降低射频干扰的斜率控制。此外,它可与110个节点相连,当某个节点掉电时,不会影响总线。在设计节点电路时,还要注意一下几点:
①SJA1000通过光耦与82C250的连接是电流隔离的接法,这样可以防止线路间的串扰。在总线两端要接2个120Ω的总线阻抗匹配电阻,忽略掉它们会降低总线的抗干扰能力,甚至导致无法通信。
②通过在地和82C250的8脚(RS)之间接不同阻值的电阻,可选择三种不同的工作方式:高速、斜率控制和待机,如表1所示。
在高速工作方式下,发送器输出晶体管简单地以尽可能快的速度启闭。在这种方式下,不采取任何措施限制上升和下降斜率。建议使用屏蔽电缆以避免射频干扰问题。通过将引脚8接地,可选择高速方式。
表1
对于较低速度或较短总线长度,可用非屏蔽双绞线或平行线作总线。为降低射频干扰,应限制上升和下降斜率。上升和下降斜率可通过由引脚8至地连接的电阻进行控制。斜率正比于引脚8上的电流输出。
若引脚8加有高电平,则电路进入低电流待机方式。在这种方式下,发送器被关掉,而接收器转至低电流。由于在待机方式下,接收器是慢速的,因此第一个报文将被丢失。
③SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5Vcc上,否则将不能形成CAN协议所要求的电平逻辑。
图2 CAN总线系统智能节点硬件电路
4 节点软件设计
根据节点电路原理图,SJA1000的首地址为0000H。用MCS-51汇编语言[4]编制的初始化程序如下:
CR EQU 0000H ;控制寄存器
CMR EQU 0001H ;命令寄存器
SR EQU 0002H ;状态寄存器
IR EQU 0003H ;中断寄存器
ACR EQU 0004H ;接收代码寄存器
AMR EQU 0005H ;接收屏蔽寄存器
BTR0 EQU 0006H ;总线时序寄存器0
BTR1 EQU 0007H ;总线时序寄存器1
OCR EQU 0008H ;输出控制寄存器
MOV DPTR,#CR
MOV A,#1BH ;开放接收、出错、溢出中断
MOVX @DPTR,A ;置位复位请求,开始初始化
MOV DPTR,#ACR
MOV A,#03H ;接收代码寄存器为03H
MOVX @DPTR,A
INC DPTR
MOV A,#0FCH ;接收屏蔽寄存器为0FCH
MOVX @DPTR,A
INC DPTR
MOV A,#00H
MOVX @DPTR,A
INC DPTR
MOV A,#1CH ;500kbps
MOVX @DPTR,A
INC DPTR
MOV A,#0AAH ;正常输出模式
MOVX @DPTR,A
MOV DPTR,#CR
MOV A,#1AH ;初始化结束,SJA1000进入工作状态
MOVX @DPTR,A
RET
注意:SJA1000初始化程序中,只有当控制寄存器CR中的复位请求为1时(SJA1000工作在复位模式),允许访问上述寄存器,否则既写不进去也读不进去正确的内容。在接收寄存器(RXB)为空,满足下述条件时,报文可被正确地接收。
报文接收条件:接收代码位(AC.7~AC.0)和信息识别码的高8位(ID.10~ID.3)相等,且与接收屏蔽位(AM.7~AM.0)的相反位相或为1,则报文被接收。例如:在初始化程序中,ACR=03H,AMR=0FCH,由此只有信息识别码的高8位为XXXXXX11的数据帧被接收,BTR0的值可决定波特率预分频器(BRP)和同步跳转宽度(SJW)的数值。
BTR1可决定位周期的宽度,采样点的位置及在每个采样点进行采样的次数。程序中BTR0=00H,BTR1=1CH,则波特率为500kbps,有一点必须要注意,系统中所有的节点的BTR0和BTR1的内容都应该相同,否则将无法进行通信,对CR的第二次写访问是清除复位请求位,使SJA1000返回工作模式。
5 结束语
在CAN总线智能通信节点的开发应用中证明,CAN总线具有以下优点:组网自由,扩展性强;自动错误界定,简化了通信的操作;可根据数据内容确定优先权,解决通信的实时性问题。CAN总线网络已在众多工业控制系统中应用,尤其在传输速度较高而且对实时性及可靠性要求高的场合,CAN总线将有更广阔的应用前景。
参考文献:
[1]阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,2002.
[2]饶运涛.现场总线CAN原理及应用技术[M].北京:北京航空航天大学出版社,2003.
[3]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.
[4]马忠梅.单片机语言应用程序设计[M].北京:北京航空航天大学出版社,2003.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。