单片机多机通信(课程设计).doc

单片机多机通信(课程设计).doc

ID:12026935

大小:104.00 KB

页数:24页

时间:2018-07-15

单片机多机通信(课程设计).doc_第1页
单片机多机通信(课程设计).doc_第2页
单片机多机通信(课程设计).doc_第3页
单片机多机通信(课程设计).doc_第4页
单片机多机通信(课程设计).doc_第5页
资源描述:

《单片机多机通信(课程设计).doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、南京人口学院课程设计报告课程单片机微型计算机原理与接口技术论文题目单片机多机通信学生姓名学号指导教师2011年1月单片机多机通信一﹑数据通信协议1.帧格式:总字节数+命令+地址+内容+校验2.帧格式说明:总字节数:4位命令:4位地址:1字节校验:1字节内容:实际传送的数据,最大为13字节3.总字节数说明:总字节数4位,一帧数据最大16个字节,最小3个字节4.命令格式说明:0000:寻址命令,此时地址表示从机的ID0001:应答寻址命令0010:主机向从机写数据命令0011:主机向从机读数据命令0100:从机

2、应答主机的读/写命令此时是片内寻址命令。地址表示从机内存的起始地址,主机读/写数据的起始地址,地址的增长方向由主机决定,寻址范围:0~2550101:从机向主机写数据命令0110:从机向主机读数据命令0111:主机响应从机读/写此时是片内寻址命令。地址表示主机内存的起始地址,从机读/写数的起始地址,地址的增长方向由从机决定,寻址范围:0~2551000:1001:1010:1011:1100:1101:此时是片外寻址命令,地址增为2个字节,寻址范围:0~64K此命令是未开发命令1110:帧错误1111:通信

3、结束命令5.地址格式说明:当片内寻址命令时,地址是一个字节,寻址片内范围:0~255当片外寻址命令时,地址是两个字节,寻址范围:0~64K6.内容格式说明:是传输的数据,总大小有帧大小以及命令格式决定7.校验格式说明:校验是存储帧中数字1的个数二、主机通信程序流程图NYYNYNNY开始主机初始化置M为计数标志M=0?发送地址帧,M=M-1收到从机应答帧解析应答帧帧校验正确?重设M的值M=0?发送数据帧M=M-1A通信失败通信失败NYYN解析应答帧解析应答帧帧校验正确?收到应答帧等待从机应答帧返回通信结束三、

4、从机通信程序流程图NYNYYNYNYNYNYN从机初始化等待主机广播收到地址帧解析地址帧校验正确?地址匹配?回复应答帧值SM2=0置M为计数器M=0?接受一帧数据收到一帧数据解析帧数据校验正确?处理接受的一帧数据是数据帧?重置M的值通信失败结束帧准备接受下一帧四、主机通信功能模块1、主机初始化模块设置缓冲区16个字节(既是发送,又是接收缓冲区)设置计数值M设置堆栈指针2、帧设置模块设置帧的通信方式(总字节数、命令、地址、内容、校验)计算校验方式即设置校验字节3、接受帧模块送数据到指定的缓冲区4、发送帧模块设

5、置发送缓冲区5、解析帧模块解析帧大小解析帧命令解析地址五、从机通信功能模块1、主机初始化模块设置缓冲区16个字节(既是发送,又是接收缓冲区)设置计数值M设置堆栈指针2、帧设置模块设置帧的通信方式(总字节数、命令、地址、内容、校验)计算校验方式即设置校验字节3、接受帧模块设置接收缓冲区4、发送帧模块根据解析格式发送数据5、解析帧模块解析帧大小解析帧命令解析地址/*多机通信中的主机通信程序将以地址04H开始的数据发送到从机缓冲区中*/org0000hljmpstartorg0024h;0014h~0023h,1

6、6字节为数据缓冲区start:movsp,#03h;0004h~0013h为堆栈区movr2,#6;计数值Nmov07h,#255clres;关闭串口中断sloop1:callset_framemova,r2jzerrorcallsend_framedecr2callreceive_framemova,07hjzsloop1;没有收到应答帧callanaly_frame;有收到应答帧cjner6,#01h,sloop1;没有收到从机地址应答帧movr2,#6;重设N的值sloop2:callsend_fra

7、me;发送数据帧mova,r2jzerrordecr2callreceive_framemova,07hjzsloop2;没有收到应答帧callanaly_frame;有收到应答帧cjner6,#04h,error;没有收到数据应答帧,失败jmpmreturnerror:sjmp$mreturn:ljmpstart/*函数名称:set_frame入口参数:r0(帧缓冲区首址)、r1(帧数据区首址)r7(帧大小)、r6(帧命令)r5(地址)、r4(校验)、r3(帧数据大小)出口参数:r0(帧缓冲区首址)、r1

8、(帧数据区首址)r7(帧大小)、r6(帧命令)r5(地址)、r4(校验)、r3(帧数据大小)功能:设置帧*/set_frame:movr0,#14hmova,r7;设置帧的大小swapamov@r0,amova,r6;设置帧命令orla,@r0mov@r0,aincr0mova,r5mov@r0,a;设置地址(从机地址或内存地址)cjner3,#0,sloopjmpsreturnsloop:incr0mova,@

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。