文档详情

学士学位论文___单片机多机通信(课程设计).doc

发布:2017-01-18约1.21万字共24页下载文档
文本预览下载声明
南京人口学院 课程设计报告 课 程 单片机微型计算机原理与接口技术 论文题目 单片机多机通信 学生姓名 学 号 指导教师 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 er
显示全部
相似文档