现场总线作业.docx
- 文档编号:6897936
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:12
- 大小:100.10KB
现场总线作业.docx
《现场总线作业.docx》由会员分享,可在线阅读,更多相关《现场总线作业.docx(12页珍藏版)》请在冰豆网上搜索。
现场总线作业
基于CAN总线的楼宇智能环境检测系统的设计
某楼宇有多个房间(如下图所示),其中一个房间可用于集中监测室,每个房间都安装温度传感器并通过CAN总线检测到的温度,温度信号,发送到监控室中的上位机(PC)用于随时监测个房间的环境状况。
1),介绍CAN网络层次结构。
2),介绍CAN总线通信协议的报文格式。
3),在总线上传输的报文以帧结构进行传输,与CAN总线传输相关的关键技术是什么?
实施过程是什么?
4),进行测量结点的硬件设计(基于AT89S51,SJA1000的CAN总线智能结点的总结设计)。
5),进行软件设计,包括AT89S51编程,CAN通讯协议等(CAN结点初始化,报文发送和报文接收三部分的设计做一个描述)。
一,介绍CAN网络层次结构。
参照OSI标准模型,CAN分为数据链路层和物理层。
而数据链路层又包括逻辑链路层LLC(LogicLinkControl)和媒体访问控制层MAC(MediumAccessControl)。
CAN通信模型的分层结构。
(《现场总线技术及其原理》P62)
图二:
OSI七层模型
图一:
CAN的通信参考模型
MAC子层是CAN协议的核心。
MAC子层要为开始一次新的发送确认总线是否可用,在确认总线空闲后开始发送。
物理层规定了结点的全部电气特性,并规定了信号如何发送,因而涉及位定时,位编码和同步的描述。
一般来说,在一个总线段内,要实现不同结点间的数据传输,所有结点的物理层应该是相同的。
二,介绍CAN总线通信协议的报文格式。
CAN的技术规范包括A和B两个部分,CAN2.0A规范所规定的报文帧被称为标准格式的报文帧,他具有11位标示符。
而CAN2.0B规定了标准和扩展两种不同的帧格式,其主要区别在于标示符的长度。
根据CAN报文帧的不同用途,还可以吧CAN报文帧划分为以下4种类型,数据帧,远程帧,出错帧,超载帧。
数据帧
帧起始
仲裁场
控制场
数据场
CRC场
ACK场
帧尾
11位标示符IDE
仲裁场控制场r0
(标准格式)RTR(标准格式)DLC
11位标示符
SRRr1
仲裁场IDE控制场r0
(扩展格式)18位标示符(扩展格式)DLC
RTR
RTR(远程发送请求帧):
显位(0)--数据帧,隐位
(1)--远程帧。
IDE(扩展标示符):
显位(0)--标准格式,隐位
(1)--扩展格式。
远程帧
帧起始
仲裁场
控制场
CRC场
ACK场
帧结束
出错帧
出错标志
出错定界符
出错叠加标志
超载帧
超载标志
超载定界符
超载标志叠加
三,在总线上传输的报文以帧结构进行传输,与CAN总线传输相关的关键技术是什么?
实施过程是什么?
不同于其它总线系统,当错误产生时CAN协议不能立即使用应答报文来取代错误信号,对于错误侦测CAN协议有完整的三种报文级机制:
循环冗余检测(CRC)
帧检测(Framecheck)
ACK错误
CAN协议也提供两种位元级的错误侦测机制:
监视(Monitoring)
位填充(Bitstuffing)
如果至少一个站使用上述机制发现一个或多个错误,则发送“错误标志(errorflag)”来取消当前的传送,阻止其它站继续接收报文,以确保通过网络的数据连贯性,一个错误的报文传送被取消后,发送者自动重新尝试发送(自动重发),并重新进行总线访问权的竞争。
四,进行测量结点的硬件设计(基于AT89S51,SJA1000的CAN总线智能结点的总结设计)。
1,单片机AT89S51的选取(参考来自XX百科):
(1)、4kBytesFlash片内程序存储器;
(2)、128bytes的随机存取数据存储器(RAM);
(3)、32个外部双向输入/输出(I/O)口;
(4)、6个中断源;
(5)、2个16位可编程定时器/计数器;
(6)、2个全双工串行通信口;
(7)、片内振荡器和时钟电路;
(8)、全静态工作:
0Hz-33MHz;
(9)、可编程串行通道;
(10)、低功耗的闲置和掉电模式。
2,CAN通信控制器SJA1000(参考自《现场总线技术及其原理》P87~P91):
SJA1000是一种独立控制器,用于移动目标和一般工业环境中的区域网络控制(CAN),它是PHILIPS半导体PCA82C200CAN控制器BasicCAN的替代产品而且它增加了一种新的工作模式PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议。
SJA1000的主要特点:
(1):
具有64字节的FIFO扩展接受缓冲器。
(2):
位通信速率高达1Mb/S。
(3):
采用24MHz的时钟频率。
(4):
支持多种微机处理器接口。
(5):
可编程配置CAN输出驱动方式。
(6):
单触发发送。
(7):
具有不应答,不激活出错标志的只听模式。
(8):
接受滤波器扩展为4字节编码,4字节屏蔽。
(9):
自接收请求。
(10):
带读写访问的出错计数器。
(11):
可通过编程设置出错报警限。
(12):
可对总线错误的出错中断。
温度传感器采集温度信息,并通过基于SJA1000的CAN总线网络将信息传输至PC机。
当各个从节点的温度数据异常时,主节点会实时准确地显示出该信息,进而进行管理或报警。
本模块还可以进行传感器扩展和CAN网络扩展,根据实际需要只要在单片机端口接入其它传感器就可以用来采集相应的参数,同时如将终端节点的SJA1000通信程序改配置为CAN网关转发程序即可扩大CAN网络容量。
五,进行软件设计,包括AT89S51编程,CAN通讯协议等(CAN结点初始化,报文发送和报文接收三部分的设计做一个描述)。
测温程序的设计流程是DS18B20复位、ROM操作、存储器操作、启动温度转换并读取数据。
程序设计关键是读取温度数据时的延时数值一定要准确,在规定的时序范围内才能准确读出每一位的值。
CAN总线通信程序的总体设计流程是:
头文件中先定义好SJA1000的寄存器所在的物理地址,然后使SJA1000进入复位模式初始化各个寄存器,将温度数据形成报文装入发送缓冲区,调用发送子程序,等待接收中断并读取接收缓冲区数据,如果是主节点回复的确认帧则该节点,单片机进入低功耗模式,直到由主节点再发来命令报文唤醒。
串口初始化:
(1):
确定T1的工作方式(方式2:
编程TMOD=0x20)。
(2):
计算T1的初值,装载TH1,TL1(T1:
0xFD)。
(3):
启动T1(编程TCON中的TR1位)。
(4):
确定串行口控制(编程SCON寄存器);
(5):
在中断方式工作时,要进行中断设置(编程IE,IP寄存器)。
中断控制(参考自《单片机原理及接口接口技术》胡建):
定时器控制寄存器(TCON):
控制对象
T1
T0
外中断1
外中断0
位序
D7
D6
D5
D4
D3
D2
D1
D0
位地址
8Fh
8Eh
8Dh
8Ch
8Bh
8Ah
89h
88h
位名
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
串行口控制寄存器(SCON):
位序
D7
D6
D5
D4
D3
D2
D1
D0
位地址
9Fh
9Eh
9Dh
9Ch
9Bh
9Ah
99h
98h
位名
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
中断允许寄存器(IE);
位序
D7
D6
D5
D4
D3
D2
D1
D0
位地址
AFh
AEh
ADh
ACh
ABh
AAh
A9h
A8h
位名
EA
/
/
ES
ET1
EX1
ET0
EX0
中断优先级控制寄存器(IP):
位序
D7
D6
D5
D4
D3
D2
D1
D0
位地址
AFh
BEh
BDh
BCh
BBh
BBh
B9h
A8h
位名
/
/
/
PS
PT1
PX1
PT0
PX0
编程实现:
#include
Unsignedcharhas_r,rec_c;
Voidmain()
{
TMOD=0x20;//设T1工作方式位方式2
TH1=0xFD;//设波特率位9.6K
TL1=0xFD;
TR1=1;//打开T1
REN=1;//允许串行接收数据
SM0=0;//设置方式1
SM1=1;
SM2=0;
EA=1;//开串行总中断
ES=0;//开串行中断
Voidser()
{
RI=0;//接收中断标志位清0
Rec_c=SBUF;
Has_r=1;//接收完成标志
}
While
(1)
{
if(has_r==1)
ES=0;//关串行中断
has_r=0;
SBUF=rec_c;
while(!
TI)
TI=0;
ES=1;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现场总线 作业