IBM-PC/XT机与单片机通信系统的设计方案

发布者:满足的36号最新更新时间:2018-02-27 来源: eefocus关键字:IBM-PC  XT机  单片机  通信系统 手机看文章 扫描二维码
随时随地手机看文章

    前端机由带RS -422接口的8031单片机系统组成,分别放在控制现场附近。通信控制器是插在IBM - PC/XT扩展槽上的带8031单片机的接口板,为主机和前端机间的通信提供一个智能化通道。用户只须通过主机向控制器发一条简单的命令而无须知道通信的细节,就可以使前端机执行相应的动作。控制器每次发送或接收的数据是可变的,但不超过255字节。每次通信都要进行差错检测和差错处理,以保证数据传输的准确性。主机IBM - PC/XT是命令的发起者和系统运行的控制者。


1.前端机
    图1- 27是前端机的结构框图。它是一个带RS - 422串行接口的51系列单片机系统。其输入/输出和A/D转换的通道数是根据实际应用控制系统(如汽车自动检测线)的需要而配置的,与通信无关。图1- 28给出了串行接口原理图。每个前端机和通信控制器的接口均用MC3486和MC3487作差分驱动和接收。串行总线由一对双绞线DATA+和DATA-组成。双绞线的末端有提升电阻,使线路在空闲时处于逻辑1状态。当发送逻辑o(TxD=O)时,线路处于0状态。这种差分驱动和接收总线在电气特性上符合RS - 422标准,比起RS - 232,这样的单端驱动总线具有抗干扰能力强,数据传输率高,距离远等优点。

2.通信控制器


    控制器的结构框图如图1- 29所示,8031通过串行接口和并行接口分别和各前端机以及主机交换数据。并行接口的原理图见图1- 30,控制器和IBM - PC/XT间的数据交换是以查询的方式实现的。8255A工作于A口方式2(双向总线I/O),控制器向IBM - PC/XT输出数据时,首先WR信号有效将数据写到A口,这使得PC7( OBFA)一O(初始状态OBFA =1);IBM - PC/XT通过读8212Ⅲ的状态得知OBFA=O后,再读8212 I即可将A口数据读入;与此同时,8212 I的INT信号使OBFA恢复到初始状态。IBM - PC/XT向控制器送数据时,用输出命令将数据写入8212Ⅱ;同时8212Ⅱ的INT信号有效,使PC4( STBA)产生一个选通信号;该信号将PC5(IBFA)置为有效(即IBFA =1,初始状态IBFA=0),8031读8255A的C口状态得知IBFA =1.再读A口即可将数据读入控制器。并行口地址采用部分译码,8212 I和8212Ⅱ的地址是02EOH;8212Ⅲ的地址是02EIH。

通信协议


1.帧格式
    帧是一次发送或接收的数据。本系统有从控制器发送到前端机的命令帧和前端机发送到控制器的命令响应帧。它们的格式如下:

  命令帧:前端机地址,前端机地址,数据长度,数据长度,命令字段,数据,……,数据,校验字1,校验字2。
  
  响应帧:状态字段,数据,……,数据,校验字1,校验字2。
  
  其中前端机地址(或称站地址)是前端机的唯一标识符;命令字段是要求前端机执行的操作;状态字段指示命令的执行情况;数据长度用一字节(B)表示,因此帧的长度不能大于255 B。
  
  2.差错检测
  
  对命令帧,前端机地址和数据长度各自重复发送两字节。前端机根据两字节是否一致,判断地址和数据长度字节在传输过程中是否出错。命令字和所有数据字节用CRC - 16多项式检错法检错。前端机通过计算得出两字节的校验字,并与命令帧最后两字节校验字相比较,判断数据传输是否有错。命令响应帧也采用同样的CRC - 16多项式检验法检错。实践证明,这种检错法既可以有效地检查出传输差错,又可以保证较低的数据冗余度。由于单片机缺少CRC检错的硬件,所以采用软件算法,所得的两字节校验字作为帧的最后两字节发送。
  
  3.差错处理
  
  可能有两种差错:帧受到损伤;或者完全丢失。系统规定,控制器每发送一帧,前端机仅当数据被正确接收时,才会发送一个响应帧。如果一个受损帧到达前端机,就会被丢弃,过一段时间后.控制器会因为超时而把原帧重发一次,直到该帧最终完好无损地到达为止。帧在从控制器到前端机的过程中丢失,也会因为收不到响应帧而超时,使原帧重发。
  
  一种特殊情况是:
  
  ①控制器发一帧报文到前端机,该报文被前端机正确地接收并回送一响应帧。
  
  ②该响应帧在从前端机到控制器的过程中完全丢失或受损。
  
  ③控制器最终超时,由于没有收到正确的响应帧,它就会不正确地假定:发出的报文已经丢失或受损,并把该帧重发一次。

  ④该重复帧也完好无损地到达前端机,于是前端机收到重复的两帧。如果该帧要求前端机产生一个动作,则它会动作两次,这显然是不允许的。
  
  为了避免这种情况的发生,命令字段的最高位设成序列编号。控制器每发一帧都加一个序列编号。新帧的序列编号总和前一帧的序列编号不同,重复帧的序列编号和前一帧的序列编号相同。前端机利用该编号判断是新帧,还是要丢弃的重复帧。当一个重复帧到达时,前端机拒绝接受,但重发上一次的响应帧。
  
  本系统超时时间的长短是动态的。它与帧长度成正比,和传输速度成反比。这种方法比超时时间固定的方法具有更高的通信效率。
  
  4.远程存取控制
  
  远程存取控制( RAC)是一组高层命令,IBM - PC/XT可以根据这组高层命令的格式,在内存中组织一段报文送到控制器。控制器根据报文向前端机发送一个命令帧,然后根据响应帧将命令的执行情况报告IBM - PC/XT。

  软件设计
  
  1.通信控制器程序
  
  通信控制器的程序流程图如图1- 31所示。其中初始化包括:①设定不高于100 kb的波特率;②设定超时计算用的To中断为最高级中断;③设定SP堆栈寄存器的值为30H;④初始化8255A使A口工作于方式2。从IBM接收一帧报文,将前端机不能通信的信息报告IBM.将前端机序列编号出错信息报告IBM及向IBM发响应报文,均是以查询方式与IBM - PC/XT交换数据的程序模块;发送子程序和接收响应帧子程序为满足通信协议的通信程序模块。限于篇幅,不再详述。程序的长度约2.4 KB。


  2.前端机通信子程序
  
  该程序是长为1.1  KB的串行口中断子程序,包括接收命令、执行命令、发响应帧三个满足通信协议的程序模块。限于篇幅,其详细的程序流程图在此从略。命令送到前端机后何时开始执行命令,取决于主程序对串行口中断级别的设定和主程序当时正在执行什么操作。若把串行口中断设为高级中断而其他中断设为低级中断,则收到命令后立即执行命令。通信子程序占用的资源包括串行中断口、2 KB RAM中开始的300个存储单元、128个内存字节中地址从30H~3FH的存储单元和定时器Tl。

  3.IBM - PC/XT远程存取控制命令的组织和调用
  
  IBM - PC/XT要前端机执行一条如表1- 14所列的命令只须向控制器发一段报文。报文的格式是:命令长度,前端机地址,命令值(见表1-14),数据,……,数据。例如复位1号前端机的报文是02H,OIH,OOH;读2号前端机外存8000H单元值的报文是04H,02H,18H,80H,OOH。
  
  发送完报文后,根据IBM - PC/XT接收控制器发来的响应报文(包括状态字段、命令执行结果),即可得知命令的执行情况。
  
  本系统已应用于汽车性能自动检测等集散式控制系统中。理论和实践都证明,在1 km范围内数据传输率可达100 kb/s,而且可靠性很好。应用于一般工业控制系统,其性能价格比是较高的;但由于缺乏总线裁决和碰撞检测等软件与硬件,前端机不能主动向主机或其他前端机发起通信。增加这些软硬件,便可构成实时性更强的分布式控制系统。


关键字:IBM-PC  XT机  单片机  通信系统 引用地址:IBM-PC/XT机与单片机通信系统的设计方案

上一篇:单片机与IBM-PC机的串行通信分析
下一篇:单片机串行接口和调制解调器如何实现远程通信

推荐阅读最新更新时间:2024-03-16 15:55

浅谈单片机Boot的几种自刷新方式
汽车软件Boot程序的主要作用是刷新App程序。在一个具体客户项目中,Boot也是客户需求的一部分,跟随项目也有软件开发计划(有的为了和其它Boot区分,把项目上的Boot称作CB, Customer Boot)。 对于已经下线盒盖的控制器,无论是在供应商或者客户手里测试,只能通过CB刷新App。如果需要CB自刷新,就需要额外的方法。 1、规范: 整车厂只有对App程序刷新的规范,没有对Boot自刷新的规范。因为规范是针对量产车的,售后只负责App程序的升级,不对Boot升级(也不允许Boot升级)。 所以,Boot的自刷新只存在于项目开发阶段,且由供应商自行提供方案。本文分析五种Boot自更新方式的优缺点。 方式
[单片机]
基于单片机和GSM的家庭防盗系统的设计
  目前市场上家用报警系统多数是通过电话线实现报警功能的, 当电话线被恶意剪断时, 系统就会失去报警功能。针对此问题, 将移动通信技术引入本系统设计中, 避免了此类问题的发生, 依据性价比及实际功能要求, 本系统采用单片机及移动通信技术进行总体方案的设计。把GSM/GPRS 模块和单片机、摄像头模块及语音模块有机地结合起来, 完成单片机与GSM/GPRS 模块的通信及与摄像头模块的通信, 设计出功能强大的家庭网络防盗系统。   1 系统总体方案设计   系统中的移动通信模块采用广州谱泰科技有限公司的PT39I 模块。外围电路自行设计, 通过单片机的RS232串口与移动通信模块进行连接。根据性价比以及系统的实际功能要求等, 系统
[单片机]
基于<font color='red'>单片机</font>和GSM的家庭防盗系统的设计
基于PIC16F627单片机的可调倒计时提醒器软硬件设计
  一、硬件电路   如图1所示,电源变压器T1将AC220V市电变换为AC9V交流电压后,经D1~D4整流、C4滤波、U2MC7805(或LM7805)稳压后,得到5V直流电压,为整机供电。   主控芯片为PIC16F627单片机,其每个端口的拉电流或灌电流可达25mA,无需外加三极管,就可以直接驱动LED数码管。   设PIC16F627的RB口为输出,其中RB0~RB6用于数码管的段驱动,因选用的是LG5621BH共阳数码管,故只有当RBO~RB6输出低电平时,数码管才能被点亮,RB7口用于控制蜂鸣器,三极管Q3(S8050)作驱动放大,只有在RB7输出高电平时,蜂鸣器才能鸣响报警。设RA0~RA2为输出口,其中
[单片机]
基于PIC16F627<font color='red'>单片机</font>的可调倒计时提醒器软硬件设计
单片机定时器0实现信号交通灯程序
本程序所用的原理图下载: 点这里 ,单片机芯片使用的stc89c52 /* *功能:定时器0实现信号交通灯 * *日期:2013-05-07-08:41 *作者:徐冉 *特别说明:本程序代码已经通过调试,仅供学习使用; * */ /***********AT89C52-RC 单片机实验板***********/ /*****************51hei-开发板*********************/ #include reg52.h typedef unsigned int uint; typedef unsigned char uchar; sbit LED_hong = P1^0;//红信号灯 sbit LED_l
[单片机]
基于单片机的智能家居安防系统方案设计
1 引言 现在的安防系统可借助计算机技术、IC 卡技术、通信技术等来实现,CAN总线应用于安防系统对家居智能化发展起到了良好的促进作用。而把DTMF 技术应用于安防系统, 不需要专门的布线, 不占用无线电频率资源, 没有电磁污染。文中设计了一种基于CAN 总线和DTMF技术的以AT89S52单片机为核心的新型智能家居安防系统, 使原来小区安防系统的实时性和可靠性有了一个新层次的提高。本系统可以对整个家居的安全环境进行实时监控, 监控的范围包括室内防盗、火灾报警、煤气泄露等一系列不安全因素。一旦有上述事故发生, 该报警系统就会发出相应的报警信息, 用语音播出警情类别, 向远方用户和相关部门提供警情语音。 2 系统总体构成 系统
[单片机]
基于<font color='red'>单片机</font>的智能家居安防系统方案设计
AT89S系列单片机ISP下载线设计
1 引言   随着单片机日益广泛的应用,为了降低单片机系统开发的成本和难度,许多单片机生产厂商推出了支持ISP技术的单片机,其中就包括主流厂商ATMEL公司生产的AT89S系列单片机。ISP(InSySTem Programming)即在线系统编程,该技术允许用户对电路板上的单片机擦除、写入最终程序代码,免去了传统开发过程中所需的仿真器、编程器等开发工具,且使用户能在线对单片机进行软件升级。   ISP技术需要通过ISP下载线及相应的程序下载软件来实现,目前多数的下载线为并口下载线,而并口已经逐渐被市场淘汰,现在的许多笔记本电脑和台式机都取消了并口配置,因此,USB接口的ISP下载线已成为主流。本文提出了一种基于USB接口的I
[工业控制]
AT89S系列<font color='red'>单片机</font>ISP下载线设计
单片机IBM-PC的串行通信分析
  51单片机和IBM - PC机是目前我国应用最广的两种微型计算机。作为单片机,51单片机不但功能强,体积小,价格低,而且使用方便,特别市场上提供的多种51单片机开发系统,为开发应用51单片机提供了非常方便的手段。因此,51单片机在许多领域,特别是工业控制和智能仪器领域已得到广泛的应用。事实已证明,51单片机已成为8位微机之首。作为系统机,IBM - PC的优点已众所周知,可以说,IBM - PC微机的出现为微机领域带来了一场革命。在我国,由于汉字操作系统( CCDOS)的引入,使得IBM - PC在各个领域得到迅速的推广使用。      串行通信是计算机进行数据通信的主要方式之一。由于其连线少,成本低,再加上有调制/解调功能,
[单片机]
<font color='red'>单片机</font>与<font color='red'>IBM-PC</font><font color='red'>机</font>的串行通信分析
内嵌微控制器的无线数据发射器的特性及应用
概 述 AT86RF401是单片机集成内嵌AVR RISC微控制器的RF无线数据发射器,输出频率范围为250~450MHz,最大输出功率+6dBm,发射率10Kband。芯片内嵌AVR RISC微控制器、2KB(1K×16b)的Flash程序存储器、128B(字节)的可下载的EEPROM数据存储器、128B的RISC SRAM、看门狗定时器、6个通用I/O、在系统可编程。工作电压2.0~3.5V。待机电流0.1~0.5 μA ,发射电流17mA,可用CR20332/CR201B LiMnO2电源供电。可用于遥控无键入口(RKE)发射器、车库门开门器、遥测(轮胎压力,水、电、气表,贵重物品跟踪)、无线安防系统、无线电遥控等应用
[工业控制]
内嵌<font color='red'>微控制器</font>的无线数据发射器的特性及应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved