微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于AT90S8515的串行通信及其应用

基于AT90S8515的串行通信及其应用

时间:08-03 来源:互联网 点击:
1.2.2UART状态寄存器———USR  

USR提供各种状态信息,其格式如下:  

位7——RXC:UART接收完成,当使用中断数据接收时,接收完成中断子程序必须读UDR而消除RXC,否则在子程序完成时又引起新的中断;
位6———TXC:UART发送完成,当发送移位寄存的全部数据被移出后且没有新的数据写入UDR时,该位置1,TXC在执行相应的中断向量时被硬件清除;
位5———UDRE:UART数据寄存器空,当写入UDR的字符被传送到发送移位寄存器中时该位被设置,表示发送器准备新的数据发送。
位4———FE:帧出错,当收到的数据的停止位为0时,该位置1,FE在收到的数据的停止们为1时被清除;
位3———OR:超越出错,当UDR寄存器的数据没有在新的数据被移入到接收移位寄存器之前被读走,该位置1,即OR位被缓冲。意味着移入移位寄存器的最后数据字节不能被送到UDR中而丢失。  

1.2.3波特率发生器  

依据以下等式的分频器产生波特率:

BAUD=f/[16(UBRR+1)]  
BAUD表示波特率,f为晶振频率;UBRR表示UART波特率寄存器的值(0~255)。例如,波特率确定为9600波特时,选用标准的晶振频率1.8432MHz(误差为0),则可计算出UBRR的初始化值为11;波特率确定为9600波特时选用晶振频率为3.6864MHz,UBRR的初始化值为23。  

2 AT90S8515与上位PC机的串行通信应用  

2.1与上位PC机的硬件连接  

AT90S8515与上位PC机通信采用RS485总线,通过RS-485接收/发送器连接,使用MAXIM公司的MAX3080CPD芯片,为了使电磁干扰及终端末匹配的连接所产生的反射最小,MAX3080适合速率为115Kbps以下的应用,而且具有平衡发送,差分接收,抑制共模干扰和故障保护的特点,适合远距离传送。为提高系统可靠性,在MAX3080与CPU之间还可增加光电耦合器6N137,更好地与上位机电气隔离。硬件连接原理图如图1所示。   

2.2与PC机的串行通信软件设计  

应用AT90S8515的串行接口UART与PC机进行串行通信软件设计可以采用中断接受与查询发送的方式,通过判断UART中的UDR发送数据寄存器是否为空决定是否发送,并激活接收完成中断。  

下面的程序采用查询方式向上位PC机发送数据,采用中断方式接收数据,字符数据位为8位,接受数据块将包含数据帧帧头及帧尾(各占一个字节),还有符合本节点的标识码(地址),从而提高数据接收的安全性及可靠性,并适合多个AVR微控制器与PC机通信。

选用标准的晶振频率3.864MHz(误差为0),波特率确定为19200波特,且用PD7引脚控制MAX3080发送的开启与关闭。   


  


  


  


  


  


  


  


  


  
3 结束语
  

以上的程序模块已经在作者的课题项目开发中加以应用,同时对AT908535、AT90S2313等其它型号AVR单片机也完全通用。

总之,相对以往的AT89系列单片机,以AT90S8515作为嵌入式高效微控制器,在性能上要强得多,程序的效率高而且运行速度大大提高,开发手段也更方便。

另外,AVR单片机的内部又有硬件看门狗电路即看门狗定时器和看门狗定时器的控制寄存器WDTTP相相应的看门狗指令控制,大大提高了系统的可靠性及安全性,因此,目前应用高档ATP系列单片机更适合组成工业现场总线控制系统的智能检测及采集处理节点。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top