当前位置:首页 > 单片机 > 单片机
[导读] 前端机由带RS -422接口的8031单片机系统组成,分别放在控制现场附近。通信控制器是插在IBM - PC/XT扩展槽上的带8031单片机的接口板,为主机和前端机间的通信提供一个智能化通道。用户只须通过主机向控

前端机由带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,而且可靠性很好。应用于一般工业控制系统,其性能价格比是较高的;但由于缺乏总线裁决和碰撞检测等软件与硬件,前端机不能主动向主机或其他前端机发起通信。增加这些软硬件,便可构成实时性更强的分布式控制系统。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

高速芯片是一种专门设计用于处理高速数据传输的集成电路芯片。它们通常用于网络设备、通信系统、计算机和其他需要高速数据传输和处理的应用中。

关键字: 高速芯片 网络设备 通信系统

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

人工智能冲击就业?大型科技企业开始行动。近日,思科、谷歌、IBM、Indeed、Eightfold、埃森哲、英特尔、微软和SAP等科技公司,以及6家顾问机构,联合成立了“AI使能的ICT劳动力联盟”。

关键字: 思科 IBM 英特尔 ICT人才联盟 AI

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机
关闭
关闭