单片机多机通信(源码)

摘要:本课题的主要内容是在单片机多机通信领域中模仿各种网络通信协议和体系,建立一个基于单片机基本串口通信的多机通信体系或协议。单片机在生活生产中应用广泛,但在当前internet极其发达的情况下,我们却没有很好的制定像以太网这种天生为了internet而生的单片机通信协议,modbus,can等工业总线虽然可以接入internet,但存在种种弊端,本文介绍了基本单片机串口通信原理和基于此而建立的分层多层单片机通信协议。我将普通串口通信封装在链路层中,在上面模仿TCP/IP协议完成一系列的单片机通信功能。
目录
摘要 3
关键词 3
Abstract 3
Key words 3
引言 3
1 课题难度和应用 4
2 课题总体设计 4
2.1 需求分析 4
2.2 总体要求 5
2.3 模块分析 5
2.4 实施流程 6
2.5 完结总结 6
3 硬件部署 7
3.1 c51单片机 7
3.2 最小单片机系统 7
3.3 显示模块 8
3.4 键盘模块 10
3.5 通信模块 11
3.6 A/D转换模块 11
3.7 DS18B20一线式温度传感器模块 11
3.8压力测试计模块 12
3.8称重计模块 12
4 基于单片机的通信网络 13
4.1 串口通信 13
4.2 can,modbus总线 14
4.3 通信体系 15
4.4 模仿的单片机通信体系 15
5 软件编写 16
5.1 总体框架 16
5.2 初始化模块 17
5.3 通信模块 17
5.4 主机子功能模块 19
5.5 从机子功能模块 19
6 模拟功能实现 20
6.1 子功能测试 20
6.2 主机整体测试 21
6.4 通信模块测试 22
6.5 总体模拟完
 *好棒文|www.hbsrm.com +Q: ^3^5`1^9`1^6^0`7^2# 
成 22
7 硬件通信模块功能实现 22
8 总结 23
致谢 23
参考文献 23
单片机多机通信
引言
引言:计算机网络是通信技术和计算机跨学科研究的成果。不论是通信技术还是计算机底层实现中,硬件通信原理都是最基本和重要的保证手段,计算机中各个部件之间的通信靠的是总线之间的物理和软件协议,通信技术中远程两个设备之间的联系,同样也是物理器件和软件协议的共同作用,由此可知,研究底层通信方式方法是很重要的基础工作。通过基本实现计算机功能的单片机来完成通信原理的探究和网络体系的基本尝试有它存在的必要性,现今多机通信已经成为通信控制领域的主流通信方式[1]。而在网络日益庞大的今天,想设计一个高可靠性的网络是十分困难的,需要很多不同层次和领域的技术相结合,单片机上实现基本的网络4级体系,应用到与此相关的如农业大棚环境的监控和检测中,可以弥补网络发展的不足,证明了单片机通信体系的重要性。
1.课题难度和应用。
将单片机串口通信参考modbus,can总线结合网络体系设计出以一个简单但结构完整的单片机多机通信或者说网络体系,不仅仅需要单片机的基本知识和计算机网络体系架构的了解,更加需要一种发现其中相同点和不同点,借鉴相似总线结构的洞察力,而且在设计自身体系架构时需要认识到什么必须完成,什么可以完成,什么无法完成,当具体编码过程中,代码结构的构思,具体模块的部署和他们之间聚藕性和通信的把握也需要很长时间的测试和修改。单论单片机子模块中,串口通信链路层上的协议编写,需要注意到时序的问题,这是很繁琐和困难的。在通信模块的路由层中的,由于无法完成复杂的分组重装和安全检测功能[2],用了简单的自定义函数去代替,所以编写难度不大,但如果从整体功能的实现上,将这些问题模块化的做法可以保证以后添加或者重新编写算法时候提供良好的移植性。应用层上为了测试它的可靠性和应用在生产生活中监控检测,完成了大量从机功能模块的编写,代码量十分客观。总体难度结合了单片机实现以太网体系的功能和单片机自身功能编写的繁琐,尚且客观。上面也提到就单论已经实现的功能来看,在农业环境检测和生活中计算器的使用,生产中的称重计都在源码级别上实现,而且方便的从机功能添加模块,能快速移植需要的子功能,从而在生活生产中快速铺开应用。
2. 课题总体设计。
2.1 需求分析。
需求分析决定一个产品营销和生命力的根本保障,所以在前期本身已经做了一个文献综述,阅读大量文献的基础上花了半年时间采用了如询问一些有工作经历的人,街头的调查问卷等形式来探究做单片机通信是否有价值。正如上面所说,虽然不是主流,但弥补了网络通信体系的一个基本支持。
需求分析的任务有确定对系统的综合要求。有如下几个方面。
功能需求。
性能效率需求。
健壮性和实用性需求。
接口和扩展需求。
将来的功能需求。
需求分析还对数据和逻辑体系作出了ER图等等手段来控制,更加具体的uml图设计和一些修正计划。
2.2 总体要求。
总体以下几个点作为创新和工作量的基本实现。
(1)分析设计总体框架,如链路层采用轮询,令牌,甚至总线冲突等形式。路由层可以在有限的大小中完成tcp/ip体系中哪些基本功能。
(2)代码框架的编写,由于主机代码和从机代码基本形式相同,所以虽然实现的是轮询方式,但可以升级成无主机的环形令牌。从机子功能部署也因此有了很大的高自由度,可以将单片机几乎所有的应用部署到本体系中来。
(3)链路层通信模块的时序问题需要大量的单元测试和黑盒测试,这主要是需要大量的时间和经历。
(4)应用层的子功能模块有很多,为了验证系统的可靠性,完成了大量子功能模块的编写,核心代码1000行,总2000行以上。
基本形式为一片c51单片机做主机,其他最高挂载255个的c51单片机做为从机。从机主要负责收集信息或者完成电气机械功能,主机接受从从机收集的信息和发送信息给从机的功能。加上周边应用中实布署传感器,显示屏形成实用的基于单片机为的通信网络体系。
在上层链路层中借鉴modbus,can等工业总线, 在总线控制权上如主从模式下主机直接地址选 择,轮询从机,令牌选择等形式。也可以物理 上是主从模式,逻辑上形成环网,总线等无中 心的择址方式。在数据传输中可以采用加或校验等形式维护数据正确和完整。在数据查询/回复 pdu单元的设计上实现包的路由分组发送和重组,并且在链路层完成数据校对的基础上增加安全功能检测和数字签名验证。
2.3 模块分析。
为了完成一个基于单片机的网络体系的架构,所以从逻辑和实际编写中分为物理层,链路层,网络层,应用层来进行模块设计和分析。物理层从逻辑上需要有电平的定义,引脚数量的定义,从实际中由于采用stc12c5a60s2单片机,直接使用电线连接串口,所以采用ttl电平,35v为高电平,0v为低电平,引脚为c51单片机P3.0,3.1即txd,rxd串口的两个引脚。逻辑层逻辑上需要进行数据帧的发送,并且完成寻址和数据校对。从实际情况来看,采用rs485来实现链路层数据接受,由于c51串口通信中方式3可以发送9位数据帧,通过第九位数据帧完成寻址,数据帧自然就是8位的倍数数据了。在链路层上发送数据采用rs485的思路,数据发送接受模块采用加校验的方式验证数据是否在传送过程中出现错误,预防数据丢失的情况[3]。网络层从逻辑上需要完成很多事情,例如说是什么传输方式,路由控制,流量控制,数据校对,在tcp/ip体系中更是有4层封装。实际情况我们编写了一些应用并且将这些单片机很简单就能完成的强大功能的数据分别一一通过我们的网络通信模块传送到主机显示,大大验证了本身整套系统的可靠性。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/2275.html

好棒文