- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
毕业设计课程设计毕业论文详细资料联系QQ号;1620812008此设计有相应的资料和CAD图纸,充值下载或购买者将免费赠送。联系QQ号;1620812008.
南京人口学院
课程设计报告
课 程 单片机微型计算机原理与接口技术
论文题目 单片机多机通信
学生姓名 徐良飞
学 号
指导教师 李维维
2011年 1月
单片机多机通信
一﹑数据通信协议
1.帧格式:
总字节数 + 命令 + 地址 + 内容 + 校验
2.帧格式说明:
总字节数:4 位
命令:4 位
地址:1 字节
校验:1 字节
内容:实际传送的数据,最大为13字节
3.总字节数说明:总字节数4位,一帧数据最大16个字节,最小3个字节
4.命令格式说明:
0000:寻址命令,此时地址表示从机的ID
0001:应答寻址命令
0010:主机向从机写数据命令
0011:主机向从机读数据命令
0100:从机应答主机的读/写命令
此时是片内寻址命令。地址表示从机内存的起始地址,主机读/写数据的起始地址,地址的增长方向由主机决定,寻址范围:0 ~ 255
0101:从机向主机写数据命令
0110:从机向主机读数据命令
0111:主机响应从机读/写
此时是片内寻址命令。地址表示主机内存的起始地址,从机读/写数的起始地址,地址的增长方向由从机决定,寻址范围:0 ~ 255
1000:
1001:
1010:
1011:
1100:
1101:
此时是片外寻址命令,地址增为2个字节,寻址范围:0 ~ 64K
此命令是未开发命令
1110:帧错误 1111:通信结束命令
5.地址格式说明:
当片内寻址命令时,地址是一个字节,寻址片内范围:0 ~ 255
当片外寻址命令时,地址是两个字节,寻址范围:0 ~ 64K
6.内容格式说明:
是传输的数据,总大小有帧大小以及命令格式决定
7.校验格式说明:
校验是存储帧中数字1的个数
二、主机通信程序流程图
三、从机通信程序流程图
四、主机通信功能模块
1、主机初始化模块
设置缓冲区16个字节(既是发送,又是接收缓冲区)
设置计数值M
设置堆栈指针
2、帧设置模块
设置帧的通信方式(总字节数、命令、地址、内容、校验)
计算校验方式即设置校验字节
3、接受帧模块
送数据到指定的缓冲区
4、发送帧模块
设置发送缓冲区
5、解析帧模块
解析帧大小
解析帧命令
解析地址
五、从机通信功能模块
1、主机初始化模块
设置缓冲区16个字节(既是发送,又是接收缓冲区)
设置计数值M
设置堆栈指针
2、帧设置模块
设置帧的通信方式(总字节数、命令、地址、内容、校验)
计算校验方式即设置校验字节
3、接受帧模块
设置接收缓冲区
4、发送帧模块
根据解析格式发送数据
5、解析帧模块
解析帧大小
解析帧命令
解析地址
/*
多机通信中的主机通信程序
将以地址04H开始的数据发送到从机缓冲区中
*/
org 0000h
ljmp start
org 0024h ;0014h~0023h,16字节为数据缓冲区
start:
mov sp,#03h ;0004h~0013h为堆栈区
mov r2,#6 ;计数值N
mov 07h,#255
clr es ;关闭串口中断
sloop1:call set_frame
mov a,r2
jz error
call send_frame
dec r2
call receive_frame
mov a,07h
jz sloop1 ;没有收到应答帧
call analy_frame ;有收到应答帧
cjne r6,#01h,sloop1 ;没有收到从机地址应答帧
mov r2,#6 ;重设N的值
sloop2:call send_frame ;发送数据帧
mov a,r2
jz error
dec r2
call
文档评论(0)