新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于AT90S8515的串行通信及其应用

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

作者: 时间:2011-01-30 来源:网络 收藏

位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发送的开启与关闭。

程序

程序

程序

程序



关键词: 收发器

评论


相关推荐

技术专区

关闭