基于EPA和PTS的8XC196MC/MD的串行通信
目前,在众多应用领域中,出现了许多所谓"智能仪表"和"智能仪器",这些系统大多是以单片机为核心的计算机应用系统。在众多的单片机中,Intel公司的8XC196MC/MD可谓其中的佼佼者。它是16位单片机中功能最强大的单片机之一,几乎可以胜任各种测控工作,尤其在电机控制中备受青睐。然而由于8X196MC/MD单片机没有提供硬件的通用异步收发器(UART),这给用惯了UART的用户带来了一些不便。但利用专门的PTS模式,不仅可以实现串行通信,而且操作更加灵活,效率更高,CPU的开销也更小;既可以实现异步(ASIO)功能,也可以实现同步(SSIO)功能;波特率由EPA建立,包括校验位和停止位在内,收发数据格式可达16位/字符。
1 EPA和PTS概述[1-2]
1.1 EPA及其工作原理
EPA(Event Processor Array,事件处理器阵列),类似于HSIO,用来处理与时间有关的输入和输出事件,但比其更灵活、更高效。在EPA中,主要提供两类模块--捕获/比较模块和独立的比较模块,用于实现捕获和比较两种功能。每个模块都与指定的一个输入/输出引脚相关联,支持其高速输入输出功能,所有模块都能产生中断。"捕获"用来捕获产生于引脚上的跳变事件,包括正跳变、负跳变和正负跳变,并记录这些事件发生的时刻;"比较"是和预定的时间作比较,时间一到即执行以下选定的输出功能:复位定时器,启动一次A/D转换,为波形发生器产生一个重装载触发信号,改变输出引脚状态等。
1.2 PTS及其工作原理
PTS(Peripheral Transaction Server,外设事务服务器),是一种特殊的中断响应方式。与普通中断响应相比,PTS响应把同一个中断映射到相应的PTS通道。该通道产生一个PTS周期,它就像DMA周期那样插入到正常指令流中,不需要额外的软件开销,因此其CPU开销要比一般的中断响应少得多。PTS有一个PTS向量表,其排列次序和优先级顺序与普通中断向量相同,但去掉了NMI、非法操作码和软件陷阱3种中断。除了NMI之外,所有的PTS通道的优先级高于任何一个普通中断。每个PTS向量都指向一个PTS控制块(PTSCB),控制块说明了应执行的微代码。它必须驻留在内部RAM空间内,每个控制块包含8个字节,其首址应能被8除尽。
8XC196MC/MD有4种PTS工作方式,要实现串行通信需使用其SIO(串行输入/输出)方式。其中SIO有两种方式:ASIO(异步串行I/O)和SSIO(同步串行I/O)。要工作于某一方式必须建立相应的控制块(PTSCB)。与SIO方式相对应的控制块有两个,如图1所示。此处只对BAUD和SAMPTIME加以说明。
BAUD(LO和HI):存放控制SIO运行波特率的16位数据。异步方式下,由下式计算:FXTAL/(4
评论