试论51系列单片机软件的串行口扩展设计

2017-12-12 09:44袁国立
南北桥 2017年22期
关键词:单机中断串口

袁国立

【摘 要】当前我国的电子技术得到了较快的发展,在当今复杂测控系统相关问题的解决当中,以PC机组成部分,多微处理器MCU为代表的主从分布式测控系统已然成为了当今重要的解决方案。

【关键词】单机片软件 串行口 扩展设计 51系列

中图分类号:G4 文献标识码:A DOI:10.3969/j.issn.1672-0407.2017.22.006

51系列所提供的全双工串行通信接口只有一个,这与当今相对复杂且实时性要求较高系统的需求不适应,因此需要对此开展串行口扩展,本文将介绍51系列单片机软件在串行口扩展设计过程中所应用的方法和技术,并且介绍相应的源程序。

在电子技术发展的过程中,51系列单机片因为具备了比较独特的串口通信功能,也增加了不同设备传输数据的便利性,但是因为该系列的单机片所提供的全双工串行通信接口数量只有一个,所以与当前相对复杂的系统需求不太符合[1]。以我们当前所设计的智能密集架测控系统来看,一般需要两个通信接口,一个需要和上位机配合接受通信,另一个则是需要进行条形码扫描仪通信。本次设计的主要目的就是实现51系列单片机软件串行口扩展的相关设计,解决其使用范围受到较大限制的问题。

一、单机片相关工作原理阐释

在多串口通信问题具体解决的过程中,其实本质上是对串口通信接收相关问题的解决,这主要是因为在设备发送信息的过程中,程序会控制设备发送信息的时间。串行数据接收的过程主要以下列内容为基础:

首先采样RXD线,速度为波特率16被,然后再将数据时间分为16份,在划分时需要借助于4位二进制,检测器一般需要选择和采样3个数值。位数据的确定需要从3个样本当中选择2个,为了减少产生的干扰,本次研究过程中所设计的模拟串口也是以遵循上述的相关过程。图1为串行数据发送的具体过程。

我们在使用设备发送相应的数据时,第一个输出的是“0”,然后数据线会经历从高向低电平转换的过程。外部发生中断,0受到触发之后也会发生中断现象。单机片在对中断进行响应之后,会对定时器为0的定时时间进行更改,设置为1位数据时间,为1.5倍。此时定时器0中断被允许,而且外部中断会关闭,中断程序此时正式退出。在接到了中断申请之后,计数器0的计数时间则会发生中断,程序相应中断之后会读取此时的状态,并且将这个状态及所有相关的数据进行保存。在数据时间发生一定程度的改变之后,也就是在(3)时刻时,定时器又会申请中断,在得到了程序的相应之后,会保存期状态,经过多次的循环,程序就会将整个从D0到D7的数据全都接收到。

根据上述串行数据发送和接受的过程来看,想要使串行数据的接收功能得到发挥,就必须要将定时器0与外部中断0之间进行有效的整合,而且这两个要件的整合还不需要提供相应的硬件设备来作为支撑。

二、51系列单机片串行数据发送过程

在设备发送数据的过程中所有的行为都是主动行为,所以在经过了电路的合适切换之后,借助于单机片内部串行数据发送可以达到多路发送的目的[2]。图2为具体多串行数据的发送示意图:

根据图2所显示出的电路图来看,串行数据流向必然会进行专门的控制,在本次设计的电路当中用来控制串行数据流向的正是P1.0和P1.1。P1.0和P1.1所处的状态导致数据的流向也会发生相应的变化。如果P1.0位于高电平的条件下,那么串行数据必然会到TXD1方向,反之如果P1.1处于高电平的条件下,TXD2为数据流向的出口。

三、51系列单片机软件的串行口扩展设计具体步骤分析

(一)串行口扩展设计所需要注意的内容

1.在串行口扩展设计的过程中,定时器是扩展串口的基础,所以在具体设计的过程当中必须要尽可能的简洁,如果条件允许尽量使用汇编语言来进行编程。

2.在接受完相应的字节后需要设置标志,而且在处理字节时要将其放在主程序当中进行处理,采用这样的方式主要是为了避免在程序时间当中中断程序所占较大,对相应其他中断程序产生不良影响[3]。

3.硬件自己完成串口数据接受是标准的接收方式。在完成字节接受之后会申请自动中断,其他的相关中断程序也必须要足够的简单。

(二)51系列单机片串口扩展硬件具体设计方法

单机片的外设串行通信或者是PC机的外设通信所采用的总线标准接口常见类型为RS485或者RS422等。为了提高通信的可信性和可靠性,在选择接口时需要考虑到多种因素,比如自身所具备的抗干扰能力、具体的通信距离、通信速率以及通信方式等。本次设计主要是对51系列单机片,即MCS51系列单机片,选择其中比较具有代表性的单机片型号8751单机片为研究对象开展相应的串口扩展设计。所谓串口扩展设计就是需要在该芯片的基础上要扩展新的独立串口。在具体设计过程中一点对多点分时串口通信目标的实现需要借助于多路切换器CD4067来实现,而单机片和其他类型不同的接口之间的串口通信则需要借助于另外的电平转换器,比如MAX488或者是MAX485等类型。

(三)51系列各功能模块程序设计

在本次程序设计当中,对于51系列各功能模块程序设计是以高级语言为基础。

1.初始化程序设计。假设本次设计的数据格式为10位,包含起始和停止位以及其他的八个数据位,晶振频率假设为18.5MHz。

2.终端接受程序具体设计:

3.第二串口接受程序(定时器与外部中断0结合)具体设计步骤。

随着电子技术的不断发展,相应的电子系统也变得更加复杂多变。单机片作为被广泛应用在各种系统当中的通信方式其重要性不言而喻。传统的51系列单机片虽然为数据传输带来了不少便利,但是全双工串行通信接口只有一个,其越来越无法满足多样化和复杂化的系统需求。这就需要对51系列的单片机进行多串口扩展。本次设计研究当中所采用的单机片型号主要是8751单机片,对其工作原理,硬件和软件程序等方面进行设计研究。通过研究发现扩展后的单机片更能满足系统的需求,运行可靠稳定。

参考文献

[1]侯進旺,杨晓晴.基于AT89S2051单片机串行通信接口的I/O扩展技术研究[J].现代电子技术,2015,38(07):160-162.

[2]周燕.基于S08单片机的工业控制板的设计[D].安徽大学,2012.

[3]何永泰.基于单片机ATmega128的嵌入式工业控制器设计[D].昆明理工大学,2005.endprint

猜你喜欢
单机中断串口
热连轧单机架粗轧机中间坯侧弯废钢成因及对策
浅谈AB PLC串口跟RFID传感器的通讯应用
宇航通用单机订单式管理模式构建与实践
跟踪导练(二)(5)
千里移防,卫勤保障不中断
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
基于并行控制的FPGA多串口拓展实现
AT89C51与中断有关的寄存器功能表解
FPGA内嵌PowerPC的中断响应分析