Intel16位单片机的特殊串行通讯方式
模块。这样就能构成串行通讯的硬件端口。然后,对所选的EPA模块开辟相应的PTS通道,再根据通讯要求编写串行通讯的发送和接收PTS模块。最后使EPA和PTS两者协同工作便能实现对串行通讯的控制。
下面以异步串行通讯为例介绍其实现方法:首先为串行接收方式选择一个捕获/比较模块作为串行接收引脚。然后利用捕获功能捕捉起始位,当捕捉到起始位后将该模块转换为比较方式,并利用比较方式的精确定时来确定第一个采样时刻。最后按照选定的时间间隔对输入数据的位进行采样(要确保每次采样都发生在数据位周期中心),这样就可以正确接收串行数据了。这个采样过程是通过对应的EPA中断和PTS配合来实现的。图2是接收过程的时序图。
接收过程开始后,先由EPA捕获比较模块捕捉起始位,捕获到时产生一次EPA的普通中断。在这个中断处理程序中,将捕获方式转变为比较方式,并根据要求的波特率设定比较时间为个位周期,同时启动PTS功能。在此后的个位周期,即第一个数据位周期的断时刻到来时,第一个PTS周期开始执行,并根据设定对该位数据进行采样(为了提高抗干扰能力,可以采用多数表决方式采样),直到各位数据由PTS中断根据设公平的波特率等参数直到各位数据由PTS中断根据设定的波特率等参数采样完成,系统都不需CPU再干预为止。等到一个数据单元接收完毕后,PTS中断就结束了。这时,程序再次进入一个EPA的普通中断,在这个中断中,可将PTS中接收的数据保存,然后将该EPA模块设为捕获方式,以捕获下一个数据单元的起始位。以此方式反复运行就可以逐一地接收数据单元了。对于串行发送方式,可以在EPA的捕获/比较模块或比较模块中任选一个作为串行发送引脚。然后再根据要求编写PTS控制块,最后利用EPA的普通中断和PTS配合来产生逐位发送的串行发送时序,图3所示是其发送时序。其具体工作过程是:首先将待发送的数据单元与通讯参数一同写入相应的发送PTS控制块中。然后在发送引脚上产生一个下降沿来作为起始位,接着就可以启动PTS中断了。在第一个PTS中断中,先在PTS的控制下在发送引脚上发出一个位信号。然后再在以后的PTS中断中按规定的波特率逐位发送关断,此过程无须CPU 干预,直到一个数据单元发送完成后进入一次EPA的普通中断为止。在这个中断处理中,应首先更新有关寄存器的设置,然后放入下一个特发送的数据单元,以构造出新的PTS控制块。之后再产生一个新的发送起始位,以重新启动新一轮的PTS来发送下一个数据单元。这样反复的运行就实现了串行数据的发送。
4 结束语
实验证明,196MC/MD单片机的这种串行通讯方式在实际应用中效果非常好。虽然相对于独立串口来说,该方法略显复杂。但是这种通讯方法的灵活性和实用性是其它独立串口所无法比拟的。而且这种通讯方式充分显示了Intel 16单片机技术中EPA和PTS的技术特点,这也是196MC/MD单片机应用的重要技术之一。
- 用双端口RAM实现与PCI总线接口的数据通讯(05-06)
- 朗谷数字音频处理技术在音频及网络通讯领域的应用(05-19)
- 用FIFO实现DSP间的双向并行异步通讯(08-15)
- 基于VxWorks的系统故障快速恢复设计(01-12)
- 基于Windows CE.NET实现蓝牙通讯模块的几种方法(01-25)
- 基于DSP核信号采集系统通讯接口电路设计(01-16)