- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机与ARM平台通信课设报告 2
课 程 设 计 报 告
课程名称 嵌入式系统
课题名称 单片机与ARM 平台通信
专 业 计算机科学与技术
班 级
学 号
姓 名
指导教师 郭鹏 刘铁武 李杰君
2012年9月3 日
湖南工程学院
课 程 设 计 任 务 书
课程名称 嵌入式系统
课 题 单片机与ARM平台通信
专业班级
学生姓名
学 号
指导老师 郭鹏 刘铁武 李杰君
任务书下达日期 2012年9 月 3 日
任务完成日期 2012年9 月8 日
嵌入式系统课程设计任务书
设计课题1:单片机与ARM 平台通信
问题描述:
智能家居系统中,单片机扩展板用于感知周围环境的物理信息,并将这些信息数字化通过RS232串口传送给ARM平台。单片机串口编程是单片机工程师必须掌握的基本技能之一,串口中断、串口协议的设计是此类设计的核心问题。
功能设计要求:
1)本系统利用AT89C52系列单片机的串口实现与ARM平台串口的通信连接,涉及单片机串口中断程序的编写,以及串口通信协议的设计。
2)设计串口通信协议,协议内容包括:
发送头标识信息
发送字节长度
具体发送内容
效验和信息
3)串口函数要求:
串口初始化函数:进行串口初始化定义
串口中断函数:接收函数中对通信协议进行解析,对错误包信息进行容错处理;发送函数中对发送内容进行处理。
3、要求:
1)用Keil C环境实现系统;
2)函数功能要划分好(结构化程序设计);
3)串口协议及串口中断函数加必要的注释;
4)提供程序测试方案(可用PC串口小助手等测试工具)。
目录
一、系统介绍 1
二、总体设计 2
2.1程序模块 2
2.2.函数分析 2
2.3.总体结构 2
三.主要模块的实现 3
四.程序调试 7
五.总结与体会 8
六.源程序清单 9
系统介绍
数据采集系统中由于单片机侧重于控制,数据处理能力较弱,对采集的数据进行运算处理比较繁琐,如果通过串口与通信,利用强大的数据处理能力和友好的控制界面对数据进行处理和显示则可以提高设计效率。串口通信以其简单的硬件连接,成熟的通信协议,成为上下位机之间通信的首选。移植了Linux 操作系统的可以在Linux 环境下操作串口,降低了串口操作的难度,可以使开发者集中精力开发大规模的应用程序,而不必在操作底层设计上耗费时间。
?串口中断函数:接收函数中对通信协议进行解析,对错误包信息进行容错处理;发送函数中对发送内容进行处理。
(2)串口通信协议模块:
设计的协议内容包括:发送头标识信息、发送字节长度、具体发送内容、效验和信息等。
a.定义数据包格式
起始标志 数据长度 命令 附加数据 校验 结束标志 1字节 1字节 1字节 不定 2字节 1字节 图2.1 串口通信数据包格式
2.2.函数分析
程序包括几个功能函数:
调用open函数打开串口设备文件,若出错则返回,成功则返回文件句柄。
set_attr(int fd),其中又包括函数tcsetattr 可以设置串口的结构属性,tcgetatt可以得到串口的结构属性。在termios 结构中,最重要的是c_cflag,用户通过对其进行赋值可以实现串口波特率、数据位、停止位、奇偶校验位等参数的设置。
设置完通信参数后,就可以用标准的文件读写命令read和write操作串口了。最后在退出之前,用close函数关闭串口。
三.主要模块的实现
Linux 下串口通信程序设计串口通信需要设置一些参数,如波特率、数据位、停止位,输入输出方式等。这些参数都存在于Linux提供的termios 结构中,该结构是Linux 系统用于查询和操作各个终端的一个标准接口,定义在头文件《ter-mios.h》 中,如下所示:
STruct termios{
tcflag_t c_iflag; /* 输入标志* /
tcflag_t c_oflag; /* 输出标志* /
tcflag_t c_cflag /* 控制标志* /
tcflag_t c_lflag /* 本地标志* /
cc_t c_cc[NCCS]; /* 控制特性* /
} ;
Linux 串口通信步
文档评论(0)