Intel16位单片机的特殊串行通讯方式
1 概述
随着单片机技术的发展和控制技术的提高,16位单片机已经被广泛地应于工和民用领域。其中,Intel公司的80C196系列16位单片机目前应用非常广泛的一种。
80C196MC/MD 单片机集合了Intel16位单片机的所有特性,是196系列单片机中功能最强大的单片机之一。它有一个16位逻辑运算单元,13路10位A/D转换通道,一个EPA、PTS、两个PWM脉宽调制单元和三个WFG(波形发生器)。由于它完善的硬件结构、出色的运算能力,使得196MC/MD单片机可以应用于各个领域。它所独有的WFG更使196MC/MD在电机变频控制中倍受青睐。196MC/MD单片机的另一特色就是它独特的通讯方式。与其它单片机不同,196MC/MD的通讯不是通过独立的串行通讯接口实现的,而是利用EPA和PTS来实现的。这种方式不但能够实现一般串行口的完成的各种通讯功能。而且还能实现一些特殊的功能(如多串口的通讯)。要实现196MC/MD灵活多样的串行通讯方式,关键是要掌握EPA和PTS的使用技巧。
2 EPA和PTS的工作原理
Intel公司在KC系列以后的16位单片机中增加了EPA(Event Process Array)事件处理阵列和PTS(Peripheral Transaction Server)外设事务服务器。其中外设事务服务器是微指令中断控制器。196MC/MD的串行通讯以是利用它们来实现的。
196MC/MD 单片机是EPA中有两种模块,一种是捕获/比较模块,它用于支持一个对应引脚的高速输入/输出功能。所谓“捕获”是指它可以记载某个EPA引脚上电平发生跳变事件的时刻。EPA可以捕获的事件包括下降沿跳变、上升沿跳变、上升或下降沿跳变。在串行通讯中正是利用此功能来“捕获”串行输入时的起始位的。所谓 “比较”是将定时器值与一个预先设定值进行比较,如相等,则执行指定的输出功能。输出功能包括输出低电平、输出高电平以及引脚电平翻转等。由于“比较”功能可产生一个准确的定时值,因此在串行输入时可利用这一特性来确定第一个有效数据位的采样时刻,EPA中的另一种模块是“比较”模块。它与“捕获/比较” 模块中的比较功能是一致的。串行通讯中利用该模块的比较输出功能来发送数据,并与PTS相互协调工作以使其达到规定的波特率。
196MC/MD 的EPA中管理了4个捕获/比较模块和4个比较模块,每个模块在硬件上都有对应的引脚。利用这些EPA管理的引脚可以构成串行通讯的硬件接口。而且,对于每一个引脚都可以进行串行通讯接口。因此,196MC/MD的串行安排比较灵活,同时,丰富的硬件资源也为实现多串口通讯提供了硬件保证。这是其它单片机无法与之相比的。
实现196MC/MD串行通讯另一难点是 PTS的使用。PTS是一个微指令的硬件中断处理器,它可提供一种特殊的中断服务。与普通中断不同的是,它不改变堆栈的中断服务。与普通中断不同的是,它不改变堆栈以及PSW,也不打断正常指令流。它将待处理的微指令插入在PTS控制块中可与常指令同步执行。这样,就不需要额外的CPU开销,当产生PTS 中断时,它可以按照PTS控制块中规定的操作继续进行,直到PTS控制块中规定的所有工作进行完后才触发一次对应的变通中断来申请一次CPU管理。因此 PTS中断可以大大减轻CPU的负担以使代码执行效率更高;同时它还要与普通中断配合使用,是一种特殊的中断方式。196MC/MD的PTS有4种操作方式,分别为单字节传送方式、多字节传送方式、A/D转换方式和串行通讯方式,它们分别对应于5种PTS控制模块。其中串行通讯方式是196MC/MD所独有的,它由两个PTS控制块组成,图1为其结构图。
有关接收和发送的数据存放在由DATA(L)和DATA(H)构成的数据单元中。其数据单元的宽度可达16位。波特率的设定参数放在BAUD(L)和BAUD (H)中。196MC/MD串行通讯的控制参数主要放在PTSCON和PTSCON1寄存器中。对这两个寄存器进行操作可以设定各种串行通讯方式。下面主要介绍这两个寄存器。
PTSCON的操作格式如下:
其中:M2M1M0=011为发送方式;M2M1M0=001为接收方式;SA=1为同步SIO;SA=0为异步SIO。
MAJ=1为允许多数表决采样;MAJ=0为禁止多数表决采样。
PTSCON1具有异步和同步操作两种模式。异步方式的PTSCON1操作格式为:
同步方式的PTSCON1格式为:
其中:PRAR为接收奇偶校验控制/状态位;
PEN为奇偶校验选通们,PEN=1时选通;PEN=0时禁止;
FE为出错标志,FE=1说明传输出错;
TPAR为发送奇偶校验控制位;
TRC是发送/接收控制位。
3 实现196MC/MD的串行通讯
在利用196MC/MD实现串行通讯时,首先选择EPA中的一个捕获比较模块作为串行通讯,再选择一个比较模块作为串行通讯发送
- 用双端口RAM实现与PCI总线接口的数据通讯(05-06)
- 朗谷数字音频处理技术在音频及网络通讯领域的应用(05-19)
- 用FIFO实现DSP间的双向并行异步通讯(08-15)
- 基于VxWorks的系统故障快速恢复设计(01-12)
- 基于Windows CE.NET实现蓝牙通讯模块的几种方法(01-25)
- 基于DSP核信号采集系统通讯接口电路设计(01-16)