一种基于C8051F310的UART扩展实现
引言
本文引用地址:http://www.amcfsurvey.com/article/109142.htmUART数据发送协议作为一种简单的数据发送协议,被大量的使用在当前各种数字外设的数据传输上。但是现在的PC机存在无UART接口或接口较少的问题,当需要利用PC机对于多个数字设备同时处理问题时,就需要在PC机上进行UART扩展,这类问题在笔记本PC上尤为突出。通常这种问题的解决方法有以下几种方法:(1)利用USB接口通过相应的转换设备进行转换。(2)利用PCI总线转换卡获得多个UART接口的扩展。前者优点在于实现简单设备,成本低。后者优点在于可以实现多个接口扩展且功能完善。但在实际使用中发现两者都存在一个共同的问题,即利用扩展获得UART接口其工作性能不够稳定,且存在不能完全实现多个UART接口的实时通讯。
为解决上述硬件方法在工程实现存在的不足,本文针对项目实际需要提出了一种利用C8051F310单片机实现多UART接口扩展方法。通过单片机作为数据收发的中继器,实现对于多个UART采集的需要。
UART数据发送
8位UART数据传输主要利用RX,TX信号线实现数据的双向传输(如图1)。
当数据接收时,数据线RX首先处于接收准备状态即RX呈高电平,根据UART数据发送协议,如果RX线有数据接收时,RX线被置为低电平,接收起始位,在起始位后是为数据位,当最后一帧数据接收完毕后,产生终止,终止位的作用为将RX线电平置高,是RX线处于等待状态。
发送通过对于TX线上信号电平的操作实现对于数据的发送,发送初始状态下TX线处于高电平,当启动发送后将TX线电平置低产生起始位,在一个波特率时钟周期后将开始发送数据,数据发送完毕后重新将TX电平置高使发送机处于等待状态。
单个UART实现方法
本文利用C8051F310单片机作为软件UART实现的平台,主要方法是通过单片机的定时器产生波特率,根据波特率确定的位时间定时读取(或发送)位数据信号,从而模拟了硬件UART的工作过程。具体的实现方法如下所述。
(1)硬件连接
在UART的软件实现中主要是利用单片机模拟硬件UART的发送过程,因此我们利用C8051F310单片机中定时器T0工作的双八位定时模式用于产生波特率,PC机A0工作在边沿捕捉状态以捕捉SW_RX端口的电平变化产生,判断数据接收的初始和终止。具体的硬件连接如图2。
评论