基于CAN总线的家庭网络设计毕业论文Word文档下载推荐.docx
- 文档编号:4341379
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:72
- 大小:266.33KB
基于CAN总线的家庭网络设计毕业论文Word文档下载推荐.docx
《基于CAN总线的家庭网络设计毕业论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于CAN总线的家庭网络设计毕业论文Word文档下载推荐.docx(72页珍藏版)》请在冰点文库上搜索。
因此,CAN协议对于许多领域的分布式测控是很有吸引力的。
目前CAN已成为ISO11898标准,其特性如下:
1CAN是一种有效支持分布式控制和实时控制的串行通信网络。
2CAN协议遵循ISO/OSI模型,采用了其中的物理层、数据链路层与应用层。
3CAN可以多主方式工作,本质上也是一种CSMA/CD方式,网络上任意一个节点均可以在任意时刻主动地向网络上的其它节点发送信息,而不分主从,节点之间有优先级之分,因而通信方式灵活;
CAN采用非破坏性位仲裁技术,优先级发送,可以大大节省总线冲突促裁时间,在重负荷下表现出良好的性能;
CAN可以点对点、一点对多点(成组)及全局广播等几种方式传送和接收数据。
4CAN的直接通信距离最远可达10km(传输速度底);
最高通信速率可达1Mbps(传输距离近)。
5CAN上的节点数据实际可达110个。
6CAN数据链路层采用短帧结构,每一帧为8个字节,易于纠错;
CAN每帧信息都有CRC校验及其它检错措施,有效地降低了数据的错误率;
CAN节点在错误严重的情况下,具有自动关闭的功能,使总线上其它节点不受影响。
7信号调制解调方式采用NRZ编码/解码方式,并且采用插入填充位(位填充)技术。
8数据位具有支配(Dominantbit)和退让(Recessivebit)两种逻辑值,采用时钟同步技术,具有硬件自同步和定时时间自动跟踪功能。
CAN能够使用多种物理介质进行传输,例如:
双绞线、光纤等。
最常用的就是双绞线。
信号使用差分电压传送,两条信号线被称为CAN_H和CAN_L,静态时均是2.5V左右,此时状态表示为逻辑1也可以叫做“隐性”。
用CAN_H比CAN_L高表示逻辑0,称为“显性”。
此时,通常电压值为CAN_H=3.5V和CAN_L=1.5V。
当“显性”位和“隐性”位同时发送的时候,最后总线数值将为“显性”。
这种特性,为CAN总线的抗干扰,通信简单等特性奠定了基础。
CAN总线的一个位时间可以分成四个部分:
同步段,传播段,相位段1和相位段2,每段的时间份额的数目都是可以通过CAN总线控制器(比如MCP2510)编程控制的,而时间份额的大小tq由系统时钟tsys和波特率预分频值BRP决定:
tq=BRP/tsys。
如下图1.1所示:
图1.1CAN总线的一个位时间
上述四个部分的设定和CAN总线的同步、仲裁等信息有关。
CAN总线的MAC帧结构:
如下图1.2所示,CAN总线的帧数据有两种格式:
标准格式和扩展格式。
图1.2CAN总线的帧数据
第二章系统总体规划
2.1总体系统框架功能及设计
"
基于CAN总线的家庭网络设计与实现是基于图(2.1)CAN总线的总体结构示意图来构造的,系统采用支持CAN标准的总线型网络。
中央计算机系统(主控)通过CAN接口适配卡与CAN总线相连,进行数据交换。
通过双绞线把中央计算机系统和家庭控制器(下位智能节点)挂接在一条总线上,构成低层通信网络。
由于采用了CSMA/CD的信息传输控制技术,允许总线上各节点平等争用总线,从而可构成具有多主节点的冗余网络结构。
图2.1系统总构造图
在低层通信网络中,中央终端系统和家庭电器控制器分别有自己的ID标志。
由于采用CAN标准作为网络通信协议,各节点在网络中的地位相同,于是在设计的过程中可以将终端系统虚拟成主机,而家庭电器控制器则虚拟成从机,响应主机的要求。
中央终端系统负责对整个CAN总线系统进行监视管理,具有系统参数(如传输速率、节点地址等)设置、数据发送、数据请求、本机状态查询、节点状态查询、中断状态查询等功能。
系统工作过程为上位终端向下位节点(家庭电器控制器)发送命令,下位节点识别并执行相应命令。
同时各下位节点也可按要求进行信息交换或者进行独立的操作。
在数据链路层中,规定了支持CAN协议的两种帧格式:
标准式和扩展式。
标准式用来发送数据,用于一个节点传送信息到其它任一或所有节点;
扩展式用来“远程发送请求”,用于一个节点主动要求其它节点发送信息,其中标准式的具体格式如图(2.2)所示
图2.2标准格式
在确定中央终端与家庭电器控制器的通信后,接下来进行中央终端对家庭电器控制器的控制,也就是说当中央终端对电器控制器发出命令时可以使家用电器动作,并且可以使家电通过节点控制器反馈自己的信息。
如转速﹑温度﹑运行情况是否正常等。
2.2从控系统功能及设计
家庭网络控制器的硬件设计
本系统是由许多智能家庭控制器通过CAN总线相连而组成的一个控制器局部网,因此,CAN总线节点的设计就显得极为重要。
尤其是CAN总线中节点与主控制器的连接部分和控制,下面介绍一下本系统中从控的设计思想。
1CAN总线节点的选取
为了系统框架完整的需要,可选取一些有代表性的外部设备来模拟在日常生活中需要控制的设备。
如电机可以通过程序来控制它的正转反转或转速快慢,这样就可以模拟为家庭中的洗衣机。
还可以通过摄像头来模拟监控设备,通过CAN总线把图像信息传送给终端控制器。
2CAN总线节点的控制
在进行系统试验的过程中需要从控部分对节点来进行控制,不光要可以对节点设备的开关进行控制,还需要完成对主控部分进行信息的反馈。
3控制程序
在对节点选取完毕后,就需要对它进行控制,在试验平台上所使用的VC++,这就要求对C++有一定的熟悉程度。
而CAN总线系统的初始化设计是软件设计的关键,这一部分设计不好,系统将不可能正常工作。
因此初始化设计是一个难点,又是一个重点。
4控制界面
系统控制节点后需要有一个具有人性化的界面来方便控制。
本系统的界面程序是使用MINIGUI来进行开发,此程序可以在ARM9试验平台的触摸屏来进行控制,这对系统以后的商业化发展有很大的帮助。
CAN总线以其高性能、高可靠性及其独特的设计越来越受到人们的重视,并被公认为最有前途的总线之一。
在设计的过程中家庭控制器系统中应用了这种总线技术,设计了硬件电路和软件,并得到实际应用,具体设计步骤将在下文着重讲述。
第三章系统功能实现的环境
3.1系统开发平台简介
嵌入式LINUX可以运行的硬件平台十分广泛,从X86、MIPS、POWERPC到ARM,以及其他许多硬件体系结构,目前在世界围,ARM体系结构的SOC逐渐占领32位嵌入式微处理器市场,并且在国市场上很容易购买到ARM核的嵌入式处理器,实验中所应用到的硬件平台也是基于ARM体系结构的,由博创兴业科技开发的UP-NetARM3000和UP-NetARM2410-S实验仪器。
UP-NetARM3000的CPU为AMR7TDMI核的三星S3C44B0X01芯片,由于没有MMU只能跑uClinux,UP-NetARM2410-S的CPU为AMR920T核的三星S3C2410芯片,由于有MMU就可以跑标准的ARM-LINUX核。
由于本设计是在此平台上完成所以现在对这个平台UP-NetARM2410-S做一下详细的介绍。
UP-NetARM2410-S实验仪器介绍
硬件配置
UP-NetARM2410-S的硬件配置如表3.1所示:
表3.1硬件配置表
配置名称
型号
规格
CPU
ARM920T结构芯片三星S3C2410X
工作频率203MHz
以太网
AX88796
10/100M自适应
FLASH盘
SAMSUNGK29F2808
16MB(WinCE64M)
存SDRAM
HY57V561620BT-H
32M2=64M
LCD
STN240*320256色
TFT240X32024位
键盘LED数码管驱动器
ZLG7290
17键数字小键盘
触摸屏
FM7843驱动
USB主从接口
USB1.1
串口
RS232
2个
AD
3个电位器控制输入
调试接口
JTAG,14针、20针
JTAG烧写Flash
音频输出
IIS总线,UDA1341芯片,44.1KHz音频
扩展插槽
三个168Pin
总线直接扩展
DA扩展板
DA转换
SD卡扩展板
GPS_GPRS扩展板
SIMCOM的SIM100-E模块
支持双道语音通信
PS/2&
IC_CARD扩展板
外接键盘鼠标和IC卡
CAN扩展板
IDE_CF卡展板
S3C2410芯片介绍
S3C2410X芯片集成了大量的功能单元,包括:
部1.8V,存储器3.3V,外部IO3.3V,16KB数据CACH,16KB指令CACH,MMU。
置外部存储器控制器(SDRAM控制和芯片选择逻辑)。
LCD控制器(最高4K色STN和256K彩色TFT),一个LCD专用DMA。
4个带外部请求线的DMA。
三个通用异步串行端口(IrDA1.0,16-ByteTxFIFO,and16-ByteRxFIFO),2通道SPI。
一个多主IIC总线,一个IIS总线控制器。
SD主接口版本1.0和多媒体卡协议版本2.11兼容。
2个USBHOST,一个USBDEVICE(VER1.1)。
4个PWM定时器和一个部定时器。
看门狗定时器。
电源控制模式:
标准、慢速、休眠、掉电。
8通道10位ADC和触摸屏接口。
带日历功能的实时时钟。
芯片置PLL。
设计用于手持设备和通用嵌入式系统。
16/32位RISC体系结构,使用ARM920TCPU核的强大指令集。
ARM带MMU的先进的体系结构支持WINCE、EPOC32、LINUX。
指令缓存(cache)、数据缓存、写缓冲和物理地址TAGRAM,减小了对主存储器带宽和性能的影响。
ARM920TCPU核支持ARM调试的体系结构。
部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB)。
其结构图如下图3.2所示:
图3.2S3C2410X芯片
系统管理
1.小端/大端支持。
2.地址空间:
每个BANK128MB(全部1G字节)。
3.每个BANK可编程为8/16/32位数据总线。
4.bank0到bank6为固定起始地址。
5.bank7可编程BANK起始地址和大小。
6.一共8个存储器BANK。
7.6个存储器BANK用于ROM,SRAM和其他。
8.2个存储器BANK用于ROM,SRAM和同步DRAM。
9.每个存储器BANK可编程存取周期。
10.支持等待信号用以扩展总线周期。
11.支持SDRAM掉电模式下的自刷新。
12.支持不同类型的ROM用于启动(NOR/NANDFlash,EEPROM,和其他)。
3.2软件及硬件开发环境
开发PC机的性能
在开发过程中需要安装Redhat9.0,而安装后占用空间约为2.4G-5G之间,并且还要安装ARMLINUX开发软件,因此对开发计算机的硬盘空间要求较大。
实验中硬件为:
CPU:
高于奔腾500M
存:
256M。
硬盘:
40G。
本实验的开发成果是在一个嵌入式系统中使用linux开发出来的,所以根据设计任务需求有如下的开发过程:
1、建立开发环境,操作系统使用REDHAT-LINUX,版本9。
2、配置开发主机,配置MINICOM,一般的参数为波特率115200,数据位8位,停止位1,无奇偶校验,软件硬件流控设为无。
在WINDOWS下的超级终端的配置也是这样。
MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。
配置网络,主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
3、建立引导装载程序BOOTLOADER,在实验的过程中可以从网络上下载一些公开源代码的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,并根据芯片进行移植修改。
有些芯片没有置引导装载程序,比如三星的ARM7、ARM9系列芯片,这样就需要编写烧写开发板上FLASH的烧写程序,网络上有免费下载的WINDOWS下通过JTAG并口简易仿真器烧写ARM外围FLASH芯片的烧写程序。
如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。
这是让系统可以正常运行的第一步。
由于在实验的过程中所使用的是具有多功能的仿真器。
所以可以直接使用开发平台而不用进行烧写,但是在实验结束后仍然需要将实验运行程序烧写入实验平台中。
4、开发应用程序,可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,在实验中有的应用不使用根文件系统,应该直接将应用程序和核设计在一起。
5、烧写核、根文件系统,完成应用程序。
3.3实验平台选用的原因
在实验中为什么要使用REDHAT-LINUX,版本9呢?
是由于由于基于WINDOWS的环境要么有兼容性问题,要么速度有影响,所以在实验中使用了纯LINUX操作系统环境。
因为在实验的过程中开发环境为REDHAT9,它已经支持中文,并且包含了绝大部分的开发工具,所以不用担心装了LINUX就不能使用WINDOWS的问题,一般的情况都是用户已经有了WINDOWS操作系统,再安装LINUX,LINUX会自动安装一个叫作GRUB的启动引导软件,可以选择引导多个操作系统。
选择UP-NetARM2410-S实验仪器作为设计开发的演示平台是由于它的功能广泛,可以AN总线和LINUX的人来说有着很大的帮助。
所以在系统实现的过程中将选择了此有多种方法来表现出设计成果。
并有独立的CAN总线接口,使通信可以十分方便的完成,还可以支持多种节点的接入,使得设计有多种扩展。
其中最为重要的是此套系统拥有大量的教程实验,并提供实验中用到的源代码。
这对第一次接触C套设备做为平台来完成系统的设计。
第四章系统具体实现
4.1通信的实现过程
4.1.1以CAN方式的连接
本系统中最为重要的部分是通信,只有主从通信成功接下来的任务才可以完成。
在通过前一段时间对试验平台的学习后,进行了许多有关本系统设计的试验。
其中有CAN总线自发自收的试验例子,在对原理了解后开始进行主从部分的通信。
CAN能够使用多种物理介质进行传输,例如:
本系统中所使用的是网线来模拟双绞线。
这种特性,在试验的过程中经常被体现出来。
同步段,传播段,相位段1和相位段2,每段的时间份额的数目都是可以通过CAN总线控制器MCP2510编程控制的,而时间份额的大小tq由系统时钟tsys和波特率预分频值BRP决定:
如上图1.1所示。
上述四个部分的设定和CAN总线的同步、仲裁等信息有关,请读者参考以上本论文所介绍CAN总线的部分。
而在本实验系统中各个节点与终端控制器的连接方式是总线型,可见上图例2.1来了解节点与主控的连接方式。
4.1.2CAN通信的控制芯片
在试验中所使用的CAN总线控制器是MCP2510,下面介绍一下MCP2510。
其特点如下:
1支持标准格式和扩展格式的CAN数据帧结构
20-8字节的有效数据长度,支持远程帧
3最大1Mbps的可编程波特率
4两个支持过滤器(Fliter、Mask)的接收缓冲区,三个发送缓冲区
5支持回环(LoopBack)模式
6SPI高速串行总线,最大5MHz(4.5V供电)
73V到5.5V供电
在系统中,S3C2410通过SPI同步串行接口和MCP2510相连。
MCP2510的片选信号,通过接在S3C2410的Bank5上的锁存器(74HC753)来控制。
可以定义宏,来实现对Bank5上的锁存器的操作
S3C2410带有高速SPI接口,可以直接和MCP2510通讯。
通过如下两个函数:
SendSIOData(data)//向同步串口发送数据(Uhal.h)
ReadSIOData()//从同步串口读取数据(Uhal.h)
MCP2510的控制字
如下表所示,MCP2510的控制包括了6种命令:
表2-5MCP2510中的命令
命令
格式
定义
复位
11000000
设置部寄存器为默认值,并设置MCP2510到配置状态
读取
00000011
从选定的寄存器的地址开始读取数据
写入
00000010
向选定的寄存器的地址开始写入数据
发送请求
10000nnn
设置一个或者多个发送请求位,发送缓冲区中的数据
读取状态
10100000
轮流检测发送或者接收的状态
修改位
00000101
按位修改寄存器
波特率的设置
通过设置MCP2510中的CNF1、CNF2、CNF3三个寄存器,实现不同时钟下,CAN总线通讯的波特率的设置。
在UP-NETARM2410中,MCP2510的输入时钟为16MHz。
可以按照如下表2-6所示方式定义CAN总线通讯的波特率。
表2-6MCP2510的波特率设置
CAN波特率
同步段
传输段
相位1
相位2
CNF1
CNF2
CNF3
125Kpbs
1
7
4
0x03
0x9E
250Kpbs
0x01
500Kpbs
0x00
1Mbps
3
2
在MCP2510中有两个Mask过滤器,6个Filter过滤器。
可以控制CAN节点收到指定的一个(或者一组)ID的数据。
MCP2510发送和接收数据
MCP2510中有3个发送缓冲区,可以循环使用。
也可以只使用一个发送缓冲区,但是,必须保证在发送的时候,前一次的数据已经发送结束。
MCP2510中有2个接收缓冲区,可以循环使用。
数据的发送和接收均可使用查询或者中断模式。
下面的一部分代码就是在实验中所设置MCP2510的通信方式:
ioctl(can_fd,UPCAN_IOCTRL_PRINTRIGISTER,1);
ioctl(can_fd,UPCAN_IOCTRL_SETID,id);
#ifdefDEBUG
ioctl(can_fd,UPCAN_IOCTRL_SETLPBK,0);
MCP2510的工作方式有5种,分别为:
配置模式、正常模式、睡眠模式、监听模式、环回模式。
在实验的过程中将把它设置为第二种正常模式,只有这样主控发送字符来调用从控程序时从控部分才可以通过CAN总线接受到字符,需要注意的是在设置工作模式的时候一定要根据实际情况来选用MCP2510那5种工作模式。
4.2从控设备的功能实现
4.2.1从控设备响应的实现
在通信完成后所需要做的就是完成节点设备的功能了,其中响应主控发出的命令是很重要的一个环节,只有从控响应主控的命令后才可以说所设计家庭网络的功能初步完成。
下面就来介绍一下如何完成从控响应的过程。
首先介绍的是设计的第一个节点是直流电机,在实验中可以把它模拟成为洗衣机的原形,通过程序来改变转速、旋转方向。
但是如何让主控来调用电机的运行程序就成为从控响应的一个关键。
在实验中是这样来解决的,以下是电机运行程序的一段代码:
read(can_fd,&
data,sizeof(CanData));
for(i=0;
i<
data.dlc;
i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CAN 总线 家庭 网络 设计 毕业论文