1994-2006 China Academic Journal Electronic Publishing House. All rights reserved.
313 通信协议 单片机的串行口工作于方式 2 或方式 3 时 , 数据 帧由 11 位数据组成 :1 位起始位 , 位数据位 , 位停 9 1 止位 .在这两种方式下 , 第 9 位数据是可控的标志 位 ,只有第 9 位的数据是 1" 代表地址帧 ) 时 , 串行口 " ( 接口电路才会在接收完 1 个数据后 , 向 CPU 请求中 断 .因为 PC 机的异步通信功能没有这样的通信格 式 ,所以这种方式只适合单片机之间的多机通信 .一 般情况下 ,实现两种异型机之间的通信常采用以下几 种方式 : ( 1) 用 1 台单片机作为上位 PC 机和下位单片 机之间的 "桥梁" 实现数据格式的转换 ; ( 2 ) 在 PC 机 , 内安装异步通信适配卡 ,通过设计可编程芯片的运行 方式 ,使之与单片机的多机通信方式一致 ; ( 3) 设置上 位机编程环境提供的串行通讯控件的属性来区分寻 址指令和数据传送指令 , 进而实现通讯 .方法 1 和方 法 2 硬件结构复杂 ,方法 3 软件代码编写繁琐 .在系
http://www.cnki.net
32
Instrument Technique and Sensor
统不复杂 , 任务不重 , 通信数据量不大的情况下 ,这些 方法还不会有明显的缺陷 ,否则方法 1 中的 "桥梁" 单 片机和方法 2 中的通信异步适配器将会成为通信信 迈的版颈 ,而方法 3 中数据帧中的奇偶校验位通常用 作发送地址码 ( 通道号) 或数据的特征位 ,这样数据通 信的校核会采用累加和校验的方法 ,采用这种方法不 但软件开销和进行通信的数据量增加了 ,而且实时性 也受到影响 . 根据实际情况 ,采用了通信信息帧不区分数据帧 和地址帧的方法 , 这样做不必使单片机工作在 11 位 异步收发方式下 , 使单片机和 PC 机的串口工作方式 一致 .受到通信格式的启发 , 设计信息帧见图 6 , 用 1 ~3 个字节作为数据通信的 "报头"起同步作用 ; 用 1 , 个或多个字节作为单片机的地址区别码来标识某个 单片机 ( 根据系统中下位机的个数决定) ; 用来标志下 位机工作性质的信息码可根据实际的情况在信息帧 中灵活设置 .
图6 信息帧一般格式
源后存入数据库并通过人机界面显示 . 按照上述通信协议 ,综合串口模拟过程对通讯模 块 ( 下位机 ) 进行编程 .编写的程序主要包括主程序 和中断程序 ; 中断程序有模拟串口中断接收程序和串 行中断程序 .其中主程序完成各个特殊寄存器及通 信参数 , 格式的初始化工作 ,分析判断串行中断 ,接受 信息向热表发出相应的指令 ; 模拟串口中断程序具体 完成热表数据的接收 ; 串行中断程序完成对上位机发 出信息帧的接收 .另外 ,考虑到实际应用当中各种随 机干扰 ,在编写程序时作了适当的纠错处理 , 即通讯 模块收到上位机指令后对热表进行操作 ,若在一定时 间内没有收到回应 ,则使程序复位 . 每台热表对应的通讯模块地址的标识方法如图 8 所示 .充分利用了该型号单片机的硬件资源 , 以跳线 的方式设定 P1 端口各个管脚的电平作为地址标识 ,8 个管脚不同的通断组合可以表示不同的地址 .
上位机发送信息帧时 ,下位机全部收到上位机的 信息帧 ,然后判断信息帧中的地址码 , 如果是自己的 地址码 ,则根据数据帧中的信息码内容作出相应的反 应 .信息帧的长度不限 ( 根据系统中下位机的个数以 及信息码的形式决定 ) , 是多个字节的 .在这种通信 格式中还可以用软件的方式进行一些通信数据的校 验. 工控机与下位机通讯模块之间的通信协议 , 如图 7 所示 .
图8 通信模块地址标识
图7 工控机与下位机通讯模块间的通信协议
上位机工控机向下位机发出的信息帧中应包含 地址和控制指令信息 ,以便下位机的通讯模块能辨识 出是否及如何应答 ; 通讯模块 , 向上位机回复的信息 帧中应包含自身地址及对应控制指令的数据 ; 同步字 和结束字是完成异步通讯必须的 ,因此无论上位机信 息帧还是下位机信息帧都不可少 .具体的信息帧格 式如下 ( 括号里标注为字节数 ,未标出的字节数为 1) :
通讯模块的编程都是利用仿真器提供的环境进 行模拟并调试成功的 . 4 与上位机软件接口 通过通讯模块最终实现工控机对热表数据的读 取还需要对上位机进行通讯接口程序的编写 .上位 机通讯程序的编写也同样有多种方法 : ( 1) 通过调 用 WINDOWS 提供的 API 函数实现 ; ( 2) 采用汇编语 言和 C 语言混合编写动态连接库函数实现 ; ( 3) 利 用 VB 语言及其提供的串行通信控件实现 .第 3 种方 法最简单 , 开发周期短 , 经济实用 .只需在工程中 添加 MSCOMM 控件 , 然后进行相应的属性设置 , 便 可完成数据的收发 .但 VB 中的数据收发分为二进制 形式和文本形式 .若发送文本 , 单片机收到的文本 是 ASC Ⅱ码 , 在 VB6. 0 中使用的是 Unicode 字符 , 即用 2 个字符来表示 1 个字符 , 当发送 1 个字符时单 片机收到 2 个字节 .因此大多情况下 PC 机与单片机 通讯交换的是二进制数据 .所以利用 MSCOMM 控件 来发送二进制数据时 , 必须将变量声明为 Byte 形式 .
- 单片机diy电压表头 > 基于89c2051 单片机的热表通讯模块的开发
-
基于89c2051 单片机的热表通讯模块的开发
下载该文档 文档格式:PDF 更新时间:2009-08-01 下载次数:0 点击次数:1
文档基本属性 文档语言: Traditional Chinese 文档格式: pdf 文档作者: user 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
-
PDF格式下载
- 更多文档...
-
上一篇:单片机基础培训
下一篇:广州周立功单片机发展有限公司
点击查看更多关于单片机diy电压表头的相关文档
- 您可能感兴趣的
- 单片机diy lcd数字电压表头 电压表数显表头 数字电压表头 电压表头 交流电压表 高精度数字电压表 数显电压表 指针电压表
- 大家在找
-
- · 清华人文科学实验班
- · 佳能4500打印机维修
- · 木工园锯机
- · c1驾驶理论考试题
- · 明清海疆政策与东南海岛研究
- · 语文s版窃读记课件
- · 火星时代maya视频教程
- · 我国农产品贸易现状
- · d核糖价格走势
- · 杭州ktv男服务员招聘
- · 新疆大学生村官
- · 工商银行中午休息吗
- · 3edu免费教育网
- · 姜堰姜中高二丫头
- · 电池厂铅尘治理方法
- · www.dcf168.com
- · 2010潮男发型
- · 高速usb2.0驱动下载
- · 总裁的替身安知晓
- · 三分频音箱电路图
- · xp全面清理垃圾
- · 倾世皇妃演员表
- · 成都车工招聘信息
- · 竹荪的烹调方法
- · 光纤链路模块以太网
- · cad自由缩放快捷键
- · sufer如何给定经纬度
- · dnf广西3区复制喇叭
- · 泡沫塑料的密度
- · 溶血性黄疸的图片
- 赞助商链接