- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于S3c6410的串通信设计
文档控制记录
序号 修改状态 修改内容 修改人 完成时间 V1.0 创建文档 完成本文档的所有章节内容 2011-1-16 目录
文档控制记录 II
1.引言 1
2. 串口实现功能及相关协议说明说明 2
2.1概述 2
2.2实现功能 2
2.3相关协议及部分程序说明 3
2.4 PC和ARM调试结果 6
2.5 采用串口调试工具调试 8
3.主要问题 10
1、如何配置串口 10
2、串口接收0X13数据时,数据丢失的解决办法 11
3、串口0x0d变0x0a的原因 13
4、__attribute__((packed))相关解释 13
5、在PHP链接的C库里面使用while(1)的方法 15
6、程序中其他需注意的地方 16
1.引言
目的:本文档旨在约束ARM11在linux下的串口通信及相关协议的开发过程,主要针对串口通信相关程序,会涉及到一些必要的协议。
约束:串口通信、 协议
对象:嵌入式串口开发人员、linux下串口协议编写人员
参考文档:
《串口测试功能》 --何林
《Linux 下串口编程入门.html》
《Linux串口基础详解.html》
《linux 串口收发数据不全.html》
《串口 非中端参数.html》
《__attribute__((packed))相关解释.html》
《串口0x0d变0x0a的原因.html》
《串口接收0X13数据出现问题解决办法.html》
《串口实例.html》
2. 串口实现功能及相关协议说明说明
2.1概述
本次《基于ARM11的串口通信设计》,用了很大一段时间总算告一段落,没想到简单的串口,所隐射出来的结构体,相关配置会如此繁多,稍微一两个参数忽略就会造成收发数据不正确,后面会就所遇到的问题一一阐述,基本能够解决LINUX下串口编程绝大多数问题了,找寻很多难寻的资料,实属不易……
2.2实现功能
1、 应用框图
此次ARM11的串口应用程序分为发送部分和接收部分,ARM11和PC端都同时具备发送和接收,能实现:
上层WEB(配置)------》php动态库(获取)-------》c动态库(按协议封装)-------》串口应用程序 (接收)-------》PC(按协议解析,并再封装)----------》串口应用程序(发送)----------------》ARM11(按协议解析)----------》C库(向php送)------------》php库(向web送)-----------》WEB界面回显。
2、具体功能:
1)支持通过S3C6410的串口收发数据。
2)串口收发采用指定的通信规范(2.3),规范中的命令编号可自定义。
3)在PC1上模拟数据包发往S3C6410(串口调试工具),PC2能通过web查看该数据(在等待的时间范围内)。
4)在PC2上通过web提交数据到S3C6410,PC1能通过串口查看该数据,并且还能通过PC1将数据回显到PC2的界面上显示。
2.3相关协议及部分程序说明
串口通信规范
本章节规定了S3C6410通过串口与PC1之间的串口通信规范。
通信速率为115200bps,起始位为1,数据位为8,停止位为1,无奇偶校验。
基本格式
以数据包的形式进行交互,一个完整的数据包由起使标志单元、命令单元、CRC校验单元、结束标志单元4部分组成。详见下表。
表1:串口交互数据包格式
起始标志单元 命令单元 校验单元 结束标志单元 0X7E 0X7E 各单元详细说明如下:
起始标志单元:1字节长度,表示一个完整数据包的起始标志,固定为0x7E;
命令单元:由命令控制头和命令体两部分组成。命令控制头包括:命令编号、方向标志、应答标志、包序号、命令体长度5个字段组成,共6个字节长度。命令体的解析方法和实际长度由控制部分的“命令编号”字段和“命令体长度”确定。命令单元的组成格式见表2。
校验单元:针对协议中的“命令单元”进行校验(从“命令单元”的第一个字节计算到数据位的最后一个字节),采用CCITT推荐的16位的x16+x12+x5+1(0x1021)。生成2字节的CRC校验和(低字节在前,高字节在后)。CRC校验和算法相关程序中的相关功能函数。
结束标志单元:1字节长度,表示一个完整数据包(分组)起始标志,固定为0x7E。
数据传送要求
规定数据包传送过程中的一些细节。
转移字符定义为0X7D。
转移字符的作用:用于避免当除起始标志单元和结束标志单元外的数据中出现0X7E时,出现歧义,无法区分是数据还是起始、结束标志单元。
转移字符的使用方法:当除起始标志单元和结束标志单元外的数据中出现0x7E和0X7D时,就在数据前面插入一个字符0X7D,并将原来的数据的BIT5取
您可能关注的文档
最近下载
- 人教版小学数学五年级下册第一单元《观察物体(三)》大单元教学设计.docx VIP
- 《人力资源会计在企业成本管理的应用案例研究—以A公司为例》11000字.docx
- 人教版劳动教育七年级上册全册教学课件.pptx
- 人教版小学数学五年级下册第一单元《观察物体(三)例1》课时教学设计.docx VIP
- 集成运放的基础知识.ppt VIP
- 人教PEP英语六年级下册第一单元大单元教学课件.pptx
- 《万里长城简介》课件.ppt VIP
- 新疆某公司水产养殖建设项目可行性研究报告.doc
- 全国青少年创意编程与智能设计大赛图形化编程模拟题库试题含答案.docx
- 政协领导干部2024年度民主生活会的对照检查材料(四个带头).docx VIP
文档评论(0)