(通信与信息系统专业论文)基于pstn的远程在系统编程.pdf_第1页
(通信与信息系统专业论文)基于pstn的远程在系统编程.pdf_第2页
(通信与信息系统专业论文)基于pstn的远程在系统编程.pdf_第3页
(通信与信息系统专业论文)基于pstn的远程在系统编程.pdf_第4页
(通信与信息系统专业论文)基于pstn的远程在系统编程.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(通信与信息系统专业论文)基于pstn的远程在系统编程.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摹于p s t n 的远程在系统编程摘要 摘要 本文给出了一种在公用电话交换网( p s t n ) 上实现远程在系统 编程( i s p :i n s y s t e mp r o g r a m m i n g ) 的方案。此方案主要包括以下 几部分:如何实现在公用电话交换网上的p c 机和单片机的远程通 信;如何在p c 和单片机之问实现有效的文件传输;如何通过单片 机将从远程传输过来的编程文件f 载到相应的鬯塑堡望塑墨往中。 本文给出了系统的硬件设计原理、框图以及主要的软件设计原理和 方法。本文还对影响远程文件传输协议的主要参数,以及文件传输 中需要注意的数据校验等问题进行了研究。 关键词:远程通信、协议、数据校验、编程 、v j 基于p s t n 的远程在系统编程a b s t r a c t r e m o t ei s po np s t n a b s t r a c t t h i st h e s i sp r o v i d e saw a yo fr e m o t ei n - s y s t e m - p r o g r a m m i n go n p s t n t h r e e p a r t s a r ei n c l u d e d h e r e f i r s t ,h o w t o c o m p l e t e t h e c o m m u n i c a t i o nb e t w e e np e r s o n a lc o m p u t e ra n ds i n g l e - c h i p p r o c e s s o ro n p s t n s e c o n d ,h o w t ot r a n s f e ri s pf i l ee f f e c t i v e l y l a s t ,h o wt op r o g r a m t h ep l dd e v i c eb yt h eu s eo f s i n g l e - - c h i p - - p r o c e s s o r t h i st h e s i sg i v e st h e d e t a i l e ds c h e m eo ft h es y s t e mh a r d w a r ea n ds o f t w a r e ,i ta l s op r e s e n t si t s o w nf i l et a n s f e rp r o t o c 0 1 s o m er e s e a r c ho nd a t ac h e c kh a sa l s ob e e n d o n e k e y w o r d s :t e k e c o m m u n i c a t i o n s ,p r o t o c o l ,d a t a c h e c k ,p r o g r a m m i n g z h a o t i n g l i d i r e c t e db yw a n g y i m i n g 基于p s t n 的远程在系统编程前言 前言 随着现代电子技术的迅猛发展,现代电子系统设计技术也迈入 了一个全新的阶段。自8 0 年代以来,可编程逻辑器件( p r o g r a m m a b l e l o g i cd e v i c e _ p l d ) 技术发展非常迅速。由于p l d 是作为一种通 用器件生产的,而它的逻辑功能是由用户通过对器件编程实现的, 随着p l d 的集成度越来越高,速度越来越快,设计越来越方便灵活, 因而日益成为专用集成电路a s i c 设计的主流方法。特别是9 0 年代 新一代在系统编程技术i s p 的推出,取消了专用编程设备,器件本 身也不必从系统电路板上取下,可以使用硬件描述语言和电路图方 法在系统内编程。这一创举使现代电子系统设计的方法前进了一大 步,设计周期大大缩短,库存大大减少,效率大为提高,并且十分 有利于产品的升级和更新换代。 i s p 技术使现代电子设计进入了新的时代,然而从i s p 技术带 来的好处中我们仍能感到一些缺憾,即i s p 虽然对于产品的升级换 代十分容易,却有地域上的限制,必须要设计者亲临现场操作。为 了使i s p 技术更加完美地应用于产品设计开发,我们开发了基于p g t n 的远程在系统编程( i s p ) 工具。 本文第一章简要介绍了电子设计的发展以及基于p s t n 的远程 在系统编程工具的应用前景。第二章主要从系统框图,系统流程, 显示模块等几部分讲述了该工具的硬件设计。接下来的章节主要是 从该工具需要解决的几个要点来讲述的。要点i :第三章,如何利 前言 基于p s t n 的远程在系统编程 用m s m 7 5 1 2 b 来完成单片机和计算机的远程通信。该章主要介绍了计 算机如何通过串口连接m s m 7 5 1 2 b ,以及单片机如何连接m s m 7 5 1 2 b , 以及双方如何保证正确的数据通信:要点2 :第四章,数据传输过 程中的检错方法。如何检错也是保证正确的文件传输的一个重要部 分。该章就c r c 校验进行了讨论,并对实验结果作了定量的描述; 要点3 :第五章,文件传输。采用什么样的文件传输格式以及通信 双方采用什么样的协议进行文件传输也是该工具需要研究的一个重 要部分。因为合适的协议和格式可以保证数据传输的高效率和高质 量。本文的第六章简要介绍了i s p 技术,并且介绍了如何通过单片 机来实现在系统编程。 基于p s t n 的远程在系统编程综述 第一章综述 1 1 早期数字系统设计的局限性 众所周知,以前电子工程师们设计数字系统采用的都是自底向 上的方法,通过对器件功能和电路板图分别进行设计和确定来规划 系统功能。设计一个系统通常要经历如下的过程:书面设计元 器件选择一一硬件搭试一一样品制作。由于传统器件引脚功能的硬 件方式是不可能任意改变的,所以在设计期间要花费大量的时间和 精力在元件选配和系统结构的可行性定位上。此外,其中的硬件搭 试过程也是很费时的,往往会因接线紊乱和接触不良带来各式各样 的麻烦。而且用的器件越多,搭试难度就越大,当系统规模大到一 定程度,系统复杂到一定程度,这种搭试实际是不可行的。即使搭 试成功了,用这样的方法设计出的成品其功能一般也是不能改变的。 早期的数字系统多采用试凑法设计,这种方法没有固定的套路 可循,主要是凭借设计者的经验。设计出来的电路,虽然不乏构思 巧妙者,但是交流和修改都很不方便,往往会因为某个局部的器件 改动而导致整个系统都得重新设计、安排,造成牵一发而动全身的 尴尬局面。 1 2 e d a 技术 在电子设计领域,可编程逻辑器件的广泛应用,为数字设计带 来了极大的灵活性。随着可编程逻辑器件自身功能的不断完善和计 算机辅助设计技术的提高,e d a 技术便应运而生了。 综述 基于p s t n 的远程在系统编程 e d a 是电子设计自动化( e l e c t r o n i c d e s i g na u t o m a t i o n ) 的缩写, 它以计算机为工具,在e d a 软件平台上,对以硬件描述语言- i d l 为系统逻辑描述手段完成的设计文件自动地进行逻辑编译、逻辑化 简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至 对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计 者的工作仅限于利用软件的方式,尽管目标系统是硬件,但是整个 设计和修改过程如同完成软件设计一样方便和高效。 e d a 技术采用的是自顶向下的设计方法。采用自顶向下设计方 法的优越性表现在: ( 1 ) 由于顶层的功能描述可以完全独立于目标器件的结构,在 设计的最初阶段,设计人员可以不受芯片结构的约束,集 中精力对产品进行最适应市场需求的设计,从而避免了传 统设计方法中的再设计风险,缩短了产品的上市周期。 ( 2 ) 设计成果再利用得到保证。采用模块化设计方法,使得对 于以往成功的设计成果稍作修改、组合就能投入再利用。 ( 3 ) 采用结构化开发手段,旦主系统基本功能结构得到确认, 即可实现多人多任务的并行工作方式,使系统的设计规模 和效率大幅度提高。 ( 4 ) 在选择实现系统的目标器件的类型、规模、硬件结构等方 面具有更大的自由度。 基于p s t n 的远程在系统编程 综述 1 3 i s p 技术 e d a 技术的一个必要步骤就是对目标芯片进行编程下载。采用 e e p r o m 编程下载技术的可编程逻辑器件具有可反复编程且能长期 保存的优点,但编程时需要昂贵的专用编程器,编程效率低,使用 不便,特别是对于目前的一些十分常用但引脚多的器件,采用专用 编程器方式的下载已几乎无法使用。因为芯片在编程器上的插拔过 程中会损伤引脚,以致于要经修正后才能上贴装机,从而导致生产 效率低下。 l a t t i c e 公司发明的在系统编程i s p 技术,很好地解决了可编程器 件在编程下载方面的诸多问题。在系统可编程器件是一种无需将器 件从电路板上取下,无需专门的编程高压,即可编程的e e c o m s 芯 片。它通过4 5 根编程连线与计算机的并行口相连,在专门的烧录 软件的帮助下,可以非常方便地实现编程下载。使用这种技术可以 免去以往p l d 的那种拔插芯片的麻烦过程。 1 4 使用远程i s p 的理由 使用i s p 技术后,可以方便地通过编程电缆将编程文件下载到 包含有可编程器件( p l d ) 的设备中,从而实现一个物理的数字系统。 由于下载文件的生成依赖于计算机和设计软件,下载时计算机必须 和具体的设备进行连接,这意味着需要设计者亲临现场操作( 如图 1 1 ( a ) 所示) 。设想如果用此技术设计的产品发往外地,或是远涉 重洋,出口海外,就需要生成一个庞大的全球性售后服务网络对产 多碴基于p s t n 的远程在系统编程 品跟踪或更新,这需要很大费用,对中小企业根本不可想象。如何 解决这个问题呢? 我们想到了无所不能的互联网。既然中小企业的 原材料供应、成品销售等可以受益于互联网,那么他们的技术性服 务为什么不可以依靠互联网进行呢? 为此,利用互联网及其t c p i p 协议开发的个远程在系统编程工具诞生了,它使工程技术人员足 不出户就可以对他们利用p l d 研制生产的远在千里之外的电子系 统、电子设备进行升级和维护( 如图1 1 ( b ) 所示) 。 黼凰游蟛镯 图11 ( a ) p l o 的一般便用方法 图1 1 ( b ) p k 0 的互联网使用方法 从互联网我们想到了p s t n ,既然可以通过电话线接入互联网, 为何不能直接通过p s t n 来完成产品的更新升级昵? 众所周知,中国 网民虽然从9 8 年的1 1 7 5 万发展到2 0 0 1 年的2 6 5 0 万,但是比起固 定电话用户来说,只能算是少之又少。而p s t n 的用户几乎遍及世界 的每个角落,就中国而言,现在也几乎家家户户都有电话。所以为 了更好地运用远程在系统编程技术,让更多的人享用到它的好处, 我们开发了基于p s t n 的远程在系统编程工具。 1 5 基于p s t n 的远程i s p 的应用范围和前景 基于p s t n 的远程在系统编程工具适用于所有使用p l d 器件设 计和开发电子产品、系统和设备的公司或厂家。对于他们拓展业务 范围,提升产品价值,增加产品的信息技术含量,降低生产成本, 基于p s t n 的远程在系统编程综述 争取更多用户,以信息化带动工业化都具有深刻意义。 该工具也适用于开设数字逻辑电路和数字系统设计课程的相关 学校和专业,为教师指导和批改学生的实验提供了方便,并可以把 学生从都做同样的单一实验这种传统模式中解放出来,有利于针对 不同学生给出不同要求,同时也降低了教学成本。 墨竺堕堡堕兰l 一一兰王! i 型竺望堡垄墨竺叁堡 第二章系统的硬件设计 2 1 概述 本系统是在公用电话交换网上实现远程的在系统编程,设计者 端一般都有计算机,而用户端则不能保证有,由于单片机具有体积 小、价格低、应用灵活的特点,所以把用户端设计成一个由单片机 构成的更新设备,用来和设计者端通信并且完成对p l d 电子设备的 编程。 2 2 基于p s t n 的远程i s p 的系统框架 系统的示意图如图2 1 所示。 设计 计算 图21 基于p s t n 的远程l s p 系统示意图 系统主要分为两部分:设计者端和设备端。系统的基本思想是 假定设计者端( 计算机) 知道设备端( 单片机) 的地址,即电话号 码。先由计算机端拨号呼叫单片机端,单片机端通过振铃检测电路 检测到振铃音后控制继电器闭合一一摘机,这样就接通了计算机端 和单片机端的通路。之后,单片机与计算机先进行握手,成功之后 进行文件发送与接收。单片机将经过c r c 校验后正确的数据按文件 格式存放到外置r a m 中。然后再通过扩展并行口连接编程电缆将 文件从r a m 中读出并下载到p l d 设备中。单片机的工作状态由l c d 显示。 墨主! ! 型塑垫堡堡墨竺塑堡 至堑塑望堡堡! 根据上述的基本思想,设计了如图2 2 所示的设备端单片机系 统。而设计者端只要通过串口连接一个带m o d e m 芯片的电路即可, 具体电路将在第三章讲述。 电话线 lj 瑕竺誓刹 : - 4 显示设备 等手_ 堕 c = = 爿外置r a mi 电盐im 。2 , , 。mi - : 片 :q e p r o m 机叫鞲等 图22 设备端系统框翻 2 3 基于p s t n 的远程i s p 的系统流程图 系统具体的流程图如图2 3 所示。 p c 端 单片机端 摘机,接通和远端的链 路,并发送应答信号 t j 接收文件,并发送应答 1 人nl 1 + y 将接收的文件下载到目标器件中 发送下载结果 断开连接释放链路 + ( 结束) 图2 3 系统流程图 墨竺塑堡! ! 堡生 萎王坠型竺垩堡堡墨丝堡堡 目前系统的文件传输和下载都能顺利执行,也就是本设计的大 部分功能已经实现。由于时间关系,系统p c 端拨号呼叫部分还未能 实现,这也是本系统需要继续调试的一个部分。目前的所有实验都 是在事先设定好双方已经建立了一条通信链路的基础上进行的。 2 4 显示模块 如前所述为了能够在单片机端工作的时候给出必要的状态提 示,设计了显示模块。下面简要介绍一下本系统选用的显示模块。 因为单片机端只要给出一些必要的语言提示,所以设计中选用了8 段式液晶显示模块l c m l 0 3 。 2 4 1l c m l 0 3 的特点 l c m l 0 3 是一款l o 位多功能8 段式液晶显示模块。它内含看 门狗( w d t ) 时钟发生器;2 种频率的蜂鸣驱动电路;内置显示r a m , 可显示任意字段笔画。与一般显示模块相比,它还有两大特点:一 是采用串行接口,可与任何单片计算机或单片集成电路连接,比之 并行接口可以简化硬件连接,有利于设备的微小型化;二是具有极 微功耗特性,其显示状态的工作电流为2 ua ( 典型值) ,省电模式 小于1l aa ,工作电压为2 4 3 3 v 。显示清晰,稳定可靠,使用编 程简单。 因为本系统需要接的外围电路比较多,所以i o 口的引脚就显 得特别紧张,而l c m l 0 3 的最简连接只需用到单片机的3 个引脚, 故是一个较合理的选择方案。 基于p s t n 的远程在系统编程 系统的硬件设计 2 4 。2 硬件连接 图2 4 给出了l c m l 0 3 与单片机的硬件连接图。在本设计中使用 单片机的p 3 2 连接d a t a 口、p 3 _ 3 连接w r 口、p 3 4 连接c s 口。 当片选c s 和写信号w r 有效时,d a t a 口接收来自单片机的串行 格式数据。 图2 4l c m l 0 3 与单片机的硬件连接 2 4 3 软件设计 l c m l 0 3 主要是通过从芯片的d a t a 口将数据按特定的格式输 入显存来实现数据显示的,所以只要根据芯片规定的送数据和送命 令格式来编写程序就可以完成正常的显示。具体程序这里就不再给 出,但是需要值得一提的是模块的初始化和清零。 1 模块初始化l c m l0 3 芯片上电后必须先进行软件初始化,初 始化主要完成模块复位、开振荡器、专用模块初始化命令、关l c d 、 开l c d 等一系列操作。初始化后l c m l 0 3 才可以进行正常的显示操作。 2 清零l c m l 0 3 虽有开关l c d 的命令,但是关l c d 命令仅 仅使屏幕变暗,它并不能把显存中数据清0 ,只要你再次开l c d , 那原来的数据又会显示出来。所以为了正确显示数据,在输入新的 数据前应将原先的所有显示位清除,即将显存中的所有数据清零。 型望坚! 翌至! ! ! 塑! ! 塑望丛! ! 塑垩堡望焦 苎王! ! 型箜垩堡垄墨篓塑堡 第三章利用m s m 7 5 1 2 b 的p c 和单片机的远程通信 3 1 引言 在进行基于p s t n 的远程i s p 系统设计时设定了设计者端是计 算机,而设备端是简单的m c s 51 单片机系统,双方要在p s t n 中 进行通信,一个基本的方法就是利用调制解调器。在设计之初原计 划采用单片机端使用调制解调芯片m s m 7 5 1 2 b ,而计算机端采用标 准调制解调器。但是经过多次试验,发现标准的调制解调器跟 m s m 7 5 1 2 b 按v 2 3 协议进行握手时比较难以实现,而且即使握手成 功了,在此后的过程中m s m 7 5 1 2 b 就不能改变工作模式。考虑实际 需要以及性价比等因素,最后改作通信双方都选用了调制解调芯片 m s m 7 512 b 来完成数据通信的任务。 3 2 通信方案 m c s 5 1 单片机和计算机利用m s m 7 5 1 2 b 实施双向通信的方框 图如图3 1 所示。 计算机和单片机( m c s 5 1 ) 都具有串行通信口,而串1 5 1 是常用 的计算机与外部串行设备之间的数据传输通道,所以设计时采用了 单片机和计算机都通过串口分别连接一个m s m 7 5 1 2 b ,然后再通过 基于p s t n 的远程在系统编程 利用m s m 7 5 1 2 b 的p c 和单片机的远程通信 p s t n ( 公用电话交换网) 连在一起,完成相互通信。两者之间采用 异步串行通信方式进行通信,数据传送格式为:起始位、8 位数据 位、停止位。 3 3 硬件设计 3 3 1m s m 7 5 1 2 b 的介绍 在具体介绍硬件设计之前,首先介绍一下m s m 7 5 1 2 b 。 m s m 7 5 1 2 b 是日本o k i 公司推出的单片f s k 调制解调器。它符合 i t u t v 2 3 标准,可以支持1 2 0 0 b p s 半双工或1 2 0 0 b p s 收7 5 b p s 发全 双工两种数据传输方式。m s m 7 5 1 2 b 的封装形式是d i p 。1 6 。下表给 出了m s m 7 5 1 2 b 的引脚说明。 引脚号名称 i o 说明 1 v + 3 v 至+ 5 v 电源 2a ii 模拟接收信号输入 3a oo 模拟发送信号输出 4e a l1 外部模拟信号输出 5g n d 地,o v 6x 】i 3 5 7 9 5 4 5 m h z 品振应连至x i 和x 2 ,当器件采用外部时钟时, 7x 2o 它应通过1 个1 0 0 p f 的a c 耦合电容加至x 2 ,且x 1 应该悬空 8c l ko 时钟信号输出 9r do m o d e m 接收串行数据输出 1 0c do f s k 接收信号和应答信号控制 】1x di + m o d e m 发送串行数据输入 1 2力王s i +f s k 信号和应答信号发送使能脚 1 3t e s t i +芯片测试输入,应为开路或数字1 1 4m o d l i +工作模式选择 1 5m o d 2 l + 1 6a o g i +模拟发送信号幅度选择,1 一- 1 0 d b m ,0 一一4 d b m 3 3 2 单片机和m s m 7 5 1 2 b 的连接 m c s 一5 1 单片机的串口和m s m 7 5 1 2 b 连接电路图如图3 2 所示。 通过用单片机的p 1 口对m s m 7 5 1 2 b 进行收发模式控制。当 m o d 2 = 0 ,m o d i = 0 时,芯片处于发送模式,只能向外发送数据; 1 3 型望坚! 竺! ! ! ! ! 塑鉴塑兰竺塑竺垄堡望笪 苎王! ! 型塑垩塑垄墨竺堕堡 而m o d 2 = 0 ,m o d i = i 时,处于接收模式,可以以1 2 0 0 b p s 的速率 接收数据,也可以以7 5 b p s 的速率发送数据。 c l l t r 图3 2m s m 7 5 1 2 b 和单片机的连接 3 3 3 计算机和m s m 7 5 1 2 b 的连接 计算机端也是通过串口和m s m 7 5 1 2 b 连接。大家知道,r s 一2 3 2 c 的标准规定:逻辑“0 ”为+ 5 + 1 5 v 之间,逻辑“1 “为。5 1 5 v 之间。而m s m 7 5 1 2 b 的电平是标准的t t l 电平,因此在两者进行 连接之前必须进行电平转换。这由m a x i m 公司的m a x 2 0 2 芯片完 成。该芯片的封装和应用电路如图3 3 所示。从图中可以看出一块 m a x 2 0 2 提供了2 个t t l c o m s 输入口和2 个r s 一2 3 2 输入口。 口”w 釉 图3 3m a x 2 0 2 的应用电路图 苎主! ! 型堕望堡垄墨竺塑矍 型旦坚! 兰:! ! 堡塑! ! 塑望笪塑墼垩堡望堕 计算机串1 :3 通过m a x 2 0 2 进行电平转换后和m s m 7 5 1 2 b 连接 的电路如图3 4 所示。用串1 3 的d t r 脚控制m s m 7 5 1 2 b 的r s 信号, 又因为m s m 7 5 1 2 b 收发模式下m o d 2 脚均为0 ,所以就让m o d 2 直接接地,而用串口的r t s 脚控制m o d l 来选择收发模式。 t l 一 一l 、一6 0 06 0 0 i m u 图3 4m s m 7 5 1 2 b 和计算机串口的连接 3 4 软件设计 单片机和计算机端都是通过串口作为数据通道完成双方的数据 通信的,两者发送和接收的都是数字信号,而具体的数字信号如何变 成模拟信号在p s t n 中传输则完全与软件设计无关,它是由硬件电 路中的m s m 7 5 1 2 b 来完成的。所以本系统的远程通信软件设计也就 是对双方的串口通信的设计。下面将分别介绍这两部分的设计。 3 4 1 计算机端串口通信的设计 我们知道串行端口的本质功能是作为c p u 和串行设备间的编码 转换器。当数据从c p u 经过串行端口发送出去时,字节数据转换为 串行的位。在接收数据时,串行的位被转换为字节数据。在w i n d o w s 环境( w i n d o w sn t 、w i n 9 8 、w i n d o w s 2 0 0 0 ) 下,串口是系统资源 的一部分。应用程序要使用串口进行通信,必须在使用之前向操作 型望坚! 坚! ! ! 堡望! ! 塑兰笪垫箜垩堡望笪 苎王! ! 型竺垩堡垄墨竺塑望 系统提出资源申请要求( 打开串口) ,通信完成后必须释放资源( 关 闭串口) 。 在c + + b u i l d e r 中有好几种可以实现串行通信的编程技术,下面 主要介绍两种:使用控件,使用a p i 函数。 使用串行通信控件m s c o m m 串行通信控件m s c o r m n 3 2 o c x 提供了使用r s 。2 3 2 来进行数 据通信的所有协议,c + + b u i l d e r 为该控件提供了标准的事件处理函 数、过程,并通过属性和方法提供了串行通信的设置。它使用户能 够方便地访问w i n d o w s 串行通信驱动程序的大多数特性,包括输入、 输出缓冲区的大小及决定何时使用流控制命令挂起数据传输等。 设计者只要在设计窗体中加入t m s c o m m 控件,就可以方便地通过 该控件对串口属性进行设置。 使用a p i 函数 控件虽然简单易用,但必须拿到窗体中使用,在一些不使用窗 体的应用场合下,控件的使用就显得捉襟见肘。a p i 是附带在w i n d o w s 内部的一个极其重要的组成部分。w i n d o w s 的3 2 位a p i 主要是一系 列很复杂的函数和消息集合。它可以看作是w i n d o w s 系统为在其下 运行的各种开发系统提供的开放式通用功能增强接口。通信程序在 c r e a t e f i l e 处指定串口设备及相关的操作属性,再返回一个句柄,该 句柄将被用于后续的通信操作,并贯穿整个通信过程。串口打开后, 其属性被设置为默认值,根据具体需要,通过调用 量主! 翌堕塑曼堡垄墨竺塑堡 型旦坚! 坚! ! ! ! ! 塑! ! 塑望笪塑竺墨望望堕 g e t c o m m s t a t e ( h c o m m ,& d c b ) 读取当前串口设备控制块d c b 设置, 修改后通过s e t c o m m s t a t e ( h c o m m ,& d c b ) 将其写入。运用r e a d f i l e ( ) 与w r i t e f i l e 0 这两个a p i 函数实现串口读写操作。本设计中就是采 用了a p i 函数的方法。 在打开串口后就要进行数据的读写,下面是数据读写操作的几 种方式: 1 查询方式 查询方式,即一个进程中的某一线程定时地查询串口的接收缓 冲区,如果缓冲区中有数据,就读取数据;若缓冲区中没有数据, 该线程将继续执行,因此会占用大量的c p u 时间。采用r e a d f i l e 函 数每次读出接收队列中的所有处于等待状态的数据,一次最多可读 出n w a n t r e a d 个字节的数据。 2 事件驱动方式 若对端口数据的响应时问要求较严格,可采用事件驱动方式。 事件驱动方式通过设置事件通知,当所希望的事件发生时,w i n d o w s 发出该事件已发生的通知,这与d o s 环境下的中断方式很相似。 w i n d o w s 定义了9 种串口通信事件,较常用的有以下三种: e vr x c h a r :接收到一个字节,并放入输入缓冲区; e vt x e m p t y :输出缓冲区中的最后一个字符,发送出去; e v j f l a g :接收到事件字符( d c b 结构中e v t c h a r 成员) ,放入输 1 7 型旦坚! 坚! ! ! 丝些! ! 翌璺苎塾塑垩矍望笪 苎王! ! 型堕圣矍垄墨竺塑堡 入缓冲区。 在用s e t c o m m m a s k ( ) 指定了有用的事件后,应用程序可调用 w a i t c o m m e v e n t 0 来等待事件的发生。s e t c o m m m a s k ( h c o m m ,o ) 可使 w a i t c o m m e v e n t 0 中止。 3 两种方式的比较 事件驱动方式是一种高效的串口读方式。这种方式的实时性较 高,特别是对于扩展了多个串口的情况,并不要求像查询方式那样 定时地对所有串口轮流查询,而是像中断方式那样,只有当设定的 事件发生时,应用程序得到w i n d o w s 操作系统发出的消息后,才进 行相应处理,避免了数据丢失。查询方式是一种最直接的读串口方 式。但定时查询存在一个弱点,即查询是定时发生的,可能发生得 过早或过晚,导致数据漏读。在本系统中因为实时性要求不是很高, 结合了系统软件设计的要求就选用了查询方式,为了避免漏读,对于 查询的时间控制进行了多次测试选取了比较适合的值。 3 4 2 单片机端软件设计 首先单片机要进行串口通信必须先选择通信方式,在本通信方 案中选择了方式l ,并且利用定时器1 作为串口波特率发生器。其 次为了保证和远端计算机正确可靠地通信,单片机端的数据格式, 波特率必须与远端计算机的保持一致。所以单片机端的程序流程大 致如下:设定定时器工作方式一装载记数常数一启动定时器工作一 设定串口工作方式一握手一设置m s m 7 5 1 2 b 模式一收发数据。 ir 基于p s i 7 q 的远程在系统编程利用m s m 7 5 1 2 b 的p c 和单片机的远程通信 3 5 通信时序图 在本系统中,计算机与单片机之间的数据传输是双向的,这意味 着两个m s m 7 51 2 b 之间通信时只能使用半双工模式,并且这两种模 式需要不断转换。根据以上提出的设计方案,通过单向的通信测试 发现两个方向的单工模式都是可行的。但是一旦执行半双工通信, 即在通信过程中改变调制解调器模式从而改变收发方向,接收的数 据就不正确了。经过多次反复的测试和分析,发现双机的m s m 7 5 1 2 b 都处于接收状态时,也就是两者都不发送数据时,一方居然能接收 到一些奇怪的数据。这说明如果一方已经从发送模式转换为接收模 式而另一方还没来得及转换,通信双方将同时处于接收状态,而这 时模拟信道上信号为零,其上的噪声被m s m 7 5 1 2 b 误认为是信号加 以接收,从而导致一些干扰数据的产生进而影响正常通信。为此对症 下药制定了如图3 5 的通信时序。 p c 机 十r di 一_ t d 一 : 图3 5通信时序图 上图中单片机方的保存数据操作仅在接收到正确的帧后执行, 而若是在等待接收重传帧时则不执行。同样,p c 方的装载数据操作 也是在发送新帧时执行,而重传帧时也无需执行。 型里坚! 坚! ! ! ! 呈塑! ! 塑兰丛垫塑垩堡望堕 苎主! ! 型竺垩堡垄墨篓塑矍 为了保证在通信过程中双方不可能同时出现在接收状态( 也即 双方或者同处于发送状态,或者一发一收) 则不难得出如下关系式。 t d + t c t 2 t i + t d( 3 - 5 1 ) t 2 + t s a v e t l + t l o a d( 3 - 5 2 ) 其中t d 是数据传输时延,t c 是m s m 7 5 1 2 b 模式转换时延。 因为t s a v e 和t l o a d 都与具体的帧长度有关,所以延时值即t 1 、t 2 的取值在数据传输速率一定时也要依具体的数据长度而定。通过 实验得出当帧长度为5 4 字节时t 1 ,t 2 的取值为1 0 0 ,5 0 比较合 理。而帧长度为1 0 0 字节时t 1 ,t 2 的取值为2 0 0 ,1 0 0 比较合理。 针对其他长度的t 1 ,t 2 的选取可以用试凑法,测试多组数据比较 选取较好的。选取的原则就是在保证数据传输可以正常进行的前 提下选取较小值。 从图3 5 的时序图可以看出如下关系: 设帧长度为n 1 字节,应答长度为n 2 字节,数据传输速率为r b p s 。 则传输一段数据的总耗时 t s 2 t 1 + f n l + n 2 ) 8 io r 810 0 0 ( m s ) ( 3 - 5 3 ) 而传输效率反比于传输时间,在n 1 ,n 2 ,r 取值一定时,传输 效率也即反比于t 1 ,则t 1 选取的越小传输效率越高。而延时t 2 是 为了保证通信过程中,在收方转变为发送模式之前,发方仍处于发 送模式,同时也要保证在对方数据发出之前转变为接收模式,它与 传输效率无关。它的选取只要满足关系式3 5 - 1 即可。 基于p s t n 的远程在系统编程数据校验 第四章数据校验 4 1 数据校验的必要性 在实际的通信系统中,往往不可能保证通信的1 0 0 可靠性, 差错主要来自通信设备和传输媒质两个方面。对数字通信设备而言, 有很好的可靠性和稳定性,其本身产生差错的可能性是很少的。至 于传输媒质,由于干线采用了光缆,也很少有差错。因此差错主要 来自传输媒质中的模拟本地环路以及无线通信环境。原因在两个方 面:一是媒质的传输特性限制,使传输的数据信号产生幅度失真、 相位失真和频率偏移,导致码间干扰;二是各种外界干扰( 雷电、 火花) 引起突发差错,造成一串数据信息的破坏。通常电话专线的 信道误码率( 含m o d e m ) 是1 0 一1 0 一。电话交换网的信道误码 率是1 0 - - 31 0 ,而本系统能完成其功能的基本条件就是要保证i s p 文件的正确传输,没有了正确的i s p 文件,接下来的p l d 器件编程就 成了无源之水、无本之木。因此在文件传输过程中一定要加入数据 校验。 4 2c r c 简介 数据校验有很多方法,比如使用奇偶监督码、恒比码、重复码、 循环码等。但是c r c 的优点已经使之成为目前最常用的数据校验的 方法。c r c 计算可以靠专用的硬件来实现,但是本系统希望利用廉 价的单片机完成c r c 校验,因而是一种既没有专用硬件支持又没有 强大软件支持的c r c 检验,这里关键的问题就是如何占用尽可能少 墼堡垒鉴 苎三! ! 型塑墨塑垄墨竺堡矍 的软件资源和尽可能少的运算时间来完成c r c 计算,也就是c r c 的 算法问题。 c r c 校验的基本思想是利用线性编码理论,在发送端根据要传 送的k 位二进制码序列,以一定的规则产生一个校验用的监督码( 即 c r c 码) r 位,并附在信息后边,构成一个新的二进制码序列数共( k + r ) 位,最后发送出去。在接收端,则根据信息码和c r c 码之间所遵循 的规则进行检验,以确定传送中是否出错。 1 6 位的c r c 码产生的规则是先将要发送的二进制序列数左移1 6 位( 即乘以2 ”) 后,再除以一个多项式,最后所得到的余数即是c r c 码,如式( 4 2 - 1 ) 式所示,其中b ( x ) 表示n 位的二进制序列数,g ( x ) 为生成多项式,q ( x ) 为整数,r ( x ) 是余数( 即c r c 码) 。 墨幽:竺:p f x ) + 墨盟( 4 2 1 ) g ( z ) g ( 肖) 。求c r c 码所采用模2 加减运算法则,即 是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的 异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除 法运算是一样,符合同样的规律。生成c r c 码的多项式如下,其中 c r c 1 6 和c r c c c i t t 产生1 6 位的c r c 码,而c r c 一3 2 则产生的 是3 2 位的c r c 码。本设计采用的是c r c c c i t t ,所以本章不讨论3 2 位的c r c 算法。 c r c 1 6 :( 美国b i s y n c 中采用)g ( x ) = x “+ z ”+ 2 + 1 c r c c c i t t :( 由欧耖 ic c i t t 推荐)g ( z ) = x “十z ”+ 5 + 1 苎主! ! 型堕堡堡垄墨竺塑矍 墼塑堡竺 接收方将接收到的二进制序列数( 包括信息码和c r c 码) 除以 多项式,如果余数为0 ,则说明传输中无错误发生,否则说明传输 有误,关于其原理这里不再赘述。用软件计算c r c 码时,接收方也 可以将接收到的信息码求c r c 码,比较结果和接收到的c r c 码是 否相同来判断接收数据的正确与否。 4 3 按字节计算c r c 不难理解,对于一个二进制序列数可以按字节表示为式( 4 。3 一1 ) , 其中鼠( z ) 为一个字节( 共8 位) 。 b ( ) = b o ( x ) 2 踟+ b ( z ) 2 8 卜1 + + b i ( 工) 2 8 + b o ( )( 4 - 3 1 ) 求此二进制序列数的c r c 码时,先乘以2 ”后( 即左移1 6 位) , 再除以多项式g ( x ) ,所得的余数既是所要求的c r c 码。如式( 4 3 2 ) 所示: 里! 兰2 :三1 1 :堡! 兰2 :三! 2 s 一+ 堡二! ! 墨2 :! ! 2 s ( “) + + 堡! 茎! :兰!( 4 - 3 2 ) 6 ( x )g ( x )c ( x )g ( x ) 可以设:篙茅吲卅器( 4 - 3 - 3 ) 其中q ( x ) 为整数,兄( 工) 为1 6 位二进制余数。将式( 4 3 3 ) 代入 式( 4 - 3 2 ) 得: 等嘏c m 器m 茅z s + 篙茅 吃c 删笔茅+ 茅 跏_ 1 ) + + 等( 4 - 3 - 4 , 因为: r 。( z ) 2 8 = 【r 。( x ) 2 8 + r 。8 ( ) 2 8 羔堕塑塑l 一 苎王! ! 翌竺垩堡垄墨竺堕塑 = j 0 8 ( x ) 2 ”+ r “。( x ) - 2 8( 4 3 5 ) 其中兄。( z ) 是b ( z ) 的高八位,乜。( 工) 是b ( 彳) 的低八位。将式 ( 4 - 3 5 ) 代入式( 4 3 4 ) ,经整理后得: 等嘣删w 篙茅+ 监筹型m 8 ”+ + 蒜 ( 4 3 6 ) 再设:锚茅+ 睑铲缘艄) + 措 ( 4 - 3 - 7 ) g ( z )g ( z 1”。g r 1 。 其中q 一。( x ) 为整数,月。) 为1 6 位二进制余数。将式( 4 3 7 ) 代 入式( 4 3 6 ) ,如上类推,最后得: 等吲删_ l ( 删”1 ) 十+ q o ( m 而r o ( x ) ( 4 - 3 _ 8 ) 很显然,十六位二进制数r 。( 爿) 即是我们要求的c r c 码。 式( 4 3 7 ) 是编写按字节计算c r c 程序的关键,它说明计算本字 节后的c r c 码等于上一字节余式c r c 码的低8 位左移8 位后,再 加上上一字节c r c 右移8 位( 也即取高8 位) 和本字节之和左移1 6 位后所求得的c r c 码,如果我们把8 位二进制序列左移1 6 位后所 得数的c r c 全部计算出来,放入一个表里,采用查表法,可以大大 提高计算速度。由此不难理解下面按字节求c r c 码的c 语言程序。 * p t r 指向发送缓冲区的首字节,l e n 是要发送的总字节数,c r c 余式 表是按o x l l 0 2 1 多项式求出的。 u n s i g n e di n tc a l _ c r c ( u n s i g n e dc h a r + p t r , u n s i g n e d c h a rl e n ) f u n s i g n e di n tc r c ; u n s i g n e dc h a rd a ; 基于p s t n 的远程在系统编程数据校验 u n s i g n e di n tc r ct a 2 5 6 = f 卓c r c 余式表+ o x 0 0 0 0 ,0 x 1 0 2 1 ,0 x 2 0 4 2 ,0 x 3 0 6 3 ,0 x 4 0 8 4 ,0 x 5 0 a 5 ,0 x 6 0 c 6 ,0 x 7 0 e 7 ,0 x 8 1 0 8 ,0 x 9 1 2 9 , 0 x a l 4 a ,o x b l 6 b ,o x c l 8 c ,0 x d l a d ,0 x e l c e ,o x f l e f ,o x1 2 3 1 ,0 x 0 2 1 0 ,0 x 3 2 7 3 ,0 x 2 2 5 2 ,0 x 5 2 b 5 , 0 x 4 2 9 4 ,0 x 7 2 t 7 ,0 x 6 2 d 6 ,0 x 9 3 3 9 ,0 x 8 3 l8 ,0 x b 3 7 b ,0 x a 3 5 a , 0 x d 3 b d ,0 x c 3 9 c ,0 x t 3 i f , 0 x e 3 d e , 0 x 2 4 6 2 ,0 x 3 4 4 3 ,0 x 0 4 2 0 ,0 x 1 4 0 1 ,0 x 6 4 e 6 ,0 x 7 4 c 7 ,0 x 4 4 a 4 ,0 x 5 4 8 5 ,0 x a 5 6 a ,0 x b 5 4 b ,0 x 8 5 2 8 , 0 x 9 5 0 9 ,0 x e 5 e e ,o x f s c q0 x c 5 a c ,0 x d 5 8 d ,0 x 3 6 5 3 ,0 x 2 6 7 2 ,0 x 1 6 1l ,0 x 0 6 3 0 ,o x 7 6 d 7 ,0 x 6 6 f 6 , 0 x 5 6 9 5 ,0 x 4 6 b 4 ,0 x b 7 5 b ,0 x a 7 7a ,0 x 9 7 1 9 ,0 x 8 7 3 8 ,0 x 1 7 d f , 0 x e 7 f e ,0 x d 7 9 d ,0 x c 7 b c ,0 x 4 8 c 4 , 0 x 5 8 e 5 ,0 x 6 8 8 6 ,0 x 7 8 a 7 ,0 x 0 8 4 0 ,0 x 1 8 6 1 ,0 x 2 8 0 2 ,0 x 3 8 2 3 ,0 x c 9 c c ,0 x d 9 e d ,0 x e 9 8 e ,0 x 9 a f , 0 x 8 9 4 8 ,0 x 9 9 6 9 ,o x a g o a ,0 x b 9 2 b ,0 x s a f 5 ,0 x 4 a d 4 ,o x 7 a b 7 ,o x 6 a 9 6 ,0 x l a 7 1 ,0 x o a 5 0 ,o x 3 a 3 3 , 0 x 2 a 1 2 ,0 x d b f d ,0 x c b d c ,0 x f b b f , o x e b 9 e ,0 x 9 b 7 9 ,0 x 8 b 5 8 ,0 x b b 3 b ,0 x a b la ,0 x 6 c a 6 ,0 x 7 c 8 7 , 0 x 4 c e 4 ,0 x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论