位置:51电子网 » 技术资料 » 单 片 机

PIC单片机与PC机异步串行通信的设计

发布时间:2008/5/27 0:00:00 访问次数:949

赵凯

  摘要:当pic单片机不具备片上硬件usart或usart不够用时,可以利用软件模拟实现异步串行通信。论述了异步串行通信的基本概念,根据中断驱动的软件模拟异步串行通信的要求,设计了pic单片机与pc机之间的接口电路和通信程序框图,单片机程序利用pic单片机指令集编写,pc机程序利用vb编写。

  关键词:pic单片机;异步串行通信;vb;外部中断

引言

  因为具有运行速度快、低功耗、价格低、体积小等优点,microchip公司推出的pic系列单片机已经得到越来越广泛的应用。应用之一是作为下位机与上位机(例如pc机)通信,它被广泛应用在工业控制、数据采集和检测等领域中。单片机与pc机通信的方式有串行通信、并行通信。其中,串行通信具有硬件电路简单、软件实现容易和运行可靠等优点,十分适合对实时性要求不太高的场合。由于部分pic单片机不具备串行通信所需的硬件usart口,故系统设计者需要用软件实现pic单片机与pc机之间的串行通信。笔者介绍利用pic单片机的中断功能实现异步串行通信的方法。

异步串行通信基本概念

  异步串行通信字符格式如图1所示。通信线路上传送的每个字符包括1个起始位、5~8个数据位、1个奇偶校验位(可无)和1~2个停止位。每个字符的传送都是以起始位作为开始标志,紧跟其后的是要传送的数据(低位先传送),然后是奇偶校验位,最后是停止位。相邻字符之间的时间间隔即空闲时间可为任意长。线路空闲时应表现为“1”,当检测到“0”时,表示一帧字符的开始。

串行接口硬件电路

  选用的单片机型号为pic16c711,不具备硬件usart,需要用一般i/o口来模拟串行口。如图2所示,rb0为接收脚,rb5为发送脚。rb0除作为一般i/o引脚外,还可以作为外部中断输入引脚,引起中断的方式分为上跳沿和下跳沿2种方式。在本文中,设置下跳沿引起中断。当起始位到来时,rb0上出现下跳沿,引起中断,如果不是干扰信号则开始接收数据。

  rs-485标准的特点是抗干扰能力强,传输速率高、传送距离远。它规定了双端(平衡式)电气接口特性。当单片机与具有rs-485接口的pc机通信时,需要进行信号形式的转换。从单片机发送到pc机的信号首先转换成平衡信号,再送往pc机。从pc机发送到单片机的信号先转换成非平衡信号,再输入单片机。信号形式的转换工作由rs-485接口芯片sn75176完成。sn75176差分总线收发器工作在半双工方式,当工作于发送方式时,发送使能引脚de为高电平,接收使能引脚也为高电平。当工作于接收方式时,发送使能引脚de为低电平,接收使能引脚也为低电平。这样,可以将de与连接在一起,由rb6引脚输出控制信号, 控制sn75176的发送和接收使能。为了减少线路上信号的反射,需要匹配线路的特性阻抗。由于通信载体是双绞线,它的特性阻抗为120ω左右,所以线路设计时,在rs-485网络传输线的始端和末端各应接1只120ω的匹配电阻,r1为单片机一侧的匹配电阻。由于rs485芯片的特性,接收器的灵敏度为±200mv,即差分输入端va-vb≥±200mv时,输出逻辑“1”;va-vb≤200mv时,输出逻辑“0”。当︱va-vb︱≤200mv时,输出不确定。因此,当a、b无信号输入时,可能造成接收引脚r上出现低电平,这会误认为通信帧起始位到来而引起工作不正常。为了避免这种情况发生,可以人为的让a端电位高于b端电位,使r引脚在rs485总线不发送期间呈现唯一的高电平,单片机不会被误中断而接收到乱字符。通过在a、b接上拉、下拉电阻r3、r2可解决这个问题。


图2 pic16c711与pc机之间的接口电路

单片机通信程序框图

  单片机与pc机之间的通信方式为半双工方式。一帧数据包括一位起始位、8位数据位、一位停止位和无奇偶校验位。设发送和接收数据的波特率为9600b/s,则每一位占用的时间td为1/9600s,约为104μs。单片机晶振频率为4mhz。单片机执行一条指令耗费时间1μs。

单片机接收数据程序框图
  pic16c711单片机的rb0引脚具备外部引脚跳变沿中断功能,向rb0引脚送一个上跳沿或下跳沿信号,则intcon寄存器的外部引脚跳变沿中断标志位intf被置1。如果总中断和外部引脚跳变沿中断都使能,并且此时单片机没有执行其他中断服务子程序,程序进入int中断服务子程序。根据异步串行通信的特点,通信线路空闲时单片机接

赵凯

  摘要:当pic单片机不具备片上硬件usart或usart不够用时,可以利用软件模拟实现异步串行通信。论述了异步串行通信的基本概念,根据中断驱动的软件模拟异步串行通信的要求,设计了pic单片机与pc机之间的接口电路和通信程序框图,单片机程序利用pic单片机指令集编写,pc机程序利用vb编写。

  关键词:pic单片机;异步串行通信;vb;外部中断

引言

  因为具有运行速度快、低功耗、价格低、体积小等优点,microchip公司推出的pic系列单片机已经得到越来越广泛的应用。应用之一是作为下位机与上位机(例如pc机)通信,它被广泛应用在工业控制、数据采集和检测等领域中。单片机与pc机通信的方式有串行通信、并行通信。其中,串行通信具有硬件电路简单、软件实现容易和运行可靠等优点,十分适合对实时性要求不太高的场合。由于部分pic单片机不具备串行通信所需的硬件usart口,故系统设计者需要用软件实现pic单片机与pc机之间的串行通信。笔者介绍利用pic单片机的中断功能实现异步串行通信的方法。

异步串行通信基本概念

  异步串行通信字符格式如图1所示。通信线路上传送的每个字符包括1个起始位、5~8个数据位、1个奇偶校验位(可无)和1~2个停止位。每个字符的传送都是以起始位作为开始标志,紧跟其后的是要传送的数据(低位先传送),然后是奇偶校验位,最后是停止位。相邻字符之间的时间间隔即空闲时间可为任意长。线路空闲时应表现为“1”,当检测到“0”时,表示一帧字符的开始。

串行接口硬件电路

  选用的单片机型号为pic16c711,不具备硬件usart,需要用一般i/o口来模拟串行口。如图2所示,rb0为接收脚,rb5为发送脚。rb0除作为一般i/o引脚外,还可以作为外部中断输入引脚,引起中断的方式分为上跳沿和下跳沿2种方式。在本文中,设置下跳沿引起中断。当起始位到来时,rb0上出现下跳沿,引起中断,如果不是干扰信号则开始接收数据。

  rs-485标准的特点是抗干扰能力强,传输速率高、传送距离远。它规定了双端(平衡式)电气接口特性。当单片机与具有rs-485接口的pc机通信时,需要进行信号形式的转换。从单片机发送到pc机的信号首先转换成平衡信号,再送往pc机。从pc机发送到单片机的信号先转换成非平衡信号,再输入单片机。信号形式的转换工作由rs-485接口芯片sn75176完成。sn75176差分总线收发器工作在半双工方式,当工作于发送方式时,发送使能引脚de为高电平,接收使能引脚也为高电平。当工作于接收方式时,发送使能引脚de为低电平,接收使能引脚也为低电平。这样,可以将de与连接在一起,由rb6引脚输出控制信号, 控制sn75176的发送和接收使能。为了减少线路上信号的反射,需要匹配线路的特性阻抗。由于通信载体是双绞线,它的特性阻抗为120ω左右,所以线路设计时,在rs-485网络传输线的始端和末端各应接1只120ω的匹配电阻,r1为单片机一侧的匹配电阻。由于rs485芯片的特性,接收器的灵敏度为±200mv,即差分输入端va-vb≥±200mv时,输出逻辑“1”;va-vb≤200mv时,输出逻辑“0”。当︱va-vb︱≤200mv时,输出不确定。因此,当a、b无信号输入时,可能造成接收引脚r上出现低电平,这会误认为通信帧起始位到来而引起工作不正常。为了避免这种情况发生,可以人为的让a端电位高于b端电位,使r引脚在rs485总线不发送期间呈现唯一的高电平,单片机不会被误中断而接收到乱字符。通过在a、b接上拉、下拉电阻r3、r2可解决这个问题。


图2 pic16c711与pc机之间的接口电路

单片机通信程序框图

  单片机与pc机之间的通信方式为半双工方式。一帧数据包括一位起始位、8位数据位、一位停止位和无奇偶校验位。设发送和接收数据的波特率为9600b/s,则每一位占用的时间td为1/9600s,约为104μs。单片机晶振频率为4mhz。单片机执行一条指令耗费时间1μs。

单片机接收数据程序框图
  pic16c711单片机的rb0引脚具备外部引脚跳变沿中断功能,向rb0引脚送一个上跳沿或下跳沿信号,则intcon寄存器的外部引脚跳变沿中断标志位intf被置1。如果总中断和外部引脚跳变沿中断都使能,并且此时单片机没有执行其他中断服务子程序,程序进入int中断服务子程序。根据异步串行通信的特点,通信线路空闲时单片机接

相关IC型号

热门点击

 

推荐技术资料

硬盘式MP3播放器终级改
    一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!