基于CAN总线的数据采集控制系统开发 毕业论文.doc

上传人:来看看 文档编号:3920164 上传时间:2019-10-10 格式:DOC 页数:29 大小:427.52KB
返回 下载 相关 举报
基于CAN总线的数据采集控制系统开发 毕业论文.doc_第1页
第1页 / 共29页
基于CAN总线的数据采集控制系统开发 毕业论文.doc_第2页
第2页 / 共29页
基于CAN总线的数据采集控制系统开发 毕业论文.doc_第3页
第3页 / 共29页
基于CAN总线的数据采集控制系统开发 毕业论文.doc_第4页
第4页 / 共29页
基于CAN总线的数据采集控制系统开发 毕业论文.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《基于CAN总线的数据采集控制系统开发 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于CAN总线的数据采集控制系统开发 毕业论文.doc(29页珍藏版)》请在三一文库上搜索。

1、学学 士士 学学 位位 论论 文文 系系 别:别: 计算机科学与技术计算机科学与技术 学科专业:学科专业: 计算机科学与技术计算机科学与技术 姓姓 名:名: 运运 城城 学学 院院 2012 年年 06 月月 基于基于 CAN 总线的数据采集控制系统总线的数据采集控制系统 开发开发 系系 别:别: 计算机科学与技术计算机科学与技术 学科专业:学科专业: 计算机科学与技术计算机科学与技术 姓姓 名:名: 指导老师:指导老师: 运运 城城 学学 院院 2012 年年 06 月月 基于基于 CAN 总线的数据采集控制系统开发总线的数据采集控制系统开发 摘 要:随着计算机网络的发展,越来越多工业现场过

2、程参数的传输控制开始 采用现场总线技术,其中CAN总线由于其布线简单,通信控制实时,系统维护 方便等优越的性能已被广泛地采用。本系统设计一种基于CAN总线的数据采集 控制系统。系统硬件主体采用AT89S52芯片为微控制器,MCP2515独立CAN控 制器为CAN通信控制器,将它们两组合一起构成多个CAN节点(总共3个节点, 分别命名为A1、A2、B) ,其中A1板接一个18B20温度传感器,B板接一个1602 液晶显示器。系统软件采用模块化设计,分为上位机程序模块(物理实现于B 板上) 、数据采集处理模块和CAN通信模块。系统运行结果是无论是A1板发送 的温度数据信号,或者是A2板手动发送的中

3、断信号,在数码管上都能正确显示, 实现了CAN节点间的分时通信。 关键词:CAN总线 数据采集 通信 The Development of Data Acquisition and Control System Based on CAN Bus Abstract: With the development of computer network, more and more transmission control of parameters of process in industry employs field-bus technology, in which because of sim

4、ple wiring, real-time control of communications, and convenient maintenance, has been widely adopted. In this paper I have designed a data acquisition and control system based on CAN bus. In the system, AT89S52 chip is chosen to be the micro controller, and MCP2515 is used as the CAN controller, so

5、that they can be combined to form multiple CAN nodes (a total of three nodes, respectively, named A1, A2, B), where A1 board connects a 18B20 temperature sensor, and B board connects a 1602 LCD monitor. The software system is modular in design, divided into a host computer program module (physical r

6、ealization in the B board), data acquisition and processing module and CAN communication module. The running result of the system is whether the temperature data signal sent by A1 board or the interrupt signal sent by A2 board can be correctly displayed in the digital pipe. So, time-sharing communic

7、ation between the CAN nodes is realized. Keywords: CAN Bus Data Acquisition Communication 目目 录录 前 言.1 第 1 章 方案设计与论证2 1.1 任务要求2 1.1.1 设计任务 .2 1.1.2 设计要求 .2 1.2 总体设计方案2 1.3 CAN 控制器的选定.3 1.4 微控制器控制模块的选定3 1.5 温度传感器模块的选定3 1.6 数码管显示模块的选定4 1.7 电源模块的选定4 1.8 最终方案4 第 2 章 硬件设计5 2.1 系统工作原理及功能简介5 2.2 AT89S52 微控制

8、器的简介5 2.3 MCP2515 独立 CAN 控制器的介绍.6 2.4 CAN 总线概述.7 2.4.1 CAN 协议的背景.7 2.4.2 CAN 协议的原理.7 2.5 DS18B20 温度传感器8 2.6 1602 液晶显示器9 2.7 CAN 总线现场的整体设计.10 2.7.1 单片机引脚的设定.10 2.7.2 整体设计 .10 第 3 章 软件设计11 3.1 CAN 总线系统总体流程.11 3.2 程序流程图12 3.3 部分功能代码14 第 4 章 测试结果17 结 论.18 致 谢19 参考文献.20 基于 CAN 总线的数据采集控制系统开发 第 1 页 共 20 页

9、前前 言言 自从德国 BOSCH 公司在 20 世纪 80 年代提出汽车 CAN 总线通信网络的概 念之后,经过三十多年技术上的积累更新和需求上的变化发展,CAN 总线已经 成为车载网络通信的主流方式。然而由于它在应用层协议方面未做统一,直到 今天,依然没有完全统一的应用层通信协议。大多数有实力的汽车生产商都凭 借自己独特的设计生产技术来制定吻合本公司使用的应用层协议。 然而,在国内汽车领域,汽车专业人才对 CAN 的研究还只处在发展的开 端,CAN 总线的应用相对欧美国家来说就更落后了。简言之,CAN 总线技术 在国内的发展现在仅处于国际轨道的起跑线上。根据国内技术的发展规则来看, 似乎大部

10、分创新性的技术只有在一些国家级的研究机构或者国家顶尖的高校才 更可能取得良好的发展与应用,然而,我本着网络资源的共享性与自己对通信 技术的痴迷,挑战了一次规则,对 CAN 总线通信协议进行了深入研究。 CAN(Controller Area Network)总线,即控制器局域网总线,是一种有效支 持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性、及独特 的设计和适宜的价格而广泛应用于工业现场控制、医疗器械、智能楼宇、交通 工具等领域,并已被公认为几种最有前途的现场总线之一。CAN 总线规范已被 ISO 制订为国际标准 ISO11898,并得到了众多半导体器件厂商的支持,推出了 各种

11、集成有 CAN 协议的产品,包括单独的可编程 CAN 控制器的 MCU(如 Philips 公司的 P8XC5XX2 系列单片机)1。 CAN 总线系统智能节点一般由单片机和 CAN 控制器两者组成,前者的优 点是单片机的选择范围比较灵活,在对软件和接口稍作修改的基础上,不需要 更换单片机就可以实现 CAN 总线通信。 本文选择 AT89S52 芯片为微控制器,MCP2515 独立 CAN 控制器作为本系 统的 CAN 控制器,将它们俩组合构成三个 CAN 智能节点。三个节点之间保持 互相独立,但互相之间又能通信,因此,他们的关系是分工合作关系。最后, 本系统实现了在 CAN 总线上的分时通信

12、,成为了一个完整且稳定的数据采集 控制系统。 第 2 页 共 20 页 第第 1 章章 方案设计与论证方案设计与论证 1.1 任务要求任务要求 1.1.1 设计任务 构建 CAN 总线构架的数据采集控制系统,包括传感器、执行器和显示层。 通过 CAN 通信接口构成总线配置/数据采集/控制层,总线配置/数据采集/控制 层与智能仪表 CAN 节点层之间及各层次内部通过 CAN 总线通讯,仪表层的信 号转换成 CAN 线性总线数据,传给总线配置/数据采集/控制层的上位机,完成 数据采集和控制。系统设计任务如图 1.1 所示。 图 1.1 系统设计任务 1.1.2 设计要求 1总线上的节点能发送信号,

13、也能接收信号,通信方式采用一对多方式; 2总线上有两个节点同时需要发送信息时,应比较两个待发送数据帧的 标识符位场的大小以进行仲裁; 3总线上可以任意挂接多个节点,而不需要改变待挂接节点的软硬件。 1.2 总体设计方案总体设计方案 总体方案为:在整体上分为两大模块,分别是CAN节点和CAN总线。系统 方案如图1.2所示。 CAN 节点 传感器 总线配置、采集和控制节点 CAN 节点 执行器 CAN 节点 显示器 基于 CAN 总线的数据采集控制系统开发 第 3 页 共 20 页 图 1.2 系统设计方案 其中 A1、A2 和 B 都是由微控制器与 CAN 独立控制器组成的 CAN 节点, 其中

14、 A1 外接了一个温度传感器用于采集周围的温度,B 板外接一个数码管显 示器用于显示温度传感器采集到的温度,A2 板用于向总线手动发送摁键中断信 号。 1.3 CAN 控制器的选定控制器的选定 独立CAN总线控制器常用的有SJA1000和MCP2515两种,下面将之做一个 比较。 SJA1000:主要用于移动目标和一般工业环境中的区域网络控制。PHILIPS 半导体公司PCA82C200 CAN控制器(BasicCAN)的替代产品,而且它增加了 一种新的操作模式PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议。 MCP2515:最大的优点是价钱便宜,与单片机是通过SPI接口的,接

15、线简 单只需要4根线即可23。 综合考虑,出于项目效率与经济效益两大因素,在此设计中采用 MCP2515。 1.4 微控制器控制模块的选定微控制器控制模块的选定 由于AT89S52是一种低功耗,高性能CMOS 8位微控制器,具有8K在系统 可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦 适于常规编程器。所以,选用AT89S52就作为本项目的微控制器4。 第 4 页 共 20 页 1.5 温度传感器模块的选定温度传感器模块的选定 由于在工业现场中,安装的传感器最好耐磨耐碰,体积小,

16、接线方便,易 于封装,适用于各种狭小空间设备数字测温和控制领域。 所以,在此选择DS18B20数字温度传感器。 1.6 数码管显示模块的选定数码管显示模块的选定 本设计中选择LCD1602液晶显示器,因为1602是字符型液晶,能显示字母 与数字,控制简单,成本较低5。 1.7 电源模块的选定电源模块的选定 方案1:采用专用的外接电源模块给B母版供电(A1、A2也行)。 方案2:A1节点采用A1母版上的CMOS电池供电,A2、B节点一样,考虑 到AT89S52的电压极性引脚数不够,所以使用了CAN接线板,它上面提供了两 排电压极性引脚,一组可作为CAN总线的CAN.H与CAN.L使用,一组便可作

17、为 扩展的电源引脚使用,这样,1602液晶显示器与18B20温度传感器就被供电了。 综合考虑上述方案,并且考虑到现场的移动性,狭窄性,因此,本设计选 择方案2。 1.8 最终方案最终方案 经过反复论证,我们最终确定的方案如下。 1采用AT89S52单片机作为控制核心; 2采用MCP2515控制器作为CAN控制器; 3采用18B20温度传感器采集CAN现场温度; 4采用LCD1602液晶显示器显示温度值及其他值; 5采用智能节点所在母版自带的cmos电池供电。 系统总体结构如图1.3所示。 基于 CAN 总线的数据采集控制系统开发 第 5 页 共 20 页 图 1.3 系统总体结构 第 6 页

18、共 20 页 第第 2 章章 硬硬 件件 设设 计计 2.1 系统工作原理及功能简介系统工作原理及功能简介 工作原理:CAN总线上的一对多播通信方式,非破坏性仲裁方式等。 功能简介:在A1节点上,18B20温度传感器采集温度值,由AT89S52单片 机处理发送给MCP2515控制器,接着MCP2515控制器把温度信号转换为CAN数 据帧的形式放在发送缓冲器里,同时查看CAN总线电平,判断是否有其他节点 在使用总线,如果没有,便开始发送数据帧。最后,A2、B节点都能接收到此 帧。在B节点上,数据帧被放在MCP2515控制器的接收缓冲器中,接着把它转 换成电平信号发送给AT89S52单片机,最后在

19、1602液晶显示器上显示出来。 2.2 AT89S52 微控制器的简介微控制器的简介 AT89S52为ATMEL所生产的一种低功耗、高性能CMOS 8位微控制器具有 8K在系统可编程FLASH存储器。 1.AT89S52主要功能 (1) 拥有灵巧的8位CPU和在线可编程FLASH; (2) 晶片内部具有时钟振荡器(传统最高工作频率可至12MHz); (3) 内部程序存储器(ROM)为8KB; (4) 内部数据存储器(RAM)为256B; (5) 32个可编程I/O口线; (6) 8个中断向量源; (7) 三个16位定时器/计数器4。 2.AT89S52引脚图 AT89S52的引脚如图2.1所示

20、。 图2.1 AT89S52引脚 基于 CAN 总线的数据采集控制系统开发 第 7 页 共 20 页 2.3 MCP2515 独立独立 CAN 控制器的介绍控制器的介绍 MCP2515是Microchip的一款独立控制器局域网络(CAN)协议控制器,完 全支持CAN V2.0B技术规范。该器件能发送和接受标准和扩展数据帧以及远程 帧。MCP2515自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不 想要的报文,因此减少了主单片机的开销。MCP2515与MCU是通过串行外设接 口SPI来实现连接的6。 另外,MCP2515有两种封装类型:18引脚PDIP/SOIC与20引脚TSSOP,在

21、此项目中,我使用18引脚PDIP/SOIC,它的引脚如图2.2所示。 图2.2 MCP2515 18引脚PDIP/SOIC MCP2515芯片的部分引脚功能如下。 TXCAN:连接到CAN总线的发送输出引脚; RXCAN:连接到CAN总线的接收输入引脚; CLKOUT:带可编程预分频器的时钟输出引脚; OSC2:振荡器输出; OSC1:振荡器输入; VSS:逻辑和I/O引脚的参考地; INT:中断输出引脚; SCK:SPI接口的时钟输入引脚; SI:SPI接口的数据输入引脚; SO:SPI接口的数据输出引脚; CS:SPI接口的片选输入引脚; RESET:低电平有效的器件复位输入引脚; VDD

22、:逻辑和I/O引脚的正电源7。 第 8 页 共 20 页 2.4 CAN 总线概述总线概述 2.4.1 CAN 协议的背景 CAN(Controller Area Network)数据总线是一种极适于汽车环境的汽车局域 网。CAN总线是德国Bosch公司为解决汽车监控系统中的复杂技术难题而设计 的数字信号通信协议,它属于总线式串行通信网络。由于采用了许多新技术和 独特的设计思想,与同类车载网络相比,CAN总线在数据传输方面具有可靠、 实时和灵活的优点8。 1991年9月Philips半导体公司制定并发布了CAN技术规范(版本2.0),该技术 规范包括A部分和B两部分,其中2.0A给出了CAN报

23、文的标准格式;2.0B给出了 标准和扩展两种格式。此后,1993年11月ISO正式颁布了道路交通运输工具一 数据信息交换一高速通信控制器局域网(CAN)的国际标准IS011898,为控制器 局域网的标准化和规范化铺平了道路8。 2.4.2 CAN 协议的原理 CAN的ISO/OSI参考模型分层结构如图2.3所示。 图2.3 CAN分层结构 图2.3描述了CAN协议涉及到的协议栈有物理层与数据链路层,由于这是很 基本的一些网络知识,而且本论文也不需要了解的那么细致,于是我在此做一 省略。CAN协议的特点如下。 (1)CAN是到目前为止唯一具有国际标准且成本较低的现场总线; 基于 CAN 总线的数

24、据采集控制系统开发 第 9 页 共 20 页 (2)CAN废除了传统总线的站地址编码,对通信数据块进行编码,为多 主方式工作不分主从,通信方式灵活,通过报文标识符通信,可使不同的节点 同时接收到相同的数据,无需站地址等节点信息; (3)CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息 时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地 继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的 情况下也不会出现网络瘫痪情况(以太网则有可能出现这种情况); (4)CAN只需通过报文滤波即可实现点对点、一点对多点即全局广播等 方式传送接收数据,无需专门的“调

25、度”; (5)CAN上的节点数最多可达110个(主要取决于总线驱动电路); (6)CAN采用短帧结构,单帧最大长度仅150位,传输时间短,从而保证 了通信的实时性,受干扰概率低; (7)CAN的每帧信息都有CRC校验及其他检错措施,降低了数据出错率, 保证了数据通信的可靠性; (8)CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上 其他节点的操作不受影响8-12。 2.5 DS18B20 温度传感器温度传感器 DS18B20温度传感器是有DALLAS公司生产,它的主要特征如下。 (1( 全数字温度转换及输出; (2( 先进的单总线数据通信; (3( 最高12位分辨率,精度可达正负0

26、.5摄氏度; (4( 12位分辨率时的最大工作周期位750毫秒; (5( 可选择寄生工作方式; (6( 检测温度范围为-55摄氏度- +125摄氏度; (7( 内置EEPROM,限温报警功能; (8( 64位光刻ROM,内置产品序列号,方便多级挂接13。 DS18B20 的引脚如图 2.4 所示。 图 2.4 DS18B20 芯片封装 第 10 页 共 20 页 2.6 1602 液晶显示器液晶显示器 所谓1602是指显示的内容为16*2,即可显示两行,每行16个字符。1602分 为两种:绿色背光,黑色字体与蓝色显示屏,背光白色字体。在此,我选择第 一种。字符型LCD1602通常有14条引脚线

27、或者16条引脚线的LCD,多出来的2 条线是背光电源线VCC(15脚)和地线(16脚)5。在本设计中的1602是16脚 的,1602的引脚图如图2.5所示。 图2.5 1602液晶显示器引脚 1602液晶显示器各引脚的功能如表2.1所示。 表2.1 1602液晶显示器各引脚功能表 引脚 号 引脚名电平输入/输出作用 1VSS电源地 2VCC电源(5V) 3VEE对比调整电压 4RS0/1输入0=输入指令 1=输入数据 0=向LCD写入指令或数据 5R/W0/1输入 1=从LCD读取信息 使能信号,1时读取信息 6E1,1至0输入 1至0(下降沿)执行指令 7DB00/1输入/输出数据总线lin

28、e0(最低位) 8DB10/1输入/输出数据总线line1 9DB20/1输入/输出数据总线line2 10DB30/1输入/输出数据总线line3 11DB40/1输入/输出数据总线line4 12DB50/1输入/输出数据总线line5 13DB60/1输入/输出数据总线line6 14DB70/1输入/输出数据总线line7(最高位) 15A+VCCLCD背光电源正极 16K接地LCD背光电源负极 基于 CAN 总线的数据采集控制系统开发 第 11 页 共 20 页 2.7 CAN 总线现场的整体设计总线现场的整体设计 2.7.1 单片机引脚的设定 AT89S52中P0、P1、P2、和P

29、3四个端口的最主要的共同点是:都是具有8 位的双向I/O口。所以从功能效果上说,用哪个引脚连接外设都无所谓。然而, 考虑到连线的有序性,本设计决定引脚连线设定如下。 (1)与MCP2515控制器的连接(对三个节点统一):sbit SCK=P23;sbit SI=P22;sbit SO =P21;sbit CS =P20; (2)A1节点中18b20温度传感器的连线:sbit DQ=P24; (3)A2节点中按键的连线:sbit key=P26; (4)B节点中1602液晶显示器的连线:sbit en=P02;sbit rw=P01;sbit rs=P00。 2.7.2 整体设计 本项目硬件设计

30、的连线如图2.6所示。 图2.6 硬件连线 第 12 页 共 20 页 第第 3 章章 软软 件件 设设 计计 在进行CAN总线现场采集控制系统开发中,我们基于具体情况,主要使用 Keil C51软件与proteus professional软件,采用主流设计语言C语言对单片机进行 编程实现各项功能。C语言功能丰富,表达能力强,目标程序效率高,可移植 性好,既具有高级语言的优点,又具有低级语言的许多特点,应用十分广泛14。 3.1 CAN 总线系统总体流程总线系统总体流程 CAN总线的大致流程如图3.1所示。 图3.1 系统总流程 基于 CAN 总线的数据采集控制系统开发 第 13 页 共 2

31、0 页 第 14 页 共 20 页 3.2 程序流程图程序流程图 1. 单片机AT89S52处理信号流程图 当整个系统上电复位时,首先MCU与MCP2515被初始化,接着等待中断, 当确定中断发生,先要关掉中断(防止其他中断进入),然后再响应中断,具 体如图3.2所示。 上电复位 MCU初始化和MCP2515初始化 等待中断 有中断发生? 关中断 定时器中断? ANO通道执行A/D转换读MCP2515中断标志 转换值写入MCP2515发送缓冲错误中断错误处理程序 向MCP2515发送数据发送请求命令读MCP2515接受过滤寄存器 重置定时器 过滤匹配? 无效报文 处理请求 打开中断允许 N Y

32、 YN Y N N Y 图3.2 AT89S52单片机控制流程 2. 报文发送流程图 由于MCP2515 CAN独立控制器处理报文接收与报文发送的工作原理基本上 一致,因此在这,本设计只给出报文发送流程图。 需要注意的有两个点,仲裁程序和出错处理程序,这两处的设计也正是 CAN协议的优势,如图3.3所示。 基于 CAN 总线的数据采集控制系统开发 第 15 页 共 20 页 开始 任一 TXBnCTRLTXREQ 位=1? 清零TXBnCTRLABTF TXBnCTRLMLOA TXBnCTRLTXERR CAN总线是否可 进行报文发送? 检查TXBnCTRLTXP 以确定最高优先级的报文 报

33、文发送 报文发送成功? TxBnCTRLTXREQ位清零 CANINTE TXnIE=1? CANINTE.TXnIF 置一 产生中断 返回开始 是 否 TXBnCTRL.TXREQ=0 或CANCTRLABAT=1? 否 报文出错 或仲裁失败? TxBnCTRLTX ERR置1 TxBnCTRLML OA置1 CANINT E.MEERE? CANINTE.MEE RF置1 产生 中断 是 是 报文 出错 仲裁 失败 是 否 否 是 是 否 否 图3.3 报文发送流程 第 16 页 共 20 页 3.3 部分功能代码部分功能代码 1A1板主程序里头main()函数 void main() u

34、nsigned char num=0; unsigned char b8=0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08; Init2515(); /初始化MCP2515独立CAN控制器 Init_Cpu(); /初始化微控制器CPU init_play(); /初始化显示 P34=0; display(10); while(1) unsigned char i=1; if(key=0) /判断A1节点上的微控制器的P2.6端口是否为零 delay10ms(); /延时10毫秒 while(key=0); while(i=1) read_temp(); /读取温

35、度 ds1820disp(); /显示 CAN_Send_onebyte(tvalue); /发送按键状 display(tvalue); delay10ms(); 2B板主程序里头main()函数 void main() unsigned char a8; unsigned char key_code; unsigned char b8=0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08; Init2515(); /初始化B板独立CAN控制器MCP2515 Init_Cpu(); /初始化B板微控制器CPU 基于 CAN 总线的数据采集控制系统开发 第 17 页

36、共 20 页 display(11);/显示该板号b板 lcd_init(); while(1) lcdcom(0x80+0x40); lcd(“Curre:xxxxxxxxxxxxxxxxxxxxxxxxxxxx “); key_code=CAN_Receive_onebyte(); gRXFlag=0; delay_ms(100); lcdcom(0x0c); write_hms(11,key_code); /写数据分 write_hms(14,key_code); /写数据秒 lcdcom(0x80+0x40); lcd(“Curre:right turn “); delay_ms(10

37、0); 3延时头文件代码 #ifndef _FUNCTION_h_ #define _FUNCTION_h_ /write your header here /#include “reg51.h“ void delay_ms(unsigned char t) unsigned char i,j; for (i=0;i0;i-) for(j=248;j0;j-); void delay_s(unsigned char t) /延时程序,延时1秒 unsigned char i,j; for(i=0;it;i+) for(j=0;j34135;j+); 第 18 页 共 20 页 #endif 4

38、18B20温度传感器读取温度值函数代码 read_temp() /*读取温度值并转换*/ uchar a,b; ds1820rst(); ds1820wr(0xcc); /*跳过读序列号*/ ds1820wr(0x44); /*启动温度转换*/ ds1820rst(); ds1820wr(0xcc); /*跳过读序列号*/ ds1820wr(0xbe); /*读取温度*/ a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1;

39、 tflag=1; tvalue=tvalue*(0.625); /温度值扩大10倍,精确到1位小? return(tvalue); 5.数码管显示函数代码 void display(unsigned char num) / 显示子函数 P3_5=0; /选通第一位数码管的阳极位选端,即给数码管的共阳极供电 P2_6=0; /选通第二位数码管的阳极位选端,即给数码管的共阳极供电 P1=tablenum; /将第num个显示编码送P0口 基于 CAN 总线的数据采集控制系统开发 第 19 页 共 20 页 第第 4 章章 测测 试试 结结 果果 1测试步骤 (1)利用电脑通过下载器将程序编译烧制

40、入单片机AT89S52中,A1节点 拷贝A1板程序,A2节点拷贝A2板程序,B节点拷贝B板程序; (2)上电使总线复位,并测试硬件连线是否连通; (3)A2节点发送一个按键信号,看液晶显示器能否显示; (4)A1节点检测到的温度值,通过按键发送至总线上,然后看液晶显示 器能否显示温度值。 2测试结果及其分析 测试过程如表4.1所示。 表4.1 测试数据记录 内容 结果 次数 硬件 连线 是否 成功 数码 管能 否显 示按 键值 数码 管能 否显 示温 度值 问题详细 描述 针对错误问题 的解释 针对错误问题的解 决办法 第一次否否否 A2节点上 的CAN控 制器的电 源灯不断 闪烁 A2节点上

41、的 CAN控制器与 微控制器的SPI 接口有可能松 动 将相应的SPI接口稍 微用力压,使连接 严实 第二次是否否 数码管不 能显示任 何信号值 经过检查,原 来是CAN.H线 与CAN.L线之 间没加上拉电 阻 在CAN.H线与 CAN.L线之间的两 端各接上一个120欧 姆的上拉电阻 第三次是能否 数码管上 只能显示 按键值 问题应该源于 18B20温度传感 器上面 将18B20的三根引 脚线重接一下,保 证接触良好 第四次是能否如上 问题应该出在 软件设计上, 接下来看相应 的软件模块, 发现自己没按 规则操作 下次测试的时候, 当系统上电初始化 完成后,应该先给 A1节点的P26端口

42、一个低电平的命令, 这样A1节点才开始 发送温度信号 第 20 页 共 20 页 第五次是能能- 基于 CAN 总线的数据采集控制系统开发 第 21 页 共 20 页 结结 论论 毕业论文实际是培养学生综合运用所学知识,发现、提出、分析和解决实 际问题,锻炼实践能力的重要环节,是对我们今后即将步入社会走向工作岗位 的实际工作能力的具体训练和考察过程。不仅如此,毕业论文还是对我们四年 大学生活所学到知识的综合考验。 经过几个月的毕业设计,从资料查找、方案设计,再到基本的电路设计、 调试过程,再到软件设计、测试,我学习了单片机系统设计的整个过程。从传 感器信号的处理,到单片机接收并处理信号,再由M

43、CP2515 CAN控制器的信号 转换再到输出信号至CAN总线,使我更好的了解了各类传感器,掌握了CAN协 议的原理及感受到了CAN设计的优越性,并熟悉了单片机的中断和定时器在控 制程序中对各种任务的合理安排,使整体系统能够更好的协同工作,增强了自 己的动手能力,更好的熟悉了解了一个基于CAN总线的单片机系统的开发过程。 测试结果表明,本系统实现了设计任务要求,CAN总线上的各个节点都能 进行实时通信,B节点上的1602液晶显示器能正确地显示由其他节点发送来的 温度值与按键信号,事实表明,当A1向总线发送温度信号,同时A2发送按键信 号时,一般都是温度信号先发送,这说明了CAN总线对温度信号这

44、种报文有较 高的优先级,这是由报文中标识符位场值的大小决定的。 学习的过程中碰到过很多疑问与不懂,但经过重复的资料查询,求解名师 及不断的实践验证,对于整个毕业设计中的主要问题,我都准备了解决方案, 使得我在后面的方案实现过程中感觉不再是那么迷惘,较快较好地实现了毕业 设计。经过了本次毕业设计,我感受到了做研发的快乐,这种快乐源于对事情 本身的兴趣与热情,源于对研发目标的美好憧憬,同时,我知道本次毕业设计 仅仅是我进入嵌入式行业的一个开端,真正的挑战将会接踵而来。 最后,我觉得作为一名通信行业的技术研发者,基于需求去尽情追求完美 的技术设计,是件多么有趣有意义的事情。那么,CAN总线技术在今天

45、是否完 美呢?答案是:不完美!以车载网络为例,一辆汽车一般由车身系统、发送机 传动系统和多媒体系统组成。车身系统可以使用低速CAN标准,发动机、ABS 防抱死系统可以采用TTCAN标准,那么多媒体系统呢?显然,速率最大也只有 1Mbps的CAN不能满足多媒体系统了,因为多媒体数据大,要求通信实时和传 输速度快。所以,CAN技术在本身的设计上需要不断改善发展,才能满足控制 局域网内的各种需求,使得其能继续坐在控制局域网领域的龙头老大位置上。 第 22 页 共 20 页 致致 谢谢 在系统设计实现和论文的撰写过程中,有赖于过很多研究过这方面的朋友 的经验,在这里对他们表示衷心的感谢,对在大学四年中

46、给予我帮助和关心的 人致以最衷心的谢意! 首先要向我的指导老师赵润林老师致以诚挚的谢意,感谢老师在整个 毕业设计的开展过程中细心的帮我分析系统的设计方案,在我遇到困难的时候 提供宝贵的指导意见,并多次在百忙中抽出时间专门为我们开会讨论解决系统 的各个方面的问题,对我最终毕业设计和论文的完成起到了关键的作用。老师 严谨的治学态度、精益求精的作风和诲人不倦的风范,让我终身难忘。 感谢荆飘丝老师和张战峰老师,作为我的辅导员,在我四年的大学生活中, 在学习上和生活上的指导和关心给予我很大的帮助;感谢南丽丽老师,从大一 接触南老师的 C 语言课程开始,南老师每次都会细心的回复我给她发送的每封 学习邮件,

47、她真是做到了诲人不倦;感谢何志林老师和乔超老师,在大一大二 期间让我管理软件实验室,让我学习到了很多电脑知识与做管理工作的方法; 感谢相明科老师,他一直教我用客观实际验证课本知识,让我深刻地领悟到作 为一名计算机专业人员应该具备的品质与信念;感谢这四年中生活上和学习上 的朋友、同学,你们让我度过了一个丰富多彩的大学生活。 基于 CAN 总线的数据采集控制系统开发 第 23 页 共 20 页 参参 考考 文文 献献 1李貌,秦霆镐,闫世晓等.MCP2515 在 CAN 总线系统智能节点的应用J.微 计算机信息,2005,(7):37-39. 2温世坚,饶运涛.现场总线 CAN 实验装置的设计及实

48、现J.科技广场, 2009,(1):45-47. 3William Prodanov,Maurizio Valle,Roman Buzas et al.A Controller Area Network Bus Transceiver Behavioral Model for Network Design and SimulationJ.IEEE Transactions on Industrial Electronics,2009,56(9):3762-3771. 4卢超.基于 CAN 总线分布式矿井温湿度监测系统研发J.煤炭科学技术, 2011,39(9):94-99. 5王立文,邵晓根,席建中等.LCD1602 在温室 CO2 增施控制器中的应用J. 安徽农业科学,2008,36(33):14822-14824. 6王璐,周中阔,韩忠等.基于 CAN 总线的煤矿液压支架

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1